EMZETT.
Увійти

x86-64 і ARM64

Коротко: x86-64 (також AMD64) і ARM64 (AArch64) — дві найважливіші архітектури набору команд для 64-бітних процесорів. x86-64 стоїть у більшості ПК і серверів, ARM64 — у смартфонах, комп’ютерах Apple Mac і дедалі частіше в серверах та ноутбуках.

Докладніше: Набір команд (ISA) визначає, які машинні команди розуміє процесор. Програми компілюються під нього й тому працюють лише на відповідній архітектурі, якщо їх не транслюють чи не емулюють.

Подробиці

x86-64 (AMD64)ARM64 (AArch64)
РодинаCISC (складні команди змінної довжини)RISC (прості команди фіксованої довжини 32 біти)
ВиробникиIntel, AMDApple, Qualcomm, Samsung, Ampere, Amazon (Graviton)
ЛіцензуванняIntel/AMD із перехресним ліцензуванням, закритеARM Holdings ліцензує дизайн багатьом
Типове застосуванняНастільні ПК, ноутбуки, сервери, ігриСмартфони, планшети, Mac на Apple silicon, вбудовані, хмара, Raspberry Pi
Сильна сторонаНайвища пікова продуктивність, величезна програмна базаВисока ефективність (продуктивність на ват), мало відхідного тепла
Гібридні ядраЯдра Intel P/Ebig.LITTLE / Apple P/E
Регістри16 загального призначення31 загального призначення
Програмна сумісністьWindows, Linux, macOS (Intel), майже всі програми для ПКAndroid, iOS, macOS (Apple silicon), Linux, Windows на ARM

Важливі наслідки:

  • Сумісність: програма для x86 не запускається напряму на ARM. Цим займаються транслятори (Rosetta 2 на Mac, Prism у Windows на ARM).
  • Енергія: у ядер ARM простіше декодування команд, тому вони економніші. Це пояснює час роботи смартфонів і MacBook від акумулятора.
  • Сучасні процесори x86 всередині розбивають свої CISC-команди на RISC-подібні мікрооперації; різниця менш різка, ніж раніше.
  • Історія: AMD розробила x86-64 (2003) як розширення 32-бітного x86, звідси «AMD64». Intel її прийняла. ARM виникла 1985 року, 64-бітна версія (ARMv8) — 2011.
  • 32-бітна ARM (ARMv7) у нових пристроях майже не потрібна.
  • RISC-V: третій, відкритий набір команд зростаючого значення.
  • Програмування: під час компіляції вказуйте цільову архітектуру (--target aarch64). Образи Docker існують для linux/amd64 та linux/arm64.

Див. також: 16, 32 і 64 біти, Процесор (CPU), Машинний код