`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Андрей Зубинский

Intel вернулась на микроконтроллерный рынок

+77
голосов

Позавчера случилось нечто трудно предсказуемое (хотя, по логике, ожидавшееся). И уж совсем неожиданное в техническом исполнении. Но не будем забегать вперёд, и начнём с терминов и истории, они важны.

Микроконтроллер – завершённый вычислитель, содержащий на одном кристалле всё необходимое для работы, включая память программ, оперативную память, подсистему ввода-вывода etc. Первое такое устройство, TMS 1000, разработали в 1971 году и пустили в масштабное серийное производство в 1974 в Texas Instruments, это была 4-битовая машина с объёмами памятей, измеряемыми в битах (на снимке кристалла красным ограничена область 512-битового ОЗУ, зелёным – 1024-битовой постоянной памяти):

Intel вернулась на микроконтроллерный рынок

За долгие годы TMS 1000 в более чем сорока вариантах и конфигурациях было произведено неисчислимое количество, известен только оценочный порядок – сотни миллионов. На пике спроса TMS 1000 стоил около $2 в партиях. Несмотря на первопроходческий характер, TMS 1000 показал удивительные характеристики надёжности – по данным TI, один сбой (аппаратный, естественно) приходился в среднем на 240 лет непрерывной работы микросхемы.

В 1976 на новый микроконтроллерный рынок вышла Intel со своим 8-битовым контролером i8048, ставшим основой семейства MCS-48 (трудно поверить, но клоны i8048 производятся до сих пор), и через четыре года расширила свою микроконтроллерную линейку семейством MCS-51 с, опять же, до сих популярной микросхемой i8051. С тех пор, кроме расширений исключительно удачного семейства, MCS-151 и MCS-251, специализированного (для Ford) i8061 и семейства MCS-96 на его основе, в Intel к микроконтроллерам с ядром собственной разработки в серийной продукции не возвращались.

Вот что важно в контексте – все «ранние» микроконтроллеры Intel никакого отношения к архитектуре x86 не имели и были на неё непохожи настолько, насколько это возможно.

И вот, в начале ноября 2015 года Intel выводит на рынок нечто совершенно необычное – пока небольшое семейство микроконтроллеров с процессорами, исполняющими набор команд архитектуры x86 (IA-32), Intel Quark D1000 и D2000. И, параллельно с ними, ОС реального времени Wind River Rocket, а также сервис, обеспечивающий разработку ПО в этой ОС для нескольких целевых платформ.

Начнём с уже доступного (то есть, серийного) Intel Quark D1000. Это крохотная микросхема во всего 40-выводном корпусе, «чистый микроконтроллер», а не традиционный для Intel «процессор в embedded исполнении», без встроенных средств и шин подключения внешней памяти.

Несмотря на систему команд, являющуюся подмножеством IA-32 (и соответствующую ей регистровую структуру), процессор этого контроллера – гарвардской архитектуры, с раздельными адресными пространствами для памяти кода программы и для памяти данных. Шина доступа к памяти команд – 128-битовая, к памяти данных – 32-битовая.

О суперскалярности в документации ничего не сказано (соответственно, её нет), назван только пятиступенчатый конвейер (совсем точно - single-issue, in-order) с BTFNT предсказанием ветвлений (Backward Taken Forward Not Taken, расписывать это не буду, привожу сугубо для интересующихся, материалов более чем достаточно).

Команды умножения и деления реализованы аппаратно.

О том, что процессорное ядро создавалось для приложений реального времени и для микроконтроллеров именно, говорит, например, заявленная 21-тактовая латентность обработки прерываний (что для процессора с высокоуровневой CISC системой команд – не такая простая задача).

В общем, это абсолютно «выпадающее» из всего, что делала Intel, процессорное ядро, о чём чёрным по белому сказано в документации, в разделе «Совместимость»:

Intel вернулась на микроконтроллерный рынок

Трудно в это поверить, но, если бы не IA-32 частичная совместимость, процессорное ядро было бы очень похоже на… MIPS32. Ещё забавнее в этом микроконтроллере наличие системообразующего «фрагмента» из мира ARM – шин семейства AMBA (опять же, для интересующихся - AHB-Lite и APB).

В общем, в Quark D1000 Intel показала миру совершенно новое процессорное ядро. И новую системную архитектуру на уровне кристалла. Это факт.

В остальном Quark D1000 является «вполне себе микроконтроллером», с де-факто обязательными многофункциональными физическими выводами, периферийными устройствами и традиционными для микроконтроллеров расширенными режимами энергосбережения, гибким управлением тактовой частотой и быстрым (2 микросекунды при максимальной тактовой частоте) выходом из режима «останова» при любом немаскируемом прерывании (хоть в документации прямым текстом не сказано о «полностью статическом дизайне» процессорного ядра, в состоянии «останова», Halt, генератор тактовых частот «для всего» останавливается).

Аналоговая подсистема содержит шесть микропотребляющих компараторов (аналоговые функциональные узлы, выполняющие сравнение напряжений) и 12-битовый аналогово-цифровой преобразователь (с автоматической калибровкой, возможностью коммутации сигналов от 19 физических выводов и частотой выборки 2,4 мегасемпла), способный работать самостоятельно, при «засыпании» остальных подсистем, и «будить» их при готовности результата измерений. К интересным особенностям АЦП относятся задаваемая программистом таблица «опроса физических выводов» и FIFO буфер для результатов 32х измерений.

В отличие от многих микроконтроллеров с малым числом выводов, в D1000 используется полноценная отладочная JTAG-подсистема (задействующая 6 выводов, на один больше, чем установлено стандартом JTAG).

Специфическими и небесполезным в D1000 являются два встроенных регулятора напряжения, один – линейный, второй – DC/DC преобразователь с током нагрузки до 50 миллиампер, предназначенные для создания систем питания дополнительных устройств.

Отдельного описания требует подсистема памяти (или, точнее, памятей), она отличается от большинства аналогов. D1000 имеет две физических области флэш-памяти размерами 32 KB (речь идёт о килобайтах) и 4 KB. Первая предназначена для хранения исполняемого кода, вторая – для данных. Эти области памяти доступны с помощью разных шин, 128-битовой (память кода) и 128-битовой и 32-битовой (память данных). Флэш-память не отличается высокой скоростью, при максимальной тактовой частоте 33 MHz доступ к ней требует двух циклов ожидания процессора (на частотах ниже 6,7 MHz ожидания вообще не требуется). У D1000 есть ещё третья энергонезависимая память – системное ПЗУ (постоянное запоминающее устройство), где хранятся коды загрузчика и, что интересно, сервисные подпрограммы, в списке которых – AES шифрование и дешифрование 128-битовых блоков данных и операции с ключами AES (при максимальной тактовой частоте требующая всего 34 микросекунд процессорного времени), модификация содержимого памяти программ (то есть, D1000 позволяет программно обновлять свою «прошивку»). Оперативная память имеет объём 8 KB, все регистры всех периферийных устройств отображены в единое адресное пространство оперативной памяти.

Ключевые для любого микроконтроллера подсистемы «измерения времени» образованы двумя полностью независимыми 32-битовыми таймерами и отдельными часами реального времени (RTC), также основанными на 32-битовом отдельном таймере.

Порты ввода-вывода вполне традиционны, и «умеют» то, что обычно нужно в микроконтроллерных применениях (например, «пробуждать» процессор при изменениях уровней напряжений на физических выводах, инициировав соответствующее прерывание).

Все типовые и нужные последовательные интерфейсы (I2C, SPI, UART) присутствуют, со всей требуемой аппаратной поддержкой.

Из этого краткого описания можно сделать один вывод – на рынке микроконтроллеров появился новый игрок, с неожиданной и нетиповой стратегией. CISC-микроконтроллер, конечно, не такая большая редкость, как кажется на первый взгляд. Но 32-битовый x86-совместимый – это нечто совершенно новое. Очевидно, что в Intel сделали ставку на готовность программистов принять такую конструкцию (ни для кого не тайна, что x86 процессоры являются де-факто стандартом в системе образования, например) и на доступность практически любых средств разработки для них (а также опыта их создания). Шаг более чем логичный. Принципиально новая архитектура (которую в Intel без всякого сомнения способны разработать и реализовать очень быстро, если судить по ревизиям документации D1000, от начального её релиза до появления продукта прошло менее шести месяцев), при любых её достоинствах потребовала бы создания целой огромной инфраструктуры, которая в мире x86 существует не одно десятилетие.

У всех производителей 32-битовых микроконтроллеров за один день появился очень опасный конкурент. К тому же, вероятнее всего, Intel не пойдёт по пути открытия и лицензирования IP (модель ARM) – производственные мощности корпорации колоссальны, и если в корпорации при всех особенностях её фабов нашли способ снизить стоимость производства необъятного количества дешёвых микросхем (пока известно, что D1000 будет стоить в пределах $2 в партиях), то никакой особой нужды в повторении бизнес-модели ARM у Intel нет.

Но это ещё не всё. Входящая в Intel Wind River подкрепила вывод новых микроконтроллеров на рынок новой микроядерной ОС реального времени и средствами разработки для неё. И здесь наблюдается «отступление от канонов». ОС Wind River Rocket объявлена бесплатной (и без роялти), с интересно открытыми исходными текстами (в которых можно рассмотреть, что целевой платформой x86 область применения RTOS не ограничивается, в дереве исходных текстов есть платформенно-зависимые каталоги и для ARM, например). В двух словах описать модель поддержки разработки ПО для ОС Rocket можно так – сервисы Wind River предлагают полноценную онлайн-IDE (очень приятную, надо сказать), симуляторы, кросс-компиляторы, отладчики, в общем, всё, что необходимо, сопровождают это развитой системой подсказки по API ОС, и вот через эту полную web-среду можно «добраться» до исходных текстов ОС. Необычная и интересная модель, к которой многие разработчики RTOS шли десятилетиями. Большего пока ничего не скажу, чтобы разобраться со всем этим надо прилично времени.

В качестве заключения. В режиме почти полной секретности (хотя что-то подобное я предполагал, потому и совсем недавно задавал весьма немаленькому в Intel человеку «наводящие провокационные вопросы») в Intel произошла большая трансформация. Проекты, стоящие за новыми микроконтроллерами и их программной поддержкой – очень неигрушечного масштаба. Они реализованы явно быстро и выведены на рынок в режиме «полной готовности» - вот совершенно новый серийный микроконтроллер с новым процессорным ядром (и это вовсе не тот Quark, с которого вроде как всё начиналось), вот для него совершенно новая RTOS, вот для всего этого совершенно новая IDE и все средства разработки. Впечатляюще.

Тема x86-совместимых микроконтроллеров и Rocket RTOS заслуживает продолжения, потому что это действительно очень интересно. Время покажет, насколько контроллеры семейства Quark будут «доставабельны» (критический показатель, никакой симулятор не заменяет реальное «железо»), особенно с учётом специфики нашего рынка компонентов. Но что-то мне подсказывает, что такие большие и согласованные проекты реализуются не «на один день», они надолго. Так что hype из-за Internet of Things хоть и hype, но на деле, всё-таки, нечто куда большее.

Откланиваюсь.

 

+77
голосов

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT