The ARM architecture has evolved significantly since its introduction, and ARM continues to develop it. Seven major versions of the architecture have been defined to date, denoted by the version numbers 1 to 7. Of these, the first three versions are now obsolete. ARMv7 provides three profiles: ARMv7-A Application profile, described in this manual: • Implements a traditional ARM architecture with multiple modes. • Supports a Virtual Memory System Architecture (VMSA) based on a Memory Management Unit (MMU). An ARMv7-A implementation can be called a VMSAv7 implementation. • Supports the ARM and Thumb instruction sets. ARMv7-R Real-time profile, described in this manual: • Implements a traditional ARM architecture with multiple modes. • Supports a Protected Memory System Architecture (PMSA) based on a Memory Protection Unit (MPU). An ARMv7-R implementation can be called a PMSAv7 implementation. • Supports the ARM and Thumb instruction sets. ARMv7-M Microcontroller profile, described in the ARMv7-M Architecture Reference Manual: • Implements a programmers' model designed for low-latency interrupt processing, with hardware stacking of registers and support for writing interrupt handlers in high-level languages. • Implements a variant of the ARMv7 PMSA. • Supports a variant of the Thumb instruction set.