The Cortex-M processor series from ARM is one of the most popular choices for embedded and IoT applications. With its balance of performance, power efficiency, and cost, Cortex-M has found its way into billions of devices. This has led many embedded developers to wonder – will Cortex-M transition to the newer ARMv8 architecture going forward?
The quick answer is no, Cortex-M is expected to remain on the ARMv7-M architecture for the foreseeable future. While ARMv8 does bring certain advantages, the changes required to transition Cortex-M would likely offset any gains for microcontroller-class applications.
Background on ARM Architectures
To understand why Cortex-M is staying on ARMv7-M, it helps to first look at the different ARM architectures:
- ARMv7-A – Application processors like Cortex-A series
- ARMv7-R – Real-time processors like Cortex-R series
- ARMv7-M – Microcontrollers like Cortex-M series
- ARMv8-A – Latest application processors with 64-bit support
The Cortex-M series uses the ARMv7-M architecture which was designed specifically for embedded microcontrollers. It includes features like Thumb-2 instruction set, NVIC interrupt controller, SysTick timer, and debug support. The key aspects of v7-M are simplicity, efficiency, and low cost.
Advantages of ARMv8
The ARMv8-A architecture brought several major improvements for application processors:
- 64-bit instruction set – Supports 64-bit addressing and data processing
- Advanced SIMD – Improved NEON vector processing engine
- Cryptography Extensions – Hardware acceleration for crypto algorithms
- Virtualization Support – New hypervisor and virtualization features
For high-end application processors like Cortex-A series, these features provide significant performance and efficiency benefits. The 64-bit instruction set enables accessing larger memory regions and improved data processing. The other extensions provide hardware-level improvements for graphics, security, and virtualization.
Drawbacks of Transitioning Cortex-M to ARMv8
While the ARMv8 additions look compelling, transitioning Cortex-M to this architecture would require significant changes that may not be practical:
- Instruction Set – Thumb vs ARMv8 A64. New instruction encodings, incompatible with ARMv7-M.
- Memory System – ARMv8 has 4-level page tables. Cortex-M uses simpler MPU.
- Interrupt Handling – New exception model. NVIC would need reworking.
- Debug – Debug architecture is different. New Embedded Trace Macrocell.
- Timing – Instruction timings would change. All code needs revalidation.
Essentially, migrating Cortex-M to ARMv8 would require redesigning and reimplementing major components like the CPU core, memory management, interrupts, debugging, and more. It would be nearly equivalent to creating a new microcontroller architecture ground-up.
Minimal Benefits for Microcontroller Class Applications
The key issue is that ARMv8’s features provide little benefit for simple microcontroller applications:
- 64-bit Not Needed – Cortex-M address spaces are small enough for 32-bit.
- No Performance Gain – In fact, 64-bit can be slower due to larger memory footprint.
- Advanced SIMD Unnecessary – Cortex-M workloads don’t need intense vector processing.
- Cryptography Usually Handled in Hardware – If needed, crypto accelerators added instead of ARMv8 extensions.
- Virtualization Rarely Used – Hypervisors not common in microcontroller applications.
In other words, ARMv8 solves issues not faced by the microcontroller class of devices. The costs of transitioning Cortex-M to ARMv8 cannot be justified by any real benefits it would provide.
ARMv8-M – A Possible Future Direction
ARM recognizes that microcontrollers have different needs than application processors. To that end, they have announced an upcoming ARMv8-M architecture specifically targeting embedded and IoT devices.
ARMv8-M aims to bring select ARMv8 features while retaining compatibility with ARMv7-M:
- Optional 64-bit Support – 64-bit registers and address space, while retaining ARMv7-M Thumb instruction set.
- Enhanced Security Features – Improved hardware mitigations for emerging classes of vulnerabilities.
- DSP Extension – New dual-issue DSP instructions for more signal processing performance.
By only bringing features beneficial for microcontrollers, ARMv8-M avoids a complete architecture redesign. This allows building on existing software investments while incrementally improving security, future-proofing address spaces, and boosting performance of emerging workloads. ARMv8-M maintains a focus on simplicity, determinism, and reliability needed for constrained devices.
Therefore, ARMv8-M seems like a potential future direction that retains ARMv7-M advantages while selectively adopting improvements from ARMv8. However, no specific timeline has been shared for ARMv8-M yet.
In summary, Cortex-M is highly optimized for embedded microcontrollers and is expected to stay on the ARMv7-M architecture. A full migration to ARMv8 does not make sense considering the required changes and lack of benefits for Cortex-M’s target applications. The upcoming ARMv8-M architecture does promise to bring incremental enhancements while maintaining compatibility with billions of lines of deployed Cortex-M code. So while ARMv8 features may trickle down, Cortex-M is firmly rooted in v7-M for now and the foreseeable future.