91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 接口電路

數據存儲器的分配介紹

發布時間:2008/8/28 0:00:00 訪問次數:556

  本文討論了在同時具有數據cache和片上sram的處理器上標量和矩陣變量的存儲器分配方法。文以摩托羅拉公司的dsp56000為平臺,文以ams gepard dsp為平臺,分別討論了如何把數據分配到x/y數據存儲器塊,以便最大限度地利用數據移動的并行性。dsp56000片上x、y數據存儲器都是單端口的,并且容量較小。與dsp56000不同,ti公司的tms320c55x具有更多的數據總線,片上ram容量更大,且分塊多,具有訪問能力更強的daram。

  tms320c55x具有極低的功耗(0.05mw/mips) ,非常適合手持設備,現在已經集成至ti 公司專門針對3g手機的高性能多媒體處理器上。c55x 片上除了24k字節的指令cache外,還有64k字節的雙端口存儲器(daram),96k字節的單端口存儲器(saram)。daram和saram總共160k字節,分成20個塊,每個塊8k字節。本文以c55x的視頻編碼器為例,討論片上存儲器的有效使用。

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

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

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

  本文中數據存儲器的分配,強調從實際多媒體應用處理的基本數據塊出發,分析簡單直觀。多媒體算法總是將原始輸入數據分成一定大小的塊進行處理,并產生對應該輸入的最后輸出。如果片上沒有足夠的存儲器,大量的輸入數據和最后結果僅能可存儲在片外。對于元素較多的矩陣,可以根據算法特征將矩陣分成若干數據子塊,如h.263編碼器中的宏塊,搜索窗等,或者單純根據可得到的片上存儲器數量分成適當大小的子塊逐個運算,然后分析數據子塊的生命期和使用頻率。我們定義數據子塊的生命期為首次使用到最后一次使用之間的間隔,而通常變量的生命期為定義到最后使用之間的間隔,例如定義整型數組int mb[384],用來存儲待編碼宏塊的數據,圖像的某個宏塊的數據在該宏塊編碼結束后,該宏塊數據的生命期也就結束,然后該數組用來存儲下一宏塊的數據,因而變量的生命期遠比存儲在該變量中的某一具體數據生命期要長。若數據子塊具有不相交的生命期,則可以共享相同的片上存儲器。

  很多數據子塊在運算中多次使用,可在首次運算前轉移到片上,并盡可能保存到生命期結束,即直到這些數據不再使用為止,因而這些數據僅需要一次轉移。將程序執行時間看成是由很多連續的時間間隔組成的,若在下個時間間隔內需要轉移新的數據到片上供cpu處理,而片上又沒有足夠的存儲器存儲這些數據,這時將隨后需要連續頻繁使用的數據保留到片上;對于隨后較少使用的數據,若片外存儲器還保存有該數據的備份,這些數據可直接覆蓋,等到下次使用時再從片外存儲器拷貝到片上;否則,在覆蓋前將數據轉移到片外。在片上分配一定的緩沖區,用來存儲需要再次使用的數據,可有效地減少片外存儲器的訪問。對于中間結果,盡量在使用前分階段計算,使用后釋放,以縮減存儲中間結果的存儲器需求。通過數據的這種動態分配,既可以減少或避免訪問片外慢速存儲器所引起的指令延遲,又可以減少片外到片上的數據轉移。

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

  在進行inter幀編碼時,運動搜索需要使用前一幀的重建圖像作為參考,設搜索范圍為[-16,+16],編碼該宏塊需要搜索參考圖像中以編碼宏塊位置為中心的9個宏塊,即前一幀中宏塊(x,y) 的的重建圖像直到編碼(x+1,y+1)宏塊后生命期才結束。以cif分辨率為例,不可能把一幀

  本文討論了在同時具有數據cache和片上sram的處理器上標量和矩陣變量的存儲器分配方法。文以摩托羅拉公司的dsp56000為平臺,文以ams gepard dsp為平臺,分別討論了如何把數據分配到x/y數據存儲器塊,以便最大限度地利用數據移動的并行性。dsp56000片上x、y數據存儲器都是單端口的,并且容量較小。與dsp56000不同,ti公司的tms320c55x具有更多的數據總線,片上ram容量更大,且分塊多,具有訪問能力更強的daram。

  tms320c55x具有極低的功耗(0.05mw/mips) ,非常適合手持設備,現在已經集成至ti 公司專門針對3g手機的高性能多媒體處理器上。c55x 片上除了24k字節的指令cache外,還有64k字節的雙端口存儲器(daram),96k字節的單端口存儲器(saram)。daram和saram總共160k字節,分成20個塊,每個塊8k字節。本文以c55x的視頻編碼器為例,討論片上存儲器的有效使用。

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

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

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

  本文中數據存儲器的分配,強調從實際多媒體應用處理的基本數據塊出發,分析簡單直觀。多媒體算法總是將原始輸入數據分成一定大小的塊進行處理,并產生對應該輸入的最后輸出。如果片上沒有足夠的存儲器,大量的輸入數據和最后結果僅能可存儲在片外。對于元素較多的矩陣,可以根據算法特征將矩陣分成若干數據子塊,如h.263編碼器中的宏塊,搜索窗等,或者單純根據可得到的片上存儲器數量分成適當大小的子塊逐個運算,然后分析數據子塊的生命期和使用頻率。我們定義數據子塊的生命期為首次使用到最后一次使用之間的間隔,而通常變量的生命期為定義到最后使用之間的間隔,例如定義整型數組int mb[384],用來存儲待編碼宏塊的數據,圖像的某個宏塊的數據在該宏塊編碼結束后,該宏塊數據的生命期也就結束,然后該數組用來存儲下一宏塊的數據,因而變量的生命期遠比存儲在該變量中的某一具體數據生命期要長。若數據子塊具有不相交的生命期,則可以共享相同的片上存儲器。

  很多數據子塊在運算中多次使用,可在首次運算前轉移到片上,并盡可能保存到生命期結束,即直到這些數據不再使用為止,因而這些數據僅需要一次轉移。將程序執行時間看成是由很多連續的時間間隔組成的,若在下個時間間隔內需要轉移新的數據到片上供cpu處理,而片上又沒有足夠的存儲器存儲這些數據,這時將隨后需要連續頻繁使用的數據保留到片上;對于隨后較少使用的數據,若片外存儲器還保存有該數據的備份,這些數據可直接覆蓋,等到下次使用時再從片外存儲器拷貝到片上;否則,在覆蓋前將數據轉移到片外。在片上分配一定的緩沖區,用來存儲需要再次使用的數據,可有效地減少片外存儲器的訪問。對于中間結果,盡量在使用前分階段計算,使用后釋放,以縮減存儲中間結果的存儲器需求。通過數據的這種動態分配,既可以減少或避免訪問片外慢速存儲器所引起的指令延遲,又可以減少片外到片上的數據轉移。

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

  在進行inter幀編碼時,運動搜索需要使用前一幀的重建圖像作為參考,設搜索范圍為[-16,+16],編碼該宏塊需要搜索參考圖像中以編碼宏塊位置為中心的9個宏塊,即前一幀中宏塊(x,y) 的的重建圖像直到編碼(x+1,y+1)宏塊后生命期才結束。以cif分辨率為例,不可能把一幀

相關IC型號

熱門點擊

 

推薦技術資料

耳機放大器
    為了在聽音樂時不影響家人,我萌生了做一臺耳機放大器的想... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
永宁县| 凤山县| 陆河县| 侯马市| 宝山区| 梅州市| 上杭县| 东乡| 永州市| 信丰县| 玉树县| 屏山县| 宣城市| 保亭| 如皋市| 吉隆县| 龙胜| 嘉定区| 岳西县| 桑植县| 青神县| 龙里县| 宣威市| 乡城县| 准格尔旗| 开封市| 景德镇市| 灌阳县| 大竹县| 汕尾市| 金山区| 和平区| 织金县| 麻江县| 渑池县| 西青区| 贵港市| 白城市| 瑞昌市| 疏附县| 池州市|