TMS320C6678存儲(chǔ)器訪問(wèn)性能 (下)
從上面的測(cè)試結(jié)果可以看出,多核同時(shí)訪問(wèn)相同DDR bank 中不同頁(yè)的性能比多核同時(shí)訪問(wèn)不同DDR bank 中不同頁(yè)的性能差很多,原因就是頁(yè)切換的額外開銷。
本文引用地址:http://butianyuan.cn/article/276393.htm從上面的測(cè)試結(jié)果還可以看出,DDR 的帶寬 (1333 x 8 = 10666MB/s)對(duì)所有DSP 核同時(shí)訪問(wèn)來(lái)說(shuō)是不夠的,DSP 核的優(yōu)先級(jí)對(duì)它獲得的帶寬有明顯影響。當(dāng)優(yōu)先級(jí)相同時(shí),帶寬在多個(gè)核之間平均分配;而當(dāng)優(yōu)先級(jí)不同時(shí)(上表中第二列是每個(gè)主模塊的優(yōu)先級(jí)),優(yōu)先級(jí)低的核得到的帶寬比較小。
為了防止低優(yōu)先級(jí)的主模塊被“餓死”,DDR 控制器提供了老請(qǐng)求優(yōu)先級(jí)臨時(shí)提高的功能。我們可以通過(guò)配置一個(gè)計(jì)數(shù)器,當(dāng)一個(gè)老的請(qǐng)求的等待時(shí)間超過(guò)這個(gè)計(jì)數(shù)值時(shí),它的優(yōu)先級(jí)會(huì)被臨時(shí)提高。如果沒(méi)有特殊說(shuō)明,本文所有測(cè)試中這個(gè)計(jì)數(shù)周期都被配置成4x16=64 個(gè)DDR3CLKOUT 時(shí)鐘周期。在64 個(gè)DDR3CLKOUT 時(shí)鐘周期內(nèi),可以傳輸64x2x8=1024 bytes。
表11 是在1GHz C6678 EVM(64-bit 1333MTS DDR)上用不同的優(yōu)先級(jí)提升計(jì)數(shù)值測(cè)得的數(shù)據(jù)。表中第二列是每個(gè)主模塊的預(yù)設(shè)優(yōu)先級(jí)。
表11 DDR 優(yōu)先級(jí)提升計(jì)數(shù)值的影響
從上面的測(cè)試結(jié)果可以看出,優(yōu)先級(jí)提升計(jì)數(shù)值=0 實(shí)際上使得預(yù)設(shè)的優(yōu)先級(jí)不起作用。當(dāng)這個(gè)計(jì)數(shù)值越大是,預(yù)設(shè)的優(yōu)先級(jí)起的作用越大。所以,在實(shí)際應(yīng)用中,設(shè)計(jì)者需要根據(jù)應(yīng)用的需求來(lái)選擇一個(gè)合適的值。
2.2.2 多個(gè)EDMA 共享DDR 的性能
下面的表格列出了不同場(chǎng)景下多個(gè)EDMA TC 共享1GHz C6678 EVM 上64-bit 1333MTS DDR 的性能。
表12 多個(gè)EDMA 共享DDR 的性能
由于總共有10 個(gè)EDMA TC,而只有8 個(gè)DSP 核,在這些測(cè)試?yán)铮? 個(gè)TC 在DDR 和8 個(gè)核的LL2 之間傳輸數(shù)據(jù),另兩個(gè)TC 則在DDR 和SL2 之間傳輸數(shù)據(jù)。
從上面的測(cè)試結(jié)果可以看出,DDR 的帶寬 (1333 x 8 = 10666MB/s)對(duì)所有EDMA 同時(shí)訪問(wèn)來(lái)說(shuō)是不夠的,EDMA TC 的優(yōu)先級(jí)對(duì)它獲得的帶寬有明顯影響。優(yōu)先級(jí)低的EDMA 傳輸?shù)玫降膸挶容^小。對(duì)負(fù)載很高的情況下,一些低優(yōu)先級(jí)的傳輸可能會(huì)被“餓死”,也就是說(shuō),得到的帶寬為0。
根據(jù)Table 6中列出的不同EDMA TC 的區(qū)別,EDMACC1 TC1 和TC3,EDMACC2 TC1 和TC2在某些情況下獲得的帶寬會(huì)比其它TC 小,即使優(yōu)先級(jí)相同。
從上面的測(cè)試結(jié)果還可以看出,多個(gè)DMA 同時(shí)訪問(wèn)相同DDR bank 中不同頁(yè)的性能比多個(gè)DMA同時(shí)訪問(wèn)不同DDR bank 中不同頁(yè)的性能差很多,原因就是頁(yè)切換的額外開銷。當(dāng)DDR 負(fù)載加重時(shí)結(jié)果變得更差。最壞的情況下,頁(yè)切換的額外開銷會(huì)占用整體傳輸時(shí)間的絕大部分,從而使總吞吐量急劇下降。
頁(yè)切換的概率,也就是,多個(gè)主模塊訪問(wèn)相同DDR bank 的概率取決于同時(shí)訪問(wèn)的主模塊的個(gè)數(shù)和DDR bank 個(gè)數(shù)。例如,4 個(gè)DMA 隨機(jī)訪問(wèn)8 個(gè)bank 的DDR 存儲(chǔ)器,至少兩個(gè)TC 訪問(wèn)相同的bank 的概率是:
表13 列出了理論上,多個(gè)主模塊訪問(wèn)相同bank 的概率:
表13 多個(gè)主模塊訪問(wèn)相同bank 的概率
為了減少DDR 頁(yè)切換次數(shù),如果有多個(gè)傳輸,有的要訪問(wèn)已經(jīng)打開的頁(yè),有的要訪問(wèn)沒(méi)有打開的頁(yè),C6678 的DDR 控制器一般情況下會(huì)讓對(duì)已經(jīng)打開的頁(yè)的訪問(wèn)先執(zhí)行。
3. 總結(jié)
總的來(lái)說(shuō),DSP 核可以高效地訪問(wèn)內(nèi)部存儲(chǔ)器,而用DSP 核訪問(wèn)外部數(shù)據(jù)則不是有效利用資源的方式;IDMA 非常適用于DSP 核本地存儲(chǔ)器(L1D,L1P,LL2)內(nèi)連續(xù)數(shù)據(jù)塊的傳輸,但它不能訪問(wèn)共享存儲(chǔ)器(SL2, DDR);而外部存儲(chǔ)器的訪問(wèn)則應(yīng)盡量使用EDMA。 為了充分利用cache,DSP 核應(yīng)盡量連續(xù)訪問(wèn)。
EDMA 的ACNT 越大,效率越高。
SL2 有足夠的帶寬來(lái)支持所有核的同時(shí)訪問(wèn)。DDR 的帶寬對(duì)所有核同時(shí)訪問(wèn)來(lái)說(shuō)是不夠的,DSP核的優(yōu)先級(jí)對(duì)它獲得的帶寬有明顯影響。
DDR 性能受頁(yè)切換的影響很大,為了減少DDR 頁(yè)切換應(yīng)該盡量每次訪問(wèn)大塊數(shù)據(jù)。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論