SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The bandwidth limiter is added to control the bandwidth of the EDMA_TC1_RD, EDMA_TC1_WR, EDMA_TC2_RD, EDMA_TC2_WR, VPE, BB2D and GPU module. This prevents a large number of RD requests being processed together, thus avoiding a large number of RD responses.
The bandwidth limiter regulates the packet flow in the L3_MAIN interconnect by applying flow control when a user-defined bandwidth limit is reached. The next packet is served only after an internal timer expires, thus ensuring that traffic does not exceed the allocated bandwidth. Bandwidth limiter can be used with a watermark mechanism that allows traffic to temporarily exceeds the peak bandwidth.
The registers in this group are:
Example of setting the Bandwidth Limiters:
L3_BW_LIMITER_BANDWIDTH_FRACTIONAL must be set to BandwidthConf [4 down to 0] and L3_BW_LIMITER_BANDWIDTH_INTEGER contains the remaining BandiwdthConf bits, shifted to the right. BandwidthConf = AverageBandwidth / EffectiveResolution, where EffectiveResolution parameter is set to 8.3125 MHz at design time.
AverageBandwidth is a parameter representing the value to which the payload bandwidth must be limited in average; this parameter depends on the use case and is the reason that makes the content of the registers variable. In addition the maximum packet length is 8 cells, that is 32 bytes.
Assuming that the use case requires that in average the payload bandwidth is limited to 200 MB/s, then registers must be set to the following values:
BandwidthConf = 200 MBps / 8.3125 MHz = 38 (0x26)
L3_BW_LIMITER_BANDWIDTH_FRACTIONAL = LSBs [4 down to 0] of BandwidthConf = 0x6.
L3_BW_LIMITER_BANDWIDTH_INTEGER = the remaining bits of BandwidthConf shifted to the right = 0x1.
By setting L3_BW_LIMITER_WATERMARK to 65 (L3_BW_LIMITER_WATERMARK_0 = 0x41), the bandwidth limiter is able to send three packets consecutively during peaks, therefore exceeding the peak traffic with two packets (64 bytes)