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

TMS320C6678存儲器訪問性能(上)

發布時間:2015-10-28 11:07    發布者:designapp
關鍵詞: TMS320C6678 , 存儲器
  摘要
  TMS320C6678 有8 個C66x核,典型速度是1GHz,每個核有 32KB L1D SRAM,32KB L1P SRAM和512KB LL2 SRAM;所有 DSP核共享4MB SL2 SRAM。一個64-bit 1333MTS DDR3 SDRAM接口可以支持8GB外部擴展存儲器。
  存儲器訪問性能對DSP上運行的軟件是非常關鍵的。在C6678 DSP上,所有的主模塊,包括多個DSP核和多個DMA都可以訪問所有的存儲器。
  每個DSP核每個時鐘周期都可以執行最多128 bits的load或store操作。在1GHz的時鐘頻率下,DSP核訪問L1D SRAM的帶寬可以達到16GB/S。
  DSP的內部總線交換網絡,TeraNet,提供了C66x核(包括其本地存儲器),外部存儲器,EDMA控制器,和片上外設之間的互連總共有10個EDMA傳輸控制器可以被配置起來同時執行任意存儲器之間的數據傳輸。
  本文為設計人員提供存儲器訪問性能評估的基本信息;提供各種操作條件下的性能測試數據;還探討了影響存儲器訪問性能的一些因素。
  1. 存儲器系統簡介
  TMS320C6678有8個C66x核,每個核有:
  32KB L1D(Level 1 Data) SRAM,它和DSP核運行在相同的速度上,可以被用作普通的數據存儲器或數據cache。
  32KB L1P(Level 1 Program) SRAM,它和DSP核運行在相同的速度上,可以被用作普通的程序存儲器或程序cache。
  512KB LL2(Local Level 2)SRAM,它的運行速度是DSP核的一半,可以被用作普通存儲器或cache,既可以存放數據也可以存放程序。
  所有DSP核共享4MB SL2(Shared Level 2)SRAM,它的運行速度是DSP核的一半,既可以存放數據也可以存放程序。TMS320C6678集成一個64-bit 1333MTS DDR3 SDRAM接口,可以支持8GB外部擴展存儲器,既可以存放數據也可以存放程序。它的總線寬度也可以被配置成32bits或16bits。
  存儲器訪問性能對DSP上軟件運行的效率是非常關鍵的。在C6678 DSP上,所有的主模塊,包括多個DSP核和多個DMA都可以訪問所有的存儲器。
  每個DSP核每個時鐘周期都可以執行最多128 bits 的load 或store操作。在1GHz的時鐘頻率下,DSP核訪問L1D SRAM 的帶寬可以達到16GB/S。當訪問二級(L2)存儲器或外部存儲器時,訪問性能主要取決于訪問的方式和cache。
  每個DSP核有一個內部DMA (IDMA),在1GHz的時鐘頻率下,它能支持高達8GB/秒的傳輸。但IDMA只能訪問L1和LL2以及配置寄存器,它不能訪問外部存儲器。
  DSP的內部總線交換網絡,TeraNet,提供了C66x核 (包括其本地存儲器) ,外部存儲器, EDMA控制器,和片上外設之間的互聯。總共有10個EDMA傳輸控制器可以被配置起來同時執行任意存儲器之間的數據傳輸。芯片內部有兩個主要的TeraNet模塊,一個用128 bit總線連接每個端點,速度是DSP 核頻率的1/3,理論上,在1GHz的器件上每個端口支持 5.333GB/秒的帶寬;另一個TeraNet內部總線交換網絡用256 bit總線連接每個端點,速度是DSP核頻率的1/2,理論上,在1GHz的器件上每個端口支持16GB/秒的帶寬。
  總共有10個EDMA傳輸控制器可以被配置起來同時執行任意存儲器之間的數據傳輸。它們中的兩個連接到256-bit, 1/2 DSP核速度的 TeraNet內部總線交換網絡;另外8個連接到128-bit, 1/3 DSP核速度的TeraNet內部總線交換網絡。
  圖1展示了TMS320C6678的存儲器系統。總線上的數字代表它的寬度。大部分模塊運行速度是DSP核時鐘的1/n,DDR的典型速度是1333MTS(Million Transfer per Second)。
  


  圖1 TMS320C6678 存儲器系統
  本文為設計人員提供存儲器訪問性能評估的基本信息;提供各種操作條件下的性能測試數據;還探討了影響存儲器訪問性能的一些因素。
  本文對分析以下常見問題會有所幫助:
  1. 應該用DSP核還是DMA來拷貝數據?
  2. 一個頻繁訪問存儲器的函數會消耗多少時鐘周期?
  3. 當多個主模塊共享存儲器時,對某個模塊的性能會有多大的影響?
  本文中的大部分數據是在C6678 EVM(EValuation Module)板上測試得到的,它上面有64-bit 1333MTS的DDR 存儲器。
  2. DSP核,EDMA3,IDMA拷貝數據的性能比較
  數據拷貝的帶寬由下面三個因素中最差的一個決定:
  1. 總線帶寬
  2. 源端吞吐量
  3. 目的端吞吐量
  表1 總結了C6678 上C66x 核,IDMA 和EDMA 的理論帶寬。
  


  表1 1GHz C6678上C66x核,IDMA和EDMA的理論帶寬
  表2 總結了C6678 EVM(64-bit 1333MTS DDR)上各種存儲器端口的理論帶寬。
  


  表2 1GHz C6678上各種存儲器端口的理論帶寬
                                  表3 列出了在1GHz C6678 EVM(64-bit 1333MTS DDR)上,在不同情況下用EDMA,IDMA和DSP核做大塊連續數據拷貝測得的吞吐量。
  在這些測試中,L1上的測試數據塊的大小是8KB;IDMA LL2->LL2 拷貝的數據塊的大小是32KB;其它DSP核拷貝測試的數據塊的大小是64KB,其它EDMA拷貝測試的數據塊大小是128KB。
  吞吐量由拷貝的數據量除以消耗的時間得到。
  


  表3 DSP核,EDMA和IDMA數據拷貝的吞吐量比較
  總的來說,DSP核可以高效地訪問內部存儲器,而用DSP 核訪問外部存儲器則不是有效利用資源的方式;IDMA非常適用于DSP核本地存儲器 (L1D,L1P,LL2) 內連續數據塊的傳輸,但它不能訪問共享存儲器(SL2, DDR) ;而外部存儲器的訪問則應盡量使用EDMA。
  Cache配置顯著地影響DSP核的訪問性能,Prefetch buffer也能提高讀訪問的效率,但它們不影響EDMA和IDMA。這里所有DSP核的測試都是基于cold cache(cache 和Prefetch buffer在測試前被清空)。
  對DSP核,SL2可以通過從0x0C000000開始的缺省地址空間被訪問,通常這個地址空間被設置為cacheable 而且prefetchable。SL2可以通過XMC(eXtended Memory Controller) 被重映射到其它存儲器空間,通常重映射空間被用作non-cacheable, nonprefetchable訪問(當然它也可以被設置為cacheable 而且prefetchable)。通過缺省地址空間訪問比通過重映射空間訪問稍微快一點。
  前面列出的EDMA 吞吐量數據是在EDMA CC0(Channel Controller 0) TC0(Transfer Controller 0)上測得的,EDMA CC1和EDMA CC2的吞吐量比EDMA CC0低一些,后面有專門的章節來比較10個EDMA傳輸控制器的差別。
  3. DSP核訪問存儲器的時延
  L1和DSP核的速度相同,所以DSP核每個時鐘周期可以訪問L1存儲器一次。對一些特殊應用,需要非常快的訪問小塊數據,可以把L1的一部分配置成普通RAM(而不是cache)來存放數據。
  通常,L1被全部配置成cache,如果cache訪問命中(hit),DSP核可在一個周期完成訪問;如果cache訪問沒有命中(miss),DSP核需要等待數據從下一級存儲器中被讀到cache中。
  本節討論DSP核訪問內部存儲器和外部DDR存儲器的時延。下面是時延測試的偽代碼:
  


  3.1 DSP核訪問LL2的時延
  圖2是在1GHz C6678 EVM上測得的DSP核訪問LL2的時延。DSP核執行512個連續的LDDW(LoaD Double Word) 或STDW(STore Double Word) 指令所花的時間被測量,平均下來每個操作所花的時間被畫在圖中。這個測試使用了32KB L1D cache。
  


  圖2 DSP核訪問LL2
  對LDB/STB和LDW/STW的測試表明,它們的時延與LDDW/STDW相同。
  由于L1D cache只有在讀操作時才會被分配,DSP核讀LL2總是通過L1D cache。所以,DSP核訪問LL2的性能高度依賴cache。多個訪問之間的地址偏移(stride)顯著地影響訪問效率,地址連續的訪問可以充分地利用cache;大于或等于64字節的地址偏移導致每次訪問都miss L1 cache因為L1D cache行大小是64 bytes。
  由于L1D cache不會在寫操作時被分配,并且這里的測試之前cache都被清空了,所以任何對LL2的寫操作都通過L1D write buffer(4x16bytes)。對多個寫操作,如果地址偏移小于16bytes,這些操作可能在write buffer中被合并成一個對LL2的寫操作,從而獲得接近平均每個寫操作用1個時鐘周期的效率。
  當多個寫操作之間的偏移是128bytes整數倍時,每個寫操作都訪問LL2的相同sub-bank(LL2包含兩個banks,每個bank包含4個總線寬度為16-byte的sub-bank),對相同sub-bank的連續訪問的時延是4個時鐘周期。對其它的訪問偏移量,連續的寫操作會訪問LL2不同的bank,這樣的多個訪問的在流水線上可以被重疊起來,從而使平均的訪問時延比較小。
  C66x核在C64x+核的基礎上有很多改進,C66x核的L2存儲器控制器和DSP核速度相同,而C64x+的L2存儲器控制器的運行速度是DSP核速度的1/2。圖3比較了C66x和C64x+Load/Store LL2存儲器的性能
  


  圖3 C66x和C64x+核在LL2上Load/Store的時延比較
  3.2 DSP核訪問SL2的時延
  圖4 是在1GHz C6678 EVM上測得的DSP核訪問SL2的時延。DSP核執行512個連續的LDDW(LoaD Double Word) 或STDW(STore Double Word)指令所花的時間被測量,平均下來每個操作所花的時間被畫在圖中。測試中,L1D被配置成32KB cache。
  


  圖4 DSP核訪問SL2
  對LDB/STB和LDW/STW的測試表明,它們的時延LDDW/STDW相同。
                                  DSP核讀SL2通常會通過L1D cache,所以,和訪問LL2一樣,DSP核訪問SL2的性能高度依賴cache。
  XMC中還有一個prefetch buffer(8x128bytes),它可以被看作是一個額外的只對讀操作可用的cache。DSP核之外的每16-MB存儲器塊都可以通過MAR(Memory Attribute Register)的PFX(PreFetchable eXternally)bit 被配置為是否通過prefetch buffer讀,使能它會對多個主模塊共享存儲器的效率有很大幫助;它也能顯著地改善對SL2連續讀的性能。不過,prefetch buffer對寫操作沒有任何作用。
  SL2可以通過從0x0C000000開始的缺省的地址空間訪問,這個空間總是cacheable,通常它也被配置為prefetchable。SL2可以通過XMC的配置被重映射到其它地址空間,通常重映射空間被用作non-cacheable, nonprefetchable 訪問(當然它也可以被設置為cacheable而且prefetchable)。通過缺省地址空間訪問比通過重映射空間訪問稍微快一點,因為地址重映射需要一個額外的時鐘周期。
  由于L1D cache不會在寫操作時被分配,并且這里的測試之前cache都被清空了,所以任何對SL2的寫操作都通過L1D write buffer(4x16bytes)。對多個寫操作,如果地址偏移小于16bytes,這些操作可能在write buffer中被合并成一個對SL2的寫操作,從而獲得比較高的效率。XMC也有類似的寫合并buffer,它可以合并兩個在32 bytes內的寫操作,所以,對偏移小于32bytes的寫操作,XMC的寫buffer改善了寫操作的性能。
  當寫偏移是N*256 bytes時,每個寫操作總是訪問SL2相同的bank(SL2存儲器組織結構是4 bankx2sub-bankx 32 bytes),對相同bank的連續訪問間隔是4個時鐘周期。對其它的訪問偏移量,連續的寫操作會訪問SL2不同的bank,這樣的多個訪問的在流水線上可以被重疊起來,從而使平均的訪問時延比較小。
  圖5 比較了DSP核訪問SL2和LL2的訪問時延。對地址偏移小于16bytes的連續訪問,訪問SL2的性能和LL2幾乎相同。而對地址偏移比較大的連續訪問,訪問SL2的性能比LL2差。因此,SL2最適合于存放代碼。
  


  圖5 DSP核訪問SL2和LL2的性能比較
  3.3 DSP核訪問外部DDR存儲器的時延
  DSP核訪問外部DDR存儲器高度依賴cache。當DSP核訪問外部存儲器時,一個傳輸請求會被發給XMC。根據cacheable和prefetchable的設置,傳輸請求可能是下列情況中的一種:
  一個數據單元–如果存儲器空間是non-cacheable,nonprefetchable
  一個L1 cache line-如果存儲器空間是cacheable而沒有L2 cache,
  一個L2 cache line-如果存儲器空間是cacheable并且設置了L2 cache。
  如果要訪問的數據在L1/L2 cache或prefetch buffer中,則不會有傳輸請求發出。
  如果被訪問的空間是prefetchable的,可能還會產生額外的prefetch請求。
  外部存儲器的內容可以被緩存在L1 cache或/和L2 cache,或者都不用。DSP核之外的每16-MB存儲器塊都可以通過MAR(Memory Attribute Register)的PC(Permit Copy)bit被配置為是否通過cache訪問。如果PC比特為0,這段空間就不是cacheable的。如果PC比特是1而L2 cache大小為0(所有LL2都被用作普通SRAM),那外部存儲器的內容只會被L1 cache緩存。如果PC比特是1并且L2 cache大于0,則外部存儲器的內容可以被L1和L2 cache同時緩存。
  像訪問SL2一樣,對外部存儲器的讀操作也可以利用XMC里的prefetch buffer。它可以通過MAR(Memory Attribute Register)的PFX(PreFetchable eXternally)bit來配置。
  多個訪問之間的地址偏移(stride)顯著地影響訪問效率,地址連續的訪問可以充分地利用cache和prefetch buffer;大于或等于64字節的地址偏移導致每次訪問都miss L1 cache因為L1D cache行大小是64 bytes;大于或等于128字節的地址偏移導致每次訪問都miss L2 cache因為L2 cache行大小是128 bytes。
  如果發生cache miss,DSP需要等待外部數據傳輸完成。等待的時間是請求發出時間,數據傳輸時間或數據返回時間的總和。
  圖6是在1GHz C6678 EVM(64-bit 1333MTS DDR)上測得的DSP核訪問DDR的時延。DSP核執行512個連續的LDDW(LoaD Double Word)或STDW(STore Double Word)指令所花的時間被測量,平均下來每個操作所花的時間被畫在圖中。測試中,L1D被配置成32KB cache,LL2的256KB被設置為cache。
  對LDB/STB和LDW/STW的測試表明,它們的時延與LDDW/STDW相同。
  注意,下面第二和第三個圖實際上是第一個圖左邊的放大。
  


  


  圖6 DSP核對DDR Load/Store的時延
  對地址偏移小于128 bytes的訪問,性能主要受cache的影響。
  L2 cache會在寫操作時被分配,對任何寫操作,cache控制器總是先把被訪問的數據所在的cache行(128 bytes)讀進L2 cache,然后在cache中改寫數據。被改寫是數據會在發生cache沖突或手工cache回寫操作時被最終寫到外部存儲里。當寫操作的地址偏移是1024 bytes的整數倍時,多個訪問在L2 cache中發生沖突的概率很大,所以L2 cacheable寫操作的時延會顯著地增加。最壞的情況下,每個寫操作都會導致一個cache行的回寫 (之前的數據因為沖突而被替換/回寫)和一個cache行的讀入(新的數據被分配到cache中)。
  當地址偏移大于512bytes時,DDR頁(行)切換開銷成為性能下降的主要因素。C6678 EVM上的DDR頁(行)大小或bank寬度是8KB,而DDR3存儲器包含8個banks。最壞的情況是,當訪問地址偏移量是64KB時,每個讀或寫操作都會訪問相同bank中一個新的行,而這種行切換會增加大約40個時鐘周期的時延。請注意,不同的DDR存儲器的時延可能會不一樣。
                               
