天天看點

TI_DSP_corePac_帶寬管理 - 1(原理)

BWM(帶寬管理,corePac中的子產品,每個corePac有一個BWM)的目的是避免一個請求對一個資源的長期存取而造成的阻塞,BWM確定所有請求者都能擷取一定大的帶寬資源。

BWM是全局定義(對于整個corePac來說),局部實作(在每一個corePac中實作)。

初始化帶寬管理既是設定一系列寄存器(arbitration registers),配置時需要在每個CPU上對同一寄存器設定(即每個仲裁寄存器都是CPU specific的,所有的CPU都有同樣的一組仲裁寄存器,寄存器位址也是CPU specific的)。

BWM資源:

L1P SRAM/cache,L1D SRAM/cache,L2 SRAM/cache,配置總線。

請求集:

1,CPU發起的資料通路(load/store),程式通路(包括通路自己所屬corePac的資源以及其他corePac的資源以及MSM,DDR);

2,IDMA發起的傳輸(以及産生的一緻性操作);

3,cache一緻性操作(eg,Wb) - global與block-based;

4,corePac外部發起的SDMA(以及産生的一緻性操作)操作,即協處理器(DMA)或其他CPU通路目前CPU所在的corePac資源。

如下圖,在L2記憶體控制器中實作了下面的仲裁寄存器:

CPUARBU:目前CPU(指目前CPUARBU寄存器所作用的CPU)通路L2記憶體(目前corePac)的仲裁寄存器;

IDMAARBU:目前CPU所在的corePac的IDMA子產品通路L2記憶體的仲裁寄存器;

SDMAARBU:外設或其他CPU通路目前CPU所屬的corePac的L2記憶體時的仲裁寄存器。注意這個仲裁寄存器是在L2記憶體控制器上實作,不是在EMC子產品上實作。這裡的L2記憶體控制器作為slave接收其他CPU以及外設對本corePac L2記憶體的通路請求并仲裁(對于L1D記憶體控制器,有相應的SDMAARBD);

UCARBU:對L2記憶體的一緻性操作的仲裁寄存器;

MDMAARBU:目前CPU通路目前corePac之外的資源時的仲裁寄存器,注意這個仲裁寄存器是在L2記憶體控制器上實作,不是在XMC子產品上實作。這裡L2記憶體控制器作為master發起對其他corePac資源以及MSM,DDR的通路。

TI_DSP_corePac_帶寬管理 - 1(原理)