SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: What is ARMv6-M in Arm Cortex-M series?
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

What is ARMv6-M in Arm Cortex-M series?

Scott Allen
Last updated: September 17, 2023 1:17 pm
Scott Allen 8 Min Read
Share
SHARE

ARMv6-M refers to the architecture version 6-M of ARM Cortex-M series of 32-bit microcontrollers. It was introduced in 2004 as a replacement for the older ARM7 microcontrollers, with the goal of providing better performance and power efficiency for embedded and IoT applications.

Contents
Key Features of ARMv6-M ArchitectureARMv6-M Processor ModesARMv6-M Instruction SetCortex-M0 and Cortex-M0+ CoreCortex-M1 CoreCortex-M3 CoreMemory ArchitectureBus ArchitectureDebug and Trace ArchitectureInterrupts and ExceptionsPower ManagementDevelopment SupportExample ARM Cortex-M MicrocontrollersConclusion

Key Features of ARMv6-M Architecture

Some of the major features of ARMv6-M architecture include:

  • 32-bit RISC instruction set architecture
  • Thumb-2 instruction set for improved code density
  • 3-stage pipeline for faster instruction execution
  • Embedded Trace Macrocell (ETM) for real-time debug
  • Nested Vectored Interrupt Controller (NVIC) for managing interrupts
  • System tick timer and SysTick exception for real-time OS support
  • Memory Protection Unit (MPU) for memory access control
  • Wakeup Interrupt Controller (WIC) for low-power mode support
  • Single-cycle I/O port for fast GPIO access

ARMv6-M Processor Modes

The ARMv6-M architecture defines two processor modes:

  • Thread Mode – Used for executing application code. Has access to limited system resources.
  • Handler Mode – Used for handling exceptions and interrupts. Has access to all system resources.

The processor automatically switches between Thread and Handler modes based on the type of code being executed.

ARMv6-M Instruction Set

The ARMv6-M architecture uses Thumb-2 instruction set which includes both 16-bit and 32-bit instructions. The key features of Thumb-2 are:

  • 16-bit Thumb instructions for improved code density
  • 32-bit instructions for better performance
  • Conditional execution of instructions
  • Load/Store architecture with support for different addressing modes
  • SIMD instructions for digital signal processing

Thumb-2 provides a good balance between high code density and good performance. The 16-bit instructions help reduce code size while 32-bit instructions allow efficient execution. Conditional execution also reduces branching for faster execution.

Cortex-M0 and Cortex-M0+ Core

The Cortex-M0 and Cortex-M0+ are two ultra low power cores based on the ARMv6-M architecture. They are designed for microcontrollers used in extremely power constrained devices like sensors, wearables etc.

Key features of Cortex-M0/M0+ cores include:

  • 2-stage pipeline for reduced power consumption
  • Small gate count allows implementation in small chip area
  • Wakeup Interrupt Controller (WIC) for low-power event handling
  • Optional Memory Protection Unit (MPU)
  • Support for CMSIS libraries for software reuse

Cortex-M0+ adds more features for better performance like tighter code density, single-cycle I/O access and fast interrupt handling using tail-chaining.

Cortex-M1 Core

The Cortex-M1 core has similar features as Cortex-M0/M0+ but is optimized for higher speed by using a 3-stage pipeline. Key features are:

  • 3-stage pipeline allows faster clock speeds up to 100 MHz
  • Optional floating point unit for math intensive applications
  • Optional MPU and embedded trace support
  • Pin-to-pin compatible with Cortex-M0 for easy migration

Cortex-M1 provides better performance while retaining the power efficiency and ease of use of the M0 cores. The 3-stage pipeline and improved Thumb-2 execution boosts speed significantly.

Cortex-M3 Core

The Cortex-M3 is a widely used core in the ARMv6-M family. It provides a good balance of performance and power efficiency. Key features are:

  • 3-stage pipeline allows clock speeds up to 150 MHz
  • Embedded Trace Macrocell (ETM) for instruction trace
  • Optional Memory Protection Unit (MPU)
  • Deterministic interrupt latency for real-time applications
  • Bit-banding for atomic bit-level access
  • Wakeup Interrupt Controller (WIC) for low-power event handling

The dual-issue Cortex-M3 pipeline and Thumb-2 instruction set provide significantly better performance than older ARM7 cores while retaining the power efficiency. The MPU improves reliability in embedded applications.

Memory Architecture

The ARMv6-M architecture supports two types of memory regions:

  • Code region – Executable region for storing code and constants.
  • SRAM region – Read-write data storage area for stacks, heaps and global variables.

