Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

Cortex-M4 Processor

Cortex-M4 Processor Image (View Larger Cortex-M4 Processor Image)
The ARM Cortex™-M4 processor is the latest embedded processor by ARM specifically developed to address digital signal control markets that demand an efficient, easy-to-use blend of control and signal processing capabilities.

The combination of high-efficiency signal processing functionality with the low-power, low cost and ease-of-use benefits of the Cortex-M family of processors is designed to satisfy the emerging category of flexible solutions specifically targeting the motor control, automotive, power management, embedded audio and industrial automation markets.

 


Award-winning energy efficient digital signal control

The Cortex-M4 offers unparalleled capability to integrate 32-bit control with leading digital signal processing techniques for markets that require very high levels of energy efficiency.

    

 

Easy-to-use technology

The Cortex-M4 makes signal processing algorithm development easy through an excellent ecosystem of software tools and the Cortex Microcontroller Software Interface Standard (CMSIS) .

 

 


ARM Cortex-M4 Specification

ARM Cortex-M4 Features
ISA SupportThumb® / Thumb-2
DSP ExtensionsSingle cycle 16,32-bit MAC
Single cycle dual 16-bit MAC
8,16-bit SIMD arithmetic
Hardware Divide (2-12 Cycles)
Floating Point UnitSingle precision floating point unit
IEEE 754 compliant
Pipeline3-stage + branch speculation
Performance Efficiency3.40 CoreMark/MHz* - 1.25 to 1.52 DMIPS/MHz**
Memory ProtectionOptional 8 region MPU with sub regions and background region
InterruptsNon-maskable Interrupt (NMI) + 1 to 240 physical interrupts
Interrupt Priority Levels8 to 256 priority levels
Wake-up Interrupt ControllerUp to 240 Wake-up Interrupts
Sleep ModesIntegrated WFI and WFE Instructions and Sleep On Exit capability.
Sleep & Deep Sleep Signals.
Optional Retention Mode with ARM Power Management Kit
Bit ManipulationIntegrated Instructions & Bit Banding
DebugOptional JTAG & Serial-Wire Debug Ports. Up to 8 Breakpoints and 4 Watchpoints.
TraceOptional Instruction Trace (ETM), Data Trace (DWT), and Instrumentation Trace (ITM)

* see: http://www.eembc.org/benchmark/reports/benchreport.php?benchmark_seq=1448&suite=CORE

** The lower result is with inlining turned off (as per dhrystone recommendations), the higher result is with inlining turned on (as reported for other processor architectures). Dhrystone v2.1.

ARM Cortex-M4 Implementation Data***
180ULL
7-track, typical 1.8v, 25C)
90LP
7-track, typical 1.2v, 25C)
40G
9-track, typical 0.9v, 25C)
Dynamic Power157 µW/MHz33 µW/MHz8 µW/MHz
Floorplanned Area0.56 mm20.17 mm20.04 mm2

*** Base usable configuration includes DSP extensions, 1 IRQ + NMI, excludes ETM, MPU, FPU and debug


Cortex-M4 signal processing technologies

The Cortex-M4 processor comes designed with a large variety of highly efficient signal processing features applicable to digital signal control markets.The Cortex-M4 processor features extended single-cycle multiply-accumulate (MAC) instructions, optimized SIMD arithmetic, saturating arithmetic instructions and an optional single precision Floating Point Unit (FPU). These features build upon the innovative technology that characterizes the ARM Cortex-M series processors.

Harvard architectureSingle cycle 16, 32-bit MAC
  • 32-bit AHB-Lite interface for instruction fetches
  • 32-bit AHB-Lite interface for data and debug accesses
  • Wide range of MAC instructions
  • Choice of 32 or 64 bit accumulate
  • Instructions execute in a single cycle
Single cycle SIMD arithmeticSingle cycle dual 16-bit MAC
  • 4 parallel 8-bit adds or subtracts
  • 2 parallel 16-bit adds or subtracts
  • Instructions execute in a single cycle
  • 2 parallel 16 bit MAC operations
  • Choice of 32 or 64 bit accumulate
  • Instructions execute in a single cycle
Floating point unitOthers
  • IEEE 754 standard compliant
  • Single precision floating point unit
  • Fused MAC for higher precision
  • Saturating math
  • Barrel shifters


ARM Cortex-M microcontroller technologies

Each Cortex-M series processor delivers specific benefits, all underpinned by fundamental technologies than make Cortex-M processors ideal for a broad range of embedded applications.

RISC processor coreThumb-2® technology
  • High performance 32-bit CPU
  • Deterministic operation
  • Low latency 3-stage pipeline
  • Optimal blend of 16/32-bit instructions
  • 3x smaller code size than 8-bit devices
  • No compromise on performance
Low power modesNested Vectored Interrupt Controller (NVIC)
  • Integrated sleep state support
  • Multiple power domains
  • Architected software control
  • Low latency, low jitter interrupt response
  • No need for assembly programming
  • Interrupt service routines in pure C
