Чем arm отличается от x86
Перейти к содержимому

Чем arm отличается от x86

  • автор:

Процессоры x86 и ARM — в чём разница?

Правда ли, что процессор в вашем мобильнике мощнее, чем в вашем компьютере?

Раньше было так: есть мощные процессоры для настольных компьютеров, ноутбуков и серверов, а есть слабые процессоры для мобильных устройств — телефонов и планшетов.

Теперь ситуация меняется: мобильные процессоры постепенно обгоняют настольные, а настольные начинают заимствовать технологии из мобильных.

RISC — простые команды, много кода

На заре процессоров у программистов не было языков высокого уровня, например JavaScript или Python. Все команды писались машинным кодом или на ассемблерах. Программист в то время работал с процессором напрямую, и каждая команда в коде обозначала какую-то инструкцию для процессора.

Например, типичная программа того времени по умножению одного числа на другое могла выглядеть для процессора так:

  1. Выдели память под первое число.
  2. Запиши в это место первое число.
  3. Выдели память под второе число.
  4. Запиши в память второе число.
  5. Поставь единицу в такой-то служебный регистр.
  6. Выполни команду битового сдвига для первого числа.
  7. (много других команд)
  8. Верни служебный регистр в состояние «0».
  9. Выдели память под результат
  10. Результат умножения положи на это место.

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

Такую технологию назвали RISC — Reduced-instruction-set Computing, компьютер с ограниченным набором команд.

Некоторое время спустя технологию RISC усовершенствовали двумя разными способами — так появились архитектуры x86 и ARM. Первые ориентировались на мощные компьютеры, вторые — на небольшие устройства с пониженным энергопотреблением.

x86 — это сложный RISC

С развитием компьютеров программисты захотели писать более сложные программы. Но чем сложнее программа, тем больше кода приходилось писать.

Тогда компания Intel выпустила процессор 8086, который поддерживал много новых команд. Они упрощали написание кода, частично закрывая разрыв между машинным кодом и высокоуровневым языком программирования.

Возьмём тот же пример кода для перемножения двух чисел. Для процессора 8086 код выглядел так:

  1. Возьми первое и второе число.
  2. Перемножь их, а результат положи в новый участок памяти.

«Перемножь числа» — это новая сложная команда, доступная в этом процессоре. Когда процессор встречает её в коде, он выполняет много других инструкций, похожих на те, которые мы писали в начале, и получает тот же результат.

Такая технология называется CISC — complex instruction set computer, вычислительная машина со сложным набором команд.

✅ С одной стороны, программистам теперь проще писать код: вместо тридцати инструкций можно написать три, а результат будет таким же. Чем больше новых сложных команд поддерживает процессор, тем быстрее идёт разработка.

❌ С другой — процессору теперь нужно тратить некоторое время на перевод сложных команд в простые. Когда он получает от программиста команду «Перемножь эти два числа», то превращает её в те самые тридцать строк кода и выполняет каждую команду.

После процессора 8086 вышли процессоры 80286 и 80386. Они получились настолько удачными для того времени, что с тех пор Intel маркировку всех своих основных процессоров заканчивала на «86», а технология и набор команд получили название «x86».

ARM — это продвинутый RISC

По другому пути пошла компания ARM, название которой расшифровывается как «Улучшенные RISC-машины». Подход был такой: зачем нужно много сложных команды для процессора, если можно по максимуму использовать простейшие команды и сосредоточиться на эффективности работы?

В итоге ARM усовершенствовали RISC-архитектуру, сделали команды проще и сосредоточились на эффективности.

В те времена ARM-процессоры работали не так быстро, как процессоры семейства x86, зато они потребляли гораздо меньше энергии. Со временем это позволило использовать ARM-процессоры в мобильных телефонах.

Получается, процессоры отличаются тем, что x86 это CISC, а ARM — это RISC?

Большинство думает именно так, и в каком-то смысле это похоже на правду. Но это не совсем точно.

Современные x86-процессоры на 80% состоят из RISC-модулей, которые обрабатывают RISC-команды. Каждая сложная CISC-команда специальным декодером разбивается на много простых команд, которые и выполняют эти модули.

Получается, что в основе любого современного процессора всё равно лежит RISC-архитектура, сверху которой для каждого устройства наслаиваются свои дополнительные команды.

В чём успех ARM

Чтобы сделать процессор с x86-архитектурой, компании нужно самой придумать и нарисовать все транзисторы и соединения между ними. Это сложный и дорогой процесс, который не могут себе позволить маленькие компании. Из крупных производителей x86-процессоров остались только Intel и AMD.

В ARM сделали иначе — они продают лицензии на производство процессоров по своей архитектуре всем желающим. Получается, что любая компания может купить лицензию и делать свои ARM-процессоры. При этом компания может как угодно улучшать свои процессоры — изменять компоновку, добавлять новые модули и так далее.

Именно доступность лицензии и конкуренция привели к быстрому развитию ARM-процессоров, а не RISC-архитектура или наборы команд.

Сейчас на ARM свои процессоры выпускают Samsung, Nvidia, Qualcomm, Atmel, Huawei и многие другие. Если вы производитель смартфонов, вы можете разработать свой собственный процессор на ARM, а можете купить готовый у любой другой компании. Это создаёт конкуренцию на рынке, гонку технологий и всеобщий прогресс.

