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

TMS320C6678存儲器訪問性能 (下)

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


  表4 EDMA CC0傳輸的額外開銷
  


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


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


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


  圖7 ACNT 對EDMA 效率的影響
  從測試結果可以看出,ACNT 越大,帶寬的利用率越高。
  1.3.2 二維傳輸的考慮(傳輸優化)
  如果2D 傳輸 (AB_Sync)是線性的 (BIDX=ACNT),并且ACNT 是2 的冪次方,EDMA 會把這個2D 傳輸優化為1D 傳輸。我們在1GHz C6678 EVM(64-bit 1333MTS DDR)上測試了不同的ACNT 和BCNT 的組合;圖 8是線性2D 傳輸的測試結果,它說明,不管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 數據時測得的。
  


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


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


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


  


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


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


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


  


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


  


  


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


  


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


  


  


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


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


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

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

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美男女网站 | 欧洲欧美成人免费大片 | 欧美一区二区三区黄色 | 天天插天天插天天插 | 久久精品一区二区三区中文字幕 | 亚洲精品一二三区-久久 | 男女做羞羞高清视频免费 | 一级日本高清视频免费观看 | 青青草国产精品人人爱99 | 久久久精品国产四虎影视 | 国产精品18p | 国内自拍小视频 | 九九九精品午夜在线观看 | 久热中文字幕在线精品免费 | 女人18免费毛片视频 | 火辣福利视频 | 色席丝 | 久久97精品久久久久久久不卡 | 田中瞳中文字幕久久精品 | 成人羞羞视频在线 | 免费5xx | 国产美女视频免费看网站 | 亚洲欧美一区二区三区图片 | 欧美精品成人a多人在线观看 | 久久国产精品-久久精品 | 成都4片p高清完整版hd免费 | 印度最猛性ⅹxxxxx | 国产69久久精品成人看 | 成人日韩在线 | 欧美日韩国产一区二区三区欧 | 亚洲视频在线a视频 | 日本特黄特色大片免费播放视频 | 欧美成人全部免费观看1314色 | 99精品网 | 毛片特黄| 4388全国最大成网站在线 | 成年黄网站在线观看免费 | 欧美成人hd | 亚洲高清在线观看 | 九九视频免费在线 | 欧美激情视频一区二区 |