System Memory Management Units

The Arm System Memory Management Units

Getting Started

A system memory management unit (SMMU) is responsible for all aspects of memory management, including caching and memory virtualization. It gives a common view of memory to all SoC components. It enforces memory protection and access schematic while extending memory virtualization services that match those provided by the main application processor to ensure consistent security across the SoC. The SMMU is designed for use in a virtualized system where multiple guest operating systems are managed by a hypervisor. 


The System Memory Management Unit family

CoreLink MMU-600AE

CoreLink MMU-600AE

Software compatible with MMU-600. Adds additional safety features to meet safety requirements for building high-performance ASIL B to ASIL D systems.

The CoreLink MMU-600AE is part of Arm's Safety Ready program, a collection of products across the Arm portfolio that have been through various and rigorous levels of functional safety systematic flows and development. 

MMU-600AE is compatible with the Armv8.2-A enabled Cortex-A76AE, Cortex-A76 and Cortex-A55 processors. Fully backwards compatible with Armv7.0 and Armv8.0 cores.

MMU-600AE adds address and white-noise protection on top of ECC protection of memory data and AXI4-Stream interconnect with fault detection. With shared SRAM architecture, MMU-600AE incorporates efficient functional logic duplication. All main logic is duplicated for lock-step operation, with optionally duplicated comparators. External interface between MMU-600AE and system interconnect is protected using the AMBA extensions for interface protection.

MMU-600AE incorporates a fault tolerant, programmable fault management unit for error detection and reporting via standard error records registers (Armv8.2 RAS compliant).

Safety documentation package includes a Development Interface Report, safety manual and FMEA/FMEDA analysis for specific example configuration.

CoreLink MMU-600

Highly scalable and support for millions of translation contexts.

The CoreLink MMU-600 is compatible with the Armv8.2-A enabled Cortex-A76 and Cortex-A55 processors, and is backwards compatible with Armv7 and Armv8 processors. Designs can be scaled from small to large-scale systems while maintaining a common driver framework. 

Support for PCIe Gen4 enables IO accelerators to be connected for high throughput systems. 

CoreLink MMU-600’s stage 2 protection mechanism also enables TrustZone Media Protection v2 (TZMP2) with master side filtering. This protects high value 4K premium content without the need for extensive memory carve-outs.

CoreLink MMU-500

Accelerated stage 1 and stage 2 address translation for maximum flexibility.

The CoreLink MMU-500 is compatible with the Armv8-A enabled Cortex-A72 and Cortex-A53 processors, and is backwards compatible with the Arm Cortex-A15 and Arm Cortex-A7 processors. It offers nested stage 1 and stage 2 accelerated address translation with multiple distributed translation buffers controlled from a single control unit. It is compatible with a wide range of bus master types and capabilities. offering maximum flexibility in implementing efficient SoC designs that need to support virtualized applications.

CoreLink MMU-401

Accelerated stage 2 address translation to reduce hypervisor overhead.

The CoreLink MMU-401 is compatible with the Arm Cortex-A15 and Cortex-A7 processors and offers stage 2 accelerated address translation for bus masters that already implement MMU functionality for stage 1 translation, such as the Mali-400 Graphics Processor, thereby reducing the hypervisor overhead in managing complex bus master interactions.

 

Whitepaper: Enterprise Virtualization with Arm CoreLink SMMU
and Arm CoreLink GIC

Download

Highlights

CoreLink MMU-600 features

  • Enhances CoreLink MMU-500 feature set by incorporating SMMUv3.1 specification to support Armv8.2 CPUs.
  • Expands the number of contexts supported to millions.
  • Implements AMBA-DTI to interface TBU and TCU to improve scalability.
  • Multi-level TLB and Walk Cache improves system address translation hit rates.
  • Improved write buffer depth and parallel translations.
Diagram on enterprise for CCN502 to 512.

CoreLink MMU-500 Features

  • Builds on top of MMU-400 features by implementing SMMUv2 architecture adding support for Armv8 CPUs.
  • Supports Stage 1, Stage 2, and Stage1 followed by Stage 2 address translation for up to 128 active device contexts.
  • Implements a distributed Translation Buffer Unit (TBU) micro-architecture with direct point-to-point connections between each TBU and the centralized Translation Control Unit (TCU) for Page Table Walks (PTWs).
  • Supports up to 128 entries per TLB which is further backed by TCU cache up to 2K entries.

CoreLink MMU-401 Features

  • Supports SMMUv1 architecture for Armv7 CPUs and Arm v8 for 64KB page sizes.
  • Performs stage2 translation only for hypervisor support.
  • Implements a single TBU micro-architecture with connection to a single TCU for page table walks.

MMU-500 Block Diagram

CoreLink MMU-500 Characteristics

