stringtranslate.com

AArch64

AArch64 или ARM64 — это 64-битное расширение семейства архитектуры ARM .

Платформа Armv8-A с процессорным чипом Cortex-A57 / A53 MPCore big.LITTLE

Впервые он был представлен в архитектуре Armv8-A . Arm выпускает новое расширение каждый год. [1]

Расширения и функции ARMv8.x и ARMv9.x

Анонсированный в октябре 2011 года [2] ARMv8-A представляет собой фундаментальное изменение в архитектуре ARM. Он добавляет дополнительную 64-битную архитектуру под названием «AArch64» и связанный с ней новый набор инструкций «A64». AArch64 обеспечивает совместимость в пользовательском пространстве с существующей 32-битной архитектурой («AArch32» / ARMv7-A) и набором команд («A32»). 16-32-битный набор команд Thumb называется «T32» и не имеет 64-битного аналога. ARMv8-A позволяет 32-битным приложениям выполняться в 64-битной ОС, а 32-битная ОС находится под управлением 64-битного гипервизора . [3] ARM анонсировала свои ядра Cortex-A53 и Cortex-A57 30 октября 2012 года. [4] Apple была первой, кто выпустил совместимое с ARMv8-A ядро ​​( Cyclone ) в потребительском продукте ( iPhone 5S ). AppliedMicro , используя FPGA , первым продемонстрировал ARMv8-A. [5] Первой SoC ARMv8-A от Samsung является процессор Exynos 5433, используемый в Galaxy Note 4 , который имеет два кластера по четыре ядра Cortex-A57 и Cortex-A53 в конфигурации big.LITTLE ; но он будет работать только в режиме AArch32. [6]

Как для AArch32, так и для AArch64, ARMv8-A соответствует стандарту VFPv3/v4 и расширенному SIMD (Neon). Он также добавляет инструкции криптографии, поддерживающие AES , SHA-1 / SHA-256 и арифметику с конечными полями . [7]

Соглашения об именах

Возможности AArch64

Расширение: подсказка по сбору данных (ARMv8.0-DGH).

AArch64 был представлен в ARMv8-A и включен в последующие версии ARMv8-A. Он также был представлен в ARMv8-R в качестве опции после его появления в ARMv8-A; он не включен в ARMv8-M.

Форматы инструкций

Основной код операции для выбора группы, к которой принадлежит инструкция A64, находится в битах 25–28.

ARMv8.1-А

В декабре 2014 года было объявлено о выпуске ARMv8.1-A, [9] обновления с «дополнительными преимуществами по сравнению с версией 8.0». Улучшения разделились на две категории: изменения в наборе инструкций, а также изменения в модели исключений и трансляции памяти.

Улучшения набора команд включали следующее:

Улучшения модели исключений и системы трансляции памяти включали следующее:

ARMv8.2-А

В январе 2016 года был анонсирован ARMv8.2-A. [11] Его улучшения можно разделить на четыре категории:

Масштабируемое векторное расширение (SVE)

Масштабируемое векторное расширение (SVE) — это «дополнительное расширение архитектуры ARMv8.2-A и новее», разработанное специально для векторизации научных рабочих нагрузок высокопроизводительных вычислений . [12] [13] Спецификация допускает реализацию векторов переменной длины от 128 до 2048 бит. Расширение дополняет и не заменяет расширения NEON .

512-битный вариант SVE уже реализован на суперкомпьютере Fugaku с использованием ARM-процессора Fujitsu A64FX ; этот компьютер [14] был самым быстрым суперкомпьютером в мире в течение двух лет, с июня 2020 года [15] по май 2022 года. [16] Более гибкая версия, 2x256 SVE, была реализована на ARM-процессоре AWS Graviton3 .

SVE поддерживается компилятором GCC : GCC 8 поддерживает автоматическую векторизацию [13] , а GCC 10 поддерживает встроенные функции C. По состоянию на июль 2020 года LLVM и clang поддерживают встроенные функции C и IR. Собственная версия LLVM от ARM поддерживает автоматическую векторизацию. [17]

ARMv8.3-А

В октябре 2016 года был анонсирован ARMv8.3-A. Его усовершенствования разделены на шесть категорий: [18]

Архитектура ARMv8.3-A теперь поддерживается (по крайней мере) компилятором GCC 7. [22]

ARMv8.4-А

В ноябре 2017 года был анонсирован ARMv8.4-A. Его улучшения попали в следующие категории: [23] [24] [25]

ARMv8.5-A и ARMv9.0-A

В сентябре 2018 года был анонсирован ARMv8.5-A. Его улучшения попали в следующие категории: [26] [27] [28]

2 августа 2019 года Google объявил , что Android будет использовать расширение тегов памяти (MTE). [30]