Главное — внутреннее устройство процессора

Современные процессоры состоят из множества отдельных модулей, каждый из которых делает что-то своё, например:

  • обрабатывает изображения,
  • отвечает за работу нейросетей,
  • регулирует энергопотребление,
  • выполняет базовые команды,
  • организует работу с памятью,
  • следит за безопасностью,
  • отвечает за подключение и работу внешних устройств.

От того, как производитель реализует компоновку и соединение модулей, зависит быстродействие процессора и его применимость в разных областях. А из-за того, что ARM-архитектура основана на простых командах, в ней проще соединять такие модули между собой. Получается, что сила ARM — в простоте и гибкости.

Война за чипы: сменят ли ARM процессоры x86 и почему все зависит от Apple

Macbook Pro 13 на чипе M1

В мире электроники два лагеря: мобильные гаджеты с процессорами ARM и классические компьютеры с x86. В статье разберемся в отличиях и изучим тренд, который задала Apple, перейдя на собственный ARM-чип M1 в настольных ПК

Какими бывают процессоры: x86 и ARM

В мобильных устройствах (планшеты, смартфоны) и классических компьютерах (ноутбуки, настольные ПК, серверы) используются разные процессоры. Они по-разному взаимодействуют с операционными системами и программами — взаимной совместимости нет. Именно поэтому вы не сможете запустить привычные Word или Photoshop на своем iPhone или Android-смартфоне. Вам придется скачивать из AppStore или Google Play специальную версию софта для мобильных устройств. И она будет сильно отличаться от версии для настольного ПК: как визуально, так и по функциональности, не говоря уже о программном коде, который пользователь обычно не видит.

Сверху — материнская плата iMac предыдущего поколения с процессором Intel (x86), снизу — плата iMac 2021 года с чипом M1 (ARM)

Сверху — материнская плата iMac предыдущего поколения с процессором Intel (x86), снизу — плата iMac 2021 года с чипом M1 (ARM) (Фото: Apple)

Процессоры для классических компьютеров строятся на архитектуре x86. Своим названием она обязана ранним чипам компании Intel c модельными индексами 8086, 80186 и так далее. Первым таким решением с полноценной реализацией x86 стал Intel 80386, выпущенный в 1985 году. Сегодня подавляющее большинство процессоров в мире с архитектурой x86 делают Intel и AMD. При этом у AMD, в отличие от Intel, нет собственного производства: с 2018 года им по заказу компании занимается тайваньская корпорация TSMC.

Процессор Intel 8086, 1978 год

Процессор Intel 8086, 1978 год (Фото: wikipedia.org)

Когда Acer, Asus, Dell, HP, Lenovo и любые другие производители классических компьютеров используют процессоры Intel или AMD, то им приходится работать с тем, что есть. Они вынуждены закупать готовые решения без возможности гибко доработать чипы под свой конкретный продукт. А свои собственные процессоры на архитектуре x86 никто из производителей ПК делать не может. Дело не только в том, что это крайне сложно и дорого, но и в том, что лицензия на архитектуру принадлежит Intel, и компания не планирует ее ни с кем делить. AMD же воевала в американских судах за право создавать чипы на архитектуре x86 со своим главным конкурентом более десяти лет в 1980-х и 1990-х годах.

Процессоры для мобильных устройств строятся на базе архитектуры ARM. И это не какая-то быстро и внезапно взлетевшая вверх молодая компания. Корни истории современной британской ARM Limited уходят далеко в 1980-е. Только в отличие от своих доминирующих на рынке «больших» ПК-конкурентов ARM Limited процессоры не делает. Бизнес компании построен на том, что она продает лицензии на производство чипов по своей технологии всем желающим. Причем возможности для доработки у лицензиатов максимально широкие — отсюда популярность и многообразие решений. Именно на основе архитектуры ARM Huawei делает свои мобильные чипы Kirin, у Samsung это Exynos, у Apple — серия Ax. В этот же список входят Qualcomm, MediaTek, NVIDIA и другие компании. А еще свои процессоры на ARM делает Fujitsu. Японцы назвали их A64X, и именно они в количестве 158 976 штук используются в самом мощном на момент выхода этой статьи суперкомпьютере в мире — Fujitsu Fugaku.

Суперкомпьютер Fujitsu Fugaku

Суперкомпьютер Fujitsu Fugaku (Фото: Riken)

Из открытого подхода ARM вытекает и главный недостаток: архитектура очень фрагментирована. Для x86 достаточно написать программу один раз, и она будет одинаково стабильно работать на всех устройствах. Для ARM приходится адаптировать софт под процессоры каждого производителя, что замедляет и удорожает разработку. Ну, а главный недостаток x86 вытекает из отсутствия конкуренции. В последние годы Intel, например, много упрекали за медленный или порой вовсе едва ощутимый прирост производительности от поколения к поколению. Также есть проблемы с высокими уровнями нагрева и энергопотребления.

Архитектура процессоров: CISC, RISC, и в чем разница

Ключевое отличие между x86 и ARM кроется в разной архитектуре набора инструкций. По-английски — ISA, Instruction Set Architecture. В основе x86 изначально лежала технология CISC. Это расшифровывается как Complex Instruction Set Command — вычислительная машина со сложным набором инструкций. «Сложность» здесь в том, что в одну инструкцию для процессора может быть заложено сразу несколько действий.

