国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

TMS320C6678存儲器訪問性能 (下)

發(fā)布時間:2015-10-28 11:08    發(fā)布者:designapp
關(guān)鍵詞: TMS320C6678 , 存儲器
  1. DMA訪問存儲器的性能
  EDMA3架構(gòu)支持很多功能,可以實現(xiàn)高效的并行數(shù)據(jù)傳輸。本節(jié)討論影響它性能的很多因素,如存儲器類型,地址偏移等。
  1.1 DMA傳輸?shù)念~外開銷
  一般的傳輸時延被定義為EDMA被觸發(fā)到真正的數(shù)據(jù)傳輸開始的時間。由于數(shù)據(jù)傳輸開始的時間無法用簡單的方法測量,所以我們用最小數(shù)據(jù)單元的傳輸完成時間來代表DMA傳輸?shù)臅r延或額外開銷。根據(jù)不同源/目的地址的組合,這個值會有所不同。表4列出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上測得的從EDMA觸發(fā)(寫ESR)最小數(shù)據(jù)傳輸(1 word)到EDMA 傳輸結(jié)束(讀到IPR=1) 的平均的時鐘周期數(shù)。
  


  表4 EDMA CC0傳輸?shù)念~外開銷
  


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


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


  表7 1GHz C6678 上EDMA TC 吞吐量比較
  對SL2 和DDR 之間的傳輸,TC0_0 和TC0_1 能達(dá)到的吞吐量是其它TC 的兩倍。在本文其它部分,如果沒有特殊說明,EDMA 性能數(shù)據(jù)都是在TC0_0 上測得的。
  1.3 EDMA 帶寬和傳輸靈活性的權(quán)衡
  EDMA3 支持很多靈活的傳輸參數(shù)配置。多數(shù)配置情況下EDMA 可以充分利用存儲器帶寬;但在某些情況下,傳輸性能可能會有所下降。為了設(shè)計高效的系統(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 畫出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上,從SL2 到DDR 傳輸1~24K bytes 數(shù)據(jù)時測得的吞吐量。
  


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


  圖8 線性 2D 傳輸
  如果2D 傳輸不是線性的,帶寬的利用率完全有ACNT 決定(參見圖 7)。
                                  1.3.3 地址偏移的考慮
  地址偏移會顯著地影響EDMA 的吞吐量。
  圖 9說明了地址偏移對EDMA 吞吐量的影響,它是在1GHz C6678 EVM(64-bit 1333MTS DDR)上從 SL2 到 DDR 傳輸1024 行(BCNT= 1024) 2D 數(shù)據(jù)時測得的。
  


  圖9 偏移量對EDMA 帶寬的影響
  從測試結(jié)果可以看出,線性傳輸 (Index= ACNT)能充分利用帶寬;其它Index 設(shè)置會降低EDMA性能。最壞的情況是地址偏移為奇數(shù)時。如果地址偏移大于8 并且是2 的冪次方,性能的下降則比較小。
  請注意,Index= ACNT,并且ACNT 是2 的冪次方時,2D 傳輸被優(yōu)化為1D 傳輸,因此性能比其它情況好很多。
  除非特殊說明,本文列出的所有性能數(shù)據(jù)都是在Index= ACNT 的情況下測得的。
  1.3.4 地址對齊
  地址對齊對EDMA 效率稍有影響。EDMA3 缺省突發(fā)數(shù)據(jù)塊大小是64 bytes 或128 bytes,如果傳輸跨越64 或128 bytes 邊界,EDMA3 TC 會把大小為ACNT 數(shù)據(jù)塊分割成64 或128 bytes 的突發(fā)數(shù)據(jù)塊。這對1~256 bytes 的數(shù)據(jù)傳輸影響會比較明顯,而對更大塊數(shù)據(jù)的傳輸?shù)挠绊憚t不明顯。
  除非特殊說明,本文所有性能數(shù)據(jù)都是在地址對齊的情況下測得的。
  2. 多個主模塊共享存儲器的性能
  由于C6678 有8 個核和很多DMA 主模塊,它們可能會同時訪問存儲器。本節(jié)討論多個主模塊共享存儲器的性能。
  2.1 多個主模塊共享SL2 的性能
  圖10 列出了數(shù)據(jù)在SL2 中的組織結(jié)構(gòu)。
  


  圖10 SL2 bank 組織結(jié)構(gòu)
  所有主模塊都可以通過MSMC (Multicore Shared Memory Controller)獨立地訪問4 個SL2 bank中的任一個。多個主模塊可以并行地訪問不同的bank;如果多個主模塊要同時訪問相同的bank,那就需要根據(jù)優(yōu)先級仲裁。
  表8 列出了在1GHz C6678 上測得的多個主模塊同時訪問SL2 的性能數(shù)據(jù)。每個主模塊反復(fù)訪問自己在SL2 中的數(shù)據(jù)buffer,在相同的時間內(nèi)(大概2 秒),每個主模塊傳輸?shù)臄?shù)據(jù)量被統(tǒng)計;而每個主模塊獲得的帶寬則由數(shù)據(jù)量除以時間計算出來。
  在這個測試中,每個核的L1D cache 大小是32KB,沒有使用L2 cached,prefetch buffer 被使能。
  在下面的表中,每列是一個測試場景的結(jié)果,不同測試場景的主要區(qū)別是同時訪問存儲器的主模塊的個數(shù),格子中的數(shù)據(jù)代表相應(yīng)的主模塊在這個測試場景下獲得的帶寬,一列中的空格代表對應(yīng)的主模塊在這個測試場景下未被使用。最后一行中的數(shù)據(jù)是在這個測試場景下所有主模塊獲得的帶寬的總和。
  


  表8 多個DSP 核共享SL2 的性能
  以上測試結(jié)果證明SL2 不會成為多個DSP 核同時訪問的瓶頸。SL2 有足夠的帶寬 (500M x 32 x 4 = 64000MB/s)來支持所有DSP 核的同時訪問。每個DSP 核的吞吐量受限于它自己。
  由于SL2 的帶寬足夠支持所有核同時訪問,所以核的優(yōu)先級在這種情況下基本不起作用。
  


  


  表9 多個EDMA 共享SL2 的性能
                                  由于總共有10 個EDMA TC,而只有8 個DSP 核,在這些測試?yán)铮? 個TC 在SL2 和8 個核的LL2 之間傳輸數(shù)據(jù),另兩個TC 則在SL2 和DDR 之間傳輸數(shù)據(jù)。
  盡管SL2 本身的帶寬非常高,但所有EDMA 訪問SL2 時都需要經(jīng)過內(nèi)部總線交換網(wǎng)絡(luò)的一個相同的端口,這個端口就成了這種情況下的瓶頸。這個端口的理論帶寬是500MHz x 32 bytes = 16000MB/s。如果所有EDMA 傳輸?shù)膬?yōu)先級相同,帶寬會在這些傳輸之間平均分配。而當(dāng)優(yōu)先級不同時(上表中第二列是每個主模塊的優(yōu)先級),優(yōu)先級低的EDMA 傳輸?shù)玫降膸挶容^小。對負(fù)載很高的情況下,一些低優(yōu)先級的傳輸可能會被“餓死”,也就是說,得到的帶寬為0。
  根據(jù)Table 6中列出的不同EDMA TC 的區(qū)別,EDMACC1 TC1 和TC3,EDMACC2 TC1 和TC2在某些情況下獲得的帶寬會比其它TC 小,即使優(yōu)先級相同。
  2.2 多個主模塊共享DDR 的性能
  多個主模塊同時訪問DDR 時,DDR 控制器會根據(jù)主模塊的優(yōu)先級進(jìn)行仲裁。
  C6678 的DDR 控制器支持包含1,2,4,或8 個banks 的DDR 存儲器。現(xiàn)在大多數(shù)DDR3 存儲器都包含8 個bank,以C6678 EVM 上的DDR 存儲器為例,它的組織結(jié)構(gòu)如圖11 所示。請注意,對不同的DDR 存儲器,每一行的大小可能會不同。
  


  圖11 DDR bank 數(shù)據(jù)組織結(jié)構(gòu)
  盡管DDR 存儲器有多個bank,但與SL2 的bank 不同的是,它們并沒有獨立的總線與控制器相連,而是共享相同的總線接口。所以,DDR 存儲器bank 的個數(shù)并不直接的影響帶寬,但它卻顯著的影響多個主模塊共享DDR 的效率。
  DDR SDRAM 的訪問以行或頁為基礎(chǔ)。一個主模塊在訪問某個頁中的數(shù)據(jù)之前,這一頁必須首先被“打開”,然后這一頁中的內(nèi)容才可以被隨意訪問。如果主模塊想訪問同一個bank 中另一頁中的數(shù)據(jù),必須先關(guān)閉原先的頁,然后打開新的一頁。而頁切換(關(guān)閉/打開)操作需要消耗額外的時鐘周期。
  每個bank 只可以有一頁被打開,DDR 存儲器的bank 數(shù)越多,頁切換的概率就越小。例如,一個主模塊在訪問了bank0 的0 頁后,它可以訪問bank1 的1 頁而不用關(guān)閉之前訪問的bank0 的0頁,然后這個主模塊可以自由的在這兩頁之間訪問而不會產(chǎn)生頁切換。包含8 個bank 的DDR 存儲器可以有8 頁同時被打開。
  為了測試頁切換的影響,我們定義了兩種測試的數(shù)據(jù)結(jié)構(gòu)。
  


  圖12 多個主模塊訪問相同DDR bank 的不同頁
  上面的情況是最壞的情況,頁切換的額外開銷被最大化。每換一個主模塊訪問就會導(dǎo)致一次頁切換。
  下面的情況則是最佳情況,每個主模塊始終訪問打開的頁,而不會有任何頁切換發(fā)生。
  


  


  圖13 多個主模塊訪問不同DDR bank 的不同頁
  2.2.1 多個DSP 核共享DDR 的性能
  下面的表格列出了不同場景下多個DSP 核共享1GHz C6678 EVM 上64-bit 1333MTS DDR 的性能。每個主模塊反復(fù)訪問自己在DDR 中的數(shù)據(jù)buffer,在相同的時間內(nèi)(大概2 秒),每個主模塊傳輸?shù)臄?shù)據(jù)量被統(tǒng)計;而每個主模塊獲得的帶寬則由數(shù)據(jù)量除以時間計算出來。
  在這些測試中,DDR 是cacheable 且prefetchable 的,L1D cache 是32KB,L2 cache 是256KB,prefetch buffer 被使能。我們沒有測試Non-cacheable 的情況是因為Non-cacheable 情況下每個核需要的帶寬比cacheable 的情況下要少很多。
  在下面的表中,每列是一個測試場景的結(jié)果,不同測試場景的主要區(qū)別是同時訪問存儲器的主模塊的個數(shù),格子中的數(shù)據(jù)代表相應(yīng)的主模塊在這個測試場景下獲得的帶寬,一列中的空格代表對應(yīng)的主模塊在這個測試場景下未被使用。最后一行中的數(shù)據(jù)是在這個測試場景下所有主模塊獲得的帶寬的總和。
  


  


  


  表10 多個DSP 核共享DDR 的性能
                                  從上面的測試結(jié)果可以看出,多核同時訪問相同DDR bank 中不同頁的性能比多核同時訪問不同DDR bank 中不同頁的性能差很多,原因就是頁切換的額外開銷。
  從上面的測試結(jié)果還可以看出,DDR 的帶寬 (1333 x 8 = 10666MB/s)對所有DSP 核同時訪問來說是不夠的,DSP 核的優(yōu)先級對它獲得的帶寬有明顯影響。當(dāng)優(yōu)先級相同時,帶寬在多個核之間平均分配;而當(dāng)優(yōu)先級不同時(上表中第二列是每個主模塊的優(yōu)先級),優(yōu)先級低的核得到的帶寬比較小。
  為了防止低優(yōu)先級的主模塊被“餓死”,DDR 控制器提供了老請求優(yōu)先級臨時提高的功能。我們可以通過配置一個計數(shù)器,當(dāng)一個老的請求的等待時間超過這個計數(shù)值時,它的優(yōu)先級會被臨時提高。如果沒有特殊說明,本文所有測試中這個計數(shù)周期都被配置成4x16=64 個DDR3CLKOUT 時鐘周期。在64 個DDR3CLKOUT 時鐘周期內(nèi),可以傳輸64x2x8=1024 bytes。
  表11 是在1GHz C6678 EVM(64-bit 1333MTS DDR)上用不同的優(yōu)先級提升計數(shù)值測得的數(shù)據(jù)。表中第二列是每個主模塊的預(yù)設(shè)優(yōu)先級。
  


  


  表11 DDR 優(yōu)先級提升計數(shù)值的影響
  從上面的測試結(jié)果可以看出,優(yōu)先級提升計數(shù)值=0 實際上使得預(yù)設(shè)的優(yōu)先級不起作用。當(dāng)這個計數(shù)值越大是,預(yù)設(shè)的優(yōu)先級起的作用越大。所以,在實際應(yīng)用中,設(shè)計者需要根據(jù)應(yīng)用的需求來選擇一個合適的值。
  2.2.2 多個EDMA 共享DDR 的性能
  下面的表格列出了不同場景下多個EDMA TC 共享1GHz C6678 EVM 上64-bit 1333MTS DDR 的性能。
  


  


  


  表12 多個EDMA 共享DDR 的性能
  由于總共有10 個EDMA TC,而只有8 個DSP 核,在這些測試?yán)铮? 個TC 在DDR 和8 個核的LL2 之間傳輸數(shù)據(jù),另兩個TC 則在DDR 和SL2 之間傳輸數(shù)據(jù)。
  從上面的測試結(jié)果可以看出,DDR 的帶寬 (1333 x 8 = 10666MB/s)對所有EDMA 同時訪問來說是不夠的,EDMA TC 的優(yōu)先級對它獲得的帶寬有明顯影響。優(yōu)先級低的EDMA 傳輸?shù)玫降膸挶容^小。對負(fù)載很高的情況下,一些低優(yōu)先級的傳輸可能會被“餓死”,也就是說,得到的帶寬為0。
  根據(jù)Table 6中列出的不同EDMA TC 的區(qū)別,EDMACC1 TC1 和TC3,EDMACC2 TC1 和TC2在某些情況下獲得的帶寬會比其它TC 小,即使優(yōu)先級相同。
  從上面的測試結(jié)果還可以看出,多個DMA 同時訪問相同DDR bank 中不同頁的性能比多個DMA同時訪問不同DDR bank 中不同頁的性能差很多,原因就是頁切換的額外開銷。當(dāng)DDR 負(fù)載加重時結(jié)果變得更差。最壞的情況下,頁切換的額外開銷會占用整體傳輸時間的絕大部分,從而使總吞吐量急劇下降。
  頁切換的概率,也就是,多個主模塊訪問相同DDR bank 的概率取決于同時訪問的主模塊的個數(shù)和DDR bank 個數(shù)。例如,4 個DMA 隨機(jī)訪問8 個bank 的DDR 存儲器,至少兩個TC 訪問相同的bank 的概率是:
  


  表13 列出了理論上,多個主模塊訪問相同bank 的概率:
  


  表13 多個主模塊訪問相同bank 的概率
  為了減少DDR 頁切換次數(shù),如果有多個傳輸,有的要訪問已經(jīng)打開的頁,有的要訪問沒有打開的頁,C6678 的DDR 控制器一般情況下會讓對已經(jīng)打開的頁的訪問先執(zhí)行。
  3. 總結(jié)
  總的來說,DSP 核可以高效地訪問內(nèi)部存儲器,而用DSP 核訪問外部數(shù)據(jù)則不是有效利用資源的方式;IDMA 非常適用于DSP 核本地存儲器(L1D,L1P,LL2)內(nèi)連續(xù)數(shù)據(jù)塊的傳輸,但它不能訪問共享存儲器(SL2, DDR);而外部存儲器的訪問則應(yīng)盡量使用EDMA。 為了充分利用cache,DSP 核應(yīng)盡量連續(xù)訪問。
  EDMA 的ACNT 越大,效率越高。
  SL2 有足夠的帶寬來支持所有核的同時訪問。DDR 的帶寬對所有核同時訪問來說是不夠的,DSP核的優(yōu)先級對它獲得的帶寬有明顯影響。
  DDR 性能受頁切換的影響很大,為了減少DDR 頁切換應(yīng)該盡量每次訪問大塊數(shù)據(jù)。
                               
