Описание тега arm
Вступление
ARM представляет собой 32-разрядную архитектуру набора команд (ISA) с сокращенным набором команд (ISA), разработанную ARM Holdings. Он назывался Advanced RISC Machine, а до этого - Acorn RISC Machine. Архитектура ARM является наиболее широко используемой 32-битной архитектурой набора команд в создаваемых числах.
Архитектура ARM обычно описывается как архитектура компьютера с сокращенным набором команд (RISC), поскольку она включает в себя следующие типичные функции архитектуры RISC:
- Единая архитектура загрузки / хранения файлов регистров, в которой обработка данных осуществляется только для содержимого регистров, а не непосредственно для содержимого памяти.
- Простые режимы адресации, все адреса загрузки / хранения определяются только из содержимого регистра и полей инструкций.
Режимы процессора
Архитектура ARM определяет следующие режимы процессора. В любой момент времени процессор может находиться только в одном режиме, но он может переключать режимы из-за внешних событий (прерываний) или программно. Режим пользователя Единственный непривилегированный режим. Системный режим Единственный привилегированный режим, в который не входит исключение. Его можно ввести, только выполнив инструкцию, которая явно записывает в биты режима CPSR.
- Режим супервизора (svc). Привилегированный режим включается при каждом сбросе ЦП или при выполнении инструкции SWI.
- Режим отмены Привилегированный режим, который вводится всякий раз, когда происходит прерывание предварительной выборки или исключение прерывания данных.
- Неопределенный режим Привилегированный режим, который вводится всякий раз, когда возникает неопределенное исключение для инструкции.
- Режим прерывания Привилегированный режим, который включается всякий раз, когда процессор принимает прерывание IRQ.
- Режим быстрого прерывания Привилегированный режим, который включается всякий раз, когда процессор принимает прерывание FIQ.
Поддержка 64 бит
ARMv8, выпущенный в конце 2011 года, представляет собой первое фундаментальное изменение в архитектуре ARM. Он добавляет 64-битную архитектуру, получившую название "AArch64", и новый набор команд "A64". В контексте ARMv8 32-битная архитектура и набор команд называются "AArch32" и "A32" соответственно. Наборы команд Thumb называются "T32" и не имеют 64-битного аналога. ARMv8 позволяет выполнять 32-разрядные приложения в 64-разрядной ОС, а 32-разрядная ОС - под управлением 64-разрядного гипервизора. По состоянию на март 2012 года только ARMv8-A ("приложение") профиль был определен, и никакие реализации не были объявлены.
Как для AArch32, так и для AArch64 ARMv8 делает стандарт VFP и расширенный SIMD (NEON). Также добавлены криптографические инструкции, поддерживающие AES и SHA-1/SHA-256.
Особенности AArch64:
- Новый набор инструкций, A64
- 31 универсальный 64-битный регистр
- Инструкции по-прежнему 32-битные и в основном такие же, как A32
- Большинство инструкций могут принимать 32-битные или 64-битные аргументы
- Адреса считаются 64-битными
- Новая система исключений
- Меньше банковских регистров и режимов
- Трансляция памяти с 48-битных виртуальных адресов на основе существующего LPAE, который был легко расширен до 64-битных
Источники: arm.com и википедия