Найти в Дзене
IT - это просто

История архитектур процессоров: x86, amd64, ARM, RISC-V

Автор уже рассказывал вам о том, как устроен компьютер изнутри, и даже погружался в дебри двух противоборствующих философий — CISC и RISC. Если помните, это были два подхода к тому, как процессору вообще общаться с миром: делать всё сразу сложными командами (CISC) или дробить задачи на простые, но быстрые действия (RISC). Здравствуй, дорогой читатель! С вами снова Автор, и на связи постоянная рубрика, где даже самые сложные технические темы становятся простыми и понятными. Сегодня Автор предлагает пойти дальше. Ведь философия — это хорошо, но как она воплощается в жизнь? Давайте поговорим о конкретных архитектурах процессоров. Тех самых, названия которых мы постоянно видим в новостях: x86, amd64, ARM, а теперь еще и RISC-V. Тема архитектур — это тот случай, когда легко утонуть в технических деталях. Мы же не будем лезть в транзисторы и схемотехнику. Автор предлагает взглянуть на это как на… путешествие во времени и знакомство с большой семьей. Представьте себе, что процессор — это чело
Оглавление

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

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

Сегодня Автор предлагает пойти дальше. Ведь философия — это хорошо, но как она воплощается в жизнь? Давайте поговорим о конкретных архитектурах процессоров. Тех самых, названия которых мы постоянно видим в новостях: x86, amd64, ARM, а теперь еще и RISC-V.

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

Язык, на котором говорят внутри

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

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

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

Сегодня мы отправимся в путешествие во времени и посмотрим, как появлялись эти "языки" и кто на них говорит.

Конец 1970-х: Появление старшего брата x86 (16 бит)

Наш рассказ начинается в далеком 1978 году. Компания Intel выпускает процессор 8086. Почему архитектуру назвали x86? Тут всё просто, как фамилия. У Intel выходили процессоры, модели которых заканчивались на "86": 8086, 80286, 80386... Журналисты и инженеры для удобства стали называть всю эту линейку "x86", и название прижилось.

x86 появился первым. Илья знает все старые игры и программы — для него это не проблема.
x86 появился первым. Илья знает все старые игры и программы — для него это не проблема.

В этой истории старший брат Илья — идеальная аналогия для x86. Почему? Потому что Илья появился в семье самым первым. У него накопилось больше всего игрушек, книжек и видеоигр. Он привык к своему языку и к тому, что все вокруг (программы) должны под него подстраиваться.

И главное правило для x86, как и для старшего брата: обратная совместимость. Илья должен помнить, как играть в свои старые машинки, даже если ему уже 12 лет и он увлекается программированием. Точно так же современный процессор Intel должен уметь выполнять программы, написанные для того самого 8086 1978 года. Это и есть судьба x86 — нести на себе груз прошлого, чтобы все старые "игрушки" работали.

Середина 1980-х: Первое взросление (32 бита)

Ребенок растет, и его язык усложняется. В 1985 году Intel выпускает 80386 (i386) — первый 32-битный процессор в этой линейке. Это был огромный шаг. Теперь процессор мог работать с более большими объемами памяти и обрабатывать данные более крупными кусками. Как если бы Илья перестал говорить короткими предложениями из двух слов и начал строить сложные фразы. Но язык остался тем же — всё тем же x86, просто расширенным.

32 бита — как стать старше и начать говорить сложными предложениями. Программ становится больше.
32 бита — как стать старше и начать говорить сложными предложениями. Программ становится больше.

Конец 1990-х: Кризис среднего возраста и появление amd64

Шло время, программы становились всё более прожорливыми. И тут все уперлись в стену. 32-битная архитектура имеет физический предел: она может адресовать (работать) только с 4 гигабайтами оперативной памяти.

Автор просит представить: у Ильи есть маленькая комната, в которую помещается ровно 4 игрушки. А их у него уже 10. Куда складывать остальные? Это была настоящая проблема для серверов и мощных компьютеров в конце 90-х.

32-битный процессор видел только 4 игрушки (гигабайта памяти). amd64 расширил комнату, но не выбросил старые игрушки.
32-битный процессор видел только 4 игрушки (гигабайта памяти). amd64 расширил комнату, но не выбросил старые игрушки.

Intel решила пойти революционным путем. Она создала новую архитектуру IA-64 (процессоры Itanium). Она была мощной, 64-битной, очень быстрой... но у нее был фатальный недостаток. Она не понимала старые программы для x86. Представьте, что Илья вдруг забыл все слова, которые знал с детства, и начал говорить на выдуманном эльфийском языке. С ним никто не смог бы общаться. Рынок отверг Itanium — слишком дорого было переписывать все программы.

И тут на сцену выходит компания AMD — вечный конкурент Intel. Они предложили гениальное и элегантное решение. А что, если не придумывать новый язык, а просто расширить старый, добавив в него 64-битные возможности? В 1999 году AMD анонсирует amd64 (также известную как x86-64 или просто x64).

Это как если бы Илья вырос, переехал в большую квартиру (64 бита), но при этом прекрасно помнил все свои детские игры и слова. Он просто добавил в свой лексикон новые понятия. Решение было настолько логичным, что в итоге Intel сама приняла эту архитектуру. Сегодня, когда вы видите "64-битная версия Windows", на вашем компьютере, скорее всего, работает именно amd64 — прямой потомок 30-летнего x86.

1990-е — 2010-е: Энергичная средняя сестра ARM

Пока Intel и AMD выясняли, кто главный в мире больших компьютеров, в тени подрастала совсем другая архитектура. ARM.

ARM родилась как типичный представитель философии RISC — простые и быстрые команды. Но её главная суперсила была не в скорости вычислений, а в энергоэффективности. Процессоры ARM потребляют так мало энергии, что почти не греются и могут работать от батарейки часами.

ARM — как Алиса: энергичная, не перегревается и живёт там, где важна батарейка. А теперь ещё и взрослые задачи тянет.
ARM — как Алиса: энергичная, не перегревается и живёт там, где важна батарейка. А теперь ещё и взрослые задачи тянет.

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

Она идеально подошла для мобильных устройств: смартфонов, планшетов, плееров. Пока x86 грелся и требовал мощных вентиляторов, ARM тихо работал в вашем кармане.

Долгое время ARM была "недорослем" и не могла конкурировать с x86 в серьезных задачах. Но в 2011 году она тоже повзрослела, представив 64-битную версию (ARMv8, AArch64). И тут случилось то, что мы видим сейчас: Apple переводит свои Mac на чипы M1, M2 и далее — а это ARM. Amazon делает свои серверные процессоры Graviton на ARM. Теперь Алиса доросла до того, чтобы помогать Илье с его "взрослыми" задачами, но делает это гораздо экономичнее.

2010-е: Свободная малышка RISC-V

И наконец, познакомьтесь с самой младшей в семье — Ариной. Ей 1-2 года. Она только учится говорить, познает мир. Но у неё есть одно огромное преимущество перед старшими: она открыта для всех.

Арина пока не обременена грузом старых игрушек (как Илья) и не привязана к коммерческим интересам (как Алиса, которая принадлежит компании ARM). Её язык может использовать любой желающий совершенно бесплатно.

RISC‑V — как Арина: её язык доступен всем, и она растёт очень быстро.
RISC‑V — как Арина: её язык доступен всем, и она растёт очень быстро.

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

Пока RISC-V — действительно малыш. Она используется в простых контроллерах, датчиках, "умных" лампочках. Но она растёт не по дням, а по часам. Например, китайские процессоры "Сяншань" — это уже серьезные системы на RISC-V. Автор считает, что у неё огромное будущее, особенно в мире, где все устали от монополий.

Где каждый из них живет?

Итак, у нас получилась прекрасная семья.

  • Илья (x86/amd64) — старший, сильный, работящий. Он живет в больших домах: домашние ПК, мощные ноутбуки для игр и работы, серверы в дата-центрах. Он может всё, но требует много "еды" (энергии) и сильно греется.
  • Алиса (ARM) — средняя, шустрая и неутомимая. Она живет везде, где важна батарейка: в вашем смартфоне, планшете, умных часах, а теперь всё чаще заглядывает и в ноутбуки (Apple MacBook) и даже на серверы.
  • Арина (RISC-V) — маленькая исследовательница. Она пока обитает в экспериментальных лабораториях, в датчиках интернета вещей и в любых устройствах, где нужна свобода от лицензий.

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

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

Ответ кроется в экосистеме и специализации.

Программы пишутся под конкретный язык. Мир залил триллионы строк кода под x86. Переписать их для ARM — это работа на десятилетия. Именно поэтому Windows так долго не могла нормально работать на ARM-ноутбуках — программы, написанные для x86, приходилось постоянно переводить, и они тормозили.

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

Итого

Так что же такое архитектура процессора? Это не просто набор технических терминов. Это характер процессора, его язык и его судьба.

Как и в любой хорошей семье, здесь каждый важен. Илья (x86) помогает с тяжёлыми вычислениями, Алиса (ARM) обеспечивает работу наших карманных помощников, а маленькая Арина (RISC-V) только начинает познавать мир, но, возможно, именно она изменит его до неузнаваемости.

У каждого свой характер и своя роль. Вместе они делают мир технологий удобным для всех.
У каждого свой характер и своя роль. Вместе они делают мир технологий удобным для всех.

Подписывайтесь на канал, чтобы вместе с Автором разбираться в сложных технологиях простыми словами. Мы еще много о чем не поговорили!

UPD

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

  • IA-64: Та самая "тупиковая ветвь" эволюции от Intel (Itanium). Не путать с x86-64. Совершенно другая архитектура, несовместимая с x86.
  • AArch32 / AArch64: Официальные названия 32-битного и 64-битного состояний в архитектуре ARM.
  • big.LITTLE: Технология ARM, где в одном процессоре собраны мощные (big) и энергоэффективные (LITTLE) ядра. Как Алиса и Арина работают в одной команде.
  • Микроархитектура: Это не язык (ISA), а конкретная реализация этого языка. Например, язык x86, а микроархитектуры — Intel Core, AMD Zen. Это как акцент или манера речи Ильи, но говорит он всё равно на русском.
  • Набор инструкций (ISA): Собственно, и есть тот самый "словарь" процессора.
  • Совместимость на уровне двоичного кода: Самый глубокий уровень совместимости, когда программа для одной архитектуры запускается на другой без переделок (как правило, благодаря эмуляции).

Также Автор сознательно не упомянул архитектуры MIPS, PowerPC, SPARC и другие, так как цель была дать базовое, понятное введение, а не энциклопедическую справку. О них, возможно, поговорим в следующих сериях.