The Arm Microcontroller profile (M-profile) architecture targets deeply embedded systems. Applications range from battery powered devices that require very low power consumption to advanced image processing. The M-profile provides low-latency, highly deterministic operation that is ideal for time-sensitive processing.
Armv8.1-M takes the Armv8-M architecture to new performance levels without compromising the ease of software development and the richness of Arm’s third-party ecosystem. The new architecture includes the M-Profile Vector Extension (MVE) that provides major uplift in levels of machine learning (ML) and digital signal processing (DSP) performance. It implements the simplified programmer’s model of M-profile processors, to bring advanced compute capabilities to millions of developers. In Arm Cortex-M processors, MVE is named Arm Helium technology. The architecture also enhances system-wide security with Arm TrustZone.
Major Features in the Armv8.1-M architecture
The Armv8.1-M architecture includes the following features:
- An efficient vector processing capability that accelerates signal processing and ML algorithms called MVE.
- Additional data types support in vector extension: half-precision floating point (FP16) and 8-bit integer (INT8).
- Low overhead loops.
- Gather load, scatter store memory access.
- Additional debug features, including a performance monitoring unit, tailoring for DSP software development, and a debug extension to support multiple security domains in debug.
Armv8.1-M has several optional new architectural extensions. These are:
- Pointer authentication and branch target identification (PACBTI) extension for enhanced security with new tools for software developers.
- Helium – M-Profile Vector Extension (MVE) used in current Armv8.1-M based processors and future Arm Cortex-M processors.
- Low overhead branch extension.
- Privileged eXecute Never (PXN) extension for Memory Protection Unit (MPU).
- Reliability, availability and serviceability (RAS) extension.
- Additional extensions for debug features.
The Armv8-M architecture is optimized for deeply embedded systems. It implements a programmers’ model designed for low-latency processing. It optionally implements a Memory Protection Unit (MPU), based on Protected Memory System Architecture (PMSA). It supports a variant of the T32 instruction set.
Major Features in Armv8-M
The Armv8-M architecture includes the following features:
- New system level programmers' model.
- Support for an optional MPU, based on PMSAv8.
- A subset of the T32 instruction set.
- Various architectural extensions to enable a high degree of flexibility in design and scalability.
- Arm Custom Instructions for adding custom extensions to Arm Cortex-M33, Cortex-M55 and Cortex-M85 CPUs, without compromising access to Arm's software ecosystem.
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.
- Arm Custom Instructions. Arm Custom Instructions for adding custom extensions to selected Cortex-M CPUs, including Arm Cortex-M33, Cortex-M55, and Cortex-M85 CPUs, without compromising access to Arm's software ecosystem.
The Armv7-M architecture provides opportunities for simple pipeline 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 Armv6-M architecture is a subset of Armv7-M, and provides:
- A lightweight version of the Armv7-M programmer 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.