摘要SOC芯片大多包含有外部存儲器控制接口 (EMI)模塊IP。該IP作為CPU與外部存儲器的橋梁,其控制數(shù)據(jù)傳輸作用性能的高低,直接影響到整個SOC芯片的系統(tǒng)性能。本文重點使用MIBENCH的基準(zhǔn)測試程序?qū)?yōu)化前和優(yōu)化后的EMI模塊SDRAM控制器進行評估,分析對其各項優(yōu)化設(shè)計所提高的工作效率。
關(guān)鍵詞EMI SDRAM 評估 優(yōu)化 MIBENCH
中圖分類號:TP34文獻標(biāo)識碼:A
0 引言
SOC芯片的發(fā)展日新月異,同時其存儲系統(tǒng)的改進也非常顯著,特別是外部存儲器接口IP的性能優(yōu)劣,直接影響著整個SOC芯片的性能表現(xiàn)。其執(zhí)行效率是評估IP性能,面積,功耗的主要三個方面之一。而執(zhí)行效率的高低是整個SOC芯片的執(zhí)行效率的瓶頸,其測試方法也是多種多樣。如何從測試芯片整體性能過渡到測試EMI IP是一個問題。對微處理器的性能測試, 從最早期出現(xiàn)的DHRYSTONE和WHETSTONE,他們的測試指標(biāo)是MIPS和MFLOPS,到SPEC2000,測試指標(biāo)為效率評分。發(fā)展到專門針對嵌入式系統(tǒng)的EEMBC和MIBENCH。
在設(shè)計EMI IP時,首先要根據(jù)該芯片的應(yīng)用對象,選取支持的存儲器類型。SRAM,F(xiàn)LASH和ROM是嵌入式系統(tǒng)中最常見的存儲器類型。系統(tǒng)引導(dǎo)程序一般都放在ROM中,這是固化的程序,系統(tǒng)掉電后數(shù)據(jù)也不會丟失。而系統(tǒng)掉電后要保存的數(shù)據(jù)放在FLASH中,因為FLASH是掉電后也不會丟失的存儲器。SRAM的數(shù)據(jù)存儲需要有電源的持續(xù)供電,否則數(shù)據(jù)也是會丟失的。以上三種存儲體的讀寫時序簡單,而且非常相似。所以在做控制邏輯的時候,EMI中會專門設(shè)計一個模塊控制這三種存儲體。
而作為業(yè)界最廣泛使用的SDRAM存儲器,因為其快速的讀寫,很大的存儲容量,是內(nèi)存的首選。絕大多數(shù)桌面計算系統(tǒng)和嵌入式系統(tǒng)都使用SDRAM作為最重要的內(nèi)存媒介。一般SDRAM都包括一個同步時鐘輸入信號,用以同步操作對芯片內(nèi)的存儲區(qū)的讀寫操作。同時作為易失性存儲器,芯片內(nèi)部也需要刷新電路來定時刷新。
本文的研究對象針對具有兩個版本的 SOC芯片,其優(yōu)化前和優(yōu)化后性能大不相同。執(zhí)行效率和功耗,面積三個方面都有顯著的改善,特別是SDRAM執(zhí)行效率方面改善最為明顯。本文的主要工作就是用最具實用代表性的測試程序集BENCHMARK來測試這兩個版本的效率。
1 MIBENCH介紹
EEMBC是嵌入式系統(tǒng)最為標(biāo)準(zhǔn),權(quán)威的基準(zhǔn)測試程序集。但是EEMBC昂貴的價格令研究性的大學(xué)研究機構(gòu)很難獲取到源代碼。因此作為EEBMBC的替代,公開的,可自由獲取的基準(zhǔn)測試程序集MIBENCH被密歇根大學(xué)的Matthew R.Guthaus, Jeffrey S.Ringenberg等人自發(fā)編寫成功。
MIBENCH和EEMBC在很多方面具有相似性,其創(chuàng)作思路也是模擬微處理器在真實應(yīng)用,不同應(yīng)用類別的場景。 一共分成六個基準(zhǔn)測試程序集,分別對應(yīng)汽車和工業(yè)控制場景下,消費類電子場景下,辦公自動化場景下,網(wǎng)絡(luò)應(yīng)用場景下,信息安全場景下,通訊場景下。 這六類場景分別具有各自不同的常用算法,這些常用算法都是該類環(huán)境下最常用的實際應(yīng)用程序。比如消費類電子場景下的JPEG算法,就是手持移動電子設(shè)備中最常用的有損靜態(tài)圖像轉(zhuǎn)換算法。將這些常用算法用標(biāo)準(zhǔn)的C語言編寫成,每個算法作為一個基準(zhǔn)測試程序。該套基準(zhǔn)測試程序集支持ARM指令集。同時該基準(zhǔn)測試程序包括最大模式和最小模式,最小模式是最精煉的算法程序,最大模式就是真實的實際應(yīng)用程序。 每位用戶在取得公開的程序后,都可以對該基準(zhǔn)測試程序作微小的改動。以更有效地對自己芯片進行評估。
2 SDRAM控制器效率評估與優(yōu)化
在MIBENCH中,共有六類測試程序集,一共38 個基準(zhǔn)測試程序。考慮到通訊類基準(zhǔn)測試程序中的CRC32程序具有的特性,程序簡短,應(yīng)用廣泛,主要是基于定點處理的計算,輸入輸出文件簡單。因此該程序作為EMI的分析程序是最為合適的。
那么我們首先要做的就是建立分析流程:(1)用ADS集成環(huán)境編譯CRC32基準(zhǔn)程序,生成內(nèi)存影響文件。(2)在Armulator上進行仿真,總線寬度為32,等待時間為0,得出理想狀態(tài)的IPC。(3)用VCS進行RTL級仿真,得出實際的IPC。(4)將這兩者IPC作為一個比較,得出百分比,既可得出效率。
2.1 SDRAM控制器優(yōu)化前后效率對比
表1優(yōu)化前SDRAM控制器效率
SDRAM控制器優(yōu)化前后效率對比可以從表1和表2中得出,IPC值提高了0.0584815,效率提高了10.24%。對其進行的改進,主要是指令FIFO和WRITE BUFFER的設(shè)計。為了進一步評估兩者在性能提高中各占多少比例,我們將先關(guān)閉WRITE BUFFER,評估出指令FIFO所起的作用和確定指令FIFO的最佳級數(shù)。然后我們將定下最佳的指令FIFO的級數(shù),再開啟WIRITE BUFFER,確定最佳的級數(shù)。
表2優(yōu)化后的SDRAM控制器執(zhí)行效率
2.2 指令FIFO在優(yōu)化中所起的作用與級數(shù)的確定
為了確定指令FIFO在整個EMI系統(tǒng)中所取的優(yōu)化作用,先忽略WRITE BUFFER,也就是將WRITE BUFFER置為1。我們選取了數(shù)據(jù)傳輸校驗的CRC32測試矢量來測試,并分別選擇FIFO的級數(shù)為3,4,5,6,10來確定選取哪級為佳。
表3是測試結(jié)果,系統(tǒng)運行在70MHz下。可以發(fā)現(xiàn)在CRC32測試矢量中,IPC最大值出現(xiàn)在IFIFO級數(shù)為4的條件下,而最小IPC數(shù)是在IFIFO級數(shù)為5時。
可見,指令FIFO的引入對系統(tǒng)來說有著明顯的影響。該影響隨著指令FIFO深度的級數(shù)不同而不同。從實驗數(shù)據(jù)表明,選取指令FIFO深度級數(shù)為4可以得到IPC最優(yōu)值,它對系統(tǒng)性能的改變最大。因此,從圖表結(jié)果中分析,我們選擇了指令FIFO級數(shù)為4作為我們的指令深度級,以實現(xiàn)IPC的最優(yōu)值。
表3使用CRC32測試的不同指令FIFO的效率
2.3 WRITE BUFFER在優(yōu)化中所起的作用與級數(shù)的確定
在確定了指令FIFO深度級數(shù)之后,我們?yōu)槟芨M一步的優(yōu)化系統(tǒng)性能,提高IPC的值,我們將對WRITE BUFFER進行評估,看一看WRITE BUFFER對提高IPC有何影響。
表4是實驗數(shù)據(jù),測試環(huán)境和測試矢量同上。
表4使用CRC32測試的不同WRITE BUFFER級數(shù)的效率
在FIFO不變的情況下,WIRITE BUFFER的大小取值與IPC值沒有太直接的影響,基本上都是WIRITE BUFFER從2開始就不能提高IPC的值了。從實驗結(jié)果我們可以看出,選取是否需要WIRITE BUFFER時對系統(tǒng)性能的改進不是很明顯。
3 結(jié)論
本文討論了EMI模塊中SDRAM控制器的優(yōu)化,并采用MIBENCH的基準(zhǔn)測試程序?qū)?yōu)化前后的效率進行評估。發(fā)現(xiàn)指令FIFO級數(shù)為4時效率最佳,而WIRITE BUFFER的大小取值與IPC值沒有太直接的影響。但考慮到實際情況,WIRITE BUFFER設(shè)計是為了和FIFO同步,也就是說,EMI的IPC提高取決于WIRITE BUFFER和FIFO的同步效率。所以我們?nèi)匀贿x擇WRITE BUFFER的級數(shù)為4。
參考文獻
[1]Aleksandar Milenkovic,Milena Milenkovic,Nelson Barnes. A Performance Evaluation of Memory Hierarchy in Embedded Systems[J].System Theory, 2003:427-431.
[2]M.Weinhardt,W.Luk. Memory Access Optimisation For Reconfigurable System[J].Computers and Digital Techniques, May 2001.148(3):427-431.
[3]江建惠.嵌入式系統(tǒng)性能評估的基準(zhǔn)程序方法.同濟大學(xué),復(fù)旦大學(xué),2002.