The ARM architecture defines how an ARM processor must operate. This includes:
the programmers model
the instruction set
the memory model.
New versions of the architecture can introduce changes or additions to any of these features. These changes are normally backwards compatible, to simplify migration to new processors of more recent architectures.
Every version of the architecture specifies a number of system features and behaviors as implementation-defined. For example:
how many levels of cache that are implemented, and their sizes
all functionality provided by the Auxiliary Control Register
effects of hint instructions.
An architecture can also define optional extensions, for example:
floating point hardware support (VFP), introduced in ARMv6
Advanced SIMD support (NEON), introduced in ARMv7.
Earlier versions of the ARM Architecture describe a common architecture, with different implementation choices. For example, a processor can be implemented with a Virtual Memory System Architecture (VMSA), based on a Memory Management Unit (MMU), or a Protected Memory System Architecture (PMSA), based on a Memory Protection Unit (MPU).
ARMv7 introduces the concept of Architecture profiles, defining versions of the architecture aimed at different types of processors for different market segments. The defined profiles are:
The Application profile defines a VMSA based microprocessor architecture. It is targeted at high performance processors, capable of running full feature operating systems. It supports the ARM and Thumb instruction sets.
The Real-time profile defines a PMSA based microprocessor architecture. It is targeted at systems that require deterministic timing and low interrupt latency. It supports the ARM and Thumb instruction sets.
The Microcontroller profile provides low-latency interrupt processing accessible directly from high-level programming languages. It has a different exception handling model to the other profiles, implements a variant of the PMSA, and supports a variant of the Thumb instruction set only.
The ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition describes the ARMv7-A and ARMv7-R profiles. It also documents the differences between ARMv7 and:
The ARMv7-M Architecture Reference Manual describes the ARMv7-M profile. The ARMv6-M Architecture Reference Manual describes the ARMv6-M profile, which implements a subset of the ARMv7-M profile and uses the same exception model.
These documents are available on request from