36.5.5.3 Bandwidth Weighted Round-robin Arbitration
In bandwidth weighted round-robin arbitration, a minimum bandwidth is guaranteed per port.
This arbitration scheme is enabled when the ARB field is set to 2 (see MPDDRC Configuration Arbiter Register).
This algorithm grants to each port a percentage of the bandwidth. The NRD_NWD_BDW_Px field defines the percentage allocated to each port.
The percentage of the bandwidth is programmed with 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 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 allocated bandwidth is reached or when the timeout value is reached.
The BDW_BURST field allows to arbitrate either when the current host reaches exactly the programmed bandwidth, or when the current host reaches exactly the programmed bandwidth and the current access is ended (see MPDDRC Configuration Arbiter Register).
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 allocated bandwidth is reached although the current cycle is not ended.
- The allocated bandwidth is reached and the current cycle is the last cycle of a transfer.