User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 70
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
3.2.4 Memory Ordering
Memory Ordering Model
The Cortex-A9 architecture defines a set of memory attributes with the characteristics required to
support all memory and devices in the system memory map. The following mutually-exclusive main
memory type attributes describe the memory regions:
•Normal
•Device
Strongly-ordered
Device and Strongly Ordered
Accesses to strongly ordered and device memory have the same memory ordering model. System
peripherals come under strongly ordered and device memory. Access rules for this memory are as
follows:
The number and size of accesses are preserved. Accesses are atomic, and will not be interrupted
part way through.
Both read and write accesses can have side effects on the system. Accesses are never cached.
Speculative accesses are never be performed.
Accesses cannot be unaligned.
The order of accesses arriving at device memory is guaranteed to correspond to the program
order of instructions which access strongly ordered or device memory. This guarantee applies
only to accesses within the same peripheral or block of memory.
The Cortex-A9 processor can re-order normal memory accesses around strongly ordered or
device memory accesses.
The only difference between device and strongly ordered memory is that:
A write to strongly ordered memory can complete only when it reaches the peripheral or
memory component accessed by the write.
A write to device memory is permitted to complete before it reaches the peripheral or memory
component accessed by the write.
Normal Memory
Normal memory is used to describe most parts of the memory system. All ROM and RAM devices are
considered to be normal memory. All code to be executed by the processor must be in normal
memory. Code is not architecturally permitted to be in a region of memory which is marked as device
or strongly ordered. The properties of normal memory are as follows:
The processor can repeat read and some write accesses.
The processor can pre-fetch or speculatively access additional memory locations, with no
side-effects (if permitted by MMU access permission settings). The processor does perform
speculative writes.