TMS320C6678存儲(chǔ)器訪(fǎng)問(wèn)性能 (下)
由于總共有10 個(gè)EDMA TC,而只有8 個(gè)DSP 核,在這些測(cè)試?yán)铮? 個(gè)TC 在SL2 和8 個(gè)核的LL2 之間傳輸數(shù)據(jù),另兩個(gè)TC 則在SL2 和DDR 之間傳輸數(shù)據(jù)。
本文引用地址:http://2s4d.com/article/276393.htm盡管SL2 本身的帶寬非常高,但所有EDMA 訪(fǎng)問(wèn)SL2 時(shí)都需要經(jīng)過(guò)內(nèi)部總線(xiàn)交換網(wǎng)絡(luò)的一個(gè)相同的端口,這個(gè)端口就成了這種情況下的瓶頸。這個(gè)端口的理論帶寬是500MHz x 32 bytes = 16000MB/s。如果所有EDMA 傳輸?shù)膬?yōu)先級(jí)相同,帶寬會(huì)在這些傳輸之間平均分配。而當(dāng)優(yōu)先級(jí)不同時(shí)(上表中第二列是每個(gè)主模塊的優(yōu)先級(jí)),優(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í)相同。
2.2 多個(gè)主模塊共享DDR 的性能
多個(gè)主模塊同時(shí)訪(fǎng)問(wèn)DDR 時(shí),DDR 控制器會(huì)根據(jù)主模塊的優(yōu)先級(jí)進(jìn)行仲裁。
C6678 的DDR 控制器支持包含1,2,4,或8 個(gè)banks 的DDR 存儲(chǔ)器?,F(xiàn)在大多數(shù)DDR3 存儲(chǔ)器都包含8 個(gè)bank,以C6678 EVM 上的DDR 存儲(chǔ)器為例,它的組織結(jié)構(gòu)如圖11 所示。請(qǐng)注意,對(duì)不同的DDR 存儲(chǔ)器,每一行的大小可能會(huì)不同。
圖11 DDR bank 數(shù)據(jù)組織結(jié)構(gòu)
盡管DDR 存儲(chǔ)器有多個(gè)bank,但與SL2 的bank 不同的是,它們并沒(méi)有獨(dú)立的總線(xiàn)與控制器相連,而是共享相同的總線(xiàn)接口。所以,DDR 存儲(chǔ)器bank 的個(gè)數(shù)并不直接的影響帶寬,但它卻顯著的影響多個(gè)主模塊共享DDR 的效率。
DDR SDRAM 的訪(fǎng)問(wèn)以行或頁(yè)為基礎(chǔ)。一個(gè)主模塊在訪(fǎng)問(wèn)某個(gè)頁(yè)中的數(shù)據(jù)之前,這一頁(yè)必須首先被“打開(kāi)”,然后這一頁(yè)中的內(nèi)容才可以被隨意訪(fǎng)問(wèn)。如果主模塊想訪(fǎng)問(wèn)同一個(gè)bank 中另一頁(yè)中的數(shù)據(jù),必須先關(guān)閉原先的頁(yè),然后打開(kāi)新的一頁(yè)。而頁(yè)切換(關(guān)閉/打開(kāi))操作需要消耗額外的時(shí)鐘周期。
每個(gè)bank 只可以有一頁(yè)被打開(kāi),DDR 存儲(chǔ)器的bank 數(shù)越多,頁(yè)切換的概率就越小。例如,一個(gè)主模塊在訪(fǎng)問(wèn)了bank0 的0 頁(yè)后,它可以訪(fǎng)問(wèn)bank1 的1 頁(yè)而不用關(guān)閉之前訪(fǎng)問(wèn)的bank0 的0頁(yè),然后這個(gè)主模塊可以自由的在這兩頁(yè)之間訪(fǎng)問(wèn)而不會(huì)產(chǎn)生頁(yè)切換。包含8 個(gè)bank 的DDR 存儲(chǔ)器可以有8 頁(yè)同時(shí)被打開(kāi)。
為了測(cè)試頁(yè)切換的影響,我們定義了兩種測(cè)試的數(shù)據(jù)結(jié)構(gòu)。
圖12 多個(gè)主模塊訪(fǎng)問(wèn)相同DDR bank 的不同頁(yè)
上面的情況是最壞的情況,頁(yè)切換的額外開(kāi)銷(xiāo)被最大化。每換一個(gè)主模塊訪(fǎng)問(wèn)就會(huì)導(dǎo)致一次頁(yè)切換。
下面的情況則是最佳情況,每個(gè)主模塊始終訪(fǎng)問(wèn)打開(kāi)的頁(yè),而不會(huì)有任何頁(yè)切換發(fā)生。
圖13 多個(gè)主模塊訪(fǎng)問(wèn)不同DDR bank 的不同頁(yè)
2.2.1 多個(gè)DSP 核共享DDR 的性能
下面的表格列出了不同場(chǎng)景下多個(gè)DSP 核共享1GHz C6678 EVM 上64-bit 1333MTS DDR 的性能。每個(gè)主模塊反復(fù)訪(fǎng)問(wèn)自己在DDR 中的數(shù)據(jù)buffer,在相同的時(shí)間內(nèi)(大概2 秒),每個(gè)主模塊傳輸?shù)臄?shù)據(jù)量被統(tǒng)計(jì);而每個(gè)主模塊獲得的帶寬則由數(shù)據(jù)量除以時(shí)間計(jì)算出來(lái)。
在這些測(cè)試中,DDR 是cacheable 且prefetchable 的,L1D cache 是32KB,L2 cache 是256KB,prefetch buffer 被使能。我們沒(méi)有測(cè)試Non-cacheable 的情況是因?yàn)镹on-cacheable 情況下每個(gè)核需要的帶寬比cacheable 的情況下要少很多。
在下面的表中,每列是一個(gè)測(cè)試場(chǎng)景的結(jié)果,不同測(cè)試場(chǎng)景的主要區(qū)別是同時(shí)訪(fǎng)問(wèn)存儲(chǔ)器的主模塊的個(gè)數(shù),格子中的數(shù)據(jù)代表相應(yīng)的主模塊在這個(gè)測(cè)試場(chǎng)景下獲得的帶寬,一列中的空格代表對(duì)應(yīng)的主模塊在這個(gè)測(cè)試場(chǎng)景下未被使用。最后一行中的數(shù)據(jù)是在這個(gè)測(cè)試場(chǎng)景下所有主模塊獲得的帶寬的總和。
表10 多個(gè)DSP 核共享DDR 的性能
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論