В марте 2021 года был анонсирован ARMv9-A. Базовая версия ARMv9-A — это все функции ARMv8.5. [31] [32] [33] В ARMv9-A также добавлено:

ARMv8.6-A и ARMv9.1-A

В сентябре 2019 года был анонсирован ARMv8.6-A. Его улучшения попали в следующие категории: [26] [38]

Например, детальные ловушки, инструкции ожидания события (WFE), EnhancedPAC2 и FPAC. Расширения bfloat16 для SVE и Neon в основном предназначены для глубокого обучения. [40]

ARMv8.7-A и ARMv9.2-A

В сентябре 2020 года был анонсирован ARMv8.7-A. Его улучшения попали в следующие категории: [26] [41]

ARMv8.8-A и ARMv9.3-A

В сентябре 2021 года были анонсированы ARMv8.8-A и ARMv9.3-A. Их улучшения попали в следующие категории: [26] [43]

LLVM 15 поддерживает ARMv8.8-A и ARMv9.3-A. [44]

ARMv8.9-A и ARMv9.4-A

В сентябре 2022 года были анонсированы ARMv8.9-A и ARMv9.4-A, в том числе: [45]

Armv8-R (архитектура реального времени)

В профиль Armv8-R была добавлена ​​дополнительная поддержка AArch64, причем первым ядром Arm, реализующим ее, стал Cortex-R82. [46] Добавлен набор инструкций A64 с некоторыми изменениями в инструкциях по барьеру памяти. [47]