Tools and RTOS supportCoreSight debug and trace


CMSIS

The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware, simplifying software re-use. CMSIS offers a reduced learning curve for new microcontroller developers, shortening time to market for new products.


In-depth: Nested Vectored Interrupt Controller (NVIC)

The NVIC is an integral part of Cortex-M processors and provides the processors' outstanding interrupt handling abilities.

The Cortex-M processor uses a vector table that contains the address of the function to be executed for a particular interrupt handler. On accepting an interrupt, the processor fetches the address from the vector table.

To reduce gate count and enhance system flexibility, the Cortex-M processor uses a stack based exception model. When an exception takes place, the Cortex-M processor pushes critical general purpose on to the stack. Once the stacking and instruction fetch are completed, the interrupt service routine or fault handler is executed, followed by the automatic restoration of the registers to enable the interrupted program to resume normal execution. This approach removes the need to write assembler wrappers that are required to perform stack manipulation for traditional C-based interrupt service routines, making application development significantly easier. The NVIC supports nesting (stacking) of interrupts, exerting higher priority, allowing earlier servicing of an interrupt.

Complete response to interrupts in hardware

The interrupt response of Cortex-M series processor is the number of cycles from interrupt signal to execution of interrupt service routine. It includes:

  • Detecting the interrupt
  • Optimal handling of back-to-back or late arriving interrupts (see below)
  • Fetching the vector address
  • Stacking corruptible registers
  • Branching to the interrupt handler

These are tasks that are performed in hardware and included in the interrupt response cycle time quoted for Cortex-M processors. In many other architectures these tasks must be performed in software in the interrupt handler, introducing latency and complexity.


Tail chaining in the NVIC

Back to back interrupt  time diagram

In the case of back-to-back interrupts, traditional systems would repeat the complete state save and restore cycle twice, resulting in higher latency. The Cortex-M processors simplify moving between active and pending interrupts by implementing tail-chaining technology in the NVIC hardware. Automatically, in fewer cycles than a software implementation, the processor state is saved on interrupt entry then restored on interrupt exit. This significantly enhances performance in low MHz systems.

Response of the NVIC to late arrival of higher priority interrupts

Late Interrupt arrival  time diagram

In case of the late arrival of a higher priority interrupt during the execution of the stack Push for a previous interrupt, the NVIC immediately fetches a new vector address to service the pending interrupt, as shown above. The Cortex-M NVIC provides deterministic response to these possibilities with support for late arrival and pre-emption.


Stack pop pre-emption by the NVIC

Preemption time diagram

Similarly, the NVIC abandons a stack Pop if an exception arrives and services the new interrupt immediately as shown above. By pre-empting and switching to the second interrupt without completing the state restore and save, the NVIC achieves lower latency in a deterministic manner.


System IP

System IP components are essential for building complex system on chips and by utilizing System IP components developers can significantly reduce development and validation cycles, saving cost and reducing time to market.

DescriptionAMBA BusSystem IP Components
AMBA Design Kit (ADK)AHBADK
AMBA DMA ControllersAHBDMA Controller


Physical IP
ARM® Physical IP Platforms deliver process optimized IP, for best-in-class implementations of the Cortex-M4 processor.
Standard Cell Logic LibrariesAvailable in a variety of different architectures ARM Standard Cell Libraries support a wide performance range for all types of designs. Designers can choose between different libraries and optimize their designs for speed, power and/or area
Memory Compilers and RegistersA broad array of silicon proven SRAM, Register File and ROM memory compilers for all types of designs ranging from performance critical to cost sensitive and low power applications
Interface LibrariesA broad portfolio of silicon-proven Interface IP designed to meet varying system architectures and standards. General Purpose I/O, Specialty I/O, High Speed DDR and Serial Interfaces are optimized to deliver high data throughput performance with low pin counts.

Tools Support

All ARM processors are supported by the ARM Development Studio 5 (DS-5™) tool suite, as well as a wide range of third party tools, operating system and EDA vendors. ARM DS-5 software development tools are unique in their ability to provide solutions that take full advantage of the complete ARM technology portfolio.

Microcontroller development tools details are available at the Keil website.


In this section you will find useful documentation, white papers and tutorials on ARM Cortex-M processors and related technologies.

For further information including information on development tools, software, boards, and a device database, CMSIS and mBed visit the ARM Embedded Microsite

Books

Definitive Guide to the ARM Cortex-M0
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M0 processor
Definitive Guide to the ARM Cortex-M3
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M3 processor

Documentation for Cortex-M device users

Software development tools for Cortex-M device users

Find Cortex-M based microcontrollers

Universities

Related User Guides and App Notes

Cortex-M0/3/4 Devices Generic User Guides

Instruction Timing Information

Architecture (requires registration)

ARM Application Notes

Keil Application Notes

DesignStart for Processor IP





Maximise