User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 301
UG585 (v1.11) September 27, 2016
Chapter 10: DDR Memory Controller
The page size is defined by PAGE_MASK (32 bit register that all bits are the mask) and is always
address aligned. For proper operation, the software must program the page size in the PAGE_MASK
to match the size of the DDR memory. Setting this register to 0 disables the page-match step of the
arbitration.
10.4.3 Aging Counter
When a request is pending and not serviced, a decrementing aging counter is enabled. The starting
value of this counter is loaded from the 10-bit value in the priority register
(axi_priority_<rd/wr>_port<n>, there are 8 registers, one for each ports). The counter reloads when
the request is serviced. The value of this counter is used to help indicate the priority of an AXI
memory port. The lower the value of this counter, the higher the priority. When the priority reaches
0, the request has the highest priority.
For arbitration purposes, only the upper-most 5 bits are used to differentiate priority among ports.
This keeps the arbitration mechanism to a manageable size and latency, while still comprehending an
approximation of the age-based priority of each port.
TIP: In normal usage mode, enabling aging is the suggested option. Disabling aging can result in
excessive latencies/starvation of low priority ports.
10.4.4 Stage 1 – AXI Port Arbitration
The eight ports (four read and four write) compete to get the DDRC to accept their request. The
arbiter grants a request based on many factors. Read and write requests are treated the same,
meaning they go through the same arbitration. Each port maintains a priority level that steadily
moves from a preset state to the highest state or 0. This mechanism is important to maintain a
minimum bandwidth on a port. Each port also has different ways to signal an urgent situation, either
on a per-transaction basis (QoS) or for multiple transactions. The per-transaction urgency can be
good for low-latency masters.
The priority as shown in Figure 10-6 has the following logic. If there is a port with Priority 0 or 0 in
its aging counter (the highest priority), then it wins. If there is no port with 0 priority, the arbitration
checks if the port being serviced has a page match. If there is no page match, the lowest value in the
aging counter wins. If there is a tie for the lowest value in the aging counter, round robin is used to
resolve any ties.