Рекомендации

  1. ^ «Обзор». Изучите архитектуру: понимание расширений Armv8.x и Armv9.x .
  2. ^ «ARM раскрывает технические подробности следующей версии архитектуры ARM» (пресс-релиз). Арм Холдингс . 27 октября 2011 г. Архивировано из оригинала 1 января 2019 г. . Проверено 20 сентября 2013 г.
  3. ^ Гризентуэйт, Ричард (2011). «Обзор технологии ARMv8-A» (PDF) . Архивировано из оригинала (PDF) 11 ноября 2011 года . Проверено 31 октября 2011 г.
  4. ^ «ARM выпускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире» (пресс-релиз). Арм Холдингс . Проверено 31 октября 2012 г.
  5. ^ «AppliedMicro демонстрирует первое в мире 64-битное ядро ​​ARM v8» (пресс-релиз). ПрикладнойМикро. 28 октября 2011 года . Проверено 11 февраля 2014 г.
  6. ^ «Exynos 5433 от Samsung — это SoC A57/A53 ARM» . АнандТех . Проверено 17 сентября 2014 г.
  7. ^ «Техническое справочное руководство процессора ARM Cortex-A53 MPCore: Расширение криптографии» . РУКА . Проверено 11 сентября 2016 г.
  8. ^ «Процессор Cortex-A32 — ARM» . Проверено 18 декабря 2016 г.
  9. Браш, Дэвид (2 декабря 2014 г.). «Архитектура ARMv8-A и ее постоянное развитие» . Проверено 23 января 2015 г.
  10. ^ «Игнорирование верхнего байта (TBI)» . ВикиЧип .
  11. Браш, Дэвид (5 января 2016 г.). «Эволюция архитектуры ARMv8-A» . Проверено 7 июня 2016 г.
  12. ^ «Масштабируемое векторное расширение для архитектуры ARMv8» . Арм Сообщество . 22 августа 2016 года . Проверено 8 июля 2018 г.
  13. ^ ab «Серия выпусков GCC 8 – Изменения, новые функции и исправления – Проект GNU – Фонд свободного программного обеспечения (FSF)» . gcc.gnu.org . Проверено 9 июля 2018 г.
  14. ^ «Fujitsu завершает прототип процессора суперкомпьютера Post-K, начинает испытания функциональности - Fujitsu Global» . www.fujitsu.com (пресс-релиз) . Проверено 8 июля 2018 г.
  15. ^ «Японский Fugaku завоевал титул самого быстрого суперкомпьютера в мире» (пресс-релиз). www.riken.jp. 23 июня 2020 г. Проверено 7 декабря 2020 г.
  16. ^ «Граница ORNL первой преодолела потолок эксафлопа» . Топ500 . 30 мая 2022 г. Проверено 30 мая 2022 г.
  17. ^ «⚙ D71712 Нисходящая реализация SVE/SVE2 (LLVM)» . Reviews.llvm.org .
  18. Дэвид Браш (26 октября 2016 г.). «Архитектура ARMv8-A – дополнения 2016 г.».
  19. ^ «[Ping~,AArch64] Добавить поддержку командной строки для -march=armv8.3-a». Расширение аутентификации указателя определено как обязательное расширение в ARMv8.3-A и не является необязательным.
  20. ^ «Qualcomm выпускает технический документ с подробным описанием аутентификации указателя на ARMv8.3» . 10 января 2017 г.
  21. ^ «Инструкции A64 с плавающей запятой: FJCVTZS» . Arm.com . Проверено 11 июля 2019 г.
  22. ^ «Серия выпусков GCC 7 – изменения, новые функции и исправления» . Теперь поддерживается архитектура ARMv8.3-A. Его можно использовать, указав опцию -march=armv8.3-a. [..] Опция -msign-return-address= поддерживается для включения защиты обратного адреса с помощью расширений аутентификации указателей ARMv8.3-A.
  23. ^ «Представляем расширения 2017 года для архитектуры Arm» . сообщество.arm.com . Проверено 15 июня 2019 г.
  24. ^ «Изучение машинного обучения скалярного произведения» . сообщество.arm.com . Проверено 15 июня 2019 г.
  25. ^ «ARM готовит поддержку ARMv8.4-A для компилятора GCC - Phoronix» . www.phoronix.com . Проверено 14 января 2018 г.
  26. ^ abcd «Расширения и функции ARMv8.x и ARMv9.x». Изучите архитектуру: понимание расширений ARMv8.x и ARMv9.x .
  27. ^ «Объявление Arm Architecture ARMv8.5-A - Блог о процессорах - Процессоры - Сообщество Arm» . сообщество.arm.com . Проверено 26 апреля 2019 г.
  28. ^ «Справочное руководство по архитектуре Arm ARMv8, для профиля архитектуры ARMv8-A» . ARM-разработчик . Проверено 6 августа 2019 г.
  29. ^ «Архитектура Arm MTE: повышение безопасности памяти» . сообщество.arm.com . Проверено 27 июля 2021 г.
  30. ^ «Внедрение расширения маркировки памяти Arm в Android» . Блог Google по онлайн-безопасности . Проверено 6 августа 2019 г.
  31. ^ «Решение Arm для будущих потребностей искусственного интеллекта, безопасности и специализированных вычислений — v9» . Рука | Архитектура цифрового мира . Проверено 27 июля 2021 г.
  32. Шор, Дэвид (30 марта 2021 г.). «ARM запускает ARMv9». Викичип-предохранитель . Проверено 27 июля 2021 г.
  33. ^ Фрумусану, Андрей. «Arm анонсирует архитектуру ARMv9: SVE2, безопасность и следующее десятилетие». www.anandtech.com . Проверено 27 июля 2021 г.
  34. ^ abc «Arm выпускает SVE2 и TME для архитектуры A-профиля - Блог процессоров - Процессоры - Сообщество Arm» . сообщество.arm.com . Проверено 25 мая 2019 г.
  35. ^ ab «Выравнивание поддержки Arm SVE2 для GCC 10, LLVM Clang 9.0 – Phoronix» . www.phoronix.com . Проверено 26 мая 2019 г.
  36. ^ «Раскрытие возможностей данных с помощью Arm CCA» . сообщество.arm.com . Проверено 27 июля 2021 г.
  37. ^ «Arm представляет свою конфиденциальную вычислительную архитектуру» . WikiChip Предохранитель . 23 июня 2021 г. Проверено 27 июля 2021 г.
  38. ^ «Обновление архитектуры профиля Arm A, 2019» . сообщество.arm.com . Проверено 26 сентября 2019 г.
  39. ^ «Примечания к выпуску LLVM 11.0.0» . Releases.llvm.org . Проверено 11 марта 2021 г.
  40. ^ «Расширения BFloat16 для ARMv8-A» . сообщество.arm.com . Проверено 30 августа 2019 г.
  41. Вайдманн, Мартин (21 сентября 2020 г.). «Развитие архитектуры Arm A-профиля 2020». сообщество.arm.com . РУКА . Проверено 28 сентября 2022 г.
  42. ^ «Масштабируемое матричное расширение для архитектуры ARMv9-A» . сообщество.arm.com . Проверено 27 июля 2021 г.
  43. ^ Вайдманн, Мартин (8 сентября 2021 г.). «Развитие архитектуры Arm A-профиля 2021». сообщество.arm.com . РУКА . Проверено 28 сентября 2022 г.
  44. ^ «Что нового в LLVM 15? - Блог «Архитектуры и процессоры» - Блоги сообщества Arm - Сообщество Arm» . Проверено 15 апреля 2023 г.
  45. ^ «Развитие архитектуры Arm A-Profile 2022 — Блог об архитектурах и процессорах — Блоги сообщества Arm — Сообщество Arm» . сообщество.arm.com . Проверено 9 декабря 2022 г.
  46. Фрумусану, Андрей (3 сентября 2020 г.). «ARM анонсировала Cortex-R82: первый 64-битный процессор реального времени». АнандТех .
  47. ^ «Дополнение к справочному руководству по архитектуре Arm — Armv8, для профиля архитектуры Armv8-R AArch64» . Арм, ООО