一種基于存儲器訪問模型的多媒體SOC性能評估方法_第1頁
一種基于存儲器訪問模型的多媒體SOC性能評估方法_第2頁
一種基于存儲器訪問模型的多媒體SOC性能評估方法_第3頁
一種基于存儲器訪問模型的多媒體SOC性能評估方法_第4頁
一種基于存儲器訪問模型的多媒體SOC性能評估方法_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一種基于存儲器訪問模型的多媒體SOC性能評估方法摘要越來越復雜的應用程序案例給SOC架構帶來了很多巨大的帶寬負載問題,為了設計出一個高性能的SOC系統(tǒng),這個系統(tǒng)支持大量和高速的數據處理能力,一個高效的,系統(tǒng)的和快速的SOC架構性能評估方法成為了芯片設計成功的基本要求。本文介紹了一種基于存儲器訪問模型的性能評估方法,它可以給出精確和可靠的評估結果來幫助設計者進行系統(tǒng)級和模塊級的設計,它可以用來建立SOC架構,在芯片架構確定的最初設計階段就找到系統(tǒng)的性能瓶頸,并給出不同架構定義的比較結果,同時節(jié)省設計所付出的代價和設計迭代周期。關鍵詞SOC;性能評估;帶寬負載;存儲器訪問1 介紹A 背景芯片設計已

2、經進入了SOC階段。盡管SOC可以提高系統(tǒng)集成度,減少功耗和物理尺寸,它需要高帶寬負載和高性能的處理能力,特別是和多媒體相關的應用程序。圖1給出了一個基于ARM核的典型的SOC架構,它包括視頻編解碼器,圖像預處理器,圖像后處理器和高性能的顯示控制器等。需要訪問大量數據的硬件模塊和內存控制器直接相連來提高數據訪問效率。怎樣評估已經定義好的SOC架構是否滿足系統(tǒng)的需求,怎樣估計這種SOC架構的性能處理能力,怎樣重新設計硬件加速器,如果它不能滿足應用程序的需求?這些是在開始進行SOC設計之前需要解決的至關重要的問題。圖1 基于ARM核的SOC架構B 相關工作專注于SOC架構性能評估的研究有很多19,

3、當前的技術總的來說可以分為兩大類。具體的SOC性能評估工具大多數SOC性能評估工具需要具體的編程語言來開發(fā)虛擬系統(tǒng)18,這些環(huán)境構建了一種基于受限制的規(guī)范語言的自定義設計,通過靜態(tài)的分析或系統(tǒng)仿真來進行性能評估。它們很不適合設計空間的探索,因為開發(fā)出能夠快速推向市場的性能評估虛擬系統(tǒng)和復雜的SOC系統(tǒng)太耗費時間了。特定抽象層次上的單元性能模型這種方法只能得到單個硬件性能評估結果9,當把它們放入整個SOC系統(tǒng)中時,SOC架構設計師依然對系統(tǒng)的性能是不清楚的。和上述方法不一樣,本文介紹了一種基于存儲器訪問建模的方法來給出一個有效的,系統(tǒng)的,快速的,可靠的SOC性能評估結果。第二章給出了存儲器訪問建

4、模的方法,通過分析存儲控制器和AHB主設備的固有特性來給出SOC的性能評估方程。第三章通過一個讀多媒體應用程序的例子對評估結果進行了分析。第四章給出了結論。2 存儲器訪問建模A存儲器訪問建模DRAM存儲器在SOC應用程序中被廣泛使用,它的每一個存儲體是由許多頁組成的,指令被定義用于控制DRAM的動作。訪問同一存儲體的不同頁,稱為頁缺失,需要用PRECHARGE指令來關閉打開的頁,過了tRP時鐘周期后,新的存儲器頁被ACTIVE指令激活,READ指令在tRCD周期后發(fā)出,等待tCAS周期后,第一個數據就可以讀了。訪問了相同的頁稱為頁命中,不需要發(fā)出PRECHARGE和ACTIVE指令。DRAM的