Полвека назад, когда первые процессоры только появились, программисты писали код вручную (сейчас для этого есть компиляторы). Одну сложную команду на старом низкоуровневом языке программирования Assembler написать было гораздо проще, чем множество простых, досконально разъясняющих весь процесс. А еще сложная команда занимала меньше места, потому что код для нее был короче, чем несколько отдельных простых команд. Это было важно, потому что объем памяти в те времена был крайне ограничен, стоила она дорого и работала медленно. Заказчики от этого тоже выигрывали — под любой их запрос можно было придумать специальную команду.

Но вот архитектура самого процессора страдала. По мере развития микроэлектроники в чипах с CISC копились команды, которые использовались редко, но все еще были нужны для совместимости со старыми программами. При этом под них резервировалось пространство на кристалле (место, где расположены физические блоки процессора). Это привело к появлению альтернативной технологии RISC, что расшифровывается как Reduced Instruction Set Command — вычислительная машина с сокращенным набором инструкций. Именно она легла в основу процессоров ARM и дала им название: Advanced RISC Machines.

Здесь ставку сделали на простые и наиболее востребованные команды. Да, код поначалу писать было сложнее, поскольку он занимал больше места, но с появлением компиляторов это перестало быть значимым недостатком. Результат — экономия места на кристалле и, как следствие, сокращение нагрева и потребления энергии. Плюс множество других преимуществ.

Почему о превосходстве ARM заговорили только недавно и при чем здесь Apple?

Если архитектура ARM так хороша, то почему же Intel и AMD не бросили все и не стали строить свои чипы на ней? На самом деле, они не оставили технологию без внимания, и к сегодняшнему дню CISC в чистом виде фактически уже не существует. Еще в середине 1990-х годов процессоры обеих компаний (начиная с Pentium Pro у Intel и K5 у AMD) обзавелись блоком преобразования инструкций. Сложные команды разбиваются на простые и затем выполняются именно там. Так что современные процессоры на архитектуре x86 в плане набора инструкций гораздо ближе к RISC, чем к CISC.

Кроме того, важно понимать, что противостояние x86 и ARM — это прежде всего противостояние Intel (потому что AMD гораздо меньше во всех отношениях: от капитализации до доли на рынках) и множества разрозненных производителей чипов для мобильных устройств. Долгое время два направления развивались как бы отдельно друг от друга. У Intel не получалось сделать достаточно мощное и энергоэффективное решение на x86 для мобильных устройств, а производители ARM-процессоров не стремились на рынок «больших» ПК. В нише мобильных устройств хватало места всем, и конкурировать там было проще, чем на фактически монополизированном Intel рынке процессоров для традиционных компьютеров.

Однако в последние годы доминирующее положение Intel пошатнулось. Прежде всего из-за того, что бизнес компании перестал соответствовать ее же собственной производственной стратегии. Согласно прогнозу одного из основателей Intel Гордона Мура, количество транзисторов в процессорах должно удваиваться каждые два года за счет перехода на более компактный технологический процесс производства (измеряется в нанометрах — нм). Как раз за счет этого повышается производительность. Впоследствии впервые озвученный в середине 1960-х годов «Закон Мура» корректировался, но сегодня стало ясно, что бесконечным этот рост быть не может. Технологии Intel дошли до «потолка возможностей» и пока уперлись в него. Переход на 14 нм, а потом и на 10 нм сильно затянулся, в то время как AMD в партнерстве с TSMC уже работает по техпроцессу 7 нм, а первым 5-нанометровым процессором в мире стал Apple M1 на архитектуре ARM.

О законе Мура на английском с русскими субтитрами

Решая множество технологических проблем с процессорами для «больших» компьютеров, Intel полностью упустила из вида рынок мобильных чипов, и теперь здесь господствуют решения ARM. Проблемы, кстати, при этом никуда не делись — чипы Intel для настольных ПК последних лет активно и справедливо критикуют. Мощные процессоры компании страдают от высокого нагрева и сильного энергопотребления, а энергоэффективные, наоборот, сильно ограничены в плане производительности.

Большинство производителей ноутбуков и компьютеров продолжают с этим мириться, и не уходят на ARM — не позволяет огромный багаж популярного софта и массовость их техники. Как вы помните, одна и та же программа не сможет работать и на x86 и, на ARM — ее нужно обязательно программировать заново. Но в 2020 году после почти 15 лет выпуска компьютеров с процессорами Intel компания Apple объявила о переходе на процессоры ARM собственной разработки. Они, кстати, тоже производятся внешним подрядчиком: на заводах уже упомянутой TSMC.

И это крайне важное заявление, потому что на рынке только у Apple есть все возможности для того, чтобы сделать этот переход успешным. Во-первых, компания сама разрабатывает процессоры на базе ARM много лет. Настольные M1 «выросли»

из мобильных чипов серии Ax. У производителей ПК на других ОС такого опыта нет или он сильно ограничен. Во-вторых, у Apple огромный опыт разработки собственных операционных систем: как мобильной, так и настольной. Конкуренты в основном используют Windows или «надстройки» для Android.

Остается совместить две системы (OS X для компьютеров, iOS для смартфонов), «заточенные» под разную архитектуру вместе, унифицировав софт, и это самый сложный пункт программы. Но и тут у Apple есть целая россыпь козырей. Это и лояльная аудитория, не готовая смотреть на продукцию конкурентов, но готовая подождать пока программы адаптируют под ARM. И собственный язык программирования Swift, который давно унифицировал процесс разработки ПО для iOS и OS X. И пусть небольшая в количестве устройств, но зато очень заметная доля на рынке ПК в деньгах, чтобы процесс адаптации «настольного» софта для x86 под работу с «мобильным» ARM стал интересен крупным разработчикам ПО. За примерами далеко ходить не надо: в Adobe на зов откликнулись одними из первых.

Немаловажно и то, что переход с Intel на ARM для Apple — далеко не первый опыт смены процессоров в своих устройствах. На Intel корпорация из Купертино переходила с PowerPC в 2005 году. А чипы PowerPC пришли на замену Motorola 68K в начале 1990-х.

Стив Джобс о переходе на процессоры Intel в 2005 году

Процессор Apple M1: чем он так хорош?

Apple M1 интересен не столько тем, что построен на базе технологий ARM, сколько своей архитектурой. Здесь на одной подложке собраны сам процессор, в котором по 4 производительных и энергоэффективных ядра, восьмиядерная графическая подсистема, нейромодуль для машинного обучения, огромные (по меркам процессоров) объемы кэш-памяти плюс тут же распаяна оперативная память. Такое решение занимает совсем мало места в корпусе компьютера, потребляет мало энергии (аккумулятор ноутбука дольше не разрядится) и может работать без активного охлаждения (ноутбук будет тихим или вовсе бесшумным) при хорошем уровне производительности.

Чип Apple M1 в Macbook Air Late 2020

Чип Apple M1 в Macbook Air Late 2020 (Фото: iFixit)

И совсем не просто так первым компьютером Apple с процессором M1 стал MacBook Air. С одной стороны, это лэптоп, главными преимуществами которого как раз и должно быть все, что дает новый процессор: компактность, автономность, тишина. С другой стороны, это компьютер для наименее требовательных пользователей, которым практически не нужен никакой специфический софт — достаточно того, что сама Apple предлагает «из коробки»: браузера, проигрывателя, офисного пакета. А для софта, который под ARM адаптировать пока не успели, Apple использует встроенный эмулятор Rosetta 2.

Следующими ПК Apple с M1 после MacBook Air стали 13-дюймовый MacBook Pro и Mac Mini. Также недавно был анонсирован новый iMac. Такие машины уже ориентированы на задачи посерьезнее, но все равно это еще далеко не профессиональный сегмент — на него в Купертино пока лишь намекают. И именно здесь к решению Apple на базе технологий ARM возникает основной вопрос: получится ли «отмасштабировать» M1 до уровня профессиональных решений, где компактность и энергоэффективность не так важны, а на первый план выходит именно производительность? Как реализовать связку М1 с мощными дискретными видеокартами, без которых о монтаже, рендеринге и других сложных вычислениях говорить не приходится? Или может быть Apple вообще готовится к выпуску собственной дискретной графики? Вопросов пока куда больше, чем ответов на них.

Новая линейка тонких (11,5 мм) iMac 2021 на базе M1

Новая линейка тонких (11,5 мм) iMac 2021 на базе M1 (Фото: Apple)

Уже готовые компактные устройства Apple с чипами M1 выглядят действительно интересно, правда выигрыш в производительности в них явно ощущается в основном только в уже адаптированных под ARM программах, но зато он очень заметный. Так что если Intel и AMD не смогут дать достойный ответ конкуренту в нише энергоэффективных ПК, то рост популярности решений Apple не заставит себя ждать даже несмотря на то, что еще какое-то время софта будет не хватать. Массовому пользователю ведь много не нужно.

ARM против x86: В чем разница между двумя архитектурами процессоров?

Вы наверняка знаете, что мир процессоров разбит на два лагеря. Если вы смотрите это видео со смартфона, то для вас работает процессор на архитектуре ARM, а если с ноутбука, для вас трудится чип на архитектуре x86.

А теперь еще и Apple объявила, что переводит свои Mac на собственные процессоры Apple Silicon на архитектуре ARM. Мы уже рассказывали, почему так происходит. А сегодня давайте подробно разберемся, в чем принципиальные отличия x86 и ARM. И зачем Apple в это все вписалась?

Итак, большинство мобильных устройств, iPhone и Android’ы работают на ARM’е. Qualcomm, HUAWEI Kirin, Samsung Exynos и Apple A13/A14 Bionic — это все ARM-процессоры.

А вот на компьютере не так — там доминирует x86 под крылом Intel и AMD. Именно поэтому на телефоне мы не можем запустить Word с компьютера.

x86 — так называется по последним цифрам семейства классических процессоров Intel 70-80х годов.

Чем же они отличаются?

Есть два ключевых отличия.

Первое — это набор инструкций, то есть язык который понимает процессор

x86 процессоры используют сложный набор инструкций, который называется CISC — Complex Instruction Set Computing.

ARM процессоры наоборот используют упрощенный набор инструкций — RISC — Reduced Instruction Set Computing.