本文地址:http://m.qingdxww.cn/thread-154817-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视频| 欧美洲视频在线观看 | 精品久久久久久国产免费了 | 麻豆一精品传媒媒短视频下载 | 国产对白视频 | 老司机在线精品 | 精品视自拍视频在线观看 | 99精品国产第一福利网站 | 国产一级淫片免费播放 | 人人狠狠综合久久亚洲婷婷 | 国产成人亚洲影视在线 | 香蕉视频网站免费观视频 | 日韩在线视频不卡一区二区三区 | 成人黄页网站免费观看大全 | 青青草99热这里都是精品 | 国产最新在线视频 | 亚洲欧美精品在线 | 青青草原免费在线视频 | 一区二区三区四区视频在线观看 | 精品麻豆国产 | 高清乱码精品福利在线视频 | 国产羞羞网站 | 亚洲国产成人精品动漫 | 国产精品视频久久 | 三级毛片在线免费观看 | 国产精品入口在线看麻豆 | 久久久久综合网 | 国产自产自拍 | 内地精品露脸自拍视频香蕉 | 点击进入毛片免费观看 | 国产欧美日韩精品a在线观看高清 | 国产高清视频91 | 2021国产麻豆剧传媒剧情最新 | 欧美极品| a男人天堂 | 一级播放 | 高颜值露脸极品在线播放 | 日本久久久 | 日本中文字幕永久在线 | 午夜视频在线免费播放 | 欧美日韩中文国产va另类 |