DDR memory controller (MPMC)
RM0082
122/844
Doc ID 018672 Rev 1
10.5.3
Understanding port priority
For AHB ports, the priority is associated with a port and each port has separate priority
parameter for READ and WRITE operations. These values are stored into the
programmable parameters ahbX_r_priority and ahbX_w_priority (where X is the port
number) at startup. Internally, the ports are organized into priority groups based on their
priority setting.
The priority value is also used by the placement logic inside the Memory Controller core
when filling the command queue, with “0” meaning highest priority and “7” as lowest priority.
Even if the user is allowed to set a “0” priority level, it would be better to avoid this specific
value so the placement queue can reach this level by aging.
10.5.4 Understanding
relative
priority
Inside each priority group, the relative priority is used to set arbitration. The Memory
Controller contains 8 identical priority groups with control logic selecting among the
requests from all ports at that given priority level. The relative priority parameters
ahbX_priorityY_relative_priority (where X being the port number and Y the priority group)
“weight” the ports for each level and determine how the priority group will be arbitrated.
shows this type of arbitration system.
Table 59.
Round-Robin operation example
Cycle
Port addressed
by an arbitration
counter
Port requesting
Command
queue full?
Winner of
arbitration
Value of counter
at the next cycle
P0
P1
P2
P3
0
0
Y
Y
Y
Y
Yes
None
0
1
0
Y
Y
Y
Y
No
P0
1
2
1
Y
Y
Y
Yes
None
1
3
1
Y
Y
Y
Y
No
P1
2
4
2
Y
Y
Y
No
P2
3
5
3
Y
Y
No
P3
0
6
0
Y
Y
Yes
None
0
7
0
Y
Y
No
P0
1
8
1
Y
No
P2
2
9
2
Y
Y
No
P2
3
10
3
Y
Y
No
P3
0