The main difference between the Cortex-M23 and Cortex-M0+ microcontroller architectures from ARM is that the Cortex-M23 is a more advanced and capable design optimized for low power IoT edge devices, while the Cortex-M0+ is an older, more basic MCU aimed at simple embedded applications. The Cortex-M23 offers higher performance, better power efficiency, and more integrated features compared to the Cortex-M0+.
Overview of Cortex-M23
The Cortex-M23 is one of ARM’s latest microcontroller architectures built on the Armv8-M baseline instruction set. It was introduced in 2020 as a replacement for the older Cortex-M0+ design for use in resource constrained IoT and edge devices. The goal of Cortex-M23 was to raise the performance bar for Cortex-M0-class ultra-low power MCUs while still maintaining full code compatibility with previous Cortex-M0 cores.
Some of the key highlights of the Cortex-M23 architecture include:
- Up to 40% higher CPU performance than Cortex-M0+
- ARMv8-M architecture with TrustZone security
- Single cycle I/O port access
- Low power features like wait-for-interrupt mode
- Tightly integrated SRAM up to 256KB
- Single precision hardware floating point unit
- Optional cryptographic acceleration (SHA-256)
- Error correction coding (ECC) for memories
The Cortex-M23 is manufactured on ultra-low power 40nm and 28nm process nodes making it highly energy efficient. It is designed to operate at voltages ranging from 1.1V to 1.3V optimizing it for battery operated devices. The core itself only consumes about 12uA/MHz reducing overall system power consumption.
Overview of Cortex-M0+
The Cortex-M0+ is an older microcontroller architecture introduced by ARM back in 2012. It was designed as an extremely small, low cost MCU for simple embedded applications like home appliances, toys, sensors etc. The goal was to enable the ARM architecture to penetrate the 8-bit and 16-bit MCU market.
Here are some of the main features of the Cortex-M0+ design:
- 32-bit RISC core with ARMv6-M architecture
- Up to 64KB Flash and 16KB SRAM memory
- 2 stage pipeline for better performance
- Support for tightly coupled memories
- Operates at 1.25V nominal voltage
- Optional MPU for memory protection
- Very small silicon footprint and low cost
The Cortex-M0+ is fabricated on legacy 180nm or 90nm process nodes. It has a 2 stage pipeline compared to the 3 stage pipeline on Cortex-M3/M4 chips. This simplified design reduced power and area but at the cost of lower performance. The Cortex-M0+ delivers 0.9 DMIPS/MHz which is about half of what typical Cortex-M3/M4 cores can achieve.
CPU and Core Architecture
The Cortex-M23 uses the Armv8-M architecture with enhancements like improved branch prediction while the Cortex-M0+ is based on the older Armv6-M design. The M23 has an 8-stage pipeline delivering up to 1.34 DMIPS/MHz. The M0+ has just 2 pipeline stages with 0.9 DMIPS/MHz. The M23 also includes a hardware floating point unit not present on the M0+.
Both cores use a von Neumann architecture with unified instruction and data buses to minimize size and power. But the M23 allows faster single cycle access to I/O thanks to dual ported register files while the M0+ needs multiple cycles. The M23 also supports up to 256 KB of integrated SRAM while the M0+ maxes out at 64 KB.
In terms of instruction set, both cores are thumb instruction set based for high code density. The M23 implements the ARMv8-M ISA with some additions like hardware divide while the M0+ uses the ARMv6-M ISA. Both support the Thumb-2 extended instruction set but only M23 has directives like IT for low overhead loops.
Memory and Peripherals
A key difference between the two cores is the support for tightly coupled embedded memories. The Cortex-M23 incorporates up to 256 KB of embedded SRAM directly on the silicon die for faster access and lower power. This avoids the need for external memories in many cases. The Cortex-M0+ in comparison only supports up to 64 KB of embedded SRAM limiting its use in memory intensive applications.
Both cores have a Memory Protection Unit for guarding regions of memory from access violations. But only the Cortex-M23 supports Arm TrustZone for security sensitive applications. TrustZone provides hardware enforced isolation between secure and non-secure states.
For peripherals, the Cortex-M23 contains a single precision hardware floating point unit capable of operating on 32-bit floats. This enables better performance on math intense tasks involving digital signal processing, 3D graphics etc. The Cortex-M0+ lacks a floating point unit requiring software based math libraries.
The M23 also provides optional acceleration for cryptography workloads through integrated SHA-256 hash processing. ECC protection for memories is also included for reliability. These advanced peripherals allow the M23 to handle secure connectivity use cases much better compared to the basic M0+ design.
Since the Cortex-M23 is designed for low power IoT endpoints, it incorporates many advanced power saving features. This includes support for three low power modes: Sleep, Deep Sleep and Shutoff. There is also an extremely low power Wait for Interrupt mode to reduce dynamic power.
The M23 allows peripherals like ADCs, Serial Interfaces, and I/O ports to remain active in sleep modes for asynchronous tasks. Clocks and power domains can be gated more aggressively to cut static leakage. Memory retention and wake up logic are built-in for efficient low power operation.
Overall the Cortex-M23 can function efficiently down to just 12uA/MHz greatly minimizing energy needs. This enables longer battery life for connected devices. The Cortex-M0+ is less sophisticated when it comes to power management. It relies more on the system integrator to implement external low power techniques.
Performance and Efficiency
Thanks to its 8-stage pipeline and microarchitecture enhancements, the Cortex-M23 delivers up to 40% higher performance per MHz compared to the Cortex-M0+. Clock speeds can scale up to 100 MHz pushing the performance envelope for ultra low power MCUs.
The M23 achieves 1.34 CoreMarks/MHz compared to just 0.9 CoreMarks/MHz for the M0+ at equivalent clock speeds. This boost in efficiency allows the M23 to take on more complex tasks while using the same power budget as an M0+ based system. The M23 is also about 20% smaller than the M0+ in terms of silicon area optimizing cost.
Overall code density between the two cores is roughly equivalent thanks to their thumb instruction sets. But the M23 does have improved branch prediction and caching which gives it a performance advantage over the simpler M0+ pipeline.
Key Differences Summary
To summarize, here are some of the major differences between the Cortex-M23 and Cortex-M0+:
- The M23 uses Armv8-M ISA while M0+ uses older Armv6-M
- M23 has 8 stage pipeline, M0+ has just 2 stages
- M23 delivers 1.34 DMIPS/MHz, M0+ gives 0.9 DMIPS/MHz
- M23 supports up to 256KB embedded SRAM, M0+ only 64KB
- M23 includes floating point unit, M0+ has no FPU
- M23 provides TrustZone security, ECC RAM, and crypto acceleration
- M23 optimized for low power IoT, M0+ for simple embedded apps
- M23 built on 40nm/28nm, M0+ uses legacy 180nm/90nm nodes
So in summary, the Cortex-M23 is a newer, faster, and more advanced low power microarchitecture compared to the older basic Cortex-M0+ design. The M23 brings Cortex-M performance closer to par with competing ARM9 and 8051-based MCUs while retaining full code compatibility with previous Cortex-M0 cores.
Comparison of Application Targets
The Cortex-M23 is aimed at ultra low power embedded applications like:
- Wearables and hearables
- Smart home sensors and IoT endpoints
- Industrial automation
- Low power wireless communications
- Battery powered or energy harvesting devices
- AI edge inference
Its combination of power efficiency and higher performance makes it ideal for microcontroller-based edge intelligence. The built-in security features also enable robust IoT endpoint protection.
In contrast, the Cortex-M0+ is more suited for these simpler embedded scenarios:
- Home appliances
- HID peripherals
- Analog semiconductors
- Basic industrial sensors
- LED lighting
- Alarm systems
The lower cost and more compact footprint of the Cortex-M0+ fits well in basic electronic devices that don’t require advanced computing capabilities or connectivity. Its simplicity and power efficiency work adequately for basic embedded control tasks.
A major advantage of the Cortex-M23 is that it maintains complete binary compatibility with existing Cortex-M0+ software. This allows developers to easily migrate designs from M0+ over to M23 to take advantage of its improved performance and features without software changes.
Both cores use the same ARM thumb instruction set architecture along with similar exception and operating models. Functions compiled for Cortex-M0+ will run unmodified on Cortex-M23. The debug architecture and toolchain is also identical. This makes the Cortex-M23 a natural step up from the venerable Cortex-M0+ design.
Of course to take full advantage of the M23 architectural enhancements, some code optimization is recommended. But for straightforward porting, no software modifications are required between the cores. This enables an easy migration path for existing MCU software investments.
Development Tools and Support
ARM’s Cortex Microcontroller Software Interface Standard (CMSIS) ensures compatibility between both Cortex-M architectures and a unified development framework. The same CMSIS device abstraction layer works across the M23 and M0+ simplifying software reuse.
Most ARM compiler toolchains like GCC, LLVM, and ARM Compiler 6 fully support both cores. Popular IDEs with debug like Keil MDK, IAR EWARM, and MCUXpresso can be used seamlessly. Extensive documentation and software libraries are provided by both ARM and its silicon partners.
For developers, the experience of coding for Cortex-M23 vs Cortex-M0+ will be nearly identical from the software standpoint. Companies like NXP, STMicroelectronics, Microchip, Renesas, Cypress, and others offer the M23 in their MCU portfolios ensuring widespread availability.
In conclusion, the Cortex-M23 represents a significant step forward for ARM’s ultra low power MCU roadmap. It raises both performance as well as integration while providing a smooth upgrade path from earlier Cortex-M0+ designs. With its power focus and enhanced architecture, the Cortex-M23 establishes a new benchmark for embedded intelligence at the edge.