Introduction to ARM Cortex-M Processors (Part 1)

The Cortex-M3 and Cortex-M4 processors utilize a 32-bit architecture, with internal registers in the register set, a 32-bit data path, and bus interfaces, employing Thumb-2 technology that supports both 16-bit and 32-bit instructions. They feature the following characteristics:

  • Three-stage pipeline design

  • Harvard bus architecture (I-BUS, D-BUS)

  • 32-bit addressing

  • AMBA bus interface

  • NVIC interrupt controller, supporting up to 240 interrupt requests and 8-256 interrupt priorities

  • Support for various OS features, such as tick timers and shadow stack pointers

  • Sleep mode and low power consumption

  • MPU

  • Bit-field features (support for bit data access in two specific memory regions)

Instructions:

  • General data processing: + – x ÷

  • Memory access instructions

  • Bit-field processing instructions

  • Multiply-accumulate and saturation instructions

  • Instructions for jumps, conditional jumps, and function calls

  • System control instructions that support OS

  • Single Instruction Multiple Data (SIMD)

  • Floating-point instructions

ARM primarily provides:

  • Design of units such as logic gates and memory

  • Peripherals and AMBA basic components (Cortex-M System Design Kit CMSDK, ARM Corelink)

  • Other debug components for connecting debugging systems in multiprocessor designs (ARM Coresight IP)

Thumb ISA Architecture

Introduction to ARM Cortex-M Processors (Part 1)Introduction to ARM Cortex-M Processors (Part 1)

Since the processor supports both 16-bit and 32-bit instructions in the Thumb-2 instruction set, there is no need to switch between Thumb state (16-bit instructions) and ARM state (32-bit instructions). According to the Thumb-2 encoding, if the [15:11] bits are encoded as 0b11101, 0b11110, or 0b11111, then it is a 32-bit instruction.

Introduction to ARM Cortex-M Processors (Part 1)

Leave a Comment