TMS320C6678存儲器訪(fǎng)問(wèn)性能 (下)
1. DMA訪(fǎng)問(wèn)存儲器的性能
本文引用地址:http://dyxdggzs.com/article/276393.htmEDMA3架構支持很多功能,可以實(shí)現高效的并行數據傳輸。本節討論影響它性能的很多因素,如存儲器類(lèi)型,地址偏移等。
1.1 DMA傳輸的額外開(kāi)銷(xiāo)
一般的傳輸時(shí)延被定義為EDMA被觸發(fā)到真正的數據傳輸開(kāi)始的時(shí)間。由于數據傳輸開(kāi)始的時(shí)間無(wú)法用簡(jiǎn)單的方法測量,所以我們用最小數據單元的傳輸完成時(shí)間來(lái)代表DMA傳輸的時(shí)延或額外開(kāi)銷(xiāo)。根據不同源/目的地址的組合,這個(gè)值會(huì )有所不同。表4列出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上測得的從EDMA觸發(fā)(寫(xiě)ESR)最小數據傳輸(1 word)到EDMA 傳輸結束(讀到IPR=1) 的平均的時(shí)鐘周期數。

表4 EDMA CC0傳輸的額外開(kāi)銷(xiāo)

表5 EDMA CC1和EDMA CC2傳輸的額外開(kāi)銷(xiāo)
由于EDMA CC0 連接到離SL2 和DDR 比較近的內部總線(xiàn)交換網(wǎng)絡(luò ),因此它訪(fǎng)問(wèn)SL2 和DDR 額外開(kāi)銷(xiāo)比較小。而EDMA CC1 和CC2 連接到離DSP 核的L1 和LL2 比較近的內部總線(xiàn)交換網(wǎng)絡(luò ),所以它們訪(fǎng)問(wèn)L1 和LL2 的額外開(kāi)銷(xiāo)比較小。
IDMA 一般用來(lái)在LL2 內部拷貝數據,測試得到的IDMA 的平均額外開(kāi)銷(xiāo)是61 個(gè)時(shí)鐘周期。
傳輸的額外開(kāi)銷(xiāo)是小數據量傳輸要考慮的重要因素。單個(gè)數據單元的傳輸時(shí)間完全由DMA 的額外開(kāi)銷(xiāo)決定。所以,對于小數據量的拷貝,我們需要在用DMA 和用DSP 核之間做權衡選擇。
1.2 EDMA 10 個(gè)傳輸引擎的區別
C6678 上包含10 個(gè)EDMA3 TC (Transfer Controller) 。這10 個(gè)傳輸引擎并不完全相同。Table 6 總結了它們之間的區別。

表6 EDMA 傳輸引擎之間的區別
表7 比較了在1GHz C6678 EVM(64-bit 1333MTS DDR)上測得的各個(gè)EDMA TC 的最大吞吐量。測試的參數是ACNT=1024,BCNT=128,AB_Sync(一次傳完ACNTxBCNT)。

表7 1GHz C6678 上EDMA TC 吞吐量比較
對SL2 和DDR 之間的傳輸,TC0_0 和TC0_1 能達到的吞吐量是其它TC 的兩倍。在本文其它部分,如果沒(méi)有特殊說(shuō)明,EDMA 性能數據都是在TC0_0 上測得的。
1.3 EDMA 帶寬和傳輸靈活性的權衡
EDMA3 支持很多靈活的傳輸參數配置。多數配置情況下EDMA 可以充分利用存儲器帶寬;但在某些情況下,傳輸性能可能會(huì )有所下降。為了設計高效的系統,我們需要理解什么樣的配置能夠實(shí)現高效的傳輸,而某些情況下必須在靈活性和效率之間做權衡。
1.3.1 第一維大小 (ACNT) 的考慮(突發(fā)數據塊大小)
為了充分利用傳輸引擎的帶寬,傳輸盡量大的數據塊是非常重要的。
為了充分利用128-bit 或256-bit 的總線(xiàn),ACNT 應該是16 bytes 的整數倍;為了充分利用EDMA的突發(fā)數據塊,ACNT 需要是64 bytes 的整數倍;為了充分利用EDMA FIFO,ACNT 應該至少是512 bytes。
圖7 畫(huà)出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上,從SL2 到DDR 傳輸1~24K bytes 數據時(shí)測得的吞吐量。

圖7 ACNT 對EDMA 效率的影響
從測試結果可以看出,ACNT 越大,帶寬的利用率越高。
1.3.2 二維傳輸的考慮(傳輸優(yōu)化)
如果2D 傳輸 (AB_Sync)是線(xiàn)性的 (BIDX=ACNT),并且ACNT 是2 的冪次方,EDMA 會(huì )把這個(gè)2D 傳輸優(yōu)化為1D 傳輸。我們在1GHz C6678 EVM(64-bit 1333MTS DDR)上測試了不同的ACNT 和BCNT 的組合;圖 8是線(xiàn)性2D 傳輸的測試結果,它說(shuō)明,不管BCNT 是多少,帶寬由ACNTxBCNT 的乘積決定。

圖8 線(xiàn)性 2D 傳輸
如果2D 傳輸不是線(xiàn)性的,帶寬的利用率完全有ACNT 決定(參見(jiàn)圖 7)。
存儲器相關(guān)文章:存儲器原理
評論