Кстати ARM расшифровывается как Продвинутые RISC машины — Advanced RISC Machines.

Наборы инструкций ещё принято назвать архитектурой или ISA — Instruction Set Architecture.

Второе отличие — это микроархитектура. Что это такое?

От того на каком языке говорят процессоры, зависит и то, как они проектируются. Потому как для выполнения каждой инструкции на процессоре нужно расположить свой логический блок. Соответственно, разные инструкции — разный дизайн процессора. А дизайн — это и есть микроархитектура.

  • x86 — CISC
  • ARM — RISC

Но как так произошло, что процессоры стали говорить на разных языках?

История CISC

Памятка программиста, 1960-е годы. Цифровой (машинный) код «Минск-22».

Всё началось в 1960-х. Поначалу программисты работали с машинным кодом, то есть реально писали нолики и единички. Это быстро всех достало и появился Assembler. Низкоуровневый язык программирования, который позволял писать простые команды типа сложить, скопировать и прочее. Но программировать на Assembler’е тоже было несладко. Потому как приходилось буквально “за ручку” поэтапно описывать процессору каждое его действие.

Поэтому, если бы вы ужинали с процессором, и попросили передать его вам соль, это выглядело бы так:

  • Эй процессор, посмотри в центр стола.
  • Видишь соль? Возьми её.
  • Теперь посмотри на меня.
  • Отдай мне соль. — Ага, спасибо!
  • А теперь снова возьми у меня соль.
  • Поставь её откуда взял
  • Спасибо большое! Продолжай свои дела.
  • Кхм… Процессор, видишь перец?
  • И так далее.

Этот подход стал настоящим спасением как для разработчиков, так и для бизнеса. Захотел клиент новую инструкцию — не проблема, были бы деньги — мы сделаем. А деньги у клиентов были.

Недостатки CISC

Но был ли такой подход оптимальным. С точки зрения разработчиков — да. Но вот микроархитектура страдала.

Представьте, вы купили квартиру и теперь вам нужно обставить её мебелью. Площади мало, каждый квадратный метр на счету. И вот представьте, если бы CISC-процессор обставил мебелью вам гостиную, он бы с одной стороны позаботился о комфорте каждого потенциального гостя и выделил бы для него своё персональное место.

С другой стороны, он бы не щадил бюджет. Диван для одного человека, пуф для другого, кушетка для третьего, трон из Игры Престолов для вашей Дейенерис. В этом случае площадь комнаты бы очень быстро закончилась. Чтобы разместить всех вам бы пришлось увеличивать бюджет и расширять зал. Это не рационально. Но самое главное, CISC-архитектура существует очень давно и те инструкции, которые были написаны в 60-х годах сейчас уже вообще не актуальны. Поэтому часть мебели, а точнее исполнительных блоков, просто не будут использоваться. Но многие из них там остаются. Поэтому появился RISC…

Преимущества RISC

С одной стороны писать на Assembler’е под RISC процессоры не очень-то удобно. Если в лоб сравнивать код, написанный под CISC и RISC процессоры, очевидно преимущество первого.

Так выглядит код одной и той же операции для x86 и ARM.

x86

  • MOV AX, 15; AH = 00, AL = 0Fh
  • AAA; AH = 01, AL = 05
  • RET
  • MOV R3, #10
  • AND R2, R0, #0xF
  • CMP R2, R3
  • IT LT
  • BLT elsebranch
  • ADD R2. #6
  • ADD R1. #1
  • elsebranch:
  • END

Представьте, что вы проектируете процессор. Расположение блоков на х86 выглядело бы так.

Каждый цветной квадрат — это отдельные команды. Их много и они разные. Как вы поняли, здесь мы уже говорим про микроархитектуру, которая вытекает из набора команд. А вот ARM-процессор скорее выглядит так.

Ему не нужны блоки, созданные для функций, написанных 50 лет назад.

По сути, тут блоки только для самых востребованных команд. Зато таких блоков много. А это значит, что можно одновременно выполнять больше базовых команд. А раритетные не занимают место.

Еще один бонус сокращенного набора RISC: меньше места на чипе занимает блок по декодированию команд. Да, для этого тоже нужно место. Архитектура RISC проще и удобнее, загибайте пальцы:

  • проще работа с памятью,
  • более богатая регистровая архитектура,
  • легче делать 32/64/128 разряды,
  • легче оптимизировать,
  • меньше энергопотребление,
  • проще масштабировать и делать отладку.

Поэтому наши смартфоны, которые работают на ARM процессорах с архитектурой RISC, долго живут, не требуют активного охлаждения и такие быстрые.

Лицензирование

Но это все отличия технические. Есть отличия и организационные. Вы не задумывались почему для смартфонов так много производителей процессоров, а в мире ПК на x86 только AMD и Intel? Все просто — ARM это компания которая занимается лицензированием, а не производством.

Даже Apple приложила руку к развитию ARM. Вместе с Acorn Computers и VLSI Technology. Apple присоединился к альянсу из-за их грядущего устройства — Newton. Устройства, главной функцией которого было распознавание текста.

Даже вы можете начать производить свои процессоры, купив лицензию. А вот производить процессоры на x86 не может никто кроме синей и красной компании. А это значит что? Правильно, меньше конкуренции, медленнее развитие. Как же так произошло?