The MPU allows configuring access permissions and memory attributes for up to 8 regions. Code can execute from both internal and external memory.

Bus Architecture

The bus architecture in ARMv6-M includes:

  • Advanced High-performance Bus (AHB)-Lite for high speed access to memories and peripherals.
  • AHB bridge allowing connection of external memory.
  • Optional peripheral bus (APB) bridge for peripheral access.

The simplified bus architecture reduces latency and power consumption. The optional bridges allow flexible system configuration with external memories and numerous peripherals.

Debug and Trace Architecture

ARMv6-M provides several debug and trace features like:

  • 4-pin serial wire debug (SWD) interface for debug access.
  • Breakpoints and watchpoints for debugging code.
  • Device trace via Embedded Trace Macrocell (ETM).
  • Profiling counters to optimize performance.
  • Instrumentation Trace Macrocell (ITM) for printf style debug.

These features allow non-intrusive debug and trace during code development. Production devices can also leverage debug features for field software updates and performance monitoring.

Interrupts and Exceptions

The interrupt and exception handling in ARMv6-M includes:

  • Configurable priority levels for interrupts
  • Deterministic, low-latency interrupt handling
  • Late arrival support to prevent losing interrupts
  • Tail-chaining optimization to reduce overhead
  • SysTick timer for OS task switching
  • Optional Wakeup Interrupt Controller (WIC) for low-power wakeup

The NVIC unit manages interrupts efficiently with configurable priorities. Low latency handling and late arrival support enables using ARMv6-M in real-time embedded systems.

Power Management

ARMv6-M provides multiple power saving features like:

  • Idle mode halting CPU till interrupt occurs
  • Sleep mode with lower power and wakeup latency
  • Deep sleep mode with lowest power but higher wakeup latency
  • Integrated wakeup interrupt controller (WIC)
  • Support for external wakeup events

These features allow ARMv6-M based MCUs to be used efficiently in battery-powered and energy harvesting applications requiring extended run times.

Development Support

ARMv6-M architecture is supported by an ecosystem of development tools like:

  • GCC, ARM and IAR toolchains
  • IDEs like Keil MDK, IAR EWARM, Eclipse
  • Debug probes supporting SWD interface
  • RTOS like FreeRTOS, RTX etc.
  • Extensive code examples, drivers and middleware

The availability of a robust development framework is key for wide adoption of any processor architecture. ARMv6-M is backed by ARM’s ecosystem partners with lots of resources available.

Example ARM Cortex-M Microcontrollers

Some example ARMv6-M based microcontrollers from various vendors are:

  • NXP LPC800 Series Cortex-M0+ MCUs
  • STM32L0 Series Cortex-M0+ MCUs from STMicroelectronics
  • Renesas RL78 Series Cortex-M0+ MCUs
  • Microchip SAM D20 Cortex-M0+ MCUs
  • NXP LPC1100 Series Cortex-M0 MCUs
  • STM32F0 Series Cortex-M0 MCUs from STMicroelectronics
  • Silicon Labs EFM32 Gecko Series Cortex-M0+ MCUs
  • NXP LPC1300 Series Cortex-M3 MCUs
  • STM32F1 Series Cortex-M3 MCUs from STMicroelectronics
  • TI Tiva C Series TM4C123 Cortex-M4 MCUs

This shows the wide adoption of the ARMv6-M architecture across the microcontroller industry. The Cortex-M0, M0+, M3 and M4 cores cover the spectrum from ultra low power to application class performance.

Conclusion

To summarize, ARMv6-M architecture brings significant improvements over older ARM processors for 32-bit embedded and IoT applications requiring power efficiency, high code density and good performance. The simplified bus and memory architecture reduces system overhead. A wide variety of cores like Cortex-M0, M0+, M3 cater to different power and performance requirements. Extensive ecosystem support for ARMv6-M architecture has led to its dominance in the microcontroller market over the past decade.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article What is Vector Table Offset Register (VTOR) in Arm Cortex-M series?
Next Article What is ARMv7-M in Arm Cortex-M series?
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

Cortex M0+ delay routine without timers

Executing delays and timing operations are common needs in embedded…

10 Min Read

What are Multiply instructions (32-bit result/64-bit result) in Arm Cortex-M series?

The ARM Cortex-M series of processors support various multiply instructions…

9 Min Read

Cortex M0 placing interrupt vector in ram for application starting from a proprietary bootloader

Placing the interrupt vector table in RAM instead of flash…

6 Min Read

What is EK TM4C123GXL?

The EK TM4C123GXL is a low-cost evaluation board based on…

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

Sign in to your account