Если вам нужна была высокая производительность, то вам нужно было выбирать процессор на x86 для своих решений. В последнее время, все больше и больше говорят о закате архитектуры x86 и переходе на ARM. В прошлом году компания Apple впервые представила Mac на процессорах ARM. Но подойдет ли процессор ARM для дата-центров, сможет ли ARM навсегда отправить x86 на скамью запасных?
Смена парадигмы
Когда массовые пользователи стали использовать смартфоны и планшеты, стало очевидно, что процессоры x86 от Intel, AMD и VIA просто не подходят для этих задач. Набор инструкций Intel по-прежнему не является популярным выбором для мобильных процессоров, хотя инженеры пытаются это изменить. В любом случае, когда дело доходит до рыночного сегмента, x86 не так эффективен, как другие архитектуры, а именно процессоры, основанные на 32-битных наборах команд ARMv7 и 64-битных ARMv8 от ARM.
За последнее десятилетие, и особенно за последние пять лет, процессоры ARM заняли доминирующее положение в мире смартфонов и планшетов. Процессоры ARM предлагают лучшую производительность на ватт, их дешевле проектировать, разводить на плате и развертывать. Крупные компании могут покупать дополнительные блоки (IP-ядра) для ARM процессора, такие как модемы, графические ускорители, и разрабатывать свои собственные на базе ARMv7 или ARMv8.
Это побудило некоторых разработчиков разрабатывать свои собственные кастомные ядра процессора ARM. Компании Qualcomm и Apple стали лидерами разработки System-on-Chip (SoC), разработка сложных и нестандартных ядер процессора сыграла решающую роль в их успехе. Однако кастомные ядра ARM использовались только для высокопроизводительных систем, в то же время остальной рынок использовал стандартные ядра ARM.
Одной из предпосылок успеха ARM была неудача Microsoft на рынке смартфонов и планшетов
Казалось бы связку Windows+Intel (Wintel) ничего не могло разорвать. ОС Windows с процессором Intel надежно доминировала на рабочих столах корпоративных и домашних столах пользователей. Microsoft долгое время развивала платформу Windows Mobile, основанной на Windows CE, предназначенной для встраиваемых систем от POS-терминалов до одноплатных компьютеров в промышленности. Windows CE работала только на RISC-архитектуре.
Когда на сцену вышел Android от Google, стало понятно что платформа Windows Mobile безнадежно устарела. Взамен дорогих смартфонов на Windows Mobile пришли более дешевые смартфоны на Android, вплоть до кустарных китайских, которые делались на коленке. Именно открытость платформы, развитые сервисы Google, низкая цена устройств, сделали процессоры ARM массовым продуктом.
Пытаясь прыгнуть в уходящий поезд, Microsoft анонсирует разработку новой платформы Windows Phone, взамен Windows Mobile. В 2015 году по данным IDC доля смартфонов Windows Mobile не превышала 2,2 процента. Разочарованными таким поворотом, Intel пытается выйти на рынок смартфонов с ОС Android. К этому времени ведущие производители смартфонов уже построили свой бизнес на использование ARM процессоров. Никто из производителей смартфонов не хотел связываться с Intel из-за больших рисков использование процессора x86 в смартфонах. На тот момент Google Play Store содержал программы только для ARM архитектуры. Энергопотребление смартфонов на Intel Atom было существенно выше, как и конечная цена для потребителя. По итогу было выпущено несколько смартфонов, но они не получили никакой особой популярности. К концу последнего десятилетия стало очевидно, что Microsoft и Intel уступили этот прибыльный рынок ARM, Google и Apple. К сожалению руководство компаний так и не смогло вовремя распознать потенциал смартфонов и планшетов.
Тем не менее, мобильная связь — не первый и не единственный сегмент рынка, который стал свидетелем провала Microsoft. Другой — рынок серверов. На первый взгляд, смартфоны и центры обработки данных не имеют много общего, но с технологической и деловой точки зрения они частично совпадают.
Независимо от того, разрабатываете ли вы смартфон или сервер, вам необходимо выделить сходные аспекты вашей аппаратной платформы, такие как энергоэффективность, низкое тепловыделение, соотношение производительность/цена и т. д. Самое главное, что вам действительно не нужен процессор на базе x86 для смартфонов и многих типов серверов. Благодаря неудачам Microsoft в этих сегментах рынка не доминирует Windows. Вместо этого используются операционные системы на основе Linux/Unix: Android, iOS и другие различные дистрибутивы.
Почему серверы ARM с самого начала казались хорошей идеей?
В настоящее время используется несколько миллиардов смартфонов и планшетов, работающих на процессорах ARM. Помимо использования в мобильных устройствах ARM процессоры используются в куче других устройств: маршрутизаторах, телевизионных приставках и смарт-телевизорах, умных часах, некоторых игровых устройствах, автомобильных информационно-развлекательных системах и т.д.
Не смотря на такую популярность, встретить ARM процессоры в других сегментах рынка сложно. Когда заходит разговор про сервера то обычно идет речь про x86 Xeon от Intel и AMD соответственно.
Так чем же ARM сервера лучше x86? ARM сервера дешевле обходятся. Этот тезис можно изложить по пунктам:
- Лучший показатель производительность/цена
- Проще масштабировать нагрузку
- Конкуренция и выбор ARM процессоров от различных производителей
- Доступна возможность интегрирования любого вычислительного блока в процессор, например размещение FPGA.
- Отличный способ сократить зависимость от Intel.
В сервере x86 из всех компонентов самым дорогим является процессор Intel Xeon. Поэтому заменив центральный процессор Intel на ARM можно существенно сэкономить в стоимости. Дополнительно получив уменьшенное тепловыделение.
ARM сервера могут оказаться значительно дешевле, чем их аналоги на базе чипов Intel и AMD x86.
Использование устаревших x86 процессоров неэффективно с точки зрения энергозатрат. Потребляют и выделяют столько же энергии сколько и более производительные. Когда дело касается домашнего компьютера или офисного ПК тепловыделение не является большой проблемой. Но при проектирования центра-обработки данных прежде всего необходимо оценить TDP (thermal design power — конструктивные требования по теплоотводу, требования по теплоотводу). Потому что сервера с низким показателями TDP дешевле обходятся и проще обслуживать.
Сколько ядер достаточно для процессора?
Всего десять лет назад многоядерные процессоры x86 использовались в компьютерах и серверах, но теперь вы можете получить четырехъядерные процессоры Intel Atom (x86) в планшетах за сотню долларов.
До появления многоядерных процессоров была эпоха гонки частот. Для увеличение производительности повышали частоту работы процессора. Это приводило с существенному увеличению потребления электроэнергии и увеличению тепловыделения. В конечном итоге был достигнут потолок при котором дальнейшее повышение частоты работы процессора приводило к невозможности отведения тепла не выходя за стандартные разумные габариты систем. При большом тепловыделение можно перейти на жидкостное охлаждение или на охлаждение жидким азотом, но вряд ли такой подход может стать массовым.
Эпоха Гигагерц сменилась эпохой Многоядерности. Как оказалось, с технологической и финансовой точки зрения построение многоядерных систем лучше чем поднимать частоты работы процессора.
Намного проще распределить нагрузку на несколько меньших и более эффективных ядер процессора, чем разработать одно огромное ядро, способное работать на высоких частотах. Многоядерный подход обеспечивает превосходную эффективность и проще в дизайне микросхемы.
Многопоточность: серверные процессоры ARM могут состоять из большего количества физических ядер по сравнению с процессорами Intel x86.
С точки зрения наращивания количества ядер, ARM архитектура обладает гигантским потенциалом, возможно создание процессора ARM с 128 или 256 ядрами. x86 не обладает таким впечатляющим потенциалом. Это правда не означает что такие процессоры появятся у нас завтра, т.к. в данном случае ограничивающим фактором будет пропускная шина данных.
Свой первый серверный процессор Qualcomm сделала с 24 ядрами ARMv8, и дала понять что в будущих моделях будет еще больше ядер. Qualcomm не единственная компания выпускающие процессоры ARM для серверов. Такие производители , как Broadcom, Calxeda, Cavium Networks и Huawei HiSilicon, также работают над серверными решениями на базе ARM. Nvidia и Samsung, два тяжеловеса в бизнесе SoC и GPU, также ведут разработку.
Что такое кастомные ядра ARM?
Рассмотрим различия не с точки зрения наборов инструкций x86 и ARM, а с точки зрения бизнеса. Наибольшая разница между Intel, AMD и ARM заключается в принципиально другой бизнес-модели. За годы развития, подход ARM к маркетингу и лицензированию своей технологии не изменился.
Рассмотрим технологический процесс изготовления процессоров Intel. Intel процессор разрабатывается с использованием наборов инструкций Intel. Далее, он производится на одной из фабрик Intel, упаковывается и поставляется с брендом Intel Inside. Это может показаться простым, но нужно не забывать о миллиардах затраченных на научно-исследовательские и опытно-конструкторские работы (НИОКР) на протяжении десятилетий.
А как насчет процессоров ARM? ARM — это не производитель микросхем, а компания занимающаяся разработкой и проектированием ARM ядер, поэтому вы нигде не увидите процессоры под этим брендом. ARM продает нечто гораздо более интересное: интеллектуальную собственность. Это означает, что клиенты ARM могут выбрать любой из множества различных планов лицензирования и начать создавать свои собственные процессоры. Большинство из них выбирают собственные разработки ARM (процессоры серии Cortex, графические процессоры серии Mali), поэтому они платят лицензионный сбор за каждое производимое ядро CPU/GPU.
Однако не всегда клиенту необходимо лицензировать готовые процессоры; вместо этого он может лицензировать набор архитектуры и разработать собственное ядро на основе набора инструкций ARM. Это то, что делает Apple. Они используют набор инструкций ARMv8 для создания больших и мощных 64-разрядных ядер процессора для своих устройств.
Спроектировать собственное ядро процессора непросто. Поэтому большинство компаний вместо этого используют стандартные ядра ARM Cortex (например 64-разрядное ядро Cortex-A76 может использоваться в серверной среде).
Важно отметить, что чипы на базе ARM разрабатываются индивидуально, а ядра процессора, используемые в большинстве, — нет.
Подавляющее большинство процессоров ARM основываются на стандартных ядрах ARM (процессоры Cortex), а не на пользовательских ядра процессора. Производители конечного процессора могут выбрать любое из ряда ядер ARM, сторонних графических процессоров и других компонентов и адаптировать процессор в соответствии со своими потребностями без необходимости разрабатывать собственное ядро ARM. Это достаточно дешевый способ сделать архитектуру более гибкой, и он больше связан с политикой лицензирования ARM, чем с разработкой.
Также важно отметить, что такие будущие серверы ARM, основанные на 64-битной архитектуре ARM, обладают таким же набором периферийных устройств как и x86 процессоры. Уже многие процессоры ARM поддерживают различные интерфейсы такие как: PCIe, SATA, NVMe и т.д.
Процессоры ARM Neoverse для дата-центров
Компания ARM активно расширяет сегменты использования своих процессоров. Так желая потеснить лидерство Intel в сегменте высокопроизводительных систем, ARM разработала процессор ARM Neoverse предназначенный исключительно для дата-центров. В основе процессора лежит ядро Cortex-A76, частота работы до 3 ГГц (на практике до 2.6 ГГц). Дизайн процессора представлен двумя вариантами: Neoverse N1 и Neoverse E1. Ожидается что в 2021 году, фабрики выпускающие процессор Neoverse, перейдут производство с 7 нм на 5 нм.
Основой SoC на ядрах Neoverse N1 является Component Aggregation Layer (CAL). Он предназначен для работы в ячеистой топологии и содержит два интерфейса. Первый интерфейс обращен к сетевому уровню, состоящему из многочисленных пересечений XP (Crosspoint) ячеистой сети, которые представляют собой коммутаторы или роутеры. Второй интерфейс CAL обращен к кэшу System Level Cache. Mesh-сеть работает на 2/3 частоты ядер CPU и оптимизирована под минимальные задержки. Пропускная способность по сравнению с Cortex A72 была увеличена более чем в два раза.
ARM на основе Neoverse N1 предлагает различные эталонные платформы. Дизайн N1 Edge ориентирован на сетевые и облачные решения, системы хранения данных. Здесь ARM использует до восьми ядер Neoverse N1. Дизайн N1 Hyperscale призван показать полный потенциал архитектуры. Здесь используются уже от 64 до 128 ядер N1 в ячеистой топологии 8×8. Объем System Level Cache составляет 64 или 128 Мбайт. Также доступны 128 линий PCI Express 4.0 и 8-канальный интерфейс памяти.
Материнская плата с ARM Neoverse N1 для проведения тестирования и оценки возможностей платформы.
Подобная SoC: блоки «CPU tiles» или плитки состоят из двух ядер N1 каждый. Восемь подобных плиток формируют «Super Tile». В итоге мы получаем строительные блоки дизайна N1 Hyperscale, в котором может насчитываться до 128 ядер. Mesh-сеть будет работать на частотах между 1,8 и 2,2 ГГц. Если данный уровень составляет 2/3 от частоты ядер, то в случае последних мы получим от 2,4 до 3,0 ГГц.
Построение ячеистой структуры ARM Neoverse N1.
Подобная SoC будет потреблять 105 Вт (в варианте с 64 ядрами). Впрочем, в зависимости от сценария, она может значительно обгонять процессоры Intel и AMD с 28 и 32 ядрами по производительности, так что эффективность должна быть выше.
Процессор Neoverse E1 прежде всего ориентирован на максимальную производительность, ARM поставила в приоритет обработку больших массивов данных. Мы получаем первый серверный процессор ARM с поддержкой SMT (Simultaneous Multi Threading).
Система кэшей и блоков выборки была изменена с учетом выполнения нескольких потоков одновременно. Дизайн Neoverse E1 предусматривает до 16 ядер на SoC. Теоретически возможно и больше, но многие компоненты и кэш System Level Cache ориентированы на работу с кластером 2x 8 ядер. Подобный процессор работает с памятью DDR4-3200 по двухканальному интерфейсу. Энергопотребление всей SoC составляет меньше 15 Вт, причем самим ядрам требуется только 4 Вт — что еще раз показывает, что значительный вклад в бюджет энергопотребления вносят другие компоненты, подобные сетевым интерфейсам.
Neoverse E1 и Neoverse N1 показывает весьма серьезные амбиции ARM по завоеванию серверного рынка. ARM не собирается довольствоваться нишевым сегментом, компания планирует конкурировать с Intel и AMD. Та же Huawei за последние месяцы наглядно показала, что разработка собственных серверных процессоров на дизайне ARM является весьма перспективным направлением. ARM преобразовала дизайны Cortex в специализированные серверные платформы Neoverse E1 и Neoverse N1.
В следующие два года нас ждет интересная битва концепций. Но серверный рынок довольно инерционный, и на замену платформ может уйти несколько лет.
Отчет компании Forrester об эффективности перехода на ARM Neoverse
В середине прошлого года исследовательская и консультационная компания Forrester, по заказу ARM, представила отчет об оценки финансовой выгоды перехода на процессоры Neoverse. Чтобы лучше понять преимущества, затраты и риски, связанные с миграцией, Forrester провела интервью и опросила нескольких клиентов которые используют Neoverse, а также двух связанных поставщиков облачных услуг.
По результату исследования было выяснено:
- Первоначальные затраты на построение инфраструктуры снижаются на 30–60%. Благодаря компактным форм-фактором ARM модулей, и снижению тепловыделения по сравнения с x86, можно можно существенно увеличить плотность ядер ARM на сервер. В результате уменьшается количество серверов, которые необходимо установить. Кроме того, оборудование на базе архитектуры ARM на 20% дешевле.
- Операционные затраты снижаются на 10-15%, т.к. сервера на ARM требуют меньшего охлаждения, и их количество меньше.
- Переход на облачную инфраструктуру под управлением процессоров ARM экономит до 80% средств
На основе текущих затрат опрошенных компаний была смоделирована ситуация использования 400 ядер, с 3-х летним горизонтом затрат на ARM и традиционные сервера(x86).
Сравнение финансовых затрат использование ARM и x86 серверов.
По итогу 3 лет владения ARM серверами, можно достичь 40% экономии финансовых средств, что весьма неплохо для мотивации перехода крупных ИТ компаний.
Процессоры ARM лучше подходят для специализированных корпоративных приложений
Что касается разработки корпоративных приложений, то вся оптимизация исполнения сводится к более лучшим алгоритмам. Например, если необходимо более быстро производить поиск текстовой информации, то применяются индексы, различные алгоритмы. Так или иначе в увеличение быстродействия есть определенный потолок, а новые алгоритмы достаточно сложно придумать. Все это верно в архитектуре существования x86 процессоров.
Если взять ARM процессор, то мы можем добиться лучших результатов путем перемещение логики ПО в «железо». Алгоритм будет выполнятся не на процессоре общего назначения, и на специальном сопроцессоре работающем в тандеме с основным ядром ARM. Одним из примеров является компания Google, которая разработала свой дизайн серверов. А так же специализированные сервера Amazon для услуг хостинга.
AWS Graviton — специализированный процессор для Amazon Web Services
Amazon стала одной из первых компаний решившей разработать процессоры «для себя». Новые процессоры должны были заменить решения на x86, в части некоторых сервисов.
Процессоры AWS Graviton созданы по оригинальной разработке Amazon с использованием 64-битных ядер Arm Neoverse и обеспечивают оптимальное соотношение цены и качества для облачных нагрузок Amazon EC2.
Процессоры AWS Graviton первого поколения используются для инстансов Amazon EC2 A1 – первых в мире инстансов AWS на базе архитектуры ARM. Эти инстансы позволяют значительно сократить затраты на другие инстансы общего назначения для горизонтально масштабируемых приложений, таких как веб-серверы, микросервисы на базе контейнеров, средства обработка данных журналов, а также других рабочих нагрузок, для управления которыми можно использовать меньшие ядра и доступные объемы памяти.
Процессоры AWS Graviton2 по сравнению с процессорами AWS Graviton первого поколения отличаются более высокой производительностью и расширенными возможностями. Они используются для работы инстансов Amazon EC2 T4g, M6g, C6g и R6g, а также их вариантов с локальным SSD‑хранилищем на базе NVMe, которые обладают увеличенной на 40 % производительностью (по сравнению с аналогичными инстансами текущего поколения на базе архитектуры x86) и предназначены для самых разнообразных рабочих нагрузок, в том числе запуска серверов приложений, микросервисов, высокопроизводительных вычислений, автоматизации проектирования электроники, игровых приложений, баз данных с открытым исходным кодом и кэширования в памяти.
Инстансы на AWS Graviton2 использует компания компания Snap Inc, известный поставщик сервисов для социальных сетей, таких как Snapchat и Bitmoji. По заявлению инженер-программиста компании, переход на инстансы C6g на базе Graviton2 позволил уменьшить загрузку CPU примерно на 10 % за счет лучшей производительности.
Переход на инстансы M6g на Graviton2 позволили крупнейшему онлайн кинотеатру Netflix увеличить производительность java-приложений до 50% по сравнению с инстансами на M5 (Intel Xeon Scalable или AMD EPYC).
ARM сервера, за и против
ARM сервера как правило используются в небольших нишах и не подходят для небольших команд разработчиков, которые могут работать с любым сервером. Малый бизнес скорее всего выберет x86 сервер, чем сервер на ARM. Мало того, при построении небольшой системы конечная стоимость серверов на x86 и ARM будет практически сопоставима.
Однако, не смотря на это, выгода использования ARM серверов будет следующей:
- Совокупная стоимость владения на протяжение длительного периода времени будет меньше за счет снижение затрат на оборудование и электроэнергию.
- Гибкое наращивания функциональных модулей.
- Возможность перейти на новые технологии и отраслевые стандарты за счет более быстрого выхода ARM процессоров на рынок по сравнению с x86
- Лучше масштабируется нагрузка
- Потенциал выбора лучшего предложения за счет большей конкуренции и разнообразия продуктов, чем на рынке x86.
Проблемы использования ARM серверов:
- Не всегда доступно необходимое ПО под архитектуру ARM
- Пока мало предложений для выбора
- Существенно меньше специалистов на рынке труда
- Сложно осуществлять миграцию с x86
Проблемы, связанные с программным обеспечением, вероятно, станут самой большой проблемой. Хотя многие популярные приложения будут работать на серверах ARM, поддержка программного обеспечения будет проблемой. Недостаточно просто перенести все на новое оборудование, т.к. мы должны убедиться в бесперебойной работе и отсутствия падения сервисов.
Еще одна очевидная проблема — поддержка устаревшего программного обеспечения. С одной стороны хорошо когда компания развивает продукт и может его в дальнейшем перенести на ARM архитектуру. Но что делать если используется продукт от компании, которая уже не существует на рынке, или поддержка продукта прекращена.
Многие разработчики ПО по отношению к ARM архитектуре занимают выжидательную позицию, т.к. пока нет запросов от крупных клиентов на поддержку ARM.
А как насчет этих старых привычек? У программистов принято, раз работает нормально, не трогай. Поскольку серверные технологии развиваются не быстро, люди склонны придерживаться проверенных платформ, а именно оборудования x86. Поэтому любое использование серверов ARM создает лишний риск, и для перехода потребуется изрядная смелость и уверенность. Но будущее за ARM-серверами!
Обсуждение на Habr.ru
Литература
- ARM Servers: Mobile CPU Architecture For Datacentres? — NERMIN HAJDARBEGOVIC toptal.com
- Arm-powered Data Centers Optimized for Cost and Efficiency — Mohamed Awad arm Blueprint
- Amazon’s Arm-based Graviton2 Against AMD and Intel: Comparing Cloud Compute — Andrei Frumusanu AnandTech
- Amazon’s AWS Graviton 2 Processor is here to challenge AMD & Intel — Raunak Saha TechnoSports
- ARM Neoverse N1 и E1 новые процессоры для дата-центров и серверов, до 128 ядер — Андрей Шиллинг hardwareLUXX
- Windows Phone can now work on smartphones with Intel’s x86 chips — Agam Shah Computerworld