SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: Cortex-M4F vs M4: How Do These ARM Cores Compare?
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

Cortex-M4F vs M4: How Do These ARM Cores Compare?

Elijah Erickson
Last updated: October 5, 2023 9:56 am
Elijah Erickson 8 Min Read
Share
SHARE

The Cortex-M4F and Cortex-M4 are both 32-bit ARM processor cores targeted at embedded and IoT applications. While very similar, there are some key differences between the two that designers should consider when selecting a microcontroller.

Contents
Overview of the Cortex-M4 CoreOverview of the Cortex-M4F CorePerformance ComparisonPower ConsumptionMemory SystemPeripheral SupportToolchain and Software CompatibilityUse CasesConclusion

Overview of the Cortex-M4 Core

The Cortex-M4 processor is a widely used 32-bit ARM core launched by ARM Holdings in 2010. It is part of ARM’s Cortex-M series of embedded processor cores, which emphasize low cost, minimal power draw, and high efficiency. The M4 provides a balance of performance and power savings.

Key features of the Cortex-M4 core include:

  • 32-bit ARMv7-M architecture
  • Up to 225 DMIPS/1.25 DMIPS/MHz performance
  • Thumb-2 instruction set for improved code density
  • Built-in DSP extensions and single precision floating point unit
  • Memory Protection Unit for security
  • Wake-up Interrupt Controller for low power operation

The DSP extensions allow the Cortex-M4 to achieve digital signal processing performance of 150 MACS/MHz when executing 16-bit multiply-accumulate instructions. This ability to efficiently process DSP algorithms makes the M4 well suited for applications like motor control, sensor processing, and digital audio.

The M4 includes three different low power modes: Sleep, Deep Sleep, and Standby. These allow parts of the processor and peripherals to be shut down when not needed to conserve power.

Overview of the Cortex-M4F Core

The Cortex-M4F is a variant of the Cortex-M4 core which includes a floating point unit (FPU). The FPU is a single precision hardware unit which can execute floating point arithmetic according to the IEEE 754 standard. Having dedicated floating point hardware allows the M4F to perform floating point math much more quickly and efficiently than the software floating point library included with the standard M4.

Like the M4, the M4F still includes all the DSP extensions for digital signal processing. The key differences of the M4F are:

  • Includes single precision FPU
  • Up to 15 times faster floating point performance than Cortex-M4
  • Full IEEE 754 compliance for floating point math

The addition of the FPU does not impact the M4F’s low power modes or interrupt handling capabilities. It can still utilize Sleep, Deep Sleep, and Standby to conserve power when idle.

Performance Comparison

Both the Cortex-M4 and M4F deliver strong performance for embedded 32-bit applications. Exact performance benchmarks can vary based on the specific chip implementation.

For integer math and DSP workloads, the two cores are generally neck-and-neck. However, the M4F will have a major performance advantage in applications using a lot of floating point math thanks to its dedicated FPU.

Some example performance benchmarks for a 100 MHz implementation:

  • DMIPS (integer performance): 100
  • DSP MACS (16-bit): 150 MMACS/s
  • Single precision floating point: 25 MFLOPs (M4F), 1.5 MFLOPs (M4)

As these benchmarks show, the M4F can process floating point code around 15-20x faster than the standard M4. If floating point performance is critical, the M4F is likely the better choice.

Power Consumption

Since the M4F builds on the same processor core design as the M4, its power profile is very similar. The addition of the FPU does not significantly alter the power consumption.

Both processors support multiple low power sleep states to conserve energy when idle. Typical figures for power consumption are:

  • 100 uA/MHz during active operation
  • 2.2 uA in Sleep mode
  • 1.6 uA in Deep Sleep mode
  • 400 nA in Standby mode

These low power modes allow both cores to be used efficiently in battery-powered devices. Assuming similar chip manufacturing process and clock speeds, the M4 and M4F will exhibit nearly identical power consumption during active operation.

Memory System

The standard Cortex-M4 and M4F both support unified memory architectures. This means instruction and data memory are combined in a single address space.

Typical memory support includes:

  • Up to 4GB of physical address space
  • Memory access using single-cycle 32-bit instructions
  • Optional MPU to partition memory for security
  • Optional MMU to support virtual memory and paging

The M4 and M4F do not differ in their memory capabilities – they both can be implemented with the same flexible memory system options by chip manufacturers.

Peripheral Support

Since the M4F is pin and software compatible with the M4, it supports all the same peripheral options. These include:

  • Timers, watchdog, RTC
  • SPI, I2C, CAN, USB
  • ADC, DAC, PWM
  • UART, IrDA, Smart Card
  • MPU, DMA
  • External bus interface

The flexibility of the ARM CoreLink peripheral framework allows chip designers to pair the Cortex-M4(F) cores with almost any mix of integrated peripherals. There is no difference in peripheral support between M4 and M4F.

Toolchain and Software Compatibility

A major benefit of the M4F is its software compatibility with existing Cortex-M4 designs. Code written for the M4 will work without modification on an M4F chip.

This allows developers to easily migrate working M4 code to an M4F implementation. The code just needs to be recompiled – no source changes are required. When floating point workloads are ported over, the M4F will execute them much faster than the M4.

Both processors are supported by the ARM-GCC toolchain, as well as commercial tools from vendors like IAR, Keil, and ARM. There are no differences in compiler support between the two cores.

Use Cases

The Cortex-M4 targets cost-sensitive and power constrained embedded applications that still require high performance on integer workloads. It excels in areas like:

  • Motor control
  • Industrial automation
  • IoT edge devices
  • Smart sensors
  • Low power wireless products (Bluetooth, Zigbee)

The Cortex-M4F is best suited for embedded products that need significant floating point performance. Such as:

  • Audio processing
  • Computer vision
  • Machine learning
  • Industrial IoT
  • Robotics
  • Autonomous vehicles

For most general embedded applications without heavy floating point requirements, the standard Cortex-M4 remains a strong choice with its low cost and minimal power draw.

Conclusion

The Cortex-M4F provides a modest upgrade over the already capable Cortex-M4 core. The addition of an IEEE 754 compliant FPU significantly boosts floating point arithmetic while keeping power draw nearly identical.

For embedded products with significant DSP or floating point math requirements, the M4F is the clear choice. Otherwise, the M4 continues to offer a great balance of efficiency and performance for mainstream 32-bit embedded applications.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article ARM Cortex M0 Programming Tutorial
Next Article What Devices Use ARM Processors?
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

Cortex M0 Based MCU DAC Error

The Cortex-M0 is one of ARM's smallest and most energy…

7 Min Read

How to use Cmsis DSP library in Keil?

The Cortex Microcontroller Software Interface Standard (CMSIS) DSP library provides…

7 Min Read

ARM Cortex-M Architecture

The ARM Cortex-M is a group of 32-bit RISC ARM…

9 Min Read

How is interrupt vector table used?

The interrupt vector table is a key component in ARM…

9 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account