《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 嵌入式片上存儲器有效使用的方法
嵌入式片上存儲器有效使用的方法
摘要: 嵌入式片上存儲器有效使用的方法,引言隨著CPU速度的迅速提高,CPU與片外存儲器的速度差異越來越大,匹配CPU與外部存儲器的方法通常是采用Cache或者片上存儲器。對于嵌入式設備上數據密集的應用,數據Cache與片上存儲器相比存在以下缺陷:①片上
Abstract:
Key words :

引 言

  隨著CPU速度的迅速提高,CPU與片外存儲器的速度差異越來越大,匹配CPU與外部存儲器的方法通常是采用Cache或者片上存儲器。對于嵌入式設備上數據密集的應用,數據Cache與片上存儲器相比存在以下缺陷:①片上存儲器是固定的單周期訪問,可在設計時(不是運行時)研究數據訪問模式;而Cache還要考慮不命中的情況,因而有可變的數據訪問時間,執行時間的預測更加困難。②使用Cache執行時間的不可預測性影響編譯器的優化。③細顆粒的Cache對于圖像編碼等的規則數據訪問并不合適,因而使用Cache對于嵌入式設備可能不是最優的。

        對于大多數應用,使用片上存儲器比使用數據Cache能耗平均節省約40%,芯片面積與時間的乘積僅為Cache的46%,因而對于嵌入式多媒體處理器,片上RAM作為數據Cache的替代,功耗更低。片上存儲器的有效使用對于提高嵌入式應用的速度、降低功耗具有重要的意義。
 

  TMS320C55x(簡稱為“C55x”)具有極低的功耗(0.05 mW/MIPS),本文以C55x上的視頻編碼器為例,討論片上存儲器的有效使用。

  1 數據的片外、片上動態分配

  因為片上存儲器比片外存儲器具有更強的數據訪問能力和更低的訪問功耗,所以盡可能分配數據到片上存儲器;未能分配到片上的數據可在CPU處理前轉移到片上;已經轉移到片上的數據,應盡可能在片上保存,直到其生命期結束,以便盡可能減少數據從片外存儲器到片上存儲器的數據轉移。在視頻編碼等應用中,標量、常數相對矩陣而言,通常數量較少,可以分配到片上。若分配到片外,則在運算時直接存取片外數據,CPU流水線將會停滯。直接存儲器存取(DMA)可以在存儲器之間、存儲器與外設之間轉移數據,除了DMA通道參數初始化以外,DMA轉移數據和CPU處理數據可以并行進行。設置DMA通道參數需要一定的時間,用DMA來轉移單個變量或常數的開銷可能比直接存取更大,因此DMA適合轉移具有較多數據的矩陣,并不適合片外標量的轉移。包含大量元素的矩陣可以分配到片外,處理前使用DMA轉移到片上存儲器。

  局部變量由編譯器分配到軟件棧上,C55x具有兩個軟件棧——數據棧和系統棧。C55x的棧有3種工作模式,可設置成雙16比特快返回模式,以減小棧所占的存儲器空間,并提高其運行速度。數據棧和系統棧在函數調用及返回時同時訪問,可將這兩個棧分配到DARAM塊或者不同的SARAM塊內。

  本文中數據存儲器的分配,強調從實際多媒體應用處理的基本數據塊出發,分析簡單、直觀。多媒體算法總是將原始輸入數據分成一定大小的塊來處理,并產生對應該輸入的最后輸出。如果片上沒有足夠的存儲器,則大量的輸入數據和最后結果僅能存儲在片外。對于元素較多的矩陣,可以根據算法特征,將矩陣分成若干數據子塊,如H.263編碼器中的宏塊和搜索窗等,或者單純根據可得到的片上存儲器數最分成適當大小的子塊逐個運算,然后分析數據子塊的生命期和使用頻率。

  這里定義數據子塊的生命期為首次使用到最后一次使用之間的間隔,而通常變量的生命期為定義到最后使用之間的間隔。例如,定義整型數組int MB[384],用來存儲待編碼宏塊的數據,圖像的某個宏塊的數據在該宏塊編碼結束后,該宏塊數據的生命期也就結束}然后該數組用來存儲下一宏塊的數據,因而變量的生命期遠比存儲在該變量中的某一具體數據的生命期要長。若數據子塊具有不相交的生命期,則可以共享相同的片上存儲器。很多數據子塊在運算中多次使用,可在首次運算前轉移到片上,并盡可能保存到生命期結束,即直到這些數據不再使用為止,因而這些數據僅需要一次轉移。將程序執行時間看成是由很多連續的時間間隔組成的,若在下個時間間隔內需要轉移新的數據到片上供CPU處理,而片上又沒有足夠的存儲器存儲這些數據,則這時將隨后需要蓮續頻繁使用的數據保留到片上。對于隨后較少使用的數據,若片外存儲器還保存有該數據的備份,則這些數據可直接覆蓋,等到下次使用時再從片外存儲器拷貝到片上;否則,在覆蓋前將數據轉移到片外。在片上分配一定的緩沖區,用來存儲需要再次使用的數據,可有效地減少片外存儲器的訪問。對于中間結果,盡量在使用前分階段計算,使用后釋放,以縮減存儲中間結果的存儲器需求。通過數據的這種動態分配,既可以減小或避免訪問片外慢速存儲器所引起的指令延遲,又可以減少片外到片上的數據轉移。

  在H.263視頻編碼器中,編碼是按宏塊順序進行的。INTRA宏塊編碼不僅需要當前的編碼宏塊數據,還需要以當前宏塊為中心的重建圖像搜索窗。因此,根據算法特征將整幀輸入圖像劃分成宏塊,某個宏塊數據在編碼前轉移到片上,這一宏塊編碼結來后就不再使用,這部分片上存儲器就可釋放,用來存儲下一宏塊數據。若在編碼的同時采用DMA轉移下一個宏塊,則需要在片上分配兩個宏塊的存儲器空間,用來存儲編碼的原始圖像。

  在進行INTER幀的編碼時,運動搜索需要使用前一幀的重建圖像作為參考。設搜索范圍為[-16,+16],編碼該宏塊需要搜索參考圖像中以編碼宏塊位置為中心的9個宏塊,即前一幀中宏塊(x,y)的重建圖像,直到編碼(x+1,y+1)宏塊后生命期才結束。以CIF分辨率為例,不可能把一幀圖像的所有重建宏塊保存到生命期結束,因而部分重建圖像必須暫時存儲在片外。若在編碼(x-1,y-1)前將重建宏塊(x,y)拷貝到片上并一直保存到編碼(x+l,y+1)宏塊結束,則只需要在片上分配將近3個GOB的空間用來存儲參考圖像,就可以保證每個宏塊的重建圖像數據只需要一次片外到片上的轉移。

  半像素內插結果,用于在整像素運動搜索后作為半像素搜索的參考,因而可在整像素搜索后、半像素搜索前,圍繞整像素運動矢量,對整像素運動矢量對應的匹配宏塊進行內插。這樣就沒有必要在編碼INTER幀前將整幀圖像進行內插,可顯著減少存儲內插結果的存儲器數量,從而分配在片上。

  2 片上數據的存儲器分配

  C55x除了讀指令的地址、數據總線外,還有3條用于從存儲器讀操作數的地址、數據總線,2條寫操作數到存儲器的地址、數據總線。CPU在1個周期內可完成多個操作數的讀寫,由于每個DARAM塊或SARAM塊的訪問能力有限,這些操作數位于適當的DARAM或SARAM塊內,才能在單周期內完成多個數據的讀入或者數據的同時讀寫,而不產生延遲。

  2.1 指令代碼的分配

  應用程序的指令代碼可以存儲在片外存儲器,通過指令Cache進行訪問,可以減少CPU讀指令代碼與CPU讀/寫片上存儲器內數據的沖突,同時將空余更多的片上存儲器空間用于數據分配。若存儲程序代碼和數據所需的存儲器容量總和小于片上存儲器容量,那么將代碼分配到片外存儲器與代碼數據全部分配到片上存儲器相比,性能降低大約10%。因此當代碼和數據總和小于片上存儲器容量時,應該全部分配到片上存儲器。通常程序代碼僅供CPU讀取,并不修改;而數據經常需要同時讀寫,因而應盡量將代碼存儲在SARAM內,以便將訪問能力更強的DARAM用來存儲數據。在單個CPU周期內,SARAM僅有一次訪問能力,同時讀取指令和數據必然產生延遲,為了保證讀取數據時不產生延遲,數據不能與訪問這些數據的代碼存儲在同一SARAM塊內。也就是說,當程序代碼大小不是剛好整數個塊時,可通過調整代碼或者數據的存儲器分配,避免CPU讀代碼與讀/寫數據發生沖突。

  2.2 數據分配

  前面已經討論過變量和常數的分配,這里主要討論的耗時較多的矩陣運算,通??诙∫杂肅語言或者匯編語言編寫應用程序,C語言編譯后可產生匯編代碼。在匯編語言的代碼中,找到處理矩陣操作數的指令,依次列舉這些指令不產生延遲的矩陣分配限制,并求解滿足這些限制條件的片上存儲器分配。

  不產生延遲的約束條件可分成兩類基本約束條件:

 ?、賰勺兞课挥贒ARAM塊內或者兩變量位于不同的塊內,記為條件A(這是由SARAM塊或者DARAM塊訪問能力產生的限制);②兩變量位于不同的塊內,記為條件B(這是由CPU總線的特殊結構產生的限制)。其中條件A中的兩變量可在同一DARAM塊內;或者不同的SARAM塊內;或者一個變量在DARAM內,另一個在SARAM內。條件B指的是兩變量在不同的DARAM塊內;或者在不同的SARAM塊內;或者一個變量在DARAM塊內,另一個在SARAM塊內。條件A可看成是兩種條件的邏輯“或”關系:

  A=B Or C

  其中,條件C定義為兩變量都位于DARAM塊內。循環中的操作數一般表現為矩陣的一個元素,在一個應用程序中,通常有多個矩陣,矩陣中的元素應同時滿足多個上述基本條件。當矩陣較多,限制條件復雜時??梢允褂糜嬎銠C求解數據存儲器分配,以滿足矩陣訪問不產生延遲的條件。在這里,只需要求出滿足條件的一個解,并不需要求出所有可能的解,因而對求解問題做一定的簡化。

  設x、y分別是矩陣X、Y的某一個元素,X、Y位于不同的塊內是x、y位于不同的塊內的充分條件;同樣X、Y都位于DARAM內或者不同的塊內是x、y都位于DARAM內或者不同的塊內的充分條件。例如,X位于DARAM塊,Y矩陣部分位于與X相同的DARAM內,其余位于SARAM內,也能使x、y滿足條件A。

  例如:N個矩陣需要同時滿足N1個A類條件和N2個B類條件。從每個A類條件中任選一個條件(B或者C),最多有2N1個組合。每種組合與N2個B類條件聯立求解,其中某些組合可能沒有解,任意一個解都能滿足不產生延遲的條件。這時任何一種組合中可能包含M(O≤M≤N1)個C類條件,其余的為B類條件。

  C類條件是兩個矩陣必須在DARAM塊,將需要滿足C類條件的所有矩陣存儲器的大小相加,相同的矩陣不重復累加,結果為需要分配到DARAM的矩陣總數量。當結果超過可得到的片上DARAM數量時,這種條件組合下就沒有解。

  每個B類條件要求某兩個矩陣必須在不同的塊內,由于存在多個B類條件,事實上可能要求多個矩陣相互不在同一個塊內。例如,要求矩陣A1和A2不在同一塊內,矩陣A3和A1不在同一塊內,矩陣A3和A2不在同一塊內,這實際上是要求A1、A2、A3相互不在同一塊內。若有一組矩陣,其中任何兩個矩陣都必須分配在不同的存儲器塊內,稱為“B類約束矩陣組”。若不存在一個矩陣,要求與某個B類約束矩陣組中的所有矩陣都存在B類約束關系,則稱這個組為“最大B類約束矩陣組”。最大B類約束條件矩陣組中的矩陣數目就是分配這些矩陣所需的最少的存儲器塊數。把矩陣數最多的最大組中的各個矩陣分配到不同的存儲器塊中,然后按照B類約束矩陣組中矩陣數從多到少的順序分配這個組中尚未分配的矩陣,對于具有相同矩陣數的組,則先分配未分配矩陣較少的B類約束矩陣組中的矩陣,若B類約束的矩陣同時存在C類限制,則分配到DARAM上;否則優先分配到SARAM上。若SARAM上沒有足夠的空間,再分配到DARAM上。最后在DARAM 上分配C類約束條件中的尚未分配的矩陣。

  3 總結

  上述數據存儲器的分配方法只考慮了C55x中數據分配的主要方面,還有一些因素尚未涉及。例如長整型數據的分配就必須考慮數據存儲器地址的對齊問題,這時數據分配的求解變得更加復雜??梢詫⒕仃嚩陶偷膫€數規定為偶數,以簡化對齊問題,所以卜述求解方法仍具有普遍的實用意義。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          暖暖成人免费视频| 欧美激情第8页| 国产在线成人| 亚洲男人第一网站| 国产一区二区电影在线观看| 性欧美暴力猛交另类hd| 国产精品久久久久7777婷婷| 国产精品自拍一区| 在线成人黄色| 欧美精品一线| 欧美激情亚洲视频| 国产精品xxxav免费视频| 噜噜噜在线观看免费视频日韩| 免费欧美在线| 亚洲国产欧美日韩| 国产视频一区在线观看| 欧美日韩免费观看中文| 国产精品久久久久久久久久直播| 欧美—级在线免费片| 麻豆成人在线| 欧美精品97| 国产精品人成在线观看免费| 亚洲天堂黄色| 久久久人成影片一区二区三区观看| 亚洲免费一在线| 国产综合久久久久久鬼色| 亚洲激情av在线| 亚洲永久网站| 在线看不卡av| 亚洲天堂av在线免费观看| 欧美精品一区二区三区很污很色的| 国产精品草莓在线免费观看| 国产精品久久久久久亚洲毛片| 亚洲天堂免费在线观看视频| 亚洲精品中文字幕有码专区| 欧美色道久久88综合亚洲精品| 精品电影一区| 久久综合色综合88| 羞羞漫画18久久大片| 黄色av日韩| 亚洲国产成人av在线| 欧美精品一区二区高清在线观看| 亚洲第一在线| 韩国一区二区在线观看| 亚洲精品日本| 久久国产66| 亚洲自拍偷拍视频| 99国产精品久久久久老师| 亚洲精选国产| 亚洲欧洲另类国产综合| 久久久久久精| 亚洲国产另类精品专区| 国产精品福利片| 亚洲黄色在线看| 国产精品久久久久久妇女6080| 国产综合久久久久久鬼色| 影音先锋亚洲一区| 国产亚洲欧美中文| 亚洲欧美经典视频| 国产精品久久久久久久免费软件| 欧美日本二区| 久久国产66| 老司机午夜精品视频| 欧美精品粉嫩高潮一区二区| 欧美成年人网| 国产精品theporn| 亚洲美女在线国产| 国产精品美女一区二区在线观看| 欧美精品国产一区二区| 欧美日韩免费区域视频在线观看| 久久免费的精品国产v∧| 国内精品久久久久久影视8| 亚洲国产成人精品久久| 欧美无乱码久久久免费午夜一区| 亚洲高清激情| 在线观看亚洲一区| 狠狠色综合播放一区二区| 亚洲电影激情视频网站| 久久国产精品99精品国产| 亚洲欧美第一页| 一本在线高清不卡dvd| 国产精品网曝门| 亚洲美女精品一区| 最近中文字幕mv在线一区二区三区四区| 欧美日韩国产成人高清视频| 国产女主播视频一区二区| 韩国精品一区二区三区| 又紧又大又爽精品一区二区| 欧美黑人国产人伦爽爽爽| 国产精品久久久一区二区三区| 亚洲一区二区三区在线观看视频| 午夜精彩国产免费不卡不顿大片| 国产欧美日韩一区二区三区在线| 欧美在线亚洲在线| 亚洲电影在线观看| 久久大逼视频| 欧美国产激情二区三区| 欧美日本一道本| 欧美在线啊v一区| 欧美国产一区二区| 一本大道久久a久久精品综合| 亚洲欧美日韩国产中文| 蜜臀久久99精品久久久画质超高清| 久久蜜桃av一区精品变态类天堂| 国产精品网站在线观看| 亚洲老司机av| 国产精品一区二区三区久久| 亚洲一区国产精品| 韩国美女久久| 在线成人av.com| 久久精品国产99| 欧美在线观看视频在线| 国产伦精品一区| 欧美极品aⅴ影院| 欧美丝袜第一区| 久久女同互慰一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 欧美激情在线狂野欧美精品| 久热精品在线| 妖精成人www高清在线观看| 欧美人与性动交a欧美精品| 国产精品v日韩精品| 亚洲欧美日韩精品综合在线观看| 国产资源精品在线观看| 亚洲国产高潮在线观看| 国产欧美日韩不卡免费| 久久久久一区二区| 免费一级欧美片在线播放| 日韩视频在线观看一区二区| 亚洲精品一区二区三区不| 老司机久久99久久精品播放免费| 国产精品久久久久久久免费软件| 亚洲国产成人高清精品| 久久久久国产一区二区三区四区| 亚洲免费不卡| 香蕉久久久久久久av网站| 欧美人与禽猛交乱配视频| 99re6这里只有精品视频在线观看| 国产精品自拍一区| 亚洲电影激情视频网站| 欧美电影专区| 久久中文欧美| 国产一区二区三区在线观看精品| 亚洲国产精品www| 一区精品在线播放| 久久―日本道色综合久久| 亚洲愉拍自拍另类高清精品| 国产欧美日韩另类一区| 激情综合网激情| 欧美一区午夜视频在线观看| 久久er99精品| 久热精品视频| 欧美一区二区三区的| 久久综合久久久久88| 精品不卡视频| 久久精品国产一区二区三| 亚洲线精品一区二区三区八戒| 欧美精品一区二区三区在线看午夜| 欧美—级a级欧美特级ar全黄| 国产乱码精品一区二区三| 欧美亚洲综合另类| 亚洲麻豆一区| 欧美日韩国产综合一区二区| 欧美中文在线免费| 久久精品欧美日韩| 蜜乳av另类精品一区二区| 欧美日韩精品不卡| 欧美精品1区2区| 久久免费视频这里只有精品| 国产一二三精品| 欧美日韩国产色综合一二三四| 久久精品首页| 欧美成年人视频网站欧美| 久久久亚洲综合| 欧美在线观看一二区| 中日韩美女免费视频网址在线观看| aⅴ色国产欧美| 国产在线精品一区二区中文| 国产伊人精品| 国产午夜精品理论片a级大结局| 国产日韩欧美综合一区| 狼人社综合社区| 欧美日韩国产色站一区二区三区| 免费成人高清在线视频| 欧美日本不卡视频| 国产精品久久精品日日| 亚洲先锋成人| 国产精品永久在线| 久久综合久久综合久久综合| 欧美福利电影网| 欧美精品国产一区二区| 欧美日韩中文精品| 午夜精彩视频在线观看不卡| 欧美在线免费看| 久久久久国产精品人| 欧美日韩视频在线观看一区二区三区| 欧美午夜免费影院| 国产在线拍偷自揄拍精品| 国产欧美日韩免费| 亚洲综合视频网| 国内精品久久久久久久影视蜜臀| 午夜精品久久一牛影视| 国产综合18久久久久久| 国产美女精品人人做人人爽| 老司机午夜免费精品视频| 美女图片一区二区| 欧美成人亚洲成人| 中文无字幕一区二区三区| 你懂的视频欧美| 欧美精品九九| 久久久久国产一区二区| 在线观看视频免费一区二区三区| 国产精品一区一区三区| 精品9999| 国产免费一区二区三区香蕉精| 欧美日韩第一区日日骚| 久久疯狂做爰流白浆xx| 91久久精品美女高潮| 国产亚洲一级高清| 亚洲欧美日韩高清| 狂野欧美激情性xxxx欧美| 一本色道久久综合亚洲精品婷婷| 国产日韩欧美精品在线| 欧美激情乱人伦| 韩国成人精品a∨在线观看| 夜夜嗨av一区二区三区免费区| 黑丝一区二区| 亚洲精品国产欧美| 国产啪精品视频| 国产亚洲毛片在线| 亚洲伦理在线免费看| 欧美激情一区二区三区高清视频| 久久9热精品视频| 亚洲永久免费| 欧美成人在线免费视频| 红杏aⅴ成人免费视频| 亚洲欧美一区二区三区极速播放| 国产精品日韩欧美综合| 欧美成人资源| 国产欧美日韩精品一区| 国产精品入口福利| 国外精品视频| 99re热精品| 欧美日一区二区三区在线观看国产免| 欧美性大战xxxxx久久久| 欧美精品情趣视频| 亚洲视频1区2区| 欧美日产一区二区三区在线观看| 一区福利视频| 国产综合一区二区| 亚洲最新视频在线| 国产精品乱码人人做人人爱| 国产精品美女主播在线观看纯欲| 免费在线国产精品| 亚洲综合日韩在线| 欧美大片免费久久精品三p| 亚洲永久字幕| 性久久久久久| 国产精品欧美一区喷水| 欧美激情偷拍| 亚洲人成久久| 篠田优中文在线播放第一区| 国产精品萝li| 国产一级一区二区| 国产欧美大片| 亚洲一区二区视频在线| 在线精品一区| 欧美日韩亚洲一区二区三区| 亚洲精品视频中文字幕| 亚洲精品视频在线观看网站| 国户精品久久久久久久久久久不卡| 欧美sm重口味系列视频在线观看| 欧美一区二区在线观看| 欧美性久久久| 国产精品国产三级国产aⅴ浪潮| 国产欧美一区二区三区久久人妖| 欧美成人一区二区三区| 久久av老司机精品网站导航| 国产精品视频男人的天堂| 亚洲综合另类| 欧美日韩国产成人在线免费| 在线日韩av| 欧美日韩性生活视频| 免费欧美在线| 亚洲一区二区在线| 欧美国产精品久久| 久久综合伊人77777| 激情亚洲一区二区三区四区| 性色av一区二区三区| 洋洋av久久久久久久一区| 国产精品福利片| 欧美日韩国产精品一区| 国产日韩一级二级三级| 亚洲美女啪啪| 亚洲精品视频免费在线观看| 欧美精品1区2区| 亚洲电影一级黄| 国产欧美在线看| 亚洲理伦电影| 国产精品啊v在线| 久久国产精品一区二区三区四区| 欧美极品在线视频| 久久久国产亚洲精品| 亚洲精华国产欧美| 国产曰批免费观看久久久| 亚洲日本一区二区三区| 亚洲美女av电影| 亚洲精品一区在线观看香蕉| 午夜精品福利电影| 亚洲曰本av电影| 久久精品在这里| 亚洲二区在线| 欧美体内she精视频在线观看| 欧美视频亚洲视频| 欧美日韩在线高清| 亚洲色无码播放| 国产亚洲aⅴaaaaaa毛片| 欧美另类视频在线| 久久久久久久91| 激情亚洲一区二区三区四区| 欧美jizzhd精品欧美巨大免费| 亚洲欧美国产77777| 99精品视频免费全部在线| 久久精品亚洲一区二区| 欧美日韩网站| 久久国产精品久久久久久电车| 99re视频这里只有精品| 国内精品**久久毛片app|