AArch64 или ARM64 — это 64-битное состояние исполнения семейства архитектур ARM . Впервые оно было представлено в архитектуре Armv8-A и имело множество обновлений расширений. [1]
Состояние выполнения AArch64
Соглашения об именовании
64-бит:
Состояние выполнения: AArch64.
Наборы инструкций: A64.
32-бит:
Состояние выполнения: AArch32.
Наборы инструкций: A32 + T32.
Пример: ARMv8-R, Cortex-A32. [2]
Возможности AArch64
Новый набор инструкций, A64:
Имеет 31 64-битный регистр общего назначения.
Имеет выделенный нулевой регистр или регистр указателя стека (SP) (в зависимости от инструкции).
Счетчик программ (PC) больше не доступен напрямую как регистр.
Длина инструкций по-прежнему составляет 32 бита, и они в основном такие же, как у A32 (без инструкций LDM/STM и большинства условных исполнений).
Инструкции шифрования/дешифрования AES и хеширования SHA-1/SHA-2 также используют эти регистры.
Новая система исключений:
Меньше банковских регистров и режимов.
Трансляция памяти из 48-битных виртуальных адресов на основе существующего расширения больших физических адресов (LPAE), которое было разработано для легкого расширения до 64-битных.
Расширение: Подсказка по сбору данных (ARMv8.0-DGH).
AArch64 был представлен в ARMv8-A и включен в последующие версии ARMv8-A. Он также был представлен в ARMv8-R как опция после его появления в ARMv8-A; он не включен в ARMv8-M.
Форматы инструкций
Основной код операции для выбора группы, к которой относится инструкция A64, находится в битах 25–28.
ARM-A (архитектура приложения)
Анонсированный в октябре 2011 года, [3] ARMv8-A представляет собой фундаментальное изменение архитектуры ARM. Он добавляет необязательное 64-битное состояние выполнения, названное «AArch64», и связанный с ним новый набор инструкций «A64», в дополнение к 32-битному состоянию выполнения, «AArch32», поддерживающему 32-битные наборы инструкций «A32» (исходный 32-битный Arm) и «T32» (Thumb/Thumb-2). Последние наборы инструкций обеспечивают совместимость пользовательского пространства с существующей 32-битной архитектурой ARMv7-A. ARMv8-A позволяет выполнять 32-битные приложения в 64-битной ОС, а 32-битная ОС находится под контролем 64-битного гипервизора . [4] ARM анонсировала свои ядра Cortex-A53 и Cortex-A57 30 октября 2012 года. [5] Apple была первой, кто выпустил совместимое с ARMv8-A ядро ( Cyclone ) в потребительском продукте ( iPhone 5S ). AppliedMicro , используя FPGA , была первой, кто продемонстрировал ARMv8-A. [6] Первая ARMv8-A SoC от Samsung — это Exynos 5433, используемая в Galaxy Note 4 , которая имеет два кластера из четырех ядер Cortex-A57 и Cortex-A53 в конфигурации big.LITTLE ; но она будет работать только в режиме AArch32. [7]
ARMv8-A включает VFPv3/v4 и расширенный SIMD (Neon) как стандартные функции в AArch32 и AArch64. Он также добавляет криптографические инструкции, поддерживающие AES , SHA-1 / SHA-256 и конечную арифметику поля . [8]
Процессор ARMv8-A может поддерживать один или оба AArch32 и AArch64; он может поддерживать AArch32 и AArch64 на более низких уровнях исключений и только AArch64 на более высоких уровнях исключений. [9] Например, ARM Cortex-A32 поддерживает только AArch32, [10] ARM Cortex-A34 поддерживает только AArch64, [11] а ARM Cortex-A72 поддерживает как AArch64, так и AArch32. [12] Процессор ARMv9-A должен поддерживать AArch64 на всех уровнях исключений и может поддерживать AArch32 на уровне EL0. [9]
ARMv8.1-A
В декабре 2014 года было объявлено о выпуске ARMv8.1-A [13] , обновлении с «инкрементальными преимуществами по сравнению с v8.0». Улучшения делились на две категории: изменения в наборе инструкций и изменения в модели исключений и трансляции памяти.
Улучшения набора инструкций включали следующее:
Набор атомарных инструкций чтения-записи AArch64.
Дополнения к набору инструкций Advanced SIMD для AArch32 и AArch64, обеспечивающие возможности для некоторых оптимизаций библиотек:
Инструкции добавляются в векторной и скалярной формах.
Набор инструкций загрузки и хранения AArch64, которые могут обеспечить порядок доступа к памяти, ограниченный настраиваемыми областями адресов.
Необязательные инструкции CRC в v8.0 стали обязательными в ARMv8.1.
Улучшения модели исключений и системы трансляции памяти включают следующее:
Новый бит состояния «Привилегированный доступ никогда» (PAN) обеспечивает контроль, который предотвращает привилегированный доступ к данным пользователя, если он явно не включен.
Расширенный диапазон VMID для виртуализации; поддерживает большее количество виртуальных машин.
Дополнительная поддержка аппаратного обновления флага доступа к таблице страниц и стандартизация дополнительного, аппаратно обновляемого механизма грязных битов.
Расширения хоста виртуализации (VHE). Эти усовершенствования повышают производительность гипервизоров типа 2 за счет снижения накладных расходов на программное обеспечение, связанных с переходом между хостовой и гостевой операционными системами. Расширения позволяют хостовой ОС работать на уровне EL2, а не EL1, без существенных изменений.
Механизм освобождения некоторых битов таблицы трансляции для использования операционной системой, когда аппаратная поддержка со стороны ОС не требуется.
Верхний байт игнорируется для маркировки памяти. [14]
ARMv8.2-A
В январе 2016 года был анонсирован ARMv8.2-A. [15] Его усовершенствования можно разделить на четыре категории:
Дополнительная обработка данных с плавающей запятой половинной точности (половинная точность уже поддерживалась, но не для обработки, а только как формат хранения).
Масштабируемое векторное расширение (SVE) — это «дополнительное расширение архитектуры ARMv8.2-A и более новых версий», разработанное специально для векторизации высокопроизводительных вычислительных научных рабочих нагрузок. [16] [17] Спецификация позволяет реализовать переменные длины векторов от 128 до 2048 бит. Расширение дополняет, а не заменяет расширения NEON .
512-битный вариант SVE уже реализован на суперкомпьютере Fugaku с использованием процессора Fujitsu A64FX ARM; этот компьютер [18] был самым быстрым суперкомпьютером в мире в течение двух лет, с июня 2020 года [19] по май 2022 года [20]. Более гибкая версия, 2x256 SVE, реализована на процессоре AWS Graviton3 ARM.
SVE поддерживается компилятором GCC , причем GCC 8 поддерживает автоматическую векторизацию [17] , а GCC 10 поддерживает встроенные функции C. По состоянию на июль 2020 года [обновлять]LLVM и clang поддерживают встроенные функции C и IR. Собственный форк LLVM от ARM поддерживает автоматическую векторизацию. [21]
ARMv8.3-A
В октябре 2016 года был анонсирован ARMv8.3-A. Его усовершенствования можно разделить на шесть категорий: [22]
Аутентификация указателя [23] (только AArch64); обязательное расширение (на основе нового блочного шифра QARMA [24] ) архитектуры (компиляторам необходимо использовать функцию безопасности, но поскольку инструкции находятся в пространстве NOP, они обратно совместимы, хотя и не обеспечивают дополнительной безопасности на старых чипах).
Вложенная виртуализация (только AArch64).
Расширенная поддержка комплексных чисел SIMD (AArch64 и AArch32); например, повороты на угол, кратный 90 градусам.
Новая инструкция FJCVTZS (преобразование чисел с плавающей точкой JavaScript в числа с фиксированной точкой со знаком, округление до нуля). [25]
Изменение модели согласованности памяти (только AArch64); для поддержки (нестандартной) более слабой модели RCpc (Release Consistent Processor Consistent) C++11 / C11 (стандартная модель согласованности C++11/C11 уже поддерживалась в предыдущей версии ARMv8).
Поддержка механизма идентификаторов для больших системных кэшей (AArch64 и AArch32).
Архитектура ARMv8.3-A теперь поддерживается (по крайней мере) компилятором GCC 7. [26]
ARMv8.4-A
В ноябре 2017 года был анонсирован ARMv8.4-A. Его усовершенствования попали в следующие категории: [27] [28] [29]
«Криптографические расширения SHA3 / SHA512 / SM3 / SM4 ». Т.е. необязательные инструкции.
Улучшенная поддержка виртуализации.
Возможности разбиения и мониторинга памяти (MPAM).
В сентябре 2018 года был анонсирован ARMv8.5-A. Его усовершенствования попали в следующие категории: [30] [31] [32]
Расширение маркировки памяти (MTE) (AArch64). [33]
Индикаторы целевых ветвей (BTI) (AArch64) для снижения «способности злоумышленника выполнить произвольный код». Как и аутентификация указателя, соответствующие инструкции являются пустыми операциями в более ранних версиях ARMv8-A.
Инструкции по генератору случайных чисел – «предоставление детерминированных и истинных случайных чисел, соответствующих различным национальным и международным стандартам».
2 августа 2019 года Google объявила, что Android примет расширение тегирования памяти (MTE). [34]
В марте 2021 года был анонсирован ARMv9-A. Базовая версия ARMv9-A включает в себя все функции ARMv8.5. [35] [36] [37] ARMv9-A также добавляет:
Расширение транзакционной памяти (TME). После расширений x86 , TME обеспечивает поддержку аппаратной транзакционной памяти (HTM) и устранения транзакционной блокировки (TLE). Целью TME является масштабируемая параллелизм для увеличения грубозернистого параллелизма на уровне потоков (TLP) , чтобы обеспечить выполнение большего объема работы на поток. [38] Коды разработки LLVM / Clang 9.0 и GCC 10.0 были обновлены для поддержки TME. [39]
Инструкции по манипулированию матрицами SIMD, BFDOT, BFMMLA, BFMLAL и BFCVT.
Улучшения для виртуализации, управления системой и безопасности.
И следующие расширения ( поддержка которых уже добавлена в LLVM 11 [43] ):
Улучшенная виртуализация счетчиков (ARMv8.6-ECV).
Мелкозернистые ловушки (ARMv8.6-FGT).
Виртуализация мониторов активности (ARMv8.6-AMU).
Например, мелкозернистые ловушки, инструкции Wait-for-Event (WFE), EnhancedPAC2 и FPAC. Расширения bfloat16 для SVE и Neon в основном предназначены для использования в глубоком обучении. [44]
ARMv8.7-A и ARMv9.2-A
В сентябре 2020 года был анонсирован ARMv8.7-A. Его усовершенствования попали в следующие категории: [30] [45]
Масштабируемое расширение матрицы (SME) (только ARMv9.2). [46] SME добавляет новые функции для эффективной обработки матриц, такие как:
Расширенная поддержка горячего подключения PCIe (AArch64).
Атомарная 64-байтовая загрузка и сохранение на ускорителях (AArch64).
Ожидание инструкции (WFI) и ожидание события (WFE) с тайм-аутом (AArch64).
Запись Branch-Record (только ARMv9.2).
ARMv8.8-A и ARMv9.3-A
В сентябре 2021 года были анонсированы ARMv8.8-A и ARMv9.3-A. Их усовершенствования попали в следующие категории: [30] [47]
Немаскируемые прерывания (AArch64).
Инструкции по оптимизации операций в стиле memcpy() и memset() (AArch64).
Улучшения PAC (AArch64).
Подсказки условных ветвлений (AArch64).
LLVM 15 поддерживает ARMv8.8-A и ARMv9.3-A. [48]
ARMv8.9-A и ARMv9.4-A
В сентябре 2022 года были анонсированы ARMv8.9-A и ARMv9.4-A, в том числе: [49]
Улучшения архитектуры системы виртуальной памяти (VMSA).
Косвенное разрешение и наложения.
Усиление трансляции.
128-битные таблицы трансляции (только ARMv9).
Масштабируемое матричное расширение 2 (SME2) (только ARMv9).
Многовекторные инструкции.
Многовекторные предикаты.
Сжатие веса 2б/4б.
1б бинарные сети.
Предварительная выборка диапазона.
Защищенный стек управления (GCS) (только ARMv9).
Конфиденциальные вычисления.
Контексты шифрования памяти.
Назначение устройства.
ARMv9.5-A
В октябре 2023 года был анонсирован ARMv9.5-A, включающий: [50]
Добавлена поддержка FP8 (форматы E5M2 и E4M3):
МСП2
СВЕ2
Расширенный SIMD (Неон)
Живая миграция виртуальных машин с использованием структур отслеживания состояния Hardware Dirty (FEAT_HDBSS)
Проверенная точечная арифметика
Поддержка использования комбинации PC и SP в качестве модификатора при генерации или проверке кодов аутентификации указателя.
Поддержка конфигураций с поддержкой расширения управления областью (RME), поддержка только незащищенных таблиц защиты гранул и возможность отключения определенных физических адресных пространств (PAS).
Ловушки записи конфигурации EL3.
Поддержка точек останова для диапазона адресов и срабатывание несовпадений без необходимости связывания.
Поддержка эффективного делегирования SErrors из EL3 в EL2 или EL1.
ARMv9.6-A
В октябре 2024 года был анонсирован ARMv9.6-A, включающий: [51]
Повышение эффективности деятельности предприятий малого и среднего бизнеса за счет структурированной разреженности и операций с четвертью ячеек
Домены MPAM для лучшей поддержки компьютерных систем с общей памятью на многочиповых и многокристальных системах
Управление памятью гипервизора для трассировки и статистического профилирования на виртуальных машинах
Улучшенное кэширование и размещение данных
Гранулярная изоляция данных для конфиденциальных вычислений
Побитовая блокировка системных регистров EL1
Улучшенное масштабирование таблиц гранулярной защиты (GPT) для систем с большим объемом памяти
Новые инструкции SVE для расширения/сжатия и поиска первого/последнего активного элемента
Дополнительные непривилегированные инструкции по загрузке и сохранению, позволяющие ОС взаимодействовать с памятью приложения
Новая инструкция сравнения и ветвления
Внедрение исключений Undefined-Instruction из EL3
ARM-R (архитектура реального времени)
Архитектура ARM-R , в частности профиль Armv8-R, разработана для удовлетворения потребностей приложений реального времени, где предсказуемое и детерминированное поведение имеет важное значение. Этот профиль фокусируется на обеспечении высокой производительности, надежности и эффективности во встраиваемых системах, где ограничения реального времени имеют решающее значение.
С введением дополнительной поддержки AArch64 в профиле Armv8-R возможности реального времени были еще больше улучшены. Cortex-R82 [52] является первым процессором, реализующим эту расширенную поддержку, привнося несколько новых функций и улучшений в область реального времени. [53]
Основные характеристики Armv8-R с поддержкой AArch64
Набор инструкций AArch64 (A64) :
Инструкция A64 [25], установленная в Cortex-R82, обеспечивает 64-битную обработку данных и операции, что повышает производительность для определенных вычислительных задач и повышает общую эффективность системы. [52]
Пример инструкции : ADD X0, X1, X2складывает значения в 64-битных регистрах X1 и X2 и сохраняет результат в X0. Эта 64-битная операция позволяет выполнять более крупные и сложные вычисления по сравнению с 32-битными операциями предыдущего набора инструкций A32.
Улучшенное управление памятью :
Инструкции барьера памяти : Cortex-R82 представляет улучшенные инструкции барьера памяти для обеспечения правильного порядка операций с памятью, что имеет решающее значение в системах реального времени, где синхронизация операций с памятью должна строго контролироваться. [54]
Барьер синхронизации данных (DSB) : гарантирует, что все доступы к данным до барьера будут завершены до продолжения последующих операций.
Барьер памяти данных (DMB) : гарантирует, что все обращения к памяти до барьера будут завершены, прежде чем любые обращения к памяти после барьера смогут быть продолжены.
Пример : в системе управления автомобилем в режиме реального времени DSB может использоваться для обеспечения полной записи данных датчиков в память до того, как система приступит к обработке или принятию решений, предотвращая повреждение данных или несоответствия.
Улучшенное адресное пространство :
64-битная адресация : AArch64 позволяет Cortex-R82 адресовать гораздо большее пространство памяти по сравнению с его 32-битными предшественниками, что делает его пригодным для приложений, требующих большого объема памяти.
Пример : сложная система промышленной автоматизации может использовать расширенное адресное пространство для более эффективного управления большими наборами данных и буферами, повышая производительность и возможности системы.
Улучшения производительности в реальном времени :
Обработка прерываний : благодаря поддержке AArch64 Cortex-R82 может обрабатывать прерывания с меньшей задержкой и улучшенной предсказуемостью, что имеет решающее значение для операций в реальном времени.
Пример : в робототехнических приложениях улучшенная обработка прерываний Cortex-R82 может обеспечить своевременную реакцию на внешние стимулы, такие как изменения данных датчиков или команд управления.
Ссылки
^ "Обзор". Изучите архитектуру: Понимание расширений Armv8.x и Armv9.x .
^ "Процессор Cortex-A32 – ARM" . Получено 18 декабря 2016 г.
^ "ARM раскрывает технические подробности следующей версии архитектуры ARM" (пресс-релиз). Arm Holdings . 27 октября 2011 г. Архивировано из оригинала 1 января 2019 г. Получено 20 сентября 2013 г.
^ Grisenthwaite, Richard (2011). "ARMv8-A Technology Preview" (PDF) . Архивировано из оригинала (PDF) 11 ноября 2011 г. . Получено 31 октября 2011 г. .
^ "ARM запускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире" (пресс-релиз). Arm Holdings . Получено 31 октября 2012 г. .
^ "AppliedMicro Showcases World's First 64-bit ARM v8 Core" (пресс-релиз). AppliedMicro. 28 октября 2011 г. Получено 11 февраля 2014 г.
^ "Samsung's Exynos 5433 is an A57/A53 ARM SoC". AnandTech . Получено 17 сентября 2014 г. .
^ "Техническое справочное руководство по процессору ARM Cortex-A53 MPCore: Расширение криптографии". ARM . Получено 11 сентября 2016 г. .
^ ab "Влияние реализованных уровней исключений". Изучите архитектуру - Модель исключений AArch64 . Arm.
^ "Cortex-A32". Разработчик Arm .
^ "Cortex-A34". Разработчик Arm .
^ "Cortex-A72". Разработчик Arm .
^ Браш, Дэвид (2 декабря 2014 г.). «Архитектура ARMv8-A и ее текущее развитие» . Получено 23 января 2015 г.
^ Браш, Дэвид (5 января 2016 г.). "Эволюция архитектуры ARMv8-A" . Получено 7 июня 2016 г.
^ "Масштабируемое векторное расширение sve для архитектуры ARMv8 a". Arm Community . 22 августа 2016 г. Получено 8 июля 2018 г.
^ ab "GCC 8 Release Series – Changes, New Features, and Fixes – GNU Project – Free Software Foundation (FSF)". gcc.gnu.org . Получено 9 июля 2018 г. .
^ «Fujitsu завершила разработку прототипа процессора суперкомпьютера Post-K, начала функциональные испытания – Fujitsu Global». www.fujitsu.com (пресс-релиз) . Получено 8 июля 2018 г.
^ «Японский Fugaku получает титул самого быстрого суперкомпьютера в мире» (пресс-релиз). www.riken.jp. 23 июня 2020 г. Получено 7 декабря 2020 г.
^ "ORNL's Frontier First to Break the Exaflop Ceiling". Top500 . 30 мая 2022 . Получено 30 мая 2022 .
^ Дэвид Браш (26 октября 2016 г.). «Архитектура ARMv8-A – дополнения 2016 года».
^ . "[Ping~,AArch64] Добавить поддержку командной строки для -march=armv8.3-a". Расширение аутентификации указателя определено как обязательное расширение на ARMv8.3-A и не является необязательным
^ "Qualcomm выпускает техническую документацию, в которой подробно описывается аутентификация указателя на ARMv8.3". 10 января 2017 г.
^ ab "A64 Floating-point Instructions: FJCVTZS". arm.com . Получено 11 июля 2019 .
^ "GCC 7 Release Series – Changes, New Features, and Fixes". Архитектура ARMv8.3-A теперь поддерживается. Ее можно использовать, указав опцию -march=armv8.3-a. [..] Опция -msign-return-address= поддерживается для включения защиты обратного адреса с использованием расширений аутентификации указателя ARMv8.3-A.
^ «Представляем расширения архитектуры Arm 2017 года». community.arm.com . 2 ноября 2017 г. Получено 15 июня 2019 г.
^ «Изучение машинного обучения методом скалярного произведения». community.arm.com . 6 декабря 2017 г. . Получено 15 июня 2019 г. .
^ "ARM готовит поддержку ARMv8.4-A для компилятора GCC – Phoronix". www.phoronix.com . Получено 14 января 2018 г. .
^ abcd "Расширения и функции ARMv8.x и ARMv9.x". Изучите архитектуру: Понимание расширений ARMv8.x и ARMv9.x .
^ "Arm Architecture ARMv8.5-A Announcement – Processors blog – Processors – Arm Community". community.arm.com . Получено 26 апреля 2019 г. .
^ "Arm Architecture Reference Manual ARMv8, for ARMv8-A architecture profile". Разработчик ARM . Получено 6 августа 2019 г.
^ «Arm MTE architecture: Enhancing memory safety» (Архитектура Arm MTE: повышение безопасности памяти). community.arm.com . 5 августа 2019 г. Получено 27 июля 2021 г.
^ «Внедрение расширения Arm Memory Tagging в Android». Блог Google Online Security . Получено 6 августа 2019 г.
^ "Решение Arm для будущих потребностей ИИ, безопасности и специализированных вычислений — v9". Arm | Архитектура для цифрового мира . Получено 27 июля 2021 г.
^ Шор, Дэвид (30 марта 2021 г.). «Arm запускает ARMv9». WikiChip Fuse . Получено 27 июля 2021 г. .
^ Фрумусану, Андрей. «Arm анонсирует архитектуру ARMv9: SVE2, безопасность и следующее десятилетие». www.anandtech.com . Получено 27 июля 2021 г. .
^ abc "Arm выпускает SVE2 и TME для архитектуры A-profile – Блог о процессорах – Процессоры – Сообщество Arm". community.arm.com . 18 апреля 2019 г. . Получено 25 мая 2019 г. .
^ ab "Arm SVE2 Support Aligning For GCC 10, LLVM Clang 9.0 – Phoronix". www.phoronix.com . Получено 26 мая 2019 г. .
^ «Раскрытие потенциала данных с помощью Arm CCA». community.arm.com . 23 июня 2021 г. . Получено 27 июля 2021 г. .
^ "Arm представляет свою конфиденциальную вычислительную архитектуру". WikiChip Fuse . 23 июня 2021 г. Получено 27 июля 2021 г.
^ "Обновление архитектуры профиля Arm A 2019". community.arm.com . 25 сентября 2019 . Получено 26 сентября 2019 .
^ "LLVM 11.0.0 Release Notes". releases.llvm.org . Получено 11 марта 2021 г. .
^ "Расширения BFloat16 для ARMv8-A". community.arm.com . 29 августа 2019 . Получено 30 августа 2019 .
^ Вайдманн, Мартин (21 сентября 2020 г.). «Разработки архитектуры Arm A-Profile 2020». community.arm.com . ARM . Получено 28 сентября 2022 г. .
^ «Масштабируемое матричное расширение для архитектуры ARMv9-A». community.arm.com . 14 июля 2021 г. . Получено 27 июля 2021 г. .
^ Вайдманн, Мартин (8 сентября 2021 г.). «Разработки архитектуры Arm A-Profile 2021». community.arm.com . ARM . Получено 28 сентября 2022 г. .
^ "Что нового в LLVM 15? - Блог об архитектурах и процессорах - Блоги сообщества Arm - Сообщество Arm". 27 февраля 2023 г. Получено 15 апреля 2023 г.
^ "Разработки архитектуры Arm A-Profile 2022 - Блог об архитектурах и процессорах - Блоги сообщества Arm - Сообщество Arm". community.arm.com . 29 сентября 2022 г. . Получено 9 декабря 2022 г. .
^ "Разработки архитектуры Arm A-Profile 2023 - Блог об архитектурах и процессорах - Блоги сообщества Arm - Сообщество Arm". community.arm.com . 5 октября 2023 г. . Получено 14 октября 2024 г. .
^ "Разработки архитектуры Arm A-Profile 2024 - Блог об архитектурах и процессорах - Блоги сообщества Arm - Сообщество Arm". community.arm.com . 1 октября 2024 г. Получено 14 октября 2024 г.
^ ab Фрумусану, Андрей (3 сентября 2020 г.). "ARM анонсировала Cortex-R82: первый 64-битный процессор реального времени". AnandTech .
^ "Дополнение к справочному руководству по архитектуре Arm - Armv8, для профиля архитектуры Armv8-R AArch64". Arm Ltd.
^ «Техническое справочное руководство Cortex-R82».