Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

5 ноябрь, 2013 - 18:52Андрей Зубинский

Всё было тихо-тихо, мило-мило, игрались в мобильные платформочки, собирали сливки потребительского рынка, и тут что-то случилось. И вот уже без всяких изображений аналитических потуг и бросания (на камеру) вдумчивого взгляда «эксперта» в будущее (у всех экспертов – непременно вдумчивые взгляды) можно смело говорить – привычный ландшафт мира Wintel всерьёз затянуло дымом. Что на самом деле происходит на фронтах – то неведомо, корреспонденты там пропадают, почта оттуда не доходит. И тут (то есть, – там, конечно) с 29 по 31 октября в Санта Кларе прошла конференция ARM TechCon 2013. Где было много интересного. Кое-что из-за дымов пробралось в наш специфический мир. Я это кое-что собрал в кучку, обдумал хорошенько, и вот делюсь результатами.

Так что, – здравствуйте.

Начнём с анонсов Calxeda – такого себе скромного на фоне Голиафов IT fabless-производителя масштаба Давида. И, похоже, такого же опасного.

Условно британской (по расположению штаб-квартиры) Calxeda всего ничего годков – компания основана в 2008-м. За прошедшие неполные пять лет без всяких государственных поддержек, без правительственных идей «прорыва в будущее» и выбивания площадей и госфинансирований в патриотических карго-макетах «Силиконовой долины» (обожаю это словосочетание), Calxeda как-то не особо заметно одно время «нашумела», потом вроде совсем ушла в тень. И там точно так же тихо и незаметно добралась до вполне осязаемых показателей – в 2013 году неожиданно оказалось, что на рынке серверов Calxeda уже более чем самостоятельное имя. Особенно после того, как признанные монстры массового и commodity, и вообще производства (HP, Gigabyte, Foxconn, Aaeon etc), все как один начали выпускать сервера и серверные компоненты, основанные на системах на чипе (SoC) от Calxeda.

Для иллюстрации - сервер как сервер, но на SoC Calxeda и производства Gigabyte:

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых


А этот аппарат (Poseidon) на основе той же SoC уже от Aaeon:

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

Ну и всем известная Foxconn, конечно:

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

 

Итак, на ARM TechCon 2013 Calxeda анонсировала новую серверную систему на чипе - ECX-2000. Весьма забавную конструкцию, надо сказать. Четыре ядра ARM Cortex A15, аппаратная поддержка виртуализации (причём даже указано каких именно гипервизоров – KVM и Xen), коммутатор Fleet Fabric (чуть позже о нём пару слов скажу), улучшенная по сравнению с предшественниками энергоэффективность и, наконец, то, что было существенным сдерживающим фактором в мире «серверных ARM» –   увеличенный максимальный объём оперативной памяти.

Начнём с последнего. Потому что это самое интересное. Казалось бы, ARM Cortex A15 создавались именно для устранения противного барьера в 4 GB RAM – процессоры этого семейства допускают расширенную 40-битовую адресацию физической памяти (естественно, с 32-битовым ограничением адресного пространства одного процесса). И выбранное разработчиками Calxeda (которых заподозрить в непрофессионализме может только полностью слабоумный профан) решение заставляет задуматься. Дело в том, что «выдавливать» максимум из возможностей ядра разработчики не решились и ограничили предел адресуемой физической памяти шестнадцатью гигабайтами, грубо говоря – по отдельному максимально допустимому физическому 4 GB «ломтю» на каждое ядро. В итоге получается и дёшево (ну что такое в 2013 году 16 GB, хоть бы и ECC?), и сердито, и совершенно логично. Тем более логично, что управление расширенной памятью в Cortex A15 «увязано» с механизмами аппаратной поддержки виртуализации (в A15 используется двухуровневая адресация страниц виртуальной памяти, в которой условно «верхний уровень» обслуживает таблицы страниц гостевых ОС и исполняющихся в них приложений, причём страницы памяти в этих таблицах – все ещё виртуальны, а «нижний», или в терминах A15 «промежуточный физический» – уже прерогатива гипервизора, его таблицы содержат отображения виртуальных страниц на физические).

Главное же характерно серверное в ECX-2000 – коммутатор Fleet Fabric. Это детище самой Calxeda, но не выдуманное с нуля – межсистемные соединения (линки) Fleet Fabric основаны на промышленном стандарте XAUI, что означает в том числе поддержку обмена как на основе низкоуровневых протоколов, так и TCP/IP. Самое же интересное – показатель задержек в Fleet Fabric. Потому что в мультипроцессорных машинах никто ещё не отменил действенности правила Амдала, и задержки остаются ключевым показателем и ограничителем возможностей многопроцессорных архитектур. Разработчики Fleet Fabric заявляют задержку 0,2 микросекунды на каждый хоп. Это в принципе полностью тождественно возможностям популярной (и все равно очень недешевой) коммутирующей технологии связи нод кластеров InfiniBand.  По пропускной способности (10 Gbps) Fleet Fabric проигрывает InfiniBand, причём вполне возможно, что этот проигрыш заложен умышленно на уровне требований, потому что процессорные ядра системы работают на не то чтобы чудовищных тактовых частотах (от 1,1 до 1,8 GHz). А, несмотря на все совершенства архитектур, тактовая частота всё равно остаётся одним из индикаторов производительности, и перегружать процессорные ядра несбалансированным с их возможностями потоками данных от коммутатора – это не есть правильно и разумно. Я как-то так думаю. Fleet Fabric позволяет соединять в древовидные структуры до 4096 нод кластера с оптимизацией топологии коммутаторов, а также обеспечивает сохранение порядка сообщений (что, само собой, существенно разгружает процессорные ядра и системное ПО). Желающие погрузиться глубже могут использовать патент Calxeda US 2012/0096211 (он фактически почти что статья), а также вообще тематическую часть патентного портфеля этой компании.

Ещё одно крайне забавное в ECX-2000 (и, наверное, отражающее тенденцию в ARM-мире) – отдельная интегрированная на том же кристалле двухядерная подсистема, предназначенная для в том числе и управления энергопотреблением.

Вообще, широкий диапазон масштабов доступных лицензиатам ARM архитектур неизбежно должен был привести к появлению таких кентавров, в которых мощный вычислитель сосуществует на одном кристалле с мелким и скромным (ядро ARM Cortex-M0 при показателях производительности на MHz тактовой частоты на уровне процессоров 486DX2 требует для реализации всего от 17 до 25 тысяч логических вентилей, что есть цифры крайне скромные), ориентированным на решение специфических задач.

В качестве примера здесь уместно использовать ещё одно явление из совсем другой части ARM-мира – также буквально на днях анонсированное NXP фантастическое по совсем недавним меркам микроконтроллерное семейство LPC4300, представители которого содержат на одном кристалле мощное (по микроконтроллерным меркам) процессорное ядро Cortex-M4 с его механизмами защиты областей памяти, сопроцессором плавающей точки и прочими удовольствиями, и «слабенькое» процессорное ядро Cortex-M0 с собственной оперативной памятью, предназначенное для решения задач ввода-вывода (очень правильная и разумная архитектура, в которой постоянные не требующие больших ресурсов задачи реального времени возложены на слабый малопотребляющий процессор, а для реализация ресурсоёмких высокоуровневых протоколов, например, выделено соответствующее процессорное ядро). Всё это вместе с очень развитой (даже можно сказать уникальной) периферией подключено к коммутирующей шине AHB (в ARM любят путаницу в названиях, AHB - это часть спецификаций AMBA), очень развитой и признанной уже за пределами ARM-мира (например, в системах на чипе Intel). И, что совсем уж удивительно, всё это космическое совершенно удовольствие стоит меньше $4 (!) в партиях. И, похоже, что бороться с таким соотношением функциональной насыщенности, параметров и цены на рынке сегодня просто некому.

Этот факт появления ARM-кентавров мне кажется показательным. Потому что в ARM-мире грань между «встраиваемыми» и «большими» системами весьма условна, и ряд решений из одной неясно очерченной области неизбежно проникает в другую (вы увидите это воочию чуть дальше, в примере использования SoC от Texas Instruments).

Теперь вернёмся к «серверной тематике», к показанному «живьём» на конференции компанией Cavium 64-битовому процессору Thunder семейства ARMv8. Машина с этим процессором (точнее, с одним из семейства Thunder) «крутила» ОС Ubuntu Server 13.10, и вообще активность Canonical во взаимодействии с производителями «ARM-железа» (с той же уже упомянутой Calxeda) заставляет пристально присмотреться к этому тандему. Тем более интересным выглядит агрессивное взаимодействие Canonical (и Red Hat, конечно же) и ARM-производителей, когда высокоуровневое «железо» (собственно 64-битовый сервер) показывает не компания «второго эшелона», а Dell. Которая остаётся Dell даже несмотря на. Dell использует 8-ядерные «серверы на чипе» (новая аббревиатура – SCS, Serever on a Chip Solution) X-Gene компании Applied Micro. Я это к тому, что очень активно Canonical и Red Hat, а также фирмы, специализирующиеся на аппаратных средствах ARM-архитектуры, проводят взаимные сертификации – процессоры проверяются на совместимость с ОС, ОС гарантирует сертификацией совместимость с аппаратными средствами. Это уже совсем другой период развития ARM-серверостроения, очень непохожий на предшествующие, когда было много PR-слов, но дальше дело шло со скрипом. И пока что в уже оформившемся ARM-сегменте серверного мира никаких альтернатив ОС Linux не наблюдается. Так что торжествуйте, «линуксоиды».

Ну и, наконец, немного о главном участнике конференции, конечно же, о Hewlett Packard. Ключевое выступление представителя HP длилось целых 50 минут, причём все 50 минут «вытащил» на себе лично господин Мартин Финк, человек далеко не вторых ролей в компании, CTO и директор. То есть, если судить по времени выступления, это было Важное Выступление. Потому что (и уже не «по-видимому», а весьма уверенно) продвижение платформы Moonshot для HP очень важно. Сейчас входящие в платформу Moonshot «серверные картриджи» основываются на разных высокоуровневых представителях «серверного» и «не совсем серверного» ARM-мира – и на SoC Calxeda первого поколения (EXC-1000), и на 8-ядерных 64-битовых XGene, и на SoC от Texas Instruments Keystone II (Cortex A15 + цифровые сигнальные процессоры). Соответственно, с помощью набора таких «картриджей» можно в одном корпусе реализовать многопроцессорную ноду специализированного кластера. Например, ориентированного на серьёзную аппаратную поддержку цифровой обработки сигналов и сетевых пакетных сетевых операций (советую взглянуть на спецификации Keystone II – совершенно непривычная вроде как SoC для серверных приложений).

Сами идеи платформы Moonshot и «серверных картриджей» в частности мне лично кажутся наконец-то Событием в серверном мире. Давно ничего яркого в нём не наблюдалось. И вот, наконец, появилась такая замечательная конструкция – и нейтральная к используемым «картриджам», и с разнообразным предложением самих «картриджей», и, наконец, допускающая очень высокую степень «упаковки» - 45 фактически нод в корпусе 4,3U. Добрые люди в этих ваших интернетах © провели вивисекцию «картриджа» Moonshot (использующего Intel Atom), и мы можем разглядеть это произведение инженерного искусства, это очень красиво сделано (оригиналы доступны по ссылке):

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

Битва за ARMоцентрический мир, или покупайте газеты – в новостях много убитых и раненых

Платформа Moonshot начиналась с Intel Atom «картриджей», сейчас она разрастается расширением спектра «картриджей», адекватных (на уровне SoC и «внутрикартриджной» архитектуры) специфическим задачам. Очень красивая разработка по моему скромному мнению, давно таких красивых в области фактически commodity hardware не было.

Ну и теперь пара слов о программной составляющей. Когда говорят об ARM-мире, всё время её упускают из вида. А тут как раз происходят крайне интересные явления и задействованы очень серьёзные силы. Во-первых, вся тяжёлая артиллерия Oracle всеми Java-стволами бойко «обрабатывает» практически все площади в границах ARM-мира. Internet of Things (IoT)? Oracle адаптировала Java ME Embedded для семейства контроллеров Cortex-M. Надо мощнее? Есть Java SE Embedded – уже для встраиваемых ARM-процессоров и SoC. Надо совсем «взрослое»? JDK для серверных ARM тоже готов. Причём это только начало. На конференции было объявлено сотрудничество Oracle и непосредственно ARM в разработке уровней сопряжения Embedded Java и Java SE с IoT стеком, полученным ARM в результате приобретения компании Sensinode. Я просто складываю факты - четырёхдолларовый вычислитель NXP с фантастической архитектурой и насыщенностью, IoT стек Sensinode, Embedded Java, – и вижу в них очень серьёзную претензию на упорядочение того, что сейчас представляет собой удивительно разношёрстное. Да только объявленный на конференции находящимся уже в стадии разработки уровень абстракции аппаратных средств (HAL) по спецификациям mbed, обеспечивающий работу Java ME Embedded фактически поверх Cortex-M «железа», это, пожалуй, уже Событие.

Вот такая батальная картина выстраивается, которую даже не хочется усугублять описанием очевидного положения ARM в «мобильном потребительском мире».

Совершенно удивительная картина. Для заскорузлого мышления вообще невероятная. Крохотная компания. ARM ведь реально крохотная, ну, две тысячи человек. По сравнению с настоящими корпорациями с их сотнями тысяч, где разом можно уволить тысяч тридцать – уровень большого отдела. Никаких своих производственных мощностей. Начинала как локальный производитель компьютеров, Acorn. В далёком 1990-м стала совместным предприятием… с Apple (да-да-да), от которой потом отмежевалась. Никогда не «ворочала миллиардами», чистый годовой доход не мал, конечно, для масштабов, но и не заоблачен (менее 161 миллиона фунтов за прошлый год). Модель бизнеса плохо укладывается в стереотипы – ARM ведь фактически живёт за счёт лицензирования open hardware. А слово «open» до сих пор у IT-традиционалистов вызывает отторжение. И вот эта небольшая компания сейчас по-настоящему трансформирует планетарного масштаба рынок и открывает возможности для неисчислимого количества производителей самых разных масштабов и специализаций.

Невероятной истории она, всё-таки. Особенно для тех, кому не хватает «позитива» (хоть я и не переношу этого слова).

Вот такие новости из ARM-мира. Который, похоже, расширяется с неожиданной для всех скоростью.

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