The CoreLink MMU-500 supports the translation formats of Armv7 and Armv8 architectures and performs Stage 1, Stage 2, or Stage 1 followed by Stage 2 translations for all page sizes except 16KB page granule for Armv8. The MMU-500 is implemented as a distributed design with one or more TBUs communicating to a single centralized TCU that performs PTWs to memory. Each TBU can be located in its own clock and power domain making it easy to co-locate the TBU with the peripheral requiring translation. Each TBU communicates to the TCU over an point-to-point stream interface and with bus masters over ACE-Lite. The TCU has an AXI4 slave interface for configuration. 


  • Manual containing technical information.
  • CoreLink MMU-600 Technical Reference Manual

    For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

    MMU-600 TRM
  • Manual containing technical information.
  • CoreLink MMU-500 Technical Reference Manual

    For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

    MMU-500 TRM
  • Manual containing technical information.
  • CoreLink MMU-401 Technical Reference Manual

    For system designers, system integrators and programmers who are designing a SoC, the Technical Reference Manual is the go-to resource.

    MMU-401 TRM
  • A program that is running on a desktop.
  • SMMUv3 Architecture Spec

    Builds on top of SMMUv2 specification to add support for Armv8 architecture.


    SMMUv3 Spec

Get support

Arm support

Arm training courses and on-site system-design advisory services enable licensees to realize maximum system performance with lowest risk and fastest time-to-market.

Arm training courses  Open a support case
Answered Where do I find presentations and photos from SC'18? 0 votes 407 views 0 replies Started 2 months ago by John Linford Answer this
Discussion Please consider my tag for inclusion on the ARM Community 1 votes 16454 views 25 replies Latest 1 months ago by SULMIYATDAD Answer this
Not answered ARM Toolchain & Objective-C 0 votes 7 views 0 replies Started 8 hours ago by Frotz Answer this
Not answered M0 Synthesis Power Report
  • Cortex-M0
  • DesignStart
0 votes 15 views 0 replies Started 9 hours ago by Nacho Renteria Answer this
Suggested answer M0+ Stack Pointer (PSP/MSP) Clarification
  • Cortex-M0
  • R13 (SP Stack Pointer)
  • cortex-m0+
0 votes 295 views 9 replies Latest 16 hours ago by Sean Dunlevy Answer this
Suggested answer Streamline does not work with the latest gator - any suggestions?
  • Streamline Performance Analyzer
0 votes 75 views 3 replies Latest 16 hours ago by Andrej-D Answer this
Not answered Can I use AXI speck for Udemy classes 0 votes 11 views 0 replies Started 18 hours ago by hayk Answer this
Suggested answer Inquire about the Indian Navigation. 0 votes 65 views 1 replies Latest 19 hours ago by HinaEni Answer this
Answered Re: Arm cortex-A5 0 votes 528 views 22 replies Latest 19 hours ago by ZbinAhmed Answer this
Suggested answer IPMI Energy Agent 0 votes 198 views 5 replies Latest 20 hours ago by Patrick Wohlschlegel Answer this
Not answered ION buffer 0 votes 19 views 0 replies Started 21 hours ago by SSW Answer this
Suggested answer DS-5可以使用自定义的工具链吗,如果可以怎么配置呢 0 votes 148 views 2 replies Latest yesterday by zjd1988 Answer this
Answered Where do I find presentations and photos from SC'18? Started 2 months ago by John Linford 0 replies 407 views
Discussion Please consider my tag for inclusion on the ARM Community Latest 1 months ago by SULMIYATDAD 25 replies 16454 views
Not answered ARM Toolchain & Objective-C Started 8 hours ago by Frotz 0 replies 7 views
Not answered M0 Synthesis Power Report Started 9 hours ago by Nacho Renteria 0 replies 15 views
Suggested answer M0+ Stack Pointer (PSP/MSP) Clarification Latest 16 hours ago by Sean Dunlevy 9 replies 295 views
Suggested answer Streamline does not work with the latest gator - any suggestions? Latest 16 hours ago by Andrej-D 3 replies 75 views
Not answered Can I use AXI speck for Udemy classes Started 18 hours ago by hayk 0 replies 11 views
Suggested answer Inquire about the Indian Navigation. Latest 19 hours ago by HinaEni 1 replies 65 views
Answered Re: Arm cortex-A5 Latest 19 hours ago by ZbinAhmed 22 replies 528 views
Suggested answer IPMI Energy Agent Latest 20 hours ago by Patrick Wohlschlegel 5 replies 198 views
Not answered ION buffer Started 21 hours ago by SSW 0 replies 19 views
Suggested answer DS-5可以使用自定义的工具链吗,如果可以怎么配置呢 Latest yesterday by zjd1988 2 replies 148 views