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

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

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

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

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

Мы уже писали о технологическом прорыве процессоров Apple M1. Пора раскрыть эту тему глубже. 

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 — в простоте и гибкости.

Текст:

Михаил Полянин

Редактура:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Отлить в бетоне!
Отлить в бетоне!

Сага о генераторах статических сайтов.

medium
Сжатие без потерь: как это работает
Сжатие без потерь: как это работает

Когда копия не отличается от оригинала.

easy
Как устроен интернет: адреса

Вторая часть рассказа об устройстве интернета. Читайте, пока не заблокировали!

easy
Почему разработчики любят запускать Doom на разном железе

Потому что это очень просто.

easy
SSL-сертификаты и безопасный интернет

Ваше соединение надёжно защищено. Или нет.

easy
Двоичный калькулятор из бусин и палок
Двоичный калькулятор из бусин и палок

Выглядит странно, но при этом всё работает

easy
Как работает шифрование в мессенджерах
Как работает шифрование в мессенджерах

Секретная переписка.

hard
Как на самом деле работает Wi-Fi

Пособие для тех, кому нужно больше, чем пароль.

easy
Myspace потеряла архивы за 12 лет. Как не потерять свои
Myspace потеряла архивы за 12 лет. Как не потерять свои

Почему так сложно сберечь важные данные и как с этим быть вообще.

easy
Как начать программировать на Python

Если знаете JavaScript, освоиться в Питоне можно за 15 минут.

easy
Кто такой архитектор в ИТ и как им стать
Кто такой архитектор в ИТ и как им стать

Сам код не пишет, а другие — пишут.

easy
Роман Халкечев, руководитель отдела аналитики в Яндекс.Еде и Лавке
Роман Халкечев, руководитель отдела аналитики в Яндекс.Еде и Лавке

Часть 2: о Яндекс.Еде и Лавке, аналитических задачах и оптимизации бизнеса на основе данных.

easy
Как школьный учитель стал фронтенд-разработчиком
Как школьный учитель стал фронтенд-разработчиком

О старте карьеры фронтенд-разработчика

easy
easy