ARM64 — 64-битная архитектура процессоров¶
ARM64 (также известная как AArch64) — 64-битная инструкционная архитектура семейства ARM, представленная в 2011 году как расширение 32-битной архитектуры ARMv7. Она используется в смартфонах, планшетах, серверах, настольных компьютерах и встраиваемых системах. Ключевые особенности — фиксированная длина инструкций (4 байта), набор регистров общего назначения увеличенного объёма и поддержка 64-битной виртуальной памяти.
¶История создания
Разработка 64-битного расширения ARM началась в конце 2000-х годов в подразделении ARM Limited (Великобритания). Необходимость была обусловлена ростом объёмов оперативной памяти в мобильных устройствах: 32-битная архитектура формально ограничивала адресное пространство 4 ГБ, что к началу 2010-х стало узким местом для топовых смартфонов и серверных решений.
Архитектура ARMv8-A, включающая 64-битный режим AArch64, была официально анонсирована в октябре 2011 года. Первые процессоры с поддержкой ARM64 появились в коммерческих устройствах в 2013 году: ARM Cortex-A57 и Cortex-A53, построенные по 28-нм техпроцессу. Первыми массовыми продуктами стали смартфоны Apple A7 (iPhone 5s, сентябрь 2013) и Samsung Exynos 5433 (Galaxy Note 4, 2014).
¶Отличия от 32-битной ARM
| Параметр | ARMv7 (32 бит) | ARMv8-A / AArch64 (64 бит) |
|---|---|---|
| Разрядность регистров | 32 бита | 64 бита |
| Количество регистров общего назначения | 16 | 31 |
| Регистры плавающей точки | VFPv3/v4 (16×64 бит) | NEON/ASIMD (32×128 бит) |
| Адресное пространство | до 4 ГБ | до 256 ТБ (реализации — до 48 бит) |
| Длина инструкций | 32 бита (Thumb-2 — 16/32) | 4 байта (фиксированно) |
| Условные инструкции | широкое применение | почти полностью упразднены |
В AArch64 отказ от условного выполнения большинства инструкций упростал конвейер процессора и позволил повысить IPC (число инструкций за такт). Дополнительно введены регистры возврата ссылок (X30/LR), 64-битный указатель стека (SP) и расширенные возможности виртуальной памяти с четырьмя уровнями трансляции адресов.
¶Режимы совместимости
ARMv8-A поддерживает три состояния исполнения:
- AArch64 — 64-битный режим с собственным набором инструкций A64.
- AArch32 — режим совместимости с 32-битной архитектурой ARMv7, включая Thumb-2.
- AArch32 на EL0 — в некоторых реализациях 32-битный код может выполняться только на низшем уровне привилегий (пользовательском), что упрощает микропроцессорное ядро.
Благодаря двойному режиму операционные системы (Android, iOS, Linux) могли плавно переходить на 64-бит, сохраняя поддержку старых 32-битных приложений.
¶Применение
¶Мобильные устройства
ARM64 стал де-факто стандартом для смартфонов и планшетов. К 2017 году практически все мобильные SoC (Qualcomm Snapdragon, Samsung Exynos, Apple A-серия, MediaTek Helio, Huawei Kirin) перешли на 64-битные ядра. Google Play требует поддержки 64-битных ABI с 2019 года.
¶Серверы и дата-центры
В 2013 году стартовал проект Project Denver (NVIDIA), а в 2016 году компания Cavium выпустила процессор ThunderX. Наибольшего размаха серверный сегмент достиг с выходом AWS Graviton (Amazon, 2018) и Ampere Altra (2020). Флагманские серверные ядра — ARM Neoverse N1, V1 и N2. По состоянию на 2024 год облачные провайдеры активно используют ARM-серверы, поскольку они обеспечивают более высокую энергоэффективность по сравнению с x86-64.
¶Настольные компьютеры
В 2020 году Apple представила переход на ARM64 в линейке Mac (чипы M1, M2, M3, M4) — процессоры Apple Silicon заменили Intel-процессоры. Microsoft поддерживает ARM64 в Windows 10/11, однако экосистема настольных ARM-приложений в Windows остаётся значительно меньше, чем x86-64.
¶Встраиваемые системы
Архитектура применяется в промышленных контроллерах, сетевом оборудовании, автомобильной электронике (стандарты ISO 26262, ASIL-D) и робототехнике.
¶Программная поддержка
ARM64 поддерживается основными операционными системами: Linux (ядро с версии 3.7), Android (с версии 5.0 Lollipop), iOS (с версии 7), Windows 10/11, FreeBSD, OpenBSD, macOS. Компиляторы GCC, LLVM/Clang, MSVC генерируют код для AArch64. Популярен инструмент эмуляции и кросс-компиляции QEMU.
¶См. также
- ARM (архитектура)
- RISC-V
- x86-64
¶Источники
- ARM Architecture Reference Manual ARMv8-A
- ARM Limited. ARM Architecture Evolution — обзоры анонсов ARMv8
- Apple Inc. Technical Overview Apple Silicon
- IEEE Micro: обзоры процессорных архитектур AArch64
