The ARM architecture supports implementations across a wide range of performance points, and is established as the leading architecture in many market segments. The ARM architecture supports a very broad range of performance points leading to very small implementations of ARM processors, and very efficient implementations of advanced designs using state of the art micro-architecture techniques. Implementation size, performance, and low power consumption are key attributes of the ARM architecture.
Architecture extensions were developed to provide support for Java acceleration (Jazelle®), security (TrustZone®), SIMD, and Advanced SIMD (NEON™) technologies. The ARMv8-A architecture adds a Cryptographic extension as an optional feature.
The ARM architecture is generally described as a Reduced Instruction Set Computer (RISC) architecture, as it incorporates these typical RISC architecture features:
- A uniform register file load/store architecture, where data-processing operates only on register contents, not directly on memory contents.
- Simple addressing modes, with all load/store addresses determined from register contents and instruction fields only.
Enhancements to a basic RISC architecture enable ARM processors to achieve a good balance of high performance, small code size, low power consumption and small silicon area.

The ARMv8 Architecture
ARMv8-A introduces 64-bit architecture support to the ARM architecture and includes:
- 64-bit general purpose registers, SP (stack pointer) and PC (program counter)
- 64-bit data processing and extended virtual addressing
- Two main execution states:
- AArch64 - The 64-bit execution state including exception model, memory model, programmers' model and instruction set support for that state
- AArch32 - The 32-bit execution state including exception model, memory model, programmers' model and instruction set support for that state
The execution states support three key instruction sets:
- A32 (or ARM): a 32-bit fixed length instruction set, enhanced through the different architecture variants. Part of the 32-bit architecture execution environment now referred to as AArch32
- T32 (Thumb) introduced as a 16-bit fixed-length instruction set that was subsequently enhanced to a mixed-length 16- and 32-bit instruction set on the introduction of Thumb-2 technology. Part of the 32-bit architecture execution environment now referred to as AArch32
- A64: a 32-bit fixed-length instruction set that offers similar functionality to the ARM and Thumb instruction sets. Introduced with ARMv8-A, it is the AArch64 instruction set.
ARM ISAs are constantly improving to meet the increasing demands of leading edge applications developers, while retaining the backwards compatibility necessary to protect investment in software development. In ARMv8-A there are some additions to A32 and T32 to maintain alignment with the A64 instruction set.






