Memory Model
61
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
Cortex-M4F Processor
The memory types are:
•
Normal: The processor can re-order transactions for efficiency and perform speculative reads.
•
Device: The processor preserves transaction order relative to other transactions to Device or Strongly
Ordered memory.
•
Strongly Ordered: The processor preserves transaction order relative to all other transactions.
The different ordering requirements for Device and Strongly Ordered memory mean that the memory
system can buffer a write to Device memory but must not buffer a write to Strongly Ordered memory.
An additional memory attribute is Execute Never (XN), which means the processor prevents instruction
accesses. A fault exception is generated only on execution of an instruction executed from an XN region.
1.4.2 Memory System Ordering of Memory Accesses
For most memory accesses caused by explicit memory access instructions, the memory system does not
ensure that the order in which the accesses complete matches the program order of the instructions,
providing the order does not affect the behavior of the instruction sequence. Normally, if correct program
execution depends on two memory accesses completing in program order, software must insert a memory
barrier instruction between the memory access instructions (see
However, the memory system does ensure ordering of accesses to Device and Strongly Ordered memory.
For two memory access instructions A1 and A2, if both A1 and A2 are accesses to either Device or
Strongly Ordered memory, and if A1 occurs before A2 in program order, A1 is always observed before A2.
1.4.3 Behavior of Memory Accesses
shows the behavior of accesses to each region in the memory map. See
for more
information on memory types and the XN attribute. MSP432P4xx devices may have reserved memory
areas within the address ranges shown below (see the device-specific data sheet for more information).
Table 1-5. Memory Access Behavior
Address Range
Memory
Region
Memory Type
Execute
Never (XN)
Description
0x0000_0000–0x1FFF_FFFF
Code
Normal
–
This executable region is for program code.
Data can also be stored here.
0x2000_0000–0x3FFF_FFFF
SRAM
Normal
–
This executable region is for data. This region
includes bit band and bit band alias areas (see
0x4000_0000–0x5FFF_FFFF
Peripheral
Device
XN
This region includes bit band and bit band alias
areas (see
0x6000_0000–0xDFFF_FFFF
Reserved
Normal
–
Reserved in MSP432P4xx.
0xE000_0000- 0xE00F_FFFF
Private
peripheral bus
Strongly
Ordered
XN
This region includes the NVIC, system timer,
and system control block.
0xE010_0000–0xFFFF_FFFF
Reserved
–
–
-
The MPU can override the default memory access behavior described in this section. For more
information, see
.
The Cortex-M4F prefetches instructions ahead of execution and speculatively prefetches from branch
target addresses.
1.4.4 Software Ordering of Memory Accesses
The order of instructions in the program flow does not always ensure the order of the corresponding
memory transactions for the following reasons:
•
The processor can reorder some memory accesses to improve efficiency, providing this does not affect
the behavior of the instruction sequence.
•
The processor has multiple bus interfaces.
•
Memory or devices in the memory map have different wait states.