5、訪問時序可以分為四類,寫后讀,讀后讀,寫后寫和讀后寫,用RW,RR,WW和WR作為它們對應的訪問時序號,PM和PH是頁缺失/命中的百分比。具體的訪問時序類型乘上頁缺失/命中的比率就是訪問時序頁缺失/命中的百分比,R/W_PM/PH=R/WPM/PH。例如,RW_PM和RW_PH代表了寫后讀時序的頁缺失/命中的百分比。當DRAM控制總線不再被上一條指令占用的時候,控制器就可以向控制總線發(fā)出下一條指令,盡管數據總線上依然有上一個數據,這叫指令預取。指令預取優(yōu)化在下面情況中是不可能實現的。在SOC中只有一個主設備,或者所有的主設備都不能發(fā)出請求,直到上一個主設備用完總線為止。在所有的AHB總線主設備

6、中只設計了AHB總線的SINGLE或INCR訪問類型,對于INCR類型,存儲控制器不能預估當前的訪問何時能結束,因此在當前最后一個數據準備好之前不能發(fā)出下一條指令,表1給出了SINGLE訪問類型的延時時間。DRAM的時間限制被違反時。上一條指令的執(zhí)行會被影響時。除了以上情況,指令預取優(yōu)化可以被用來隱藏盡可能多的猝發(fā)數據訪問延遲。定義R/W_PM/PH_delay來代表對應訪問類型的訪問延遲。1) RR類型延時計算模型在圖2的RR-PM例子中,第二條PRECHARGE指令在第一條指令的數據還在讀取時就已經發(fā)出,指令周期的一部分被隱藏,數據訪問延時時間可由下式計算:RR_PM_delay=(tRP

7、+tRCD+tCAS+tRASburst-len+ tCAS + tRCD)? (tRP+ tRAS-burst-len):0如圖2所示,tRP+tRCD+tCAS+tRAS代表第一個active指令到第二次訪問的第一個數據讀出的時間,burst-len+ tCAS + tRCD為第一個active指令到第一次訪問的最后一個數據讀完的時間,若前者大于后者,則存在訪問延時,延時時間即為(tRP+tRCD+tCAS+tRAS)-(burst-len+ tCAS + tRCD)= tRP+ tRAS-burst-len,反之,第二次訪問的延時時間被隱藏,第二次訪問的數據在第一次訪問結束后就立刻開始進

8、行讀數據,延時時間為零。這里,tRP ,tRAS, tCAS是DRAM初始化期間生成的常量,burst_len指AHB主設備數據請求猝發(fā)長度,并且決定了數據訪問的延時時間。burst_len越大,在一個指令期間傳送的數據就越多,數據訪問效率就越高。考慮最緊張的SOC帶寬負載情況,多主設備總是同時發(fā)送數據請求,這比一個特定時間內只有一個主設備發(fā)送的情況要緊張。那就是說,第二條指令在前一條指令之后就立刻發(fā)送給了DRAM,并且在連續(xù)的指令之間沒有間斷。第二次訪問的第一個數據在第一次訪問的最后一個數據之后就立刻生效,第二次訪問的延時時間完全被第一次訪問的數據讀取階段隱藏,所以RR_PH_delay=0

9、,如圖2所示。2) RW類型延時計算模型在圖3(a)中,頁缺失寫猝發(fā)信號在猝發(fā)讀之后,WRITE指令控制階段與READ指令數據階段部分重疊,它的訪問延時被部分隱藏了。RW_PM延時可由(2)式計算得出,也是由burstlen參數決定的。RW_PM_delay=(tRP+tRCD+ tRAS burst-len+tCAS +tRCD)?( tRP +tRAS -tCAS- burst_len):0(2)如圖3(a)所示,tRP+tRCD+ tRAS為第一個active指令到第一個write指令的時間間隔,burst-len+tCAS +tRCD為第一個active指令到最后一個讀數據讀出的時間,

10、當前者大于后者時,存在訪問延時,延時時間為(tRP+tRCD+ tRAS)-(burst-len+tCAS +tRCD)= tRP +tRAS -tCAS- burst_len,否則,延時時間為零。同樣考慮最緊張的帶寬負載情況,第二次頁命中WRITE指令和數據在最后一個讀數據之后立刻發(fā)送,如圖3(b)所示,所以RW_PH_delay=0.圖2 RR_PM和RR_PH的DRAM訪問時序(a)RW_PM的DRAM訪問時序(b)RW_PH的DRAM訪問時序圖3 RW_PM和RW_PH的DRAM訪問時序3)WR類型延時計算模型在圖4(a)的WR_PM例子中,如果READ指令和WRITE指令在同一存儲體

