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.