2.3.2 Memory regions, types, and attributes
The memory map and the programming of the Secure and Non-secure MPUs splits memory into regions. If your
implementation has an MPU or has the Security Extension MPUs, programming the relevant MPUs splits memory
into regions.
The memory types are:
Normal The processor can reorder transactions for efficiency, or perform Speculative reads.
Device The processor preserves transaction order relative to other transactions to Device memory.
The additional memory attributes include:
Shareable For a shareable memory region, the memory system might provide data synchronization
between bus masters in a system with multiple bus masters, for example, a processor with
a DMA controller.
If multiple bus masters can access a Non-shareable memory region, software must ensure data
coherency between the bus masters.
Device memory is always Shareable.
<This description is required only if the device is likely to be used in systems where memory is
shared between multiple processors.>
Execute Never (XN) Means that the processor prevents instruction accesses. A MemManage fault exception is
generated on executing an instruction fetched from an XN region of memory.
2.3.3 Device memory
Device memory must be used for memory regions that cover peripheral control registers. Some of the
optimizations that are permitted for Normal memory, such as access merging or repeating, can be unsafe for
a peripheral register.
The Device memory type has several attributes:
G or nG Gathering or non-Gathering. Multiple accesses to a device can be merged into a single
transaction except for operations with memory ordering semantics, for example, memory barrier
instructions, load acquire/store release.
R or nR Reordering or non-Reordering.
E or nE Early Write Acknowledgement or no Early Write Acknowledgement.
For the Cortex‑M33 processor, only two combinations of these attributes are valid:
• Device-nGnRnE.
• Device-nGnRE.
Note: • Device-nGnRnE is equivalent to Armv7
‑
M Strongly Ordered memory type
• Device-nGnRE is equivalent to Armv7
‑
M Device memory.
• Device-nGRE and Device-GRE are new to the Armv8
‑
M architecture.
Typically, peripheral control registers must be either Device-nGnRE or Device-nGnRnE to prevent reordering of
the transactions in the programming sequences.
Note: Device memory is shareable, and must not be cached.
2.3.4 Secure memory system and memory partitioning
In an implementation with the Security Extension, the Security Attribution Unit (SAU) and Implementation Defined
Attribution Unit (IDAU) partition the 4GB memory space into Secure and Non-secure memory regions.
Note: The partitioning of the memory into Secure and Non-secure regions is independent of the Security state that the
processor executes in. See Section 2.5 Security state switches for more information on Security state.
Secure memory
partitioning
Secure addresses are used for memory and peripherals that are only accessible by Secure
software or Secure masters. Transactions are deemed to be secure if they are to an address
that is defined as Secure. Illegitimate accesses that are made by Non-secure software to
Secure memory are blocked and raise an exception.
PM0264
Memory model
PM0264 - Rev 2
page 20/232