11、,則第二個PRECHARGE指令應當在最后一個寫數據之后tWR時鐘周期發(fā)出,如果第二個指令訪問了不同的存儲體,就沒有這種需求了??紤]最緊張的情況,WR_PM_delay由3式給出。在圖4 (b)(c)的WR_PH例子中,第二次READ指令和最后一個有效的寫入DDR的數據之間應當有tWTR時鐘周期,SDR沒有這種限制。WR_PH_delay由4式計算得出。WR_PM_delay=tWR+ tRP +tRCD+ tCAS-1(3)WR_PH_delay=tWTR+ tCAS (DDR) =(burst_len tCAS)?0:(tCAS - burst-len)(SDR)(4)如圖4(b)所示,如

12、果第一次寫訪問的burst_len很長,超過下一次讀訪問的tCAS(tCAS為發(fā)出READ指令到開始讀第一個數據的時間),則下一次讀訪問的tCAS會被隱藏,延時時間為零。如果第一次寫訪問的burst_len較短,少于下一次讀訪問的tCAS,則不足以隱藏下一次讀訪問的tCAS,延時時間為tCAS burstlen。4)WW類型延時計算模型在圖5兩次寫指令在同一存儲體的WW_PM例子中,第二個PRECHARGE指令在最后一個寫數據tWR時鐘周期后發(fā)出,延時時間由5式計算得出。在WW_PH例子中,第二個WRITE指令在寫數據之后立刻被發(fā)出,所以WW_PH_delay=0。WW_PM_delay= t

13、WR + tRP + tRCD -1(5)B基于存儲器訪問時序的AHB主設備建模由于burst_len決定了訪問延時時間的計算,更長的數據訪問能夠實現更加有效的指令預取和隱藏延時的特征,所以AHB主設備應當用INCR4和INCR8傳輸類型設計,而不應用SINGLE,INCR或更短的傳輸長度。表1給出了SINGLE,INCR4和INCR8在不同訪問時序中的延時時間計算式。符號代表了條件選擇,如果里的運算結果比零大,則結果就是其運算結果,否則,結果為零。由于第一個猝發(fā)數據計時點為零,所以burst_len=data_ burst_length-1。表一:不同的猝發(fā)數據訪問類型和訪問時序時鐘周期延時

14、時間在猝發(fā)傳輸中,一個數據所消耗的平均時鐘周期可由(6)式計算得出。理想情況下,當所有的訪問都頁命中時,在SDR中一個時鐘周期就可傳輸一個數據(在DDR中可傳輸兩個)。但在實際的應用程序中很難做到這樣,特別是有幾個AHB主設備同時發(fā)出數據請求的時候。當頁缺失出現時,就要插入訪問延時時間,平均的數據周期就會比一個時鐘周期長,平均的數據周期越長,SOC系統(tǒng)的性能就會越差。表2顯示了在SDR和DDR中不同訪問時序類型下的平均數據周期。ave_delay=(delay_cycle+burst_len)/transed_data_num(6)表2 SDR和DDR的平均數據傳輸時鐘周期(a)WR_PM的D

15、RAM訪問時序(b)WR_PH的SDR訪問時序(c)WR_PH的DDR訪問時序圖4 WR_PM和WR_PH的DRAM訪問時序圖5 WW_PM和WW_PH的DRAM訪問時序平均數據周期代表了一個數據傳輸會消耗多少時鐘周期。將所有傳輸數據的個數和平均數據周期相乘就可得到一個AHB主設備所消耗的時間,如(7)所示,這里,r1,r2,p分別代表第一條指令的讀/寫類型,第二條指令的讀/寫類型和第二條指令的頁缺失/命中類型。所有的AHB主設備所消耗的時間之和可以準確地反映SOC系統(tǒng)的性能。Consumed_time=data_num(r1,r2,p) ave_delay(r1,r2,p)(7)C基于存儲器

