SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: ARM Cortex-M0 vs Cortex-M23
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

ARM Cortex-M0 vs Cortex-M23

Scott Allen
Last updated: September 14, 2023 1:35 pm
Scott Allen 9 Min Read
Share
SHARE

The ARM Cortex-M0 and Cortex-M23 are two low-power microcontroller cores designed for embedded and IoT applications. The main differences between the M0 and M23 cores come down to performance, features, and intended use cases.

Contents
OverviewKey DifferencesPerformancePower EfficiencyFeaturesIntended Use CasesArchitecture ComparisonPipelineWakeup UnitData Watchpoint TraceSecurity ExtensionDeterministic OperationPerformance BenchmarksPower Efficiency ComparisonsTarget ApplicationsCortex-M0 ApplicationsCortex-M23 ApplicationsDevelopment Environment SupportMCU Vendor SupportConclusion

Overview

The Cortex-M0 is a 32-bit ARM processor optimized for low-cost and low-power embedded applications. It is an extremely compact and energy efficient design, making it well-suited for simple microcontroller units (MCUs) in cost-sensitive devices that require basic computation and connectivity features.

The Cortex-M23 takes the M0 design and enhances it further for ultra low-power microcontroller applications. ARM positions the M23 core for battery-powered and energy harvesting IoT edge nodes that need to operate autonomously for long periods. The M23 architecture incorporates additional power-saving features for improved efficiency.

Key Differences

Performance

The Cortex-M0 has a maximum clock speed of 50 MHz and achieves 1.25 DMIPS/MHz. This gives the M0 core decent performance for basic embedded applications. However, performance is limited compared to higher-end Cortex-M cores.

The Cortex-M23 boosts performance to 1.5 DMIPS/MHz with a maximum clock speed of 64 MHz. So at maximum configuration, the M23 provides up to 96 DMIPS compared to 62.5 DMIPS on the M0. The M23 achieves better performance through a longer 4-stage pipeline vs 3-stage for the M0.

Power Efficiency

A major focus for the Cortex-M23 design was improving power efficiency over the ultra-low power M0. ARM targeted a 2x boost in energy efficiency for the M23 core. This allows M23 MCUs to operate much longer on small batteries or energy harvesting sources.

The M23 incorporates architectural optimizations like operand isolation and logic merging that reduce switching activity. It also has an enhanced sleep/wakeup system that draws minimal leakage current in sleep mode. These enhancements make the M23 the most energy efficient application processor ARM has developed.

Features

The Cortex-M0 has a compact two-stage pipeline designed for minimal area and power draw. It includes basic embedded features like 16-32 bit Thumb instruction set, NVIC interrupt controller, SysTick timer, and debug support.

Building on the M0 foundation, the M23 adds a number of features to support ultra low-power applications. This includes wait-for-interrupt and sleep modes, data watchpoint tracing, and optional memory protection unit. The M23 also has enhancements for deterministic real-time performance.

Intended Use Cases

The Cortex-M0 targets cost-sensitive embedded applications where resources are very limited. It excels in basic industrial sensors, home appliances, consumer electronics, and simple IoT devices.

The Cortex-M23 focuses on battery-operated and energy harvesting wireless IoT endpoints. Typical applications include wireless sensors, wearable electronics, and remote controls. The power optimizations make it ideal for years of autonomous operation.

Architecture Comparison

Since the Cortex-M23 builds on the compact M0 foundation, the two cores share a similar streamlined architecture. But the M23 adds new capabilities focused on ultra low-power operation.

Pipeline

As mentioned earlier, the M0 has a compact 3-stage pipeline while the M23 lengthens this to 4 stages. The additional branch prediction stage in the M23 boosts performance while adding minimal power and area overhead.

Wakeup Unit

A new Wakeup Unit (WIC) in the M23 manages the processor state during sleep. It allows very fast low-latency wakeup from sleep/standby states to handle interrupts. This minimizes workload interruption and power consumption when idling.

Data Watchpoint Trace

The embedded trace macrocell in the M23 includes a data watchpoint trace feature. This allows tracing processor execution while watching accesses to specific addresses. The data tracing enhances debugging capabilities without excessive overhead.

Security Extension

An optional TrustZone security extension module can be added to the M23 core. This provides memory isolation, access control, and on-chip cryptographic acceleration for trusted execution environments.

Deterministic Operation

