ARM produces a whole family of processors that share common instruction sets and programmer’s models and have some degree of backward compatibility. The Microcontroller (‘M’) profile provides low-latency, highly deterministic operation for deeply embedded systems.
The ARMv8-M architecture is the latest generation ARM architecture targeted at the Microcontroller profile, which is optimized for deeply embedded systems. It implements a programmers’ model designed for low-latency processing and optionally implements a Memory Protection Unit (MPU) based on Protected Memory System Architecture (PMSA). It supports a variant of the T32 instruction set.
What's new for Engineers in ARMv8-M?
The ARMv8-M architecture introduces a number of changes. These include:
- New system level programmers' model.
- Allows an optional MPU based on PMSAv8.
- Backwards compatibility with ARMv6-M.
- Optionally backwards compatible with ARMv7-M through adding architectural extensions.
ARMv8-M has several optional architectural extensions. These are:
- The Main Extension. This provides backwards compatibility with ARMv7-M and is required for the Floating-point and DSP Extensions.
- The Security Extension. This can also be referred to as ARM TrustZone for ARMv8-M.
- The Floating-point Extension. This requires implementation of the Main Extension.
- The Debug Extension.
- The Digital Signal Processing (DSP) Extension. This requires implementation of the Main Extension.
The ARMv7-M architecture provides opportunities for simple pipleline designs offering system performance levels across a broad range of markets and applications. It offers low cycle count execution, minimal interrupt latency and cacheless operation, and is designed for deeply embedded systems. It supports a variant of the T32 instruction set, and is designed for implementations where overall size and deterministic operation are more important than absolute performance.
ARMv7-M has some optional architectural extensions. These are:
- The DSP Extension.
- The Floating-point Extension.
The ARMv6-M architecture is a subset of ARMv7-M, and provides:
- A lightweight version of the ARMv7-M programmers' model.
- The Debug Extension that includes architecture extensions for debug support.
- Support for the T32 instruction set.
- Upward compatibility with ARMv7-M - application level and system level software developed for ARMv6-M can execute unmodified on ARMv7-M.
ARMv6-M has some optional architectural extensions. These are:
- The Unprivileged/Privileged Extension. This allows ARMv6-M systems to use the same privilege levels as ARMv7-M.
- The PMSA Extension. This requires implementation of the Unprivileged/Privileged Extension.