`

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

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

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

Best CIO

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

Человек года

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

Продукт года

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

 

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

Странный кварк от Intel

+1010
голосов

После не особенно громкой "раскрутки" в Intel наконец сделали доступным datasheet системы на чипе (SoC)  Quark X1000. И появилась возможность заглянуть в детали овеществления видения Intel своего места в будущем расцвете Internet of Things (IoT). Хорошая возможность, тем более, что детали, можно сказать, забавные. И даже местами задающие немало вопросов.

Чтобы не говорить лишнего - вот копия грубой структурной схемы Quark X1000 из документации, я к ней добавил окраску, выделив характерные узлы:

Странный кварк от Intel

Голубым цветом выделено ядро почти микроконтроллера. "Почти" потому что 512KB быстрой, да ещё и c коррекцией ошибок (ECC), вроде как статической памяти, - очень немаленький объём по микроконтроллерным меркам, я бы даже сказал, что для 2013 года это своеобразный рекорд (если говорить о полноценной статической памяти). Который достигнут за счёт компромисса - встроенной долговременной энергонезависимой памяти в Quark нет. В принципе, логика конструкторов (да и, наверное, идеологов проекта) здесь понятна - оперативная память в мире встраиваемых вычислителей - самый дорогой ресурс. А вот флеш-память - далеко не такой дорогой. Вот её и вынесли "за корпус", оставив возможность использования двух разных типов внешней флеш-памяти - системной (например, для загрузчика) и SD карт. Что же касается встроенной eSRAM (так она названа в документе) - она весьма забавна. Ее можно логически разбивать на блоки по 4KB (аппаратно) или представлять одним "ломтём" в 512KB, при этом аппаратные средства позволяют что блоками, что "ломтём" "перекрывать" в адресном пространстве внешней DRAM требуемые  области (при этом ячейки DRAM в перекрытых  диапазонах адресов не могут использоваться системой). Сделано это для того, чтобы при входе системы в самый востребованный режим "сна" с сохранением состояния в ОЗУ быстро автоматически "сбросить" содержимое SRAM в перекрытые ее адресами области внешней DRAM. А при выходе из такого режима "сна", соотвтественно, восстановить содержимое SRAM. В таком "сне" в системе на чипе отключено практически всё, что может быть отключено, кроме часов реального времени, минимальной логики управления состояниями и крохотного кусочка контроллера DRAM, который потихоньку регенерирует внешнюю память.

В очередной раз прочитав разделы datasheet, посвященные взаимодействию SRAM, DRAM и режимов "сна" Quark, честно говоря, я впал в некоторую задумчивость. В ней и пребываю. Дело в том, что в явном виде мне не удалось найти описание такого режима работы Quark, при котором не требуется внешняя DRAM и можно обойтись только имеющейся на кристалле SRAM. 512KB - далеко не маленький объём памяти, вообще-то. Вполне достаточный для работы, например, какого-нибудь весьма нетривиального (в смысле сложности ПО) мелкого шлюза, как раз ориентированного на нужды IoT. Но, увы. Эти 512KB вроде как и есть, но они - в адресном пространстве внешней памяти, которая вроде как необходима для работы системы на чипе. При этом они, конечно, и не кеш-память.

Очень странное решение. Если судить на основе канонов, принятых в мире встраиваемых систем. По логике, если используется действительно статическая память, то её потребление при отсутствии тактирования совершенно незначительно, а в режиме полноценной работы быстродействие великолепно - в этом её прелесть, в этом её высокая стоимость и потому она занимает много места на кристалле. И если это настоящая статическая память, то выгружать её при "засыпании" системы в DRAM, требующую несоизмеримо большей энергии на регенерацию, чем нужно для подпитки SRAM в режиме хранения - это, простите, кощунство (конечно, если система на чипе ориентирована на аппаратную поддержку компактных ОС реального времени). Можно ещё понять выгрузку критического содержимого DRAM в SRAM. Но если речь идёт о системах для IoT, в которых энергопотребление - ключевой показатель, то, сами понимаете, выглядит такое решение странно.

Теперь посмотрим на красный блок. Это кусок... ARM. Да, это фрагмент ARM-архитектуры, использующий из ARM-мира шину AMBA (Advanced Microcontroller Bus Architecture). Об этой внезапности - чуть позже, потому что пора назвать и зелёный фрагмент - это  "унаследованный мост" (legacy bridge). Оба фрагмента - по сути соединённые разными шинами разные наборы контроллеров ввода-вывода. Как бы разделяет два этих мира, ARM и унаследованного от x86, и вовсе "десктопная" шина PCI Express.

И вот выбор шин в этой системе очень интересен. На "чуждую" x86 шину из ARM-мира "посажены" по сути ключевые узлы - USB и Ethernet контроллеры, здесь же контроллер главной внешней долговременной памяти (на SD карточках), здесь же современный контроллер последовательных каналов (UART). Очень интересное решение. Тем более интересное, что в унаследованной части есть некоторое дублирование. Что бы это могло значить? Да, AMBA - хорошая шина, очень грамотная, но она не из мира x86 совсем. И в честь чего ей такое внимание в этой конструкции? Могу только предположить, что это - дань популярности ARM в мире встраиваемых систем. Скорее всего, при таком подходе разработчикам специфических для embedded мира библиотек и фреймворков, которые в количествах наваяли для ARM-архитектур, потребуется минимальная адаптация низкоуровневого кода. И это очень умный ход. Не проверял, но и не удивлюсь, если сами контроллеры во всём красном блоке будут очень похожи, с точность до регистров, на свои аналоги в ARM-мире. Потому что это логично.

 

Теперь о процессоре всего этого удовольствия. Процессор Pentium класса, с максимальной тактовой частотой 400MHz, аппаратные средства позволяют для понижения энергопотребления снижать тактовую частоту в 4 раза, но не более, дальше - только полная остановка системы на чипе. Кэш-память 16KB, пятиступенчатый конвейер, интегрированный FPU. В общем, это изрядно сокращённый Pentium II 400 MHz из нашего бурного прошлого :) (изрядно хотя бы глубиной конвейера, которая у "настольных" Pentium была 12 - 25, в зависимости от типов исполняемых команд и данных). Еще проще говоря - в 2013 году ни в какой смартфон или планшет такое никто не встроит, так что всякие домыслы о не-IoT применениях этой системы на чипе лучше сразу отбросить.

После такого небольшого экскурса (и копошения в документации) у меня самого остаётся один вопрос - "что это было?". Потому что Quark - это действительно очень странная система на чипе. Можно смело сказать, что зверинец всякого вычурного и специфического, что в embedded-мире никого особо не пугает, пополнился достойным экземпляром. Разгадать замысел Intel - уже даже не достойная интеллектуальная игра, а получение ответа на вопрос - где, зачем и кому такая система на чипе может понадобиться?

Очевидно, что в сонме устройств, которые принято называть "умной пылью" (smart dust) места этому вычислителю нет. Слишком он прожорлив во всех смыслах (большой кристалл, большое по меркам "умной пыли" энергопотребление, потребность в двух типах внешней памяти). Слишком не оснащён тем, что реально нужно малым вычислителям для IoT (нет никаких аналоговых подсистем, например, и вообще ничего характерного для прикладной области, нет). Да и сам по себе далеко не дёшев, а для "умной пыли" уже 50-центовые микроконтроллеры считаются роскошью, уже планка опущена до уровня 43 цента (за очень малопотребляющий микроконтроллер ARM Cortex M0, например, - Zero Gecko от компании SiLabs).

И вообще, с никакими микроконтроллерами эта система на чипе не воюет, какие бы ни были микроконтроллеры. Тут уже тонкости, связанные с решением задач реального времени, не буду в них вдаваться, просто скажу очевидное - никому в голову не придёт заменить микроконтроллер Quark'ом.

Как основа построения недорогих компактных энергоэффективных шлюзов? В этой области Quark выступает конкуретнтом множества ARM-основанных систем на чипе, с широчайшим диапазоном тактовых частот. Кроме того, в эту область вторгаются микроконтроллеры новых поколений, с объёмами оперативной памяти в несколько сотен килобайтов. В общем, в сегменте совсем маленьких и простых шлюзов Quark уступает микроконтроллерам, в более высоких сегментах - ARM SOC'ам. Безоговорочно, причём.

Резко и явно ещё задолго до анонса возникшая вокруг Quark дружба между Intel и WindRiver (признанным мировым лидером в системах реального времени), может быть, что-то подсказывает. Вполне возможно, что Quark нацелен на рынок одноплатных свободно программируемых компьютеров, где сейчас полная неразбериха (вполне, впрочем, пока устраивающая всех) - эти машинки для "невидимых применений" выпускаются промышленно на основе самых разных архитектур (от 8-ми до 64-битовых, с процессорами от легендарной Zilog до не менее легендарной MIPS), и все находят своего потребителя. Вполне возможно, конечно.

Но есть ещё один вариант. Тоже вполне логичный. Возможно, в Intel очень скептично относятся к перспективам IoT. Вполне возможно, их аналитики не видят чётких перспектив, потому и Quark стал просто сравнительно малозатратным ответом на рыночное волнение - дескать, вот оно есть, для IoT, а там будет тот IoT, не будет - к тому времени разберёмся, если будет - то апетиты вырастут, и тут мы им и... Тем более, что фабы Intel не ориентированы на выпуск мелких копеечных микросхем.

Учитывая всё это очевидное, к вовсе эзотерике можно отнести пусть недорогую по меркам Intel, но всё же затратную программу бесплатных поставок 50 тысяч одноплатных машинок Galileo на основе Quark в университеты и загадочную дружбу с... Arduino, производителем известных микроконтроллерных игрушек для домашнего творчества. Из этого загадочного явления можно сделать разве что один здравый вывод - как в своё время знаменитая RadioShack рассмотрела в потенциале склонной мастерить любопытной публики основу новых поколений инженеров и специалистов, так и успех Arduino убеждает в том же, люди-то не меняются, вопреки мрачным оценкам действительности.

В общем, мастерски задали в Intel загадку. Даже можно сказать, головоломку.

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

+1010
голосов

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

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

Только подумал, что можно сделать маленький комп общего назначения, как через полчаса нашел в инете это Halo Android Mini Quad Core PC TV - уже сделано на Арм+Андроид

 
 
IDC
Реклама

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