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

David Moore
Last updated: October 5, 2023 9:55 am
David Moore 8 Min Read
Share
SHARE

The Cortex-M23 and Cortex-M3 are both ARM processor cores designed for embedded and IoT applications. The key difference between them is that the Cortex-M23 is a newer, more advanced and efficient processor core while the Cortex-M3 is an older design. In a nutshell, the Cortex-M23 offers better performance and power efficiency compared to the Cortex-M3.

Contents
Introduction to ARM Cortex-M23 and M3Key Differences Between Cortex-M23 and M3Architecture ComparisonPipelineMemory SubsystemWakeup UnitInstruction SetDebug & TracePerformance ComparisonPower Efficiency ComparisonUse Case ComparisonCortex-M23 Use CasesCortex-M3 Use CasesDevelopment Ecosystem ComparisonConclusion

Introduction to ARM Cortex-M23 and M3

ARM Cortex-M is a family of 32-bit RISC ARM processor cores licensed by Arm Holdings. The Cortex-M family is designed for deeply embedded and IoT applications requiring low power consumption, good real-time performance and high code density.

The Cortex-M3 is one of the earliest and most popular cores in the Cortex-M family, launched in 2004. It has a 3-stage pipeline and includes features like Thumb-2 instruction set, optional MPU, and configurable Nested Vectored Interrupt Controller (NVIC).

The Cortex-M23 is a newer ultra low power microcontroller core launched in 2016. It retains code compatibility with Cortex-M3 but adds advanced power saving features like memory power gating and low power wake up on events.

Key Differences Between Cortex-M23 and M3

Here are some of the major differences between the ARM Cortex-M23 and Cortex-M3 cores:

  • Power Efficiency – The M23 is designed to be ultra low power with advanced power saving features. M3 is less power efficient.
  • Performance – The M23 offers higher performance than the older M3 despite being lower power.
  • Pipeline – The M23 has a 2-stage pipeline while the M3 uses a 3-stage pipeline.
  • Instruction Set – Both support Thumb-2 instruction set. M23 adds some minor extensions.
  • Wakeup Time – M23 offers fast low power wake up from sleep/deep sleep modes.
  • Memory – M23 supports multi-layer AHB bus matrix for flexible memory connectivity.
  • Debug – Both have ARM CoreSight debug architecture. M23 adds enhancements.
  • Fabrication – M23 uses newer 28nm fabrication while M3 uses legacy 130nm process.

Architecture Comparison

Pipeline

The Cortex-M3 uses a 3-stage pipeline (Fetch, Decode, Execute) which allows for greater instruction throughput. The M23 implements a shorter 2-stage pipeline (Fetch+Decode, Execute) that reduces power consumption but also lowers peak performance.

Memory Subsystem

Both cores support seperate instruction and data buses and memory management units for memory protection. The M23 adds more flexible multi-layer AHB bus matrix connectivity for more IO masters. It also supports memory power gating to cut power to unused memory blocks.

Wakeup Unit

A key addition in the M23 is the Low Power Wakeup Unit which allows the core to wake up quickly from sleep/deep sleep modes in response to interrupts or events while consuming minimal power in standby. This enables energy efficient event based processing.

Instruction Set

Both the M23 and M3 implement the Thumb-2 instruction set which provides a balance of high code density and good performance. Thumb-2 includes both 16-bit and 32-bit instructions to allow flexibility. The M23 adds some minor extensions for better code density.

Debug & Trace

For debug and trace, the cores utilize ARM’s CoreSight architecture. This provides JTAG interface for debug, Embedded Trace Macrocell (ETM) for instruction trace, and Instrumentation Trace Macrocell (ITM) for printf style debug trace. The M23 adds enhancements like Micro Trace Buffer (MTB) and hardware breakpoints.

Performance Comparison

Despite its lower power design, the Cortex-M23 actually delivers significantly higher performance than the older Cortex-M3. Here are some key performance differences:

  • Higher DMIPS/MHz – Up to 1.25 DMIPS/MHz for M23 vs 1.0 for M3
  • Faster wake up from sleep – Just 3 cycles for M23 vs hundreds of cycles for M3
  • Lower latency interrupts – 12 cycles on M23 vs 18 cycles on M3
  • Higher energy efficiency – Up to 20% lower energy per instruction compared to M3

The Cortex-M23 achieves these gains through its updated 2-stage pipeline, optimized logic, and advanced 28nm fabrication process. Overall, it delivers excellent performance for an ultra low power core.

Power Efficiency Comparison

Power efficiency is a key focus area of the Cortex-M23 design. Here are some of its major power saving features:

  • Process – 28nm fabrication significantly reduces power versus old 130nm process used for M3
  • Clock gating – Fine grained clock gating shuts down unused logic
  • Power modes – Supports multiple low power modes including three sleep modes
  • Wakeup Unit – Fast low power wake from sleep and interrupts
  • Memory gating – Memory power gating reduces leakage current
  • Architecture – 2 stage pipeline reduces power versus 3 stage M3 pipeline

As a result, the Cortex-M23 consumes significantly lower active and standby power than the Cortex-M3. For example, it can achieve over 4x lower standby power for a given process node.

Use Case Comparison

Here are some examples of where each core works best based on their capabilities and design focus:

Cortex-M23 Use Cases

  • Ultra low power sensor nodes
  • Low power wearables and hearables
  • Battery powered or energy harvesting IoT endpoints
  • Always-on voice assistant devices

Cortex-M3 Use Cases

  • Cost sensitive embedded control systems
  • Simple IoT endpoints where low cost is critical
  • Automotive body applications
  • Legacy embedded systems migrating to ARM

For low power battery constrained applications, the Cortex-M23 is usually the best fit due to its advanced power saving features. The Cortex-M3 may still be suitable for cost sensitive non power critical applications that can benefit from its lower cost.

Development Ecosystem Comparison

Both the Cortex-M23 and M3 are supported by extensive development ecosystems including hardware IP, software tools, RTOSes, debug probes and more. Here are some key points:

  • Compatible compilers and IDEs – GCC, IAR, Keil MDK all support both cores
  • RTOS support – FreeRTOS, ThreadX, Zephyr all support M23 and M3
  • M23 adds CMSIS-Core v5 – Improved software interfaces for M23
  • Hardware IP – Both have silicon, FPGA and virtual prototype IP available
  • Debug probes – J-Link, ULINKplus, Segger probes all support both

The Cortex-M23 reuse of the v8-M architecture ensures easy software migration from M3. However, developers need to utilize new low power features of the M23 hardware for optimal efficiency.

Conclusion

In summary, the Cortex-M23 is clearly a more advanced processor core compared to the older Cortex-M3. It provides significant improvements in performance, power efficiency, and features while retaining code compatibility with the M3. For new low power embedded and IoT designs, the M23 should be strongly considered over the M3.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article Arm Cortex M3 vs M7: A Detailed Comparison
Next Article Arm Cortex M3 Architecture
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

What is the purpose of the control register inside the Cortex-M processor core?

The control register inside the Cortex-M processor core serves a…

6 Min Read

Are ARM processors more powerful?

ARM processors have become increasingly popular in recent years, powering…

6 Min Read

Are there any practical differences between the Arm M0 and M3 for the C programmer?

The main practical differences between the Arm Cortex-M0 and Cortex-M3…

5 Min Read

Write buffer with enabled MPU on ARM Cortex-M4

The ARM Cortex-M4 processor includes features like the Memory Protection…

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

Sign in to your account