Learn The Architecture - Memory System Resource Partitioning and Monitoring (Mpam) Hardware Guide 109252 0100 01 en
Learn The Architecture - Memory System Resource Partitioning and Monitoring (Mpam) Hardware Guide 109252 0100 01 en
Non-Confidential Issue 01
Copyright © 2023 Arm Limited (or its affiliates). 109252_0100_01_en
All rights reserved.
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Release information
Document history
Proprietary Notice
This document is protected by copyright and other related rights and the practice or
implementation of the information contained in this document may be protected by one or more
patents or pending patent applications. No part of this document may be reproduced in any form
by any means without the express prior written permission of Arm. No license, express or implied,
by estoppel or otherwise to any intellectual property rights is granted by this document unless
specifically stated.
Your access to the information in this document is conditional upon your acceptance that you
will not use or permit others to use the information for the purposes of determining whether
implementations infringe any third party patents.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR
ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS
DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
This document consists solely of commercial items. You shall be responsible for ensuring that
any use, duplication or disclosure of this document complies fully with any relevant export laws
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 2 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
and regulations to assure that this document or any portion thereof is not exported, directly
or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s
customers is not intended to create or refer to any partnership relationship with any other
company. Arm may make changes to this document at any time and without notice.
This document may be translated into other languages for convenience, and you agree that if there
is any conflict between the English version of this document and any translation, the terms of the
English version of the Agreement shall prevail.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks
of Arm Limited (or its affiliates) in the US and/or elsewhere. All rights reserved. Other brands and
names mentioned in this document may be the trademarks of their respective owners. Please
follow Arm’s trademark usage guidelines at https://www.arm.com/company/policies/trademarks.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
(LES-PRE-20349|version 21.0)
Confidentiality Status
This document is Non-Confidential. The right to use, copy and disclose this document may be
subject to license restrictions in accordance with the terms of the agreement entered into by Arm
and the party that Arm delivered this document to.
Product Status
Feedback
Arm welcomes feedback on this product and its documentation. To provide feedback on the
product, create a ticket on https://support.developer.arm.com
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 3 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
We believe that this document contains no offensive language. To report offensive language in this
document, email [email protected].
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 4 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Contents
Contents
1. Introduction...................................................................................................................................................... 6
1.1 Before you begin............................................................................................................................................ 6
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 5 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Introduction
1. Introduction
This guide expands some of the Memory System Resource Partitioning and Monitoring (MPAM)
concepts introduced in the Memory System Resource Partitioning and Monitoring Overview.
The MPAM architecture defines several standard types of control and monitoring interfaces for
memory-system resources. This guide will focus on:
• AArch64 exception model: Introduces the Exception and privilege model in AArch64.
• AArch64 memory management: Introduces the MMU, which controls virtual to physical address
translation.
• Memory System Resource Partitioning and Monitoring (MPAM), for A-profile architecture: Arm
Architecture Reference Manual Supplement
• Memory System Resource Partitioning and Monitoring Overview: Introduces the MPAM
architecture.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 6 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM information bundle transportation
AMBA 5 CHI Architecture Specification describes the AMBA 5 Coherent Hub Interface (CHI)
architecture.
When the MPAM_Support property is MPAM_9_1 the interface must include the MPAM field on
the REQ and SNP channels.
CHI uses a slightly different naming convention then the Memory System Resource Partitioning and
Monitoring (MPAM), for A-profile architecture Arm Architecture Reference Manual Supplement. The
following list describes the mapping between the CHI field name and their respective MPAM
architectural name:
• PartID is equivalent to PARTID
• PerfMonGroup is equivalent to PMG
• MPAMNS is equivalent to MPAM_NS
• MPAMSP is equivalent to MPAM_SP
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 7 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM information bundle transportation
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 8 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM information bundle transportation
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 9 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
The following table shows the DSU-110 MPAM information bundle properties:
• The DSU-110 does not support FEAT_RME and implements only two PARTID
spaces: Non-secure PARTID space and Secure PARTID space. The 1-bit
MPAM_NS communicates this.
• PMG is not used internally by DSU, but is transported downstream of DSU to
the external memory system.
For the DSU-110, the number of L3 cache ways depends on the size of the L3 cache:
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 10 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
• When selecting a power-of-two L3 cache size of 256KB, 512KB, 1024KB, 2MB, 4MB, 8MB, or
16MB each cache slice has 16 ways.
• When selecting a non-power-of-two L3 cache size of 1536KB, 3MB, 6MB, or 12MB, each
cache slice only has 12 ways.
The partitioning of the DSU-110 L3 cache is done by groups of cache ways. For the DSU-110 each
group contains two ways, so a maximum of 8 partitions are supported. When programming the
partitioning, the groups of L3 cache way pairs are referred to as portions.
The following table indicates the mappings between portions and L3 cache ways:
Portion Ways
0 0, 1
1 2, 3
2 4, 5
3 6, 7
4 8, 9
5 10, 11
6 12, 13
7 14, 15
You can attribute portions of a cache to a PARTID partition value. Only cache line requests with
that PARTID value to allocate into those portions of the cache. The partitioning only affects the
cache line allocation. If the cache line is already allocated in the cache in a different portion, then a
cache hit still occurs.
When a request to a cache requires a cache line to be allocated in the cache, the PARTID of that
request identifies the portions of the cache where the request could allocate the line.
The DSU-110 implements a cache-portion bitmap (CPBM) control interface. A CPBM controls the
cache-storage portion allocation for a partition.
In a CPBM, the control setting is a bitmap in which each bit corresponds to a particular portion
of the resource. Each bit grants the PARTID using this control setting to allocate the portion
corresponding to that bit.
You can allocate portions for the exclusive use of a partition or shared between two or more
partitions.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 11 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
PARTID Portions
1 0, 1
2 1, 2
The following diagram shows how the cache potions are allocated to a PARTID.
The L3 cache RAM power-down feature allows the RAMs to be powered down in groups of ways,
giving options of 100%, 50%, or 0% of the L3 cache capacity.
This reduction in cache ways can degrade the performance when there are insufficient ways
available to a process. For example, if you only have 50% of the L3 cache capacity, then the
number of ways are halved in each L3 cache partition portion.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 12 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
Arm recommends that you take care when powering down cache ways while using
cache partitioning. Powering down cache ways will reduce the number of portions
available to a partition.
The MPAMCFG_CPBM register programs the cache portions that can be used by each of the
different Non-secure state partition ID values.
The MPAMCFG_CPBM_s register programs the cache portions that can be used by the different
Secure state partition ID values. The Secure state partition control register, MPAMCFG_CPBM_s,
has an additional non-architectural control bit, MPAMCFG_CPBM_s.S_EXCL. This bit enabled the
Secure state partitioning programming to override the Non-secure state partitioning programming.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 13 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
With the above configuration, while executing at EL3, any data memory accesses or instruction
fetches are sent with the below configured MPAM information bundle:
The DSU-110 implements a CPBM control interface that can be configured to give a portion of the
L3 cache to a specific partition ID space. In the following example, EL3 data memory access and
instruction fetches are restricted to allocation in partition 0 of the L3 cache (ways 0, 1, 2 and 3):
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 14 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
Storing the MPAM information in the L3 cache is recommended if there is a downstream cache
which supports MPAM.
If the system only requires valid MPAM information values for read transactions, or the system
includes no downstream SLC, then this MPAM information bundle storage is not required.
If the MPAM information is not being stored, then any L3 evictions use the MPAM
information of the transaction that causes the eviction.
By default, the bandwidth available within the DSU-120 should be distributed fairly between
all cores and ACP requesters making external memory requests. However, there might be
circumstances when more control is required. For example, in a dual-core cluster with two
Accelerator Coherency Port (ACP) interfaces, each core and each ACP interface would get one
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 15 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
quarter of the bandwidth. But, allowing both ACP interfaces collectively to use up half of the
overall bandwidth, might impact on the performance of the cores. Therefore, the ACP can be
restricted to using only a smaller proportion of the overall bandwidth.
The size of the DSU-120 MPAM information bundle depends on whether RME is enabled. For
RME to be enabled, the cluster must be in Direct connect configuration and the LEGACYTZEN
input signal is LOW.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 16 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
bit STRIDEM1 value controls how much bandwidth to give to ACP transactions and cores that are
using that PARTID.
The STRIDEM1 value is the reciprocal of the relative bandwidth required, minus one. The following
python code shows how to calculate the STRIDEM1 values based on a ratio of relative bandwidth:
The scheme only limits the bandwidth available to a PARTID when there is contention for that
bandwidth. In the example shown below, ACP0 might be able to use more than the 1/6 allocated if
PE0 was not generating sufficient traffic to consume the other 5/6 of the bandwidth.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 17 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
It is very unlikely in a real system that PE0 and ACP0 would utilize sufficient bandwidth to trigger
Memory-bandwidth proportional-stride partitioning. This is because the bandwidth partitioning
mechanism is work-conserving, which means that enabling it does not reduce the total bandwidth
that the cluster uses.
The scheme only regulates PARTIDs that are using more than their fair share of bandwidth.
Therefore, if a PARTID is not attempting to use much bandwidth, then this does not reduce the
ability of other PARTIDs to use that bandwidth.
A PARTID that is already getting all the bandwidth that it wants does not gain more
bandwidth with a lower STRIDEM1 value.
If there is spare bandwidth, the bandwidth partitioning does not regulate the
bandwidth of any PARTIDs.
Using the above calculation, ‘stridem1’ we can see the resultant STRIDEM1 values are as follows:
The following table shows a static mapping between Requesters and PARTIDs,
their given ration and the corresponding STRIDEM1 value that must be reflected in
MPAMCFG_MBW_PROP_s.STRIDEM1 register.
Here is an example programming sequence to limit ACP0 (PARTID == 0x3) to 1/6 of the total
bandwidth utilization.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 18 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
When enabled, CMN-700 XPs, RN-I/-D, HN-F, HN-I/-T/-D/-P, RA, HA, and SBSX nodes will
propagate the MPAM information bundle.
When MPAM is enabled, CMN-700 propagates the MPAM information bundle throughout the
network. Various nodes are designed to propagate the MPAM field when processing requests.
Which nodes are able to propagate the MPAM information bundle depends on configuration
parameters.
Figure 3-6: Configuration requirements for propagating the MPAM information bundle around
the CMN-700
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 19 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
3.3.1 Overview
Unlike the DSU, properties of the MPAM information bundle are configurable. The following list
describes the CMN-700 HN-F build-time configuration parameters for the MPAM information
bundle :
The CMN-700 System-Level Cache (SLC) is an MPAM-enabled MSC. The SLC supports the
following Memory-system resource partitioning interfaces:
• Cache-portion partitioning
• Cache maximum-capacity partitioning
The SLC supports the following Memory-system resource usage monitoring interfaces:
• Cache-storage usage monitor
The SLC is split into multiple SLC slices, with one slice per HN-F node. Each HN-F node has three
configuration register blocks:
• HN-F configuration registers
• HN-F MPAM Secure configuration registers
• HN-F MPAM Non-Secure configuration registers
Each HN-F node in the mesh must have all three of its configuration register blocks programmed
independently
MPAM capacity partitioning and portion partitioning are disabled by default, even when the
CHI_MPAM_ENABLE parameter has been set. At boot time, the following configuration register
bits should be set in each HN-F node to enable the MPAM partitioning features:
• cmn_hns_cfg_ctl.hnf_slc_mpam_ccap_enable set to 0b1 to enable
• cmn_hns_cfg_ctl.hnf_slc_mpam_cpor_enable set to 0b1 to enable
• When selecting a power-of-two SLC cache slice size of 128KB, 256KB, 1MB, 2MB or 4MB,
each SLC slice has 16 ways.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 20 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
• When selecting a non-power-of-two SLC cache slice size of, 384KB, 1.5MB or 3MB each cache
SLC slice has 12 ways.
The CMN‑700 supports address-based cache locking (lockdown), including On-Chip Memory
(OCM). When address-based cache locking is used, locked ways are not available for cache-portion
partitioning. That is, locked ways are not available as a cache-portion partition.
The CMN-700 SLC supports the Half-Associativity Mode (HAM) power state, where the SF is
enabled but the upper half of the SLC ways are disabled and powered off. In HAM mode, cache
capacity is adjusted for half the cache, where portions 15:8 are aliased to portions 7:0.
The CMN-700 limits a partition’s ability to allocate by preventing further allocation into the SLC.
Additional allocations can only occur if a victim cache line in the same partition (matching PARTID
and MPAM_NS) is found within the set. Otherwise, if a matching victim is not found, clean lines are
dropped and dirty lines will cause a write to the memory controller.
The cache maximum-capacity control setting is programmed by storing a capacity limit into the
MSC’s cache maximum capacity control interface, MPAMCFG_CMAX. The cache maximum-
capacity limit is a fraction of the cache’s total capacity. The format of the limit value is a fixed-point
fraction. This setting is a hard limit on the cache capacity.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 21 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
The CMN-700s SLC provides a CMAX granularity of 0.78% (1 / 2^7). Therefore, the CMAX
granularity size depends on the size of the SLC slice, and can be calculated as follows:
Therefore, for a 2MB SLC cache slice, the cache maximum-capacity limit for a partition is defined
by the MPAMCFG_CMAX.CMAX x 16KB.
The CMN-700 cache maximum-capacity control interface also provides a soft limit. The soft limit is
a programmable percentage below CMAX (default is 3.13% below CMAX for a PARTID). If CMAX
value set is at or below 12.5%, the soft limit is ignored. If a partition’s occupation goes above the
soft limit, its allocated cache lines become more likely to be evicted.
The following example, executed in EL3 shows how the CMN-700 cache maximum-capacity
control interface is configured to provide 15.6% (20 * 0.78%) of an SLC slice (2MB) to a partition
(PARTID = 0x3, MPAM_NS == 0x0):
The HN-F MPAM_NUM_CSUMON build-time parameter determines how many monitors are
supported (1-16, default 4). The MSMON_CFG_MON_SEL register selects the monitor instance to
access through the MSMON configuration and counter registers.
Each cache-storage usage monitor can count SLC cache capacity used by:
• Single PARTID or all PARTIDs
• Single PMG or both PMG
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 22 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
This is programmed using the filter register, the MSMON_CFG_CSU_FLT that sets the PARTID and
PMG to be monitored.
Cache-storage usage capacity can be read in real time, or captured and read at a later point in time:
• The cache-storage usage register MSMON_CSU reports the current amount of storage
currently present within the cache allocated by the PARTID and PMG, as defined by
MSMON_CFG_CSU_FLT.
• The cache-storage usage register MSMON_CSU_CAPTURE reports the captured amount of
storage reported by the MSMON_CSU within the cache allocated by the PARTID and PMG, as
defined by MSMON_CFG_CSU_FLT.
In CMN-700, the only place where CBusy and MPAM intersect is in CBusy reporting options by
the HN-F based on SN-F CBusy values.
You can configured HN-F nodes to filter the SN-F CBusy value by MPAM PartitionID+MPAM_NS
value. For example, a request with a REQ.MPAM=0x3 will receive in its response the last SN-F
CBusy value provided for a request with REQ.MPAM=0x3.
This can occur whether or not the incoming request actually required a memory controller
access, because the HN-F nodes records the most recent SN-F CBusy value for each PartitionID
supported.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 23 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
The MMU-700 provides MPAM enablement to upstream Requesters that are otherwise be
incapable of sending an MPAM information bundle downstream. The MPAM information bundle
appended by the MMU-700 can be used to partition any downstream MPAM-enabled MSC, and
also memory system resources within the MMU-700 itself.
The MMU-700 can also append an MPAM information bundle to transactions that it generates on
its own (from the TCU) into the memory system, for example, page or Configuration Table Walk
accesses, SMMU queue access, MSIs etc.
When translation is enabled by SMMU_(S_)CR0.SMMUEN == 1, the the STE and CD configure the
MPAM information bundles of the given stream (StreamID/SubstreamID).
The Arm System Memory Management Unit Architecture Specification, SMMU architecture version
3 describes the assignment of an MPAM information bundle.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 24 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
RIS allows support for MSCs with multiple resources. This includes multiple resources with the
same resource type or partitioning control. This means that each MSC can only have independent
resource controls and two or more resources of the same type when RIS is implemented.
Each resource that has MPAM resource partitioning controls, or can be monitored by an MPAM
resource usage monitor, has a RIS value.
The RIS value in MPAMCFG_PART_SEL.RIS selects which resource to describe in ID register fields.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 25 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
Arm MPAM-enabled MSCs
For the MMU-700, the following table outlines the relationship between RIS values and
partitionable resources within the MMU-700 TCU:
The MMU-700 TBU only contains one partitionable resource, the MTLB, so RIS is
not required.
The GIC-700 ACE5-Lite manager interface issues read transactions from the:
• ITS, which accesses ITS command queue and ITS tables.
• Redistributors, which access the LPI configuration tables and LPI pending tables.
The GIC-700 GICR_PARTIDR is global for all Redistributors. It is used to configure the MPAM
information bundle for each PEs Redistributor on a chip. Therefore, all of the Redistributors will
generate the same MPAM information bundle.
The MPAM information bundle generated by read transactions from the ITS is configured
independently for each ITS using the GITS_PARTIDR.
Both the GICR_PARTIDR and GITS_PARTIDR only allow software to configure the PARTID and
PMG values within the MPAM information bundle. For the GIC-700, MPAM_NS is fixed to 0b1, so
the GIC-700 is limited to only accessing the Non-secure PARTID space.
While the GIC-700 can generate memory transactions that include an MPAM
information bundle, it does not include any MPAM partitionable memory resources.
That is, MPAM has no effect on cache allocation or partitioning within the GIC-700.
The Arm Generic Interrupt Controller Architecture Specification describes the GIC MPAM
programming requirements.
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 26 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM System Guidance for Infrastructure
Base System Architecture (BSA) specifications are part of Arm’s strategy of addressing this
variability.
To reduce the variability in MPAM systems, BSA specifications include certain requirements for
MPAM. At the time of writing, the latest versions of the (BSA) specifications as noted below.
Arm strongly suggests when designing an MPAM-enabled system that the MPAM requirements for
the applicable BSA specifications version is followed.
• Arm Base System Architecture 1.0C
• Arm Server Base System Architecture 7.1
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 27 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM System Guidance for Infrastructure
typically limits the use to the smallest PARTID in the system. Any larger PARTID spaces are not
utilized via software and would become unused real estate within the SoC.
Only the CMN-700 described in this guide outputs MPAM interrupts. The
CMN-700 outputs MPAM Error Interrupts; INTREQMPAMERRNS and
INTREQMPAMERRS. As these are not directly integrated into a PE, Arm
recommends that these are connected to the GIC as either a SPI or LPI.
An MPAM-enabled memory controller can provide independent CBusy responses for each
partition. For example, you canuse a memory controller that supports MPAM bandwidth control to
drive CBusy feedback for each partition (PARTID).
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 28 of 29
Learn the architecture - Memory System Resource Document ID: 109252_0100_01_en
Partitioning and Monitoring (MPAM) Hardware Guide Version 1.0
MPAM System Guidance for Infrastructure
The Arm Neoverse N2 Compute SubSystem (CSS) implements the following MPAM-enabled
Requesters and MSCs.
• Neoverse N2
• CMN-700
• GIC-700
• MMU-700
Copyright © 2023 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 29 of 29