Серверы ARM: архитектура мобильных процессоров для центров обработки данных?
Опубликовано: 2022-03-11Я старею. В мое время, если вам нужна была первоклассная производительность ЦП, вам нужно было использовать высокопроизводительный чип x86, или, если у вас были более глубокие карманы, вы могли получить что-то экзотическое, например, систему PowerPC. Зависимость отрасли от процессоров x86, похоже, не снижается, а увеличивается.
Десять лет назад Apple присоединилась к клубу x86, и это побудило многих обозревателей сделать вывод, что эра процессоров, отличных от x86, на массовом рынке закончилась. Всего несколько лет спустя им пришлось смириться со своими словами, и снова к этому причастна Apple. Появляются серверы ARM, и они могут оживить индустрию серверов.
Переосмысление дизайна процессора
По мере того, как парадигма менялась, и массовые пользователи стали использовать смартфоны и планшеты, быстро стало очевидно, что чипы x86 от Intel, AMD и VIA просто не справляются с этой задачей. Хотя x86 был самым многочисленным набором инструкций на планете, он не был хорошим выбором для мобильных устройств по ряду причин. Фактически, набор инструкций Intel по- прежнему не является популярным выбором для мобильных процессоров, хотя ситуация начинает меняться благодаря техническому руководителю литейного производства Intel. В любом случае, когда дело доходит до этого сегмента рынка, x86 не так эффективен, как другие архитектуры ЦП, а именно процессоры, основанные на наборах инструкций ARM 32-бит ARMv7 и 64-бит ARMv8.
За последнее десятилетие и особенно за последние пять лет процессоры ARM стали доминировать на рынке смартфонов и планшетов, и у них было много преимуществ. Они предлагали высокую производительность на ватт, они были дешевы в разработке, производстве и развертывании. Крупные поставщики могут покупать необходимые строительные блоки и разрабатывать собственные процессоры на основе ARMv7 или ARMv8, добавляя другие компоненты в соответствии со своими потребностями (высокоскоростные модемы и различные графические процессоры, чтобы назвать пару).
Это привело к тому, что некоторые разработчики чипов выбрали несколько иной подход и разработали свои собственные ядра ЦП. Qualcomm и Apple лидировали, обе компании стали крупными игроками на рынке мобильных систем-на-чипе (SoC), и их разработка сложных специализированных ядер сыграла важную роль в их успехе. Тем не менее, специальные ядра ARM по-прежнему использовались в высокопроизводительных процессорах, в то время как все остальные сегменты рынка были покрыты стандартными ядрами ЦП ARM Cortex, такими как 32-разрядные ядра Cortex-A8, A9, A7 и A15, за которыми последовали 64-разрядные. таких как Cortex-A53, A57 и новое ядро A72, поставки которого вот-вот начнутся.
Другой предпосылкой успеха ARM был провал Microsoft.
Windows работала только на процессорах x86, поэтому, если бы Microsoft закрепилась на рынке мобильных устройств, чаша весов склонилась бы в пользу Intel. Однако к концу прошлого десятилетия стало очевидно, что Редмонд пропустил мяч и уступил этот прибыльный рынок Google и Apple. Говоря о шарах, давний генеральный директор Microsoft Стив Балмер покинул компанию пару лет назад, признав, что он и его команда не смогли осознать потенциал смартфонов и планшетов. В любом случае, это больше не проблема Балмера: сейчас у него на уме другие мячи, точнее, баскетбольные мячи.
Однако мобильные устройства — не первый и не единственный сегмент рынка, в котором Microsoft столкнулась с грандиозным провалом. Другой рынок серверов. На первый взгляд, смартфоны и центры обработки данных не имеют много общего, но с точки зрения технологий и бизнеса они частично совпадают.
Независимо от того, разрабатываете ли вы смартфон или сервер, вам необходимо сделать акцент на схожих аспектах вашей аппаратной платформы, таких как энергоэффективность, хорошие тепловые характеристики, производительность в расчете на доллар и т. д. Самое главное, вам действительно не нужен процессор на базе x86 для смартфонов и многих типов серверов. Благодаря неудачам Microsoft в этих сегментах рынка не доминирует ни одна разновидность Windows. Вместо этого они полагаются на операционные системы на базе UNIX : Android, iOS и различные дистрибутивы Linux.
Microsoft также попыталась использовать потенциал процессоров ARM, поэтому она попыталась разработать версию Windows, которая работала бы на оборудовании ARM, что удобно подводит меня к следующему провалу Microsoft: Windows RT. В конце концов Microsoft отключила Windows RT, или «Windows на ARM», как ее первоначально называли. Последние планшеты Surface от Microsoft используют процессоры x64 и стандартную Windows 10. Линейка смартфонов Microsoft Lumia (урожденная Nokia Lumia) по-прежнему использует процессоры ARM от компании Qualcomm, но Windows Phone почти мертва как основная платформа для смартфонов.
Серверы не должны стоить руки и ноги
Прямо сейчас у нас есть пара миллиардов смартфонов и планшетов, и подавляющее большинство из них основано на процессорах ARM. Однако чипы ARM не проникают в другие сегменты рынка. Существует лишь несколько крупномасштабных вычислительных платформ на базе ARM, которые не попадают в категорию смартфонов и планшетов. Google Chromebook, пожалуй, самый известный пример. Однако чипы ARM используются в куче других устройств: роутерах, телевизионных приставках и смарт-телевизорах, смарт-часах, некоторых игровых устройствах, автомобильных информационно-развлекательных системах и так далее.
А как насчет серверов ARM?
Вот где это становится сложно. Я слышал разговоры о серверах ARM с 2010 года, но прогресс был медленным и ограниченным. Доля рынка ARM в сегменте серверов остается незначительной, а в экосистеме по-прежнему доминируют компоненты x86 Xeon и Opteron от Intel и AMD соответственно. Поскольку у AMD большие проблемы с ЦП, Intel удалось увеличить свою долю рынка в последние годы.
Но почему серверы ARM с самого начала казались хорошей идеей?
Деньги. Я мог бы попытаться перечислить все хитроумные моменты, которые делают ARM жизнеспособной альтернативой x86 на рынке серверов, но, в конце концов, все дело в деньгах, поэтому я попытаюсь объяснить это в нескольких строках.
- Цена/производительность
- Рабочие нагрузки центров обработки данных развиваются и меняются
- Возможность получения процессоров от разных поставщиков
- Использование специально разработанных чипов для различных ниш
- Чипы ARM больше подходят для некоторых инфраструктурных приложений.
- Это хороший способ примазаться к Intel и подорвать его позиции на рынке (Intel вот-вот станет монополистом в серверной сфере).
Нам не нужен огромный и дорогой процессор Xeon для всего. Кроме того, использование устаревших процессоров x86 для обработки нетребовательных рабочих нагрузок не является хорошим вариантом из-за их потребляемой мощности. Помните, мы говорим о серверах, а не о вашем MacBook или настольном ПК. Серверы работают круглосуточно, поэтому любое повышение эффективности, в том числе относительно небольшое, имеет значение. Дело не только в том, чтобы получить больший счет за электроэнергию; центры обработки данных необходимо охлаждать и обслуживать, поэтому процессоры с более низким рейтингом расчетной тепловой мощности (TDP) гораздо более ценны для корпоративных пользователей, чем для частных лиц.
Зачем использовать серверы ARM?
Итак, для каких корпоративных приложений подходят процессоры ARM?
Что ж, ARM рассчитывает получить подавляющее большинство побед в разработке приложений для сетевой инфраструктуры. Благодаря своей гибкости, небольшому размеру, эффективности и низкой цене процессоры ARM являются отличным выбором для инфраструктуры. Вы можете использовать процессоры ARM в маршрутизаторах, высокопроизводительных решениях для хранения данных и некоторых типах серверов.
Тем не менее, ARM ожидает, что большая часть роста предприятий в этом десятилетии будет происходить за счет серверов, поскольку другие ее сегменты уже созрели и занимают в них значительную долю рынка. Нагрузки серверов также меняются, и эта тенденция связана с ростом облачных сервисов. В результате серверам приходится справляться с растущим числом более мелких задач.
Многие организации предпочитают оставлять свои варианты открытыми, поэтому они приобретают оборудование от нескольких поставщиков. Это хорошая новость для серверных процессоров ARM, поскольку они могут продаваться рядом разных компаний. Кроме того, политика лицензирования ARM и модульный подход к проектированию процессоров могут быть использованы для разработки пользовательских процессоров для конкретных приложений. Это, очевидно, не вариант для небольших компаний, но что может случиться, если крупные игроки, такие как Amazon, Facebook или Google, начнут запрашивать заказные серверные процессоры, разработанные для достижения успеха в одном конкретном приложении?
Что же касается «прилипания к Intel», то должен отметить, что я не причиняю Intel никакого вреда, и я не хочу, чтобы она потерпела неудачу или была вытеснена из различных сегментов рынка, но в то же время я обеспокоен тем, что Доминирование Intel может в конечном итоге задушить рост и инновации. Усиление конкуренции должно привести к снижению цен для конечных пользователей, и именно в этом суть серверов ARM.
Многопоточность: сколько ядер процессора достаточно?
Всего десять лет назад многоядерные процессоры x86 были зарезервированы для высокопроизводительных компьютеров и серверов, но теперь вы можете получить четырехъядерные процессоры x86 в планшетах за 100 долларов.
На заре многоядерных вычислений вам все еще требовались большие ядра ЦП, чтобы получить адекватный уровень производительности. Многие программы не могли использовать преимущества этих новых процессоров и их дополнительных ядер, поэтому высокая однопоточная производительность была жизненно важна. Вещи наверняка изменились; сегодня у нас есть восьмиядерные смартфоны, четырехъядерные планшеты и телефоны Intel и 16-ядерные серверные процессоры x86.
Для этого есть веская причина. Создание многоядерного процессора имеет смысл с технологической и финансовой точки зрения. Гораздо проще распределить нагрузку на несколько небольших и более эффективных ядер ЦП, чем разработать одно огромное ядро, способное работать на высоких частотах. Многоядерный подход обеспечивает превосходную эффективность и выход микросхем.
У ARM есть потенциал, чтобы вывести увлечение ядрами на новый уровень. Ядра ЦП ARM, как правило, меньше, чем так называемые «большие ядра» Intel, используемые в серверных и настольных компонентах («маленькое ядро» Intel Atom зарезервировано для мобильных устройств, хотя серверные части на базе Atom также доступны). Однако это не означает, что в ближайшее время мы увидим 128-ядерные или 256-ядерные процессоры ARM, хотя теоретически они возможны. Это зависит от того, как новые серверные процессоры ARMv8 справляются с многопоточными нагрузками. Есть некоторые обнадеживающие признаки, и есть вероятность, что серверы ARM станут хорошим выбором для ряда рабочих нагрузок, которые могут выиграть от их многоядерных процессоров.
Первый серверный процессор Qualcomm имеет 24 процессорных ядра ARMv8, и производитель чипов ясно дал понять, что в будущих моделях будет еще больше ядер. Помните AMD и ее проблемы на рынке серверов? Всего пару недель назад компания представила свой долгожданный процессор Opteron A1100 на базе ARM. Qualcomm объявила об этом в октябре, так что оба этих продукта станут доступны в течение следующих нескольких месяцев.
Конечно, Intel не будет присутствовать на этой вечеринке ARM, но Qualcomm и AMD — не единственные производители чипов, работающие над корпоративными чипами на базе ARM. Производители микросхем, такие как Broadcom, Calxeda, Cavium Networks и Huawei HiSilicon, также работали над серверными продуктами на базе ARM. Nvidia и Samsung, два тяжеловеса в сфере SoC и GPU, также экспериментировали с серверными частями ARM, пока пару лет назад не решили приостановить разработку. Texas Instruments, Xilinx и Marvell также изучают серверные части ARM.

