Открыть сервис

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):

Переход между уровнями осуществляется через исключения (прерывания, системные вызовы, сбои). Каждый уровень имеет собственное адресное пространство и набор системных регистров.

Классификация процессоров

Процессоры на базе 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 →