M-Profile Architectures

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.

Armv8-M Architecture

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.

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.

Armv7-M Architecture

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.

Armv6-M Architecture

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.