The M23 architecture incorporates features that make execution fully deterministic. This includes avoiding pipeline stalls, atomic bit operations, duplication of system timers, and guarantees around interrupt handling. Deterministic operation is important for real-time applications.

Performance Benchmarks

Looking at benchmarks helps quantify the performance advantages of the Cortex-M23 compared to the Cortex-M0. Here are a few notable benchmarks:

  • CoreMark-PRO – Cortex-M23 scores 5.41 vs 2.47 for the M0, demonstrating 118% higher benchmark performance.
  • DMIPS/MHz – 1.5 DMIPS/MHz for the M23 vs 1.25 DMIPS/MHz for the M0, a 20% advantage.
  • Dhrystone – 1.03 DMIPS/MHz for the M23 and 0.9 DMIPS/MHz for the M0 based on the industry standard Dhrystone benchmark.

So while the maximum clock speeds differ by just 14 MHz, the microarchitecture improvements in the M23 give it a sizable real-world performance advantage over the older Cortex-M0 design.

Power Efficiency Comparisons

Since ultra low-power operation was a primary goal for the Cortex-M23, it achieves major efficiency gains over the already impressive Cortex-M0. Some sample comparisons:

  • Active Mode Power – 12 μW/MHz for Cortex-M23 versus 15 μW/MHz for Cortex-M0, a 20% improvement.
  • Standby Mode Leakage – 0.5 μW for Cortex-M23 versus 2 μW for Cortex-M0, 4x less leakage.
  • Sleep Mode Leakage – 0.2 μW for Cortex-M23 versus 0.6 μW for Cortex-M0, 3x enhancement.

The architectural and circuity optimizations allow the M23 to operate at lower voltages as well. The M23 can reliably run down to voltages as low as 0.7V to extend battery life.

Target Applications

The differing capabilities and design goals of the Cortex-M0 and Cortex-M23 make them suited for different types of embedded applications.

Cortex-M0 Applications

  • Basic industrial sensors and controllers
  • Small home appliances and consumer electronics
  • Toys and other cost-sensitive gadgets
  • Simple lighting controls
  • Low-end wearable devices

Cortex-M23 Applications

  • Battery-powered wireless IoT endpoints
  • Energy harvesting wireless sensor nodes
  • Remote controls and user interfaces
  • Smart home automation devices
  • Location tracking tags and monitors

Development Environment Support

Both the Cortex-M0 and Cortex-M23 cores are supported broadly by major embedded development environments and RTOS vendors. This includes:

  • GCC ARM Embedded toolchains
  • ARM Keil MDK-ARM
  • IAR Embedded Workbench
  • Mentor Graphics Sourcery CodeBench
  • FreeRTOS, ThreadX, Micrium uC/OS, and other RTOSes

The extensive toolchain support allows developing on either core using industry standard development suites. Most tools support the ARM CMSIS software abstraction layer for straightforward software reuse across Cortex-M devices.

MCU Vendor Support

Since licensing from ARM, semiconductor vendors have released many microcontroller products based on the Cortex-M0 and Cortex-M23 cores. This includes MCUs from:

  • NXP/Freescale
  • STMicroelectronics
  • Microchip
  • Renesas
  • Nuvoton
  • Cypress Semiconductor
  • Silicon Labs
  • Infineon
  • Maxim Integrated

The strong industry support from leading MCU suppliers ensures availability of many chip options based on both core designs, though Cortex-M0 adoption is more widespread given its earlier introduction.

Conclusion

In summary, the ARM Cortex-M23 takes the compact and efficient Cortex-M0 design and pushes it to an even lower level of power consumption. The M23 achieves substantial efficiency gains through microarchitectural enhancements specifically targeted at battery-powered applications. While the M0 excels in basic embedded devices, the M23 is purpose-built for autonomous wireless IoT nodes needing extended battery life. Both cores will continue seeing widespread use in future embedded and IoT products requiring low cost and power efficiency.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article Cortex-M0 Interrupt Priority
Next Article Difference Between ARM Cortex M0 and M0+
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

Is ARM cortex a microcontroller?

The ARM Cortex series refers to ARM processor cores designed…

7 Min Read

Debugging tips for Cortex-M1 vector table configuration

Setting up the vector table properly is crucial for getting…

10 Min Read

What is an example of a watchdog timer?

A watchdog timer (WDT) is a hardware timing circuit that…

8 Min Read

What instruction set does the Arm Cortex M0 support?

The Arm Cortex-M0 is a 32-bit RISC processor core that…

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

Sign in to your account