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 Support Thumb® / Thumb-2
DSP Extensions Single cycle 16,32-bit MAC
Single cycle dual 16-bit MAC
8,16-bit SIMD arithmetic
Hardware Divide (2-12 Cycles)
Floating Point Unit Single precision floating point unit
IEEE 754 compliant
Pipeline 3-stage + branch speculation
Performance Efficiency 3.40 CoreMark/MHz* - 1.25 to 1.52 DMIPS/MHz**
Memory Protection Optional 8 region MPU with sub regions and background region
Interrupts Non-maskable Interrupt (NMI) + 1 to 240 physical interrupts
Interrupt Priority Levels 8 to 256 priority levels
Wake-up Interrupt Controller Up to 240 Wake-up Interrupts
Sleep Modes Integrated WFI and WFE Instructions and Sleep On Exit capability.
Sleep & Deep Sleep Signals.
Optional Retention Mode with ARM Power Management Kit
Bit Manipulation Integrated Instructions & Bit Banding
Debug Optional JTAG & Serial-Wire Debug Ports. Up to 8 Breakpoints and 4 Watchpoints.
Trace Optional 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 Power 157 µW/MHz 33 µW/MHz 8 µW/MHz
Floorplanned Area 0.56 mm2 0.17 mm2 0.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 architecture Single 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 arithmetic Single 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 unit Others
  • 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 core Thumb-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 modes Nested 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 support CoreSight 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.

Description AMBA Bus System IP Components
AMBA Design Kit (ADK) AHB ADK
AMBA DMA Controllers AHB DMA Controller


Physical IP
ARM® Physical IP Platforms deliver process optimized IP, for best-in-class implementations of the Cortex-M4 processor.
Standard Cell Logic Libraries Available 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 Registers A 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 Libraries A 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