本文地址:http://www.qingdxww.cn/thread-154818-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 基于CEC1712實現(xiàn)的處理器SPI FLASH固件安全彈性方案培訓(xùn)教程
  • PIC18-Q71系列MCU概述
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 為何選擇集成電平轉(zhuǎn)換?
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黑人香蕉又粗又大视频免费 | 韩国一区在线 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 91高端极品外围在线观看 | 欧美黑人性大免费高清视频 | 我去色 | 重口婴交h小黄文 | 在线观看不卡 | 国产成人无精品久久久久国语 | h在线免费观看 | 国产片一级毛片视频 | 亚洲久草 | 国产激情视频 | 97se狠狠狠狠狠亚洲综合网 | 午夜国产在线视频 | 日本无遮挡吸乳视频看看 | 久久久久久毛片免费观看 | 97se亚洲综合在线天天 | 自拍 欧美 在线 综合 另类 | 忍者刺客韩国在线观看完整免费版 | 日本不卡高清中文字幕免费 | 在线不卡 | 欧美日韩国产在线人成 | 亚洲精品国产网红在线 | 日韩在线网 | 日韩免费高清一级毛片在线 | 1992侠盗高飞免费全集 | 久久久久久国产精品三级 | 亚洲精品视频在线 | 99在线视频免费观看 | 日韩久久一级毛片 | 欧美成人www在线观看网页 | 麻豆伦理 | 亚洲高清美女一区二区三区 | 91在线看视频 | 亚洲免费网站 | 欧美综合第一页 | 一级特级女人18毛片免费视频 | 亚洲线精品一区二区三区 | 精品视频一区二区三区在线观看 | 古代级a毛片在线 |