SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The bandwidth regulators prevent master NIUs from consuming too much bandwidth of a link, or a slave NIU that is shared between several data flows: packets are then transported at a slower rate. The value of a bandwidth can be programmed in the bandwidth regulator. When the bandwidth is below the programmed value, the pressure bit is set to 1, giving priority to this master. When the bandwidth is above the programmed value, the pressure bit is set to 0 and the concerned master has the same weight as others.
A counter is used to store the sum of data lengths (in bytes) of each packet passing through the bandwidth regulator, and a value equal to the expected bandwidth is subtracted from the counter at each clock cycle. The value of the counter is compared to a programmable threshold (called Watermark), and this comparison determines whether the packet is processed with high pressure for minimum latency or low pressure for best effort processing.
The bandwidth regulator monitors the traffic using open connections between the initiators and the targets. If there is insufficient bandwidth allocated to the connection, the bandwidth regulator can increase the pressure on connections. Generally, the connection is a dataflow between master and slave NIUs. In some cases, the bandwidth regulator is attached to the master and monitors single dataflow to a target (single connection).
The bandwidth regulator effective resolution is set to 8.3125 MBps
The following is an example of bandwidth regulator settings:
Suppose the bandwidth regulator is set to run at 200 MHz and the application requires an expected bandwidth of 165.888 MBps (±5 MBps), computed through a moving window of 5 µs (1000 cycles). To attribute high pressure on all packet requests, the watermark could be set to the maximum bandwidth needed in the 5-µs window.
Considering the example, the settings of the bandwidth regulator are:
The bandwidth registers regulate the packet flow by applying flow control on the RX port, thus ensuring that the traffic does not exceed the allocated bandwidth. The next packet is sent only when an internal timer expires. The registers in this group are:
Bandwidth regulators are mainly used to give priority to the following masters: DSP1 MDMA, DSP2 MDMA, EVE1 and EVE2 (both ports per instance), IVA, MMU2, PCIe, DSP1 EDMA, DSP2 EDMA, GMAC SW, BB2D.
Priority to: DSP1_CFG, DSP2_CFG, DSS, GPU_P1, GPU_P2, IPU1, IPU2, MLB, MMC1, MMC2, MMU 2 initiator ports, MPU initiator port, PCIe1 and PCIe2 initiator ports, TPTC1 and TPTC2 (RD and WR initiator ports), USB3 initiator port, VIP1_P1/P2, VIP2_P1/P2, VIP3_P1/P2 initiator ports is given by setting their internal MFlag signal.