1. DMA訪問(wèn)存儲(chǔ)器的性能
EDMA3架構(gòu)支持很多功能,可以實(shí)現(xiàn)高效的并行數(shù)據(jù)傳輸。本節(jié)討論影響它性能的很多因素,如存儲(chǔ)器類型,地址偏移等。
1.1 DMA傳輸?shù)念~外開(kāi)銷
一般的傳輸時(shí)延被定義為EDMA被觸發(fā)到真正的數(shù)據(jù)傳輸開(kāi)始的時(shí)間。由于數(shù)據(jù)傳輸開(kāi)始的時(shí)間無(wú)法用簡(jiǎn)單的方法測(cè)量,所以我們用最小數(shù)據(jù)單元的傳輸完成時(shí)間來(lái)代表DMA傳輸?shù)臅r(shí)延或額外開(kāi)銷。根據(jù)不同源/目的地址的組合,這個(gè)值會(huì)有所不同。表4列出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上測(cè)得的從EDMA觸發(fā)(寫(xiě)ESR)最小數(shù)據(jù)傳輸(1 word)到EDMA 傳輸結(jié)束(讀到IPR=1) 的平均的時(shí)鐘周期數(shù)。
表4 EDMA CC0傳輸?shù)念~外開(kāi)銷
表5 EDMA CC1和EDMA CC2傳輸?shù)念~外開(kāi)銷
由于EDMA CC0 連接到離SL2 和DDR 比較近的內(nèi)部總線交換網(wǎng)絡(luò),因此它訪問(wèn)SL2 和DDR 額外開(kāi)銷比較小。而EDMA CC1 和CC2 連接到離DSP 核的L1 和LL2 比較近的內(nèi)部總線交換網(wǎng)絡(luò),所以它們?cè)L問(wèn)L1 和LL2 的額外開(kāi)銷比較小。
IDMA 一般用來(lái)在LL2 內(nèi)部拷貝數(shù)據(jù),測(cè)試得到的IDMA 的平均額外開(kāi)銷是61 個(gè)時(shí)鐘周期。
傳輸?shù)念~外開(kāi)銷是小數(shù)據(jù)量傳輸要考慮的重要因素。單個(gè)數(shù)據(jù)單元的傳輸時(shí)間完全由DMA 的額外開(kāi)銷決定。所以,對(duì)于小數(shù)據(jù)量的拷貝,我們需要在用DMA 和用DSP 核之間做權(quán)衡選擇。
1.2 EDMA 10 個(gè)傳輸引擎的區(qū)別
C6678 上包含10 個(gè)EDMA3 TC (Transfer Controller) 。這10 個(gè)傳輸引擎并不完全相同。Table 6 總結(jié)了它們之間的區(qū)別。
表6 EDMA 傳輸引擎之間的區(qū)別
表7 比較了在1GHz C6678 EVM(64-bit 1333MTS DDR)上測(cè)得的各個(gè)EDMA TC 的最大吞吐量。測(cè)試的參數(shù)是ACNT=1024,BCNT=128,AB_Sync(一次傳完ACNTxBCNT)。
表7 1GHz C6678 上EDMA TC 吞吐量比較
對(duì)SL2 和DDR 之間的傳輸,TC0_0 和TC0_1 能達(dá)到的吞吐量是其它TC 的兩倍。在本文其它部分,如果沒(méi)有特殊說(shuō)明,EDMA 性能數(shù)據(jù)都是在TC0_0 上測(cè)得的。
1.3 EDMA 帶寬和傳輸靈活性的權(quán)衡
EDMA3 支持很多靈活的傳輸參數(shù)配置。多數(shù)配置情況下EDMA 可以充分利用存儲(chǔ)器帶寬;但在某些情況下,傳輸性能可能會(huì)有所下降。為了設(shè)計(jì)高效的系統(tǒng),我們需要理解什么樣的配置能夠?qū)崿F(xiàn)高效的傳輸,而某些情況下必須在靈活性和效率之間做權(quán)衡。
1.3.1 第一維大小 (ACNT) 的考慮(突發(fā)數(shù)據(jù)塊大小)
為了充分利用傳輸引擎的帶寬,傳輸盡量大的數(shù)據(jù)塊是非常重要的。
為了充分利用128-bit 或256-bit 的總線,ACNT 應(yīng)該是16 bytes 的整數(shù)倍;為了充分利用EDMA的突發(fā)數(shù)據(jù)塊,ACNT 需要是64 bytes 的整數(shù)倍;為了充分利用EDMA FIFO,ACNT 應(yīng)該至少是512 bytes。
圖7 畫(huà)出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上,從SL2 到DDR 傳輸1~24K bytes 數(shù)據(jù)時(shí)測(cè)得的吞吐量。
圖7 ACNT 對(duì)EDMA 效率的影響
從測(cè)試結(jié)果可以看出,ACNT 越大,帶寬的利用率越高。
1.3.2 二維傳輸?shù)目紤](傳輸優(yōu)化)
如果2D 傳輸 (AB_Sync)是線性的 (BIDX=ACNT),并且ACNT 是2 的冪次方,EDMA 會(huì)把這個(gè)2D 傳輸優(yōu)化為1D 傳輸。我們?cè)?GHz C6678 EVM(64-bit 1333MTS DDR)上測(cè)試了不同的ACNT 和BCNT 的組合;圖 8是線性2D 傳輸?shù)臏y(cè)試結(jié)果,它說(shuō)明,不管BCNT 是多少,帶寬由ACNTxBCNT 的乘積決定。
圖8 線性 2D 傳輸
如果2D 傳輸不是線性的,帶寬的利用率完全有ACNT 決定(參見(jiàn)圖 7)。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163761 -
TMS320C6678
+關(guān)注
關(guān)注
3文章
38瀏覽量
18141
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論