16、訪問的視頻編解碼器建模因為視頻編碼/解碼的算法非常復雜,在一個傳輸中所有的猝發(fā)數據并不一定都是有用的。在一次猝發(fā)傳輸中的幾個數據可能對應用程序是多余的,在這種情況下,傳輸延遲是一樣的,但實際的傳輸數據比猝發(fā)長度要短。雖然有多余的數據,從SOC系統(tǒng)的角度看,所花費的代價是值的,因為延時的隱藏可以帶來更多的利益。當評估SOC性能時,應當考慮多余的時鐘周期所帶來的浪費,如(8)所示。在一次猝發(fā)傳輸中實際傳輸的數據可由統(tǒng)計視頻編解碼算法得到。Clock_cycles=(trans_num(r1,r2,p,i) valid_cnt(r1,r2,p,i) trans_delay(r1,r2,p,i)(8)

17、這里,除了r1,r2,p,valid_cnt是一次猝發(fā)傳輸中傳送的有效數據的個數,i代表個數,trans_num是猝發(fā)傳輸中傳送的總的數據個數,valid_cnt即為數據吞吐量,trans_delay為valid_cnt類型傳輸的延時時鐘周期。如果傳輸的有效數據的個數小于或等于4,trans_delay就是INCR4類型的延遲,如果傳輸的有效數據的個數在4和8之間,trans_delay就是INCR8類型的延遲。3 試驗和結果在以上建模和計算公式的基礎上,圖1SOC系統(tǒng)的32位和64位數據總線設計的性能得到了評估??紤]圖6中典型的多媒體應用程序的例子,通過編解碼捕獲圖像處理并顯示。圖6 視頻編

18、解碼處理數據流CSI(CMOS圖像傳感器接口)以每秒30幀的速度捕獲CIF RGB565圖像,直接將捕獲到的圖像傳送到PrP。在CSI和PrP之間沒有多余的帶寬。PrP有兩種數據處理途徑,一種將CIF RGB565變換為VGA YUV420圖像,將其存儲到外部存儲器中。另一種將CIF RGB565存儲到外部存儲器中,用DC取景器來顯示。PrP處理以MB(Macro-block)為基礎,它的猝發(fā)長度是用INCR4設計的。H264編碼器從PrP中讀取圖像,將編碼的比特流存到存儲器中,比特流被讀出用于解碼。解碼得到的圖像被存到存儲器中用于后處理,它被設計成為不確定的各種猝發(fā)傳輸長度。PP讀取VGA

19、YUV420,并將其轉換為VGA RGB565圖像,它的處理單元為圖像線,猝發(fā)長度由INCR8設計。DC獲取VGA圖像,以每秒60幀的速度顯示。它的猝發(fā)長度越長越好,由INCR8設計。表3顯示了基于分辨率,幀速率和猝發(fā)類型的不同主設備的帶寬負載計算式。視頻編解碼數據流的總的存儲器帶寬需求是大約220MB。SOC架構應當在一秒內完成220MB數據的傳送來滿足視頻編解碼應用程序的最小需求。表2和(7)可用于計算PrP/PP/DC的性能,因為它們有具體的猝發(fā)傳輸長度。H264不僅有各種猝發(fā)數據長度,而且能將超出MB界限的多余數據讀成ME(運動估計),它將2121的塊讀成1616ME,1313的塊讀成

20、88ME,99的塊讀成44ME,對應的有效數據讀取比率為(2121)/(1616)=1.72, (1313) /(88)=2.64, (99) /(44)=5.06。假設1616,88,44MB在典型的H264編解碼ME中分別占0.5,0.25,0.25的百分比,所以ME的讀數據比率為0.51.72+0.252.64+0.255.06=2.78。在表4的H264編解碼帶寬計算中采用這種比率。H264編解碼耗費的時鐘周期由(8)式計算得出。表三 不同主設備的分辨率,幀速率,猝發(fā)類型和帶寬負載信息表四 H264編解碼器的讀/寫要求表五 典型的H264 VGA編解碼實例中的有效數據傳輸個數假設存儲控制器的時鐘頻率為133MHZ,優(yōu)化的DRAM時間設置為tWR=tWTR=2,tRP=tRCD=tCAS=3,tRAS=6。表二給出了SDR/DDR的INCR4和INCR8的平均數據傳輸時鐘周期。DDR的平均數據時鐘周期一般都比一小,因為DDR在一個時鐘周期內要傳送兩個數據。SDR的平均數據傳送周期要比一大。PP,PrP,DC和H264VGA編解碼器的在不同讀/寫訪問時序和頁缺失/命中的訪問時鐘周期數。這里采用基本的H264編解碼函數和行業(yè)通用測試圖像。表六總結了所有主設備的SDR/DDR和不同傳輸類型的訪問時鐘周期數。表六 主設備的訪問時鐘周期數通過將所有數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論