The Cortex-M4 Processor
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
2-13
ID121610
Non-Confidential
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.
The additional memory attributes include:
Shareable
For a shareable memory region that is implemented, the memory system
provides data synchronization between bus masters in a system with
multiple bus masters, for example, a processor with a DMA controller.
Strongly-ordered memory is always shareable.
If multiple bus masters can access a non-shareable memory region,
software must ensure data coherency between the bus masters.
Note
This attribute is relevant only if the device is likely to be used in systems
where memory is shared between multiple processors.
Execute Never
(XN)
Means the processor prevents instruction accesses. A fault exception is
generated only on execution of an instruction executed from an XN
region.
2.2.2
Memory system ordering of memory accesses
For most memory accesses caused by explicit memory access instructions, the memory system
does not guarantee that the order in which the accesses complete matches the program order of
the instructions, providing this 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
Software ordering of memory accesses
.
However, the memory system does guarantee some ordering of accesses to Device and
Strongly-ordered memory. For two memory access instructions A1 and A2, if A1 occurs before
A2 in program order, the ordering of the memory accesses caused by two instructions is:
Where:
-
Means that the memory system does not guarantee the ordering of the accesses.
<
Means that accesses are observed in program order, that is, A1 is always observed
before A2.
Normal access
Device access, non-shareable
Device access, shareable
Strongly-ordered access
Normal
access
Non-shareable
Shareable
Strongly-
ordered
access
Device access
A1
A2
-
-
-
-
-
<
-
<
-
-
<
<
-
<
<
<