SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: Is the ARM Cortex M3 a processor or controller?
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

Is the ARM Cortex M3 a processor or controller?

Graham Kruk
Last updated: October 5, 2023 9:55 am
Graham Kruk 7 Min Read
Share
SHARE

The ARM Cortex M3 is primarily considered a microcontroller, which contains elements of both a processor and peripheral interfaces and controllers. However, the Cortex M3 blurs the line between a traditional microcontroller and a standalone processor.

Contents
Key Characteristics of the Cortex M3Microcontroller or ProcessorMicrocontroller CharacteristicsProcessor CharacteristicsBlurred LinesUses CasesControl ApplicationsProcessing ApplicationsCortex M3 MicrocontrollersPerformance and BenchmarksDevelopment Tools and SoftwareConclusion

Key Characteristics of the Cortex M3

The Cortex M3 has several key features that give it both processor and controller capabilities:

  • High performance 32-bit processor core based on the ARMv7-M architecture, capable of speeds up to 150 MHz
  • Memory Protection Unit for robustness and security
  • Nested Vectored Interrupt Controller for managing interrupts
  • Low gate count logic, small silicon footprint
  • Extensive peripheral interfaces including UARTs, SPI, I2C, ADC, DAC, timers, PWM, etc.
  • Single cycle IO access for high throughput
  • Dedicated debug components like Embedded Trace Macrocell

The combination of the high performance processor core with the integrated peripherals and interfaces gives the Cortex M3 microcontroller-like input/output control capabilities. However, the core itself resembles a standalone application processor in many regards.

Microcontroller or Processor

Given its blend of features, there is an argument to be made for the Cortex M3 being either a processor or a microcontroller:

Microcontroller Characteristics

  • Integrates peripheral interfaces like UART, SPI, ADC which are hallmarks of microcontroller SoCs.
  • Includes NVIC for interrupt handling typical of embedded systems.
  • Focused on real-time responsiveness, low latency, and deterministic execution suitable for control tasks.
  • Requires external components like oscillators, memory, and peripherals to function fully.
  • Used widely in embedded applications for motor control, industrial automation, IoT nodes, etc.

These qualities make the Cortex M3 well suited for embedded control applications where microcontrollers are commonly used.

Processor Characteristics

  • The core itself is a high performance 32-bit RISC processor capable of desktop-class performance.
  • Superscalar multi-stage pipeline for instruction execution optimization.
  • L1 memory system with cache to boost performance.
  • Memory protection capabilities not traditionally found in microcontrollers.
  • Can run an RTOS or rich operating system like Linux in some implementations.
  • Used in applications like networking equipment and mobile computing requiring a processor.

These attributes allow the Cortex M3 to take on processing-intensive tasks commonly performed by standalone processors.

Blurred Lines

The ARM Cortex M3 blends the capabilities of microcontrollers and application processors in many ways:

  • With its ARM Thumb-2 instruction set, the Cortex M3 supports both 32-bit and 16-bit instructions for a balance of high performance and code density.
  • The core uses 3-stage pipelining for greater throughput but also includes predictable interrupt latencies for real-time applications.
  • Though scales up to 150 MHz speeds, the Cortex M3 has clock gating and power saving modes suited for low power operation.
  • Memory Protection Unit improves security, a processor feature, but simple MPU configuration reduces complexity in embedded systems.

The Cortex M3 was designed as an ‘application-class microcontroller’ – bringing higher performance 32-bit computing to the microcontroller world. This makes the lines between microcontroller, microprocessor, and application processor blurred in comparison to older 8-bit and 16-bit microcontroller designs.

Uses Cases

Given its hybrid nature, the Cortex M3 is flexible enough for both control-oriented and processing-intensive use cases:

Control Applications

  • Motor control in appliances, robots, industrial machinery
  • Industrial automation systems
  • Automotive body applications like window, seat, and mirror control
  • Embedded control in medical devices
  • Drone/UAV flight controllers
  • 3D printers
  • Smart energy and smart grid systems

The real-time response, peripheral interfaces, and reliability of the Cortex M3 make it suitable for these control applications.

Processing Applications

  • Point-of-sale terminals
  • Barcode scanners
  • Network switches and routers
  • Voice over IP and other communication infrastructure
  • Automotive infotainment and instrument clusters
  • Traffic control and management systems
  • AR/VR wearables and headsets

The high performance, memory protection, and OS support of the Cortex M3 enable more complex tasks in these systems.

Cortex M3 Microcontrollers

The Cortex M3 core is widely used in system-on-chip (SoC) microcontrollers from leading vendors like:

  • STMicroelectronics – STM32F1, STM32F2 series
  • NXP – LPC1700, LPC1800 series
  • Microchip – SAM3, SAM4 series
  • Texas Instruments – TM4C, MSP432 series
  • Cypress – PSoC3, PSoC4, PSoC5 series

These microcontrollers integrate the Cortex M3 core with memories, peripherals, IO interfaces, and other modules making them suitable for embedded applications. Even housed within a microcontroller SoC, the Cortex M3 maintains its processing capabilities.

Performance and Benchmarks

The Cortex M3 offers significantly higher performance than traditional 8-bit and 16-bit microcontroller cores. Some key performance benchmarks:

  • DMIPS/MHz rating up to 1.25 (Dhrystone MIPS per MHz), whereas older cores achieve ~0.1 DMIPS/MHz
  • CoreMark scores of 100+ at 100 MHz, comparing well against early ARM7 and ARM9 cores
  • Drystone 2.1 MIPS at 100 MHz, Wetstone 1.55 MIPS at 100 MHz
  • Compared to the earlier ARM7TDMI, the Cortex M3 achieved more than 5X higher CoreMark performance at the same clock speed

This shows the processing capabilities of the Cortex M3 resulting from its 32-bit RISC architecture, even while operating at microcontroller-level clock speeds.

Development Tools and Software

From a software development perspective, the Cortex M3 can be programmed like a microcontroller using toolchains like:

  • Arm Keil MDK – C/C++ compiler and IDE tailored for Cortex M cores
  • IAR Embedded Workbench – Popular IDE and debugger
  • GCC ARM Embedded – GNU toolchain for ARM processors

These toolchains provide compile time optimizations for code density and performance. They enable debugging and analysis as well with IDE integration and JTAG/SWD debug probe support.

The Cortex M3 can also support more advanced RTOSes like FreeRTOS, Azure RTOS, Amazon FreeRTOS as well as embedded Linux distributions. This allows for application development using higher level languages and frameworks associated with these OS platforms.

Conclusion

While traditionally considered a microcontroller, the ARM Cortex M3 defies easy categorization. Its high performance processor core and memory protection capabilities edge toward being an application processor. Yet its tight integration with peripherals and real-time capabilities align with microcontroller use cases. The Cortex M3 brings higher performance 32-bit computing to cost and power constrained embedded applications associated with microcontrollers. In doing so, it blurs the line between microcontrollers and application processors.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article What are the modes of ARM Cortex M?
Next Article What is the processor boot sequence?
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 link register in ARM?

The link register in ARM processors is a special register…

9 Min Read

What is the Function of the ARM Cortex M3?

The ARM Cortex-M3 is a 32-bit processor core designed for…

7 Min Read

Why ARM Processor Cores Are So Popular?

ARM processor cores have become ubiquitous in modern electronics, powering…

6 Min Read

Cortex MO Pipeline Stages

The Cortex-M series of ARM processors feature a simplified pipeline…

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

Sign in to your account