Ну окей. Допустим ARM прекрасно справляется со смартфонами и планшетами, но как насчет компьютеров и серверов, где вся поляна исторически поделена? И зачем Apple вообще ломанулась туда со своим Apple Silicon.

Что сейчас?

Допустим мы решили, что архитектура ARM более эффективная и универсальная. Что теперь? x86 похоронен?

На самом деле, в Intel и AMD не дураки сидят. И сейчас под капотом современные CISC-процессоры очень похожи на RISC. Постепенно разработчики CISC-процессоров все-таки пришли к этому и начали делать гибридные процессоры, но старый хвост так просто нельзя сбросить.

Но уже достаточно давно процессоры Intel и AMD разбивают входные инструкции на более мелкие микро инструкции (micro-ops), которые в дальнейшем — сейчас вы удивитесь — исполняются RISC ядром.

Да-да, ребята! Те самые 4-8 ядер в вашем ПК — это тоже RISC-ядра!

Надеюсь, тут вы окончательно запутались. Но суть в том, что разница между RISC и CISC-дизайнами уже сейчас минимальна.

А что остается важным — так это микроархитектура. То есть то, насколько эффективно все организовано на самом камне.

Ну вы уже наверное знаете, что Современные iPad практически не уступают 15-дюймовым MacBook Pro с процессорами Core i7 и Core i9.

А что с компьютерами?

Недавно компания Ampere представила свой 80-ядерный ARM процессор. По заявлению производителя в тестах процессор Ampere показывает результат на 4% лучше, чем самый быстрый процессор EPYC от AMD и потребляет на 14% меньше энергии.

Компания Ampere лезет в сегменты Cloud и Workstation, и показывает там отличные цифры. Самый быстрый суперкомпьютер в мире сегодня работает на ARM ISA. С обратной стороны, Intel пытается все таки влезть в сегмент low power и для этого выпускает новый интересный процессор на микроархитектуре lakefield.

Пока у ноутбуков и процессоров от Intel есть одно неоспоримое достоинство — (охлаждение и) единство архитектуры. Пока на рынке ARM-процессоров существуют Qualcomm, Samsung, MediaTek, в мире x86 творится монополия и разработчикам сильно легче делать софт и игры под “взрослые” процессоры.

И Apple та компания, которая способна мотивировать достаточное количество разработчиков пилить под свой ARM. Но суть этого перехода скорее не в противостоянии CISC и RISC. Поскольку оба подхода сближаются, акцент смещается на микроархитектуру, которую делает Apple для своих мобильных устройств. И судя по всему микроархитектура у них крута. И они хотели бы ее использовать в своих компьютерах.

И если бы Intel лицензировал x86 за деньги другим людям, то вероятно Apple просто адаптировали свою текущую микроархитектуру под x86. Но так как они не могут этого сделать, они решили просто перейти на ARM. Проблема для нас с микроархитектурой в том, что она коммерческая тайна. И мы про нее ничего не знаем.

Итоги

Спрос на ARM в итоге вырастет. Для индустрии это не просто важный шаг, а архиважный. Линус Торвальдс говорил, что пока рабочие станции не станут работать на ARM — на рынке серверов будут использовать x86.

И вот это случилось — в перспективе это миллионы долларов, вложенных в серверные решения. Что, конечно, хорошо и для потребителей. Нас ждет светлое будущее и Apple, действительно, совершила революцию!

Редактор материала: Антон Евстратенко. Этот материал помогли подготовить наши зрители Никита Куликов и Григорий Чирков. Спасибо ребята!

  • Блог компании Droider.Ru
  • Программирование
  • Смартфоны
  • Ноутбуки
  • Процессоры

Разбираемся в архитектурах: x86, ARM и RISK-V

Разбираемся в архитектурах: x86, ARM и RISK-V

О микропроцессорных архитектурах слышали даже те, кто особо не интересуется компьютерными технологиями. Особенно на фоне последних новостей, например, когда Apple начали устанавливать в свои ноутбуки собственные процессоры на архитектуре ARM. Так что такое архитектура, чем отличаются x86 и ARM и что еще за RISC-V? Расскажем подробнее в нашем материале.

Архитектура x86

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

Архитектура — набор свойств и качеств, присущих какому-либо семейству процессоров.

При этом не стоит путать термин с «микроархитектурой» — он, как правило, определяет внутреннюю организацию процессора на более глубоком уровне. Например, практически все процессоры Intel имеют архитектуру x86, а вот микроархитектура меняется с каждым новым поколением — Palm Cove (2018), Sunny Cove (2019) и так далее.

На x86 созданы процессоры, начиная от Intel 8086 и заканчивая Core i7/Core i5/Core i3, Xeon. С 2001 также фигурирует название x86-64 — это расширенная архитектура с поддержкой 64-битных регистров.

Таким образом, архитектура — это общий принцип того, как устроен, на каких принципах и с какой системой команд работает процессор. Проще говоря, если вы хотите заставить процессор выполнить какую-то задачу, ее нужно для начала объяснить. Но как именно, сколько и каких команд для этого потребуется — это и определяет архитектура.