Некоторые из этих компаний также работали над заказными ядрами ARM, но единственным доступным сегодня 64-разрядным заказным ядром ARM, отличным от Apple, является Denver от Nvidia, который получил лишь несколько побед в дизайне.
Что такое пользовательские ядра ARM?
Я знаю, что большинство людей не утруждают себя отслеживанием всех отраслевых ниш, включая пространство ЦП, поэтому я думаю, что сейчас самое время объяснить, чем отличаются ядра ARM и что на самом деле представляют собой пользовательские ядра. Я не буду разбирать процессоры и объяснять разницу между наборами инструкций x86 и ARM, но обрисую различия с точки зрения бизнеса.
Видите ли, ARM не отличается только тем, что использует другой набор инструкций, хотя это могло бы привести к быстрому и вызывающему объяснению, на мой взгляд, самая большая разница между Intel, AMD и ARM не в архитектуре, а в бизнес-модели. . Кроме того, архитектуры меняются, новые процессоры представляются регулярно, но подход ARM к маркетингу и лицензированию своих технологий не изменился за последние годы.
Вот простой пример.
Процессор Intel разработан Intel с использованием наборов инструкций Intel. Он производится на литейном заводе Intel, упаковывается и поставляется с торговой маркой «Intel Inside» . Это может показаться простым, но давайте не будем забывать о миллиардах, которые были потрачены на исследования и разработки за десятилетия, или о том факте, что Intel полагается на свои собственные фабрики для производства (и если вы находитесь на рынке 14-нм литейного производства, убедитесь, что у вас есть запасные меняю на вас, потому что фабрика чипов стоит столько же, сколько атомный авианосец).
Что можно сказать о продукции ARM? Что ж, ARM не производитель чипов , а разработчик чипов или компания, занимающаяся чипами без фабрик , поэтому она не занимается производством и не продает чипы под собственной торговой маркой. ARM продает нечто гораздо более интересное: интеллектуальную собственность . Это означает, что клиенты ARM могут выбрать любой из множества различных планов лицензирования и начать создавать свои собственные проекты. Большинство из них выбирают собственные разработки ARM (процессоры серии Cortex, графические процессоры серии Mali), поэтому они платят лицензионный сбор за каждое ядро ЦП/ГП, которое они производят.
Однако клиенту не нужно лицензировать эти готовые ЦП; вместо этого он может лицензировать набор архитектуры и разработать собственное ядро на основе набора инструкций ARM . Этим занимается Apple. Он использует набор инструкций ARMv8 для создания больших и мощных 64-битных ядер ЦП для своих устройств iOS. ЦП Nvidia Denver похож в этом отношении, как и пользовательские ядра Qualcomm (серии 32-разрядных Krait и 64-разрядных Kryo).
Разработка собственного ядра ЦП непроста. На Craigslist вы не найдете безработных разработчиков чипов, предлагающих разработать собственный процессор, поэтому этот подход обычно предназначен для крупных игроков, у которых есть необходимые технические, финансовые и человеческие ресурсы, чтобы осуществить это. Поэтому большинство компаний вместо этого используют готовые ядра ARM Cortex (64-разрядное ядро Cortex-A57 можно использовать в серверной среде, и оно используется в большинстве серверных процессоров ARM следующего поколения).
Важно отметить, что практически чипы на базе ARM разрабатываются по индивидуальному заказу, но ядра ЦП, используемые в большинстве из них, не являются процессорными .
Подавляющее большинство процессоров ARM полагаются на стандартные конструкции ЦП ARM (ЦП Cortex), а не на специальные ядра ЦП. Это означает, что производители микросхем могут выбрать любое из нескольких ядер ЦП ARM, графических процессоров сторонних производителей и других компонентов и адаптировать процессор в соответствии со своими потребностями без необходимости разработки собственного ядра ЦП. Это дешевый способ сделать архитектуру более гибкой, и он больше связан с политикой лицензирования ARM, чем с инженерными разработками.
Также важно отметить, что эти будущие серверы ARM, основанные на новейшей архитектуре ARM 64-bit CPU, не имеют много общего с экспериментальными серверами ARM прошлых лет. Например, один из наших коллег поигрался с ARM-серверами Scaleway, но они основаны на процессорах ARMv7 и имеют ряд аппаратных ограничений (например, Scaleway использовала общие контроллеры ввода-вывода, а отсутствие поддержки 64-разрядных систем создало еще одну проблему). набор задач). Новое поколение серверов на базе ARM не будет страдать от этих прорезывающихся зубов; они намного ближе к оборудованию Intel с точки зрения функций и стандартов.
Плюсы и минусы сервера ARM
Проблема с серверами ARM заключается в том, что они, как правило, используются для небольших ниш и не подходят для небольших разработчиков, которые могут жить с любым сервером. Хотя некоторые крупные компании находят их привлекательными, доступные в настоящее время серверы ARM не подходят для большинства индивидуальных разработчиков.
Тем не менее, грядущие серверные решения отличаются и должны охватывать больше ниш. Вот что может сделать их привлекательными для гораздо более широкой пользовательской базы:
- Снижение затрат на оборудование, потенциально более высокая эффективность (производительность на доллар, производительность на ватт).
- Повышение совместимости и доступности популярных портов.
- Поддержка передовых технологий и новых отраслевых стандартов.
- Способность преуспеть в определенных типах рабочих нагрузок (простые, но многопоточные нагрузки).
- Потенциал для большей конкуренции и разнообразия продуктов, чем в пространстве x86.
Я должен подчеркнуть, что на данном этапе некоторые из этих пунктов являются теоретическими, поскольку аппаратное обеспечение еще не выпущено. Однако, хотя я не могу категорически утверждать, что знаю, что произойдет в ближайшие несколько кварталов, я уверен, что новое поколение серверов ARM предоставит эти (и другие) преимущества. Почему я так уверен? Ну, если бы у них не было потенциала что-то изменить, ARM, Qualcomm, AMD и другие компании не тратили бы свое время и деньги на свои разработки.
Итак, как насчет недостатков ARM-сервера? Их довольно много, и некоторые из них большие. К счастью, индустрия усердно работает над их устранением.
- Неудачная поддержка программного обеспечения
- Доступность, возможные проблемы с развертыванием
- проблемы рентабельности инвестиций
- Крошечная экосистема
- Старые привычки умирают с трудом
Проблемы, связанные с программным обеспечением, вероятно, будут самой большой проблемой. Хотя многие популярные сервисы будут работать на серверах ARM, поддержка программного обеспечения будет проблемой . Недостаточно просто портировать что-то на новое оборудование; мы должны убедиться, что все работает правильно, чтобы не было проблем с производительностью или сбоев. Другими словами, портируемое программное обеспечение должно быть зрелым. Никто не будет разрабатывать и развертывать сервис, построенный на глючной основе.
Со всеми деньгами, которые можно заработать на рынке серверов, можно было бы ожидать быстрого прогресса, но это не всегда так. Внедрение нового оборудования и настройка всего программного обеспечения, работающего на нем, никогда не бывают легкими, и темпы зависят от принятия рынком. Размер серверной экосистемы ARM (очень) ограничен, и я сомневаюсь, что пара новых процессоров будет иметь большое значение в краткосрочной перспективе. В то время как влиятельные компании, такие как ARM и Qualcomm, кровно заинтересованы в росте спроса на серверы ARM, они мало что могут сделать с программным обеспечением. У них практически нет влияния на разработчиков программного обеспечения, поэтому они не могут заставить их добавить поддержку ARM в существующие продукты.
Короче говоря: внимательно посмотрите на свой стек и попытайтесь выяснить, будет ли все работать правильно на оборудовании ARM. При наличии достаточного количества времени разработчики начнут добавлять поддержку оборудования ARM, но это не будет быстрым процессом. Им придется настраивать фреймворки и приложения, чтобы учесть новую архитектуру, и я подозреваю, что многие из них не будут беспокоиться, пока не будет достаточно серверов ARM (на что могут уйти годы). Поддержка устаревшего программного обеспечения — еще одна очевидная проблема.
Это подводит нас к следующему пункту: доступность на рынке и возможные проблемы с развертыванием. Серверов ARM не так много, поэтому выбор ограничен, как и доступность. Через год или два мы могли бы увидеть ряд предлагаемых пакетов хостинга на базе ARM, но мы не увидим слишком много. Хуже того, есть большая вероятность того, что эти серверы будут сосредоточены в определенных частях мира, что сделает их менее привлекательными для некоторых разработчиков. Есть много неизвестных, связанных с развертыванием, поэтому еще слишком рано говорить о том, как все сложится.
Медленное внедрение может создать еще один набор проблем. Они не ограничиваются серверами ARM; они применимы к большинству корпоративных технологий. Многие организации обязательно изучают возможность использования серверов ARM, но это не обязательно означает, что они действительно будут их использовать. Чтобы обеспечить достаточное развитие и потребительский спрос, внедрение на рынке должно неуклонно расти. В противном случае люди, не склонные к риску, скорее всего, останутся в стороне и займут выжидательную позицию. Другая потенциальная проблема — экономическая: если разработчики не уверены, что экосистема растет достаточно быстро, они могут прийти к выводу, что потенциальная отдача просто не стоит затраченных усилий.
А как насчет этих старых привычек? Что ж, поскольку серверное пространство не развивается быстро, люди склонны придерживаться проверенных платформ, а именно оборудования x86. Девиз прост: если не сломалось, не чини . Ветераны отрасли могут рассматривать серверы ARM как возможность и сделать на них ставку. Потребуется изрядное количество мужества и уверенности, чтобы связать часть сложного проекта с тем, что многие люди все еще считают непроверенной или незрелой аппаратной платформой. Я боюсь, что многие люди не захотят рискнуть, по крайней мере, не так рано.
Светлое будущее и щепотка шумихи
Я провел большую часть своей взрослой жизни, изучая новейший кремний, и мое личное мнение о серверах ARM заключается в том, что у них большой потенциал, но они не для всех . Они могли бы сыграть жизненно важную роль в Интернете завтрашнего дня, предоставляя дешевые строительные блоки для инфраструктуры и обрабатывая нишевые серверные рабочие нагрузки.
Однако, в то же время, я не могу отделаться от ощущения, что серверы ARM имеют тенденцию быть чрезмерно раскрученными. Несмотря на это, я не считаю их причудой. Я думаю, что они останутся, но поставщики должны выделить несколько конкретных ниш, которые действительно смогут извлечь выгоду из новой архитектуры.
Другими словами, мы не увидим много простых серверов веб-хостинга LAMP на базе ARM, но мы можем увидеть их множество в более экзотических нишах (и некоторых ужасно скучных). Процессоры ARM могут идеально подходить для определенных нагрузок, особенно тех, которые могут использовать преимущества большого количества небольших физических ядер ЦП, которые не привязаны к ЦП. Это может показаться не таким уж большим, но на самом деле это охватывает множество потенциальных применений: регистрация данных, большие объемы простых запросов, определенные типы баз данных, различные службы хранения и так далее.
Я мог бы продолжать, перечисляя различные варианты использования, плюсы и минусы серверов ARM и потенциальные проблемы, но, в конце концов, я подозреваю, что принятие серверов ARM будет зависеть от старых добрых денег. Помимо технологий, серверы ARM будут иметь смысл только в том случае, если экономическая составляющая оправдается. Другими словами, они должны будут предложить гораздо большую отдачу, чем процессоры x86, если они хотят оправдать свое существование.
Так как это более или менее весь смысл внедрения этой новой архитектуры в серверной индустрии, я ожидаю привлекательной цены, но это будет через несколько месяцев, прежде чем мы узнаем наверняка.
