Lably
Skip to content

AArch64

64-bit extension of the ARM architecture

  • 10 min read
  • 3 chapters

Related on Lably

Through Smartphone, Server (computing) and ARM big.LITTLE

AArch64 Execution state

In ARMv8-A, ARMv8-R, and ARMv9-A, an "Execution state" defines key characteristics of the processor’s environment. This includes the number of bits used in the primary processor registers, the supported instruction sets, and other aspects of the processor's execution environment. These versions of the ARM architecture support two Execution states: the 64-bit AArch64 state and the 32-bit AArch32 state.

Naming conventions

  • 64-bit:
    • Execution state: AArch64
    • Instruction sets: A64
  • 32-bit:
    • Execution state: AArch32
    • Instruction sets: A32 + T32
    • Example: ARMv8-R, Cortex-A32

AArch64 features

  • New instruction set, A64:
    • Has 31 general-purpose 64-bit registers
    • Has dedicated zero or stack pointer (SP) register (depending on instruction)
    • The program counter (PC) is no longer directly accessible as a register
    • Instructions are still 32 bits long and mostly the same as A32 (with LDM/STM instructions and most conditional execution dropped)
      • Has paired loads/stores (in place of LDM/STM)
      • No predication for most instructions (except branches)
    • Most instructions can take 32-bit or 64-bit arguments
    • Addresses assumed to be 64-bit
  • Advanced SIMD (Neon) enhanced:
  • A new exception system:
    • Fewer banked registers and modes
  • Memory translation from 48-bit virtual addresses based on the existing Large Physical Address Extension (LPAE), which was designed to be easily extended to 64-bit

Extension: Data gathering hint (ARMv8.0-DGH).

AArch64 was introduced in ARMv8-A and is included in subsequent versions of ARMv8-A, and in all versions of ARMv9-A. It was also introduced in ARMv8-R as an option, after its introduction in ARMv8-A; it is not included in ARMv8-M.

A64 instruction formats

The main opcode for selecting which group an A64 instruction belongs to is at bits 25–28.

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication