36.5.5.2 Request-word Weighted Round-robin Arbitration
In request-word weighted round-robin arbitration, the weight is the number of requests or the number of words per port.
This arbitration scheme is enabled by configuring the ARB field to 1 (see MPDDRC Configuration Arbiter Register). This algorithm grants a port for X(1) consecutive first transfer (htrans = NON SEQUENTIAL) of a burst or X single transfer, or for X word transfers. It is possible to choose between an arbitration scheme by request or by word per port by setting the RQ_WD_Px field (see MPDDRC Configuration Arbiter Register).
Note: 1. X is an integer value provided by some host modules to the arbiter.
It is also possible for the user to provide the number of requests or words (by overwriting the information provided by a host) on host basis by configuring the MA_PR_Px field. Depending on the application, the number of these requests or words can be reduced or increased using the NRD_NWD_BDW_Px fields (see MPDDRC Configuration Arbiter Register).
The TIMEOUT_Px field defines the delay between two accesses on the same port in number of cycles before rearbitrating the access to another port. This field avoids a timeout on the system, as some hosts add idle cycles between two consecutive accesses (see MPDDRC Configuration Arbiter Register).
This algorithm dispatches the requests from different hosts to the DDR-SDRAM device in a round-robin manner. If two or more host requests arise at the same time, the host with the lowest number is serviced first, then the others are serviced in a round-robin manner when the number of requests or words is reached or when the timeout value is reached.
To avoid burst breaking and to provide the maximum throughput for the DDR-SDRAM device, arbitration must only take place during the following cycles:
- Timeout is reached: the delay between two accesses is equal to TIMEOUT_Px.
- The number of requests or words is reached: when the current cycle is the last cycle of a transfer.