Еще несколько десятилетий назад команды для процессоров прописывались буквально вручную через единицы и нули. Это было невероятно долго и утомительно, поэтому спустя какое-то время появился машинный язык программирования — Ассемблер. С его помощью можно было реализовывать простейшие действия вроде сложения, вычитания и так далее уже небольшими командами. Если кто-то из вас изучал Ассемблер в университете, то вы знаете, что писать на нем какие-то программы — задача не из простых.

В итоге инженеры решили, а что если сделать так, чтобы команда вмещала как можно больше полезных действий, могла выполнять и загрузку из памяти, и какую-то арифметическую операцию. Так появилась CISC (complex instruction set computing) архитектура. Почему мы ее упоминаем? x86 — это самый яркий пример CISC-архитектуры.

Соответственно, многое, что актуально для CISC, будет актуально и для x86, а именно:

  • нефиксированная длина команды;
  • малое количество регистров общего назначения;
  • большое количество различных машинных команд;
  • развитый механизм адресации операндов.

В данном случае архитектура определяет не только некоторые конструктивные особенности (число регистров), но и способ взаимодействия с процессором — систему команд.

Архитектура x86 обеспечивает большие удобства для программистов — множество предподготовленных команд позволяли выполнять определенные действия за минимальное количество строк кода — а это существенная экономия времени и сил. Все эти команды сохранили в ROM-память. Например, в Intel 8086 было «зашито» 98 команд. Программистам было достаточно лишь вызывать нужные.

Архитектура x86 поддерживает несколько режимов работы. Изначально был реализован только реальный режим. Самый простой способ его охарактеризовать — вся память доступна всем. Любое приложение, в том числе и вредоносное, могло получить доступ к любым данным, даже системным.

Решением этой проблемы стало появление защищенного режима, а точнее — колец защиты. Нулевой уровень — самый привилегированный и имеет неограниченный доступ. Этот уровень получили лишь системные процессы. Четвертый уровень в свою очередь имеет минимальный доступ к памяти — его получают всевозможные пользовательские процессы.

Также одной из особенностей х86 является технология SSE (Streaming SIMD Extensions) — набор инструкций, разработанный Intel для вычислений с плавающей точкой. Скалярные процессоры обрабатывают один элемент данных за одну инструкцию (SISD), а векторные способны обрабатывать уже несколько элементов данных (SIMD). Для ускорения процесса вычислений в архитектуре появились так называемые SIMD-расширения. Они позволяли, например, сразу перемножать четыре пары чисел за одну команду.

Если не вдаваться в технические подробности, набор инструкций SSE, а в последствие AVX, позволил повысить производительность до восьми раз в определенных алгоритмах.

С 2005 года архитектура x86 также поддерживает виртуализацию. Это сокрытие фактической реализации через предоставление искусственных «виртуальных» ресурсов. Большинству обычных пользователей виртуализация знакома по таким продуктам, как VMWare и VirtualBox, когда на базе своей ОС вы могли запускать другие операционные системы.

На архитектуре x86 работают практически все десктопные процессоры от Intel и AMD. Несмотря на такое преобладание, x86 и CISC-архитектура в целом имеет ряд минусов.

Главная проблема — это неоднородность инструкций. Они могут иметь разную длину и структуру, из-за чего требуется больше тактов на обработку и больше обращений к памяти. Соответственно, для повышения производительности приходится улучшать аппаратную часть. Это выливается в увеличение не только стоимости, но и тепловыделения.

Именно поэтому, несмотря на все попытки, процессоры на x86-архитектуре так и не смогли пристроить в мобильную электронику. Одной из попыток является линейка процессоров Atom от Intel — некоторые модели встраивались даже в смартфоны и планшеты.

Однако еще в середине 70-х годов инженеры задумывались над проблемой сложных команд. Так появился новый архитектурный подход RISC и одна из его реализаций – ARM.

Архитектура ARM

В философии RISC (англ. Reduced Instruction Set Computer — «компьютер с сокращенным набором команд») инженеры решили устранить главный недостаток CISC. Команды сделали фиксированной длины, но при этом увеличили число регистров, чтобы иметь большее пространство для работы с данными и реже обращаться к памяти.

С точки зрения программирования стало сложнее, поскольку из-за унификации команд одно и то же действие в RISC требует больше инструкций, чем в CISC.

Однако с другой стороны единая длина для всех команд позволила существенно снизить требования к аппаратной начинке процессора. Это в свою очередь привело к удешевлению, пониженному энергопотреблению и тепловыделению.

Стоит понимать, что RISC — это всего лишь концепция, архитектурный подход. Преимущества этого подхода сразу же приметили в британской компании ARM Limited. Они внесли различные усовершенствования в эту концепцию и уже в 1985 году представили свой первый процессор ARM1. В последствие под ARM начали понимать авторскую лицензируемую архитектуру процессоров.

Поскольку изначально ARM задумывалась как усовершенствование архитектуры RISC, то для ранних чипов были характерны некоторые общие черты:

  • фиксированный размер команд;
  • большое число регистров общего назначения;
  • специализированные команды для операций с памятью — чтения или записи.

Однако постепенно разработчики ARM вносили все больше изменений и модификаций, отклоняясь от классической концепции RISC. Например, из 31 регистра программисту доступно всего 16, что не так уж и много. Также в некоторых случаях одна команда в ARM может выполнять не только обработку данных (например, сложение) но и сдвиг. Это позволяет частично уменьшить сложность кода, но за счет увеличения сложности самих команд. Еще одно важная особенность ARM — это развитый набор видов адресации, который изначально не задумывался в концепции RISC архитектуры.

Помимо этого в ARM имеется условное исполнение. Проще говоря, каждая команда может исполняться или не исполняться в зависимости от определенных предустановок (установленных флагов).

Современные мобильные процессоры — это сложная система на кристалле. Помимо ARM-ядер используются всевозможные узкоспециализированные чипы. Например, NEON Data Engine — это, по сути, аналог расширения SSE для архитектуры x86.

Что же получается, архитектура ARM — это более дешевый и унифицированный, но за счет этого менее производительный вариант, чем процессоры на x86-архитектуре? В каком-то смысле — да. Принципиально другой подход к формированию команд и некоторые другие конструктивные особенности сделали ARM отличным вариантом для процессоров мобильной электроники. Однако граница между архитектурами становится все менее явной.

Во-первых, в x86-процессорах уже используется разбиение длинных инструкций на более мелкие. Фактически, в CISC-процессорах применяется своеобразное RISC-ядро, что позволяет повысить производительность. Во-вторых, производительность ARM процессоров постепенно догоняет x86 — Apple M1 и его вариации один из самых ярких примеров. Соответственно, процессоры на этой архитектуре, как и x86, уже могут использоваться в ноутбуках и даже ПК. Почему ARM может стать будущей архитектурой для персональных компьютеров мы рассказали в отдельном материале.

Ключевое отличие этих двух архитектур заключается в системе команд, что свою очередь приводит к различным конструктивным различиям, вроде числа регистров и дополнительных модулей.

Архитектура x86, несмотря на сложные команды и требовательность к аппаратной части, все еще остается одним из лучших решений в соотношении цены и производительности. Переходы на новые техпроцессы и многоядерность позволяют и дальше использовать х86 для высокопроизводительной техники вроде ноутбуков, персональных компьютеров и серверов.

В свою очередь ARM хоть и задумывалась изначально как RISC-подобная, со временем обросла множеством усовершенствований. Это дает приближенную к десктопным процессорам производительность, но, как можно заметить с теми же чипами M1 и M2, еще и больший размер кристалла и тепловыделение. Например, площадь чипа Apple M2 доходит до 155 мм 2 , что сравнимо с площадью чипа Intel Core i7 8700K.

Архитектура RISC-V

Как мы выяснили, ARM и x86 — это своеобразные противоположности, у каждой из которых свои достоинства и недостатки. Архитектура x86 не подходит для мобильной электроники, но ARM требует лицензирования. Если вы захотите спроектировать свой процессор на архитектуре ARM, вам придется заплатить от одного миллиона долларов. Так что же делать?

Над этим вопросом задумались в отделении информатики Калифорнийского университета в Беркли и в 2010 году представили RISC-V. Первая и самая главная отличительная черта — это полностью открытая архитектура, а значит, вы можете использовать ее абсолютно бесплатно.

RISC-V — это также улучшенная версия классической RISC. Набор команд не представляет собой какую-либо новую технологию, поскольку RISC-V основана на идеях компьютерной архитектуры, которым уже не менее 40 лет. Да, фактически RISC-V — это реализация того самого подхода под названием RISC, который инженеры придумали еще несколько десятилетий назад.

Главное достоинство RISC-V в том, что архитектура не подвергается чрезмерной оптимизации, поэтому подходит для самых разнообразных вычислительных задач. Базовая RISC-V содержит минимальный набор инструкций — всего 47, но при необходимости программисты могут самостоятельно расширять его для решения конкретно своей задачи. Это модульная структура — то есть вы можете взять только то, что вам необходимо.

RISC-V и ARM-архитектуры основаны на одном подходе — RISC (Reduced Instruction Set Computer). В связи с этим они обе подходят для микроэлектроники. Однако ARM — платная и по ходу своего развития претерпела множество изменений. Представьте себе автомобиль, который поддался тюнингу — он стал быстрее и мощнее, но за это приходится платить.

RISC-V в свою очередь — это нетронутый, «стоковый» автомобиль. Да, он не такой быстрый, но бесплатный и, самое главное, вы сами можете выбирать, что в нем «тюнинговать». RISC-V с успехом применяется в простейших микропроцессорах — там, где не нужна высокая производительность.

Самый известный пример — это контроллеры для SSD-дисков Western Digital. Компания Alibaba развивает чипы на RISC-V в рамках дочерней компании T-Head. Также уже выпущено больше десяти различных контроллеров на базе этой архитектуры. Число участников международной организации RISC-V перевалило за сотню — все эти компании видят для себя перспективы в этой архитектуре.

Что в итоге

Архитектура x86 — это яркий представитель CISC-архитектур: большие и сложные команды, требовательность к аппаратной части и высокое энергопотребление. ARM и RISC-V — это представители лагеря RISC-архитектур: упрощенные команды фиксированной длины, небольшое энергопотребление и меньшая требовательность к аппаратной части.

Архитектура ARM — это полностью коммерческое решение, поэтому оно предлагает высочайшую производительность и целую линейку готовых ядер для разных нужд. RISC-V в свою очередь — это базовый конструктор, на основе которого можно проектировать нетребовательные к производительности системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *