AArch64
AArch64 — это 64-битная архитектура набора команд (ISA), разработанная компанией Arm Holdings. Она представляет собой эволюционное развитие 32-битной архитектуры ARM (ARMv7 и более ранних) и является основой для всех современных процессоров ARMv8-A и ARMv9-A. AArch64 обеспечивает поддержку 64-битного адресного пространства, увеличенное количество регистров общего назначения и новую систему команд, несовместимую с 32-битным режимом ARM (A32/T32), хотя процессоры могут поддерживать оба режима.
История
Разработка 64-битной архитектуры ARM началась в 2007 году в ответ на растущие потребности рынка серверов, высокопроизводительных вычислений и мобильных устройств, где 32-битные процессоры сталкивались с ограничениями по адресуемой памяти. Первая спецификация ARMv8-A была анонсирована в октябре 2011 года. Она вводила два основных состояния выполнения: AArch64 (64-битный режим) и AArch32 (32-битный режим, обратно совместимый с ARMv7-A).
Первым коммерческим продуктом на базе AArch64 стал процессор Cortex-A53, представленный в 2012 году. Он был спроектирован как энергоэффективное ядро для мобильных устройств и встраиваемых систем. Вслед за ним появился высокопроизводительный Cortex-A57. Первые массовые устройства на AArch64, такие как смартфоны iPhone 5s (с процессором Apple A7) и Samsung Galaxy S6 (с Exynos 7420), вышли на рынок в 2013—2015 годах.
С развитием облачных вычислений и искусственного интеллекта AArch64 стала активно внедряться в серверном сегменте. В 2018 году компания Amazon Web Services представила собственные процессоры Graviton на базе AArch64, а в 2020 году — Graviton2. Крупные производители, такие как Huawei (Kunpeng 920), Ampere Computing (Altra) и Fujitsu (A64FX, используемый в суперкомпьютере Fugaku), также выпустили серверные решения на этой архитектуре.
Архитектурные особенности
Регистры и система команд
AArch64 предоставляет 31 64-битный регистр общего назначения (X0–X30), а также отдельный нулевой регистр (XZR). Для работы с 32-битными данными используются подмножества W0–W30. В отличие от AArch32, где регистры были частично перекрывающимися, в AArch64 все регистры являются 64-битными, что упрощает разработку компиляторов и операционных систем.
Система команд AArch64 является полностью новой и несовместимой с 32-битными наборами. Она включает:
- Фиксированную длину инструкций — 32 бита (4 байта).
- Условное выполнение инструкций (через предикаты в коде операции, а не через младшие биты, как в A32).
- Поддержка SIMD-инструкций через расширения Neon (128-битные регистры V0–V31) и SVE/SVE2 (Scalable Vector Extension, с переменной длиной векторов).
- Криптографические инструкции (AES, SHA-1, SHA-256) в стандартном наборе.
Адресация и виртуальная память
AArch64 поддерживает 64-битное виртуальное адресное пространство, разделённое на две половины: нижняя (0x0000... — 0x7FFF...) для пользовательского режима и верхняя (0x8000... — 0xFFFF...) для режима ядра. Реализована поддержка страничной памяти с размерами страниц 4 КБ, 16 КБ и 64 КБ, а также больших страниц (2 МБ, 32 МБ, 512 МБ, 1 ГБ) для снижения накладных расходов на трансляцию.
Физическая адресация может достигать 48 бит (с возможностью расширения до 52 бит в ARMv8.2), что позволяет адресовать до 4 ПБ (петабайт) оперативной памяти.
Исключения и привилегии
Архитектура AArch64 поддерживает четыре уровня привилегий (Exception Levels, EL):
- EL0 — пользовательские приложения.
- EL1 — операционная система (ядро).
- EL2 — гипервизор (виртуализация).
- EL3 — доверенная среда (Secure Monitor, для TrustZone).
Переход между уровнями осуществляется через исключения (прерывания, системные вызовы, сбои). Каждый уровень имеет собственное адресное пространство и набор системных регистров.
Классификация процессоров
Процессоры на базе AArch64 делятся на несколько категорий:
Мобильные и встраиваемые
- Cortex-A (высокопроизводительные): Cortex-A53, A55, A57, A72, A76, A78, X1, X2, X3.
- Cortex-R (реального времени): не поддерживают AArch64 (остаются 32-битными).
- Cortex-M (микроконтроллеры): с 2020 года некоторые ядра (Cortex-M85) получили поддержку AArch64 в версии ARMv8-M.
Серверные и HPC
- Neoverse (линейка Arm для инфраструктуры): Neoverse N1, N2, V1, V2, E1.
- Собственные разработки: Amazon Graviton (Graviton1–4), Ampere Altra/AmpereOne, Huawei Kunpeng, Fujitsu A64FX.
Пользовательские реализации
- Apple Silicon: серии A (A7–A17), M (M1–M3) и более новые. Используют собственную микроархитектуру, частично отличную от эталонных ядер Arm.
- Qualcomm Kryo: в Snapdragon 8xx и 7xx.
- Samsung Exynos: собственные ядра M (Mongoose) и Cortex.
Применение
Мобильные устройства
AArch64 является стандартом для всех современных смартфонов и планшетов на базе Android и iOS. Начиная с 2014 года, все массовые процессоры для этих устройств (Qualcomm Snapdragon, MediaTek Dimensity, Apple A-серии) используют 64-битную архитектуру.
Персональные компьютеры
С 2020 года Apple перевела линейку Mac на процессоры собственной разработки (M1, M2, M3), работающие на AArch64. Это позволило достичь высокой производительности на ватт и длительного времени автономной работы. Компания Microsoft также выпускает версии Windows для ARM64, которые работают на устройствах с процессорами Qualcomm Snapdragon 8cx и Microsoft SQ.
Серверы и облачные вычисления
AArch64 активно используется в центрах обработки данных для снижения энергопотребления. Крупнейшие облачные провайдеры (AWS, Oracle, Alibaba Cloud) предлагают виртуальные машины на базе собственных процессоров AArch64. В 2023 году доля серверов на ARM в мировом объёме поставок превысила 10 % и продолжает расти.
Высокопроизводительные вычисления (HPC)
Суперкомпьютер Fugaku (Япония), построенный на процессорах Fujitsu A64FX (48 ядер, SVE), с 2020 по 2022 год занимал первое место в рейтинге TOP500. В 2023 году в топ-10 вошли системы на базе Ampere Altra и Graviton3.
Встраиваемые системы и IoT
AArch64 применяется в роутерах, сетевых устройствах, автомобильных системах (инфотейнмент, ADAS) и промышленных контроллерах. Благодаря низкому энергопотреблению и поддержке виртуализации, она подходит для задач, требующих высокой вычислительной мощности при ограниченном тепловыделении.
Операционные системы и экосистема
AArch64 поддерживается всеми основными операционными системами:
- Linux — полноценная поддержка в ядре (архитектура arm64). Дистрибутивы: Ubuntu, Debian, Fedora, Arch Linux, Alpine.
- Windows — Windows 10/11 for ARM64 (с эмуляцией x86-приложений).
- macOS — начиная с macOS Big Sur (11.0) для Apple Silicon.
- Android — поддержка AArch64 с версии 5.0 (Lollipop).
- FreeBSD, OpenBSD, NetBSD — официальные порты.
Экосистема программного обеспечения активно развивается. Большинство современных компиляторов (GCC, LLVM/Clang, Rustc) генерируют код для AArch64. Популярные языки программирования (Python, Java, Go, Node.js) имеют нативные сборки. Для совместимости с устаревшим x86-софтом используются эмуляторы (Rosetta 2 от Apple, QEMU, Microsoft x86-эмуляция).
Критика и ограничения
Несмотря на преимущества, AArch64 имеет ряд недостатков:
- Фрагментация экосистемы. Разные производители (Apple, Qualcomm, Ampere) вносят собственные расширения и оптимизации, что усложняет универсальную поддержку.
- Производительность в некоторых сценариях. В серверных задачах, оптимизированных под x86 (например, базы данных с интенсивными вычислениями), AArch64 может уступать решениям Intel/AMD.
- Эмуляция x86. На Windows ARM64 и macOS эмуляция приложений x86 приводит к снижению производительности на 20–40 % по сравнению с нативным кодом.
- Ограниченный выбор периферии. Некоторые специализированные устройства (например, PCIe-карты для майнинга или старые промышленные контроллеры) не имеют драйверов для AArch64.
Интересные факты
- Архитектура AArch64 была спроектирована с учётом возможности масштабирования до 128-битных вычислений (через SVE), хотя физическая реализация пока остаётся 64-битной.
- Процессор Apple M1 Ultra объединяет два кристалла M1 Max через мост UltraFusion, обеспечивая 114 миллиардов транзисторов и 20 вычислительных ядер.
- В 2022 году Arm объявила о прекращении лицензирования 32-битных ядер Cortex-A, фактически завершив эру AArch32 в новых мобильных процессорах.
- Суперкомпьютер Fugaku потребляет около 28 МВт электроэнергии, что меньше, чем у многих систем на x86 сопоставимой производительности.
Источники
- Arm Architecture Reference Manual for ARMv8-A (Arm Limited, 2013–2023)
- «ARMv8-A Architecture Overview» (Arm Developer, 2015)
- «The ARMv8-A Architecture and Its Ongoing Development» (David Brash, 2018)
- «AArch64: The 64-bit ARM Architecture» (ARM White Paper, 2011)
- «Fujitsu A64FX Microarchitecture Manual» (Fujitsu, 2020)
- «Amazon Graviton2: First Impressions and Performance» (AWS, 2020)
- «Windows on ARM: History and Future» (Microsoft, 2023)
- TOP500 Supercomputer List (2020–2023)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →