王芳良,張偉功+,于立新,周海洋,莊 偉
(1.首都師范大學(xué) 信息工程學(xué)院,北京100048;2.北京微電子技術(shù)研究所,北京100076;3.北京市高可靠嵌入式系統(tǒng)技術(shù)工程研究中心,北京100048)
對(duì)嵌入式系統(tǒng)性能進(jìn)行準(zhǔn)確的量化分析,提供準(zhǔn)確的性能指標(biāo),對(duì)充分發(fā)揮嵌入式處理器性能,了解嵌入式系統(tǒng)關(guān)鍵部件對(duì)系統(tǒng)性能的影響程度,提高嵌入式系統(tǒng)性能有著重要意義。基準(zhǔn)程序法因直接、簡(jiǎn)單、低費(fèi)用等優(yōu)點(diǎn)被廣泛地用于評(píng)估系統(tǒng)性能中,但一直以來(lái)對(duì)基準(zhǔn)集的開(kāi)發(fā)研究要遠(yuǎn)落后于對(duì)處理器設(shè)計(jì)的研究,尤其是面向工業(yè)控制、航空等領(lǐng)域的基準(zhǔn)集更為落后。目前流行的基準(zhǔn)集中SPEC CPU2006[1]和Linpack[2]主要用于通用處理器及大型處理器的定點(diǎn)浮點(diǎn)運(yùn)算性能評(píng)估,但由于其對(duì)操作系統(tǒng)要求嚴(yán)格,很難應(yīng)用于工業(yè)控制、航空領(lǐng)域無(wú)操作系統(tǒng)的嵌入式系統(tǒng)。Dhrystone[3]基準(zhǔn)集被廣泛應(yīng)用于嵌入式處理器整數(shù)運(yùn)算性能的評(píng)估,但代碼量小,受編譯器優(yōu)化、庫(kù)函數(shù)等因素的影響較大,測(cè)試結(jié)果已受到很大的質(zhì)疑;MediaBench[4]基準(zhǔn)集主要包含一些多媒體嵌入式應(yīng)用程序,對(duì)嵌入式應(yīng)用的覆蓋面有限;EEMBC[5,6]基準(zhǔn)集對(duì)嵌入式系統(tǒng)應(yīng)用的覆蓋很全面,但成本較高;MiBench[7]基準(zhǔn)集覆蓋了多種常見(jiàn)的嵌入式應(yīng)用,但對(duì)編譯器和系統(tǒng)庫(kù)要求較高,移植和使用比較復(fù)雜;CoreMark[5,8-10]基準(zhǔn)集是用來(lái)衡量嵌入式系統(tǒng)中心處理單元性能的標(biāo)準(zhǔn),在設(shè)置上彌補(bǔ)了Dhrystone的不足,支持無(wú)操作系統(tǒng)的移植。非常適合工業(yè)控制、航空領(lǐng)域無(wú)操作系統(tǒng)的嵌入式系統(tǒng)的性能評(píng)估。Intel、Samsung Exynos、ARM、Freescale、IBM 等多款嵌入式處理器都采用CoreMark值作為處理器性能指標(biāo)[11],但是國(guó)內(nèi)還沒(méi)有處理器廠商采用CoreMark基準(zhǔn)集。本文將最新的應(yīng)用于嵌入式處理器性能評(píng)估的CoreMark基準(zhǔn)集移植到應(yīng)用于工業(yè)控制的嵌入式系統(tǒng)中,通過(guò)改變嵌入式系統(tǒng)中的關(guān)鍵部件參數(shù),來(lái)獲得關(guān)鍵部件的性能加速比以及系統(tǒng)的最佳性能。
EEMBC 組 織 的Shay Gla-On 于2009 年 提 出 了 一 套CoreMark基準(zhǔn)集,并且試圖將其發(fā)展成為工業(yè)標(biāo)準(zhǔn),從而代替陳舊的Dhrystone標(biāo)準(zhǔn)。CoreMark基準(zhǔn)集是用來(lái)衡量嵌入式系統(tǒng)中心處理單元性能的標(biāo)準(zhǔn)。代碼使用C 語(yǔ)言寫成,移植性比較強(qiáng),適合大部分的微控制器和微處理器。CoreMark基準(zhǔn)集主要來(lái)自常用的一些算法,包含:列表操作 (尋找并排序),數(shù)學(xué)矩陣操作 (普通矩陣運(yùn)算)和狀態(tài)機(jī) (用來(lái)確定輸入流中是否包含有效數(shù)字),最后還包括CRC (循環(huán)冗余校驗(yàn))[12]。
CoreMark基準(zhǔn)集與Dhrystone相比有以下優(yōu)勢(shì):①降低編譯器對(duì)嵌入式系統(tǒng)性能的影響。通過(guò)對(duì)數(shù)據(jù)初始化、數(shù)據(jù)必須在運(yùn)行時(shí)間內(nèi)定義以及庫(kù)函數(shù)調(diào)用不計(jì)入運(yùn)行時(shí)間等規(guī)則來(lái)減少編譯器對(duì)嵌入式系統(tǒng)性能的影響。②增加測(cè)試代碼覆蓋率與可預(yù)測(cè)性。CoreMark基準(zhǔn)集沒(méi)有采用簡(jiǎn)單的代碼合成,而是由現(xiàn)實(shí)應(yīng)用中的一些算法有機(jī)結(jié)合在一起。增加了測(cè)試代碼的覆蓋率和可預(yù)測(cè)性。③設(shè)定標(biāo)準(zhǔn)的運(yùn)行條件和發(fā)布規(guī)則。CoreMark 基準(zhǔn)集對(duì)如何運(yùn)行CoreMark基準(zhǔn)集以及如何輸出測(cè)試結(jié)果做出了詳細(xì)規(guī)定。必須輸出編譯器的型號(hào)、處理器型號(hào)、頻率、Cache大小、有無(wú)操作系統(tǒng),以及代碼和數(shù)據(jù)的存儲(chǔ)位置。這樣測(cè)試結(jié)果才具有可比性。因此我們選擇CoreMark基準(zhǔn)集作為評(píng)測(cè)該嵌入式系統(tǒng)性能的基準(zhǔn)集。
嵌入式系統(tǒng)性能評(píng)測(cè)環(huán)境通常包括用于嵌入式系統(tǒng)評(píng)測(cè)的測(cè)試主機(jī)和將要被測(cè)評(píng)的嵌入式系統(tǒng)。測(cè)試主機(jī)通過(guò)串口與被測(cè)嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)的通信與交互。本文測(cè)試主機(jī)采用的是通用的PC,編譯器采用的是GCC3.2.3。
本文所用嵌入式系統(tǒng)采用的是一款Virtex5FPGA 開(kāi)發(fā)板,將開(kāi)源的基于SPARC V8體系結(jié)構(gòu)的Leon2代碼綜合后燒寫到FPGA 中。其結(jié)構(gòu)框架如圖1所示。
圖1 嵌入式系統(tǒng)的結(jié)構(gòu)框架
本文所述嵌入式系統(tǒng)測(cè)試環(huán)境配置見(jiàn)表1。以確保其他人根據(jù)這些條件能夠得到相同的結(jié)果。這些條件包括硬件配置情況,也包括操作系統(tǒng)和編譯器的版本等。
表1 嵌入式系統(tǒng)測(cè)試環(huán)境配置
CoreMark基準(zhǔn)集的移植分為有操作系統(tǒng)和無(wú)操作系統(tǒng)的移植。本文的移植是針對(duì)無(wú)操作系統(tǒng)情況下的移植過(guò)程。CoreMark基準(zhǔn)集需要編譯的文件見(jiàn)表2。
表2 CoreMark需要編譯文件
根據(jù)本文所述的嵌入式處理器和嵌入式系統(tǒng)平臺(tái)對(duì)CoreMark需要編譯文件中的可修改部分進(jìn)行設(shè)置。<core_portme.h>文件中主要是有關(guān)平臺(tái)的宏定義,包括是否支持FLOAT,TIME_H,STDIO.H,CLOCK,以及PRINTF等操作。根據(jù)自己的平臺(tái)對(duì)其進(jìn)行配置。同時(shí)要設(shè)置所用編譯器的版本以及編譯類型標(biāo)識(shí)。本文采用的是GCC_3.2.3,編譯類型是-O3,所以需要設(shè)置為#define COMPILER_ VERSION gcc _ 3.2.3, # define COMPILER_FLAGS-O3。編譯器和編譯類型是CoreMark結(jié)果中重要的指標(biāo)之一,所以必須進(jìn)行修改。CoreMark基準(zhǔn)集為了解決不同編譯器的問(wèn)題,對(duì)數(shù)據(jù)類型做了統(tǒng)一的定義,如果有不支持的數(shù)據(jù)類型可以在此進(jìn)行修改,這樣在工程中的其它文件中就可以保持?jǐn)?shù)據(jù)類型的一致性,減少數(shù)據(jù)類型的修改。同時(shí)還要對(duì)線程數(shù)進(jìn)行定義,本文采用的是單線程的,所以要在此文件中設(shè)置為#define MULTITHREAD 1。這樣<core_portme.h>文件就修改完成。
<core_portme.c>文件中主要包含了CoreMark基準(zhǔn)集執(zhí)行次數(shù)、處理器主頻以及計(jì)算時(shí)間的函數(shù)。執(zhí)行次數(shù)是通過(guò)seed4_volatile=ITERATIONS來(lái)進(jìn)行修改的,次數(shù)可以任意修改,但是為了保證測(cè)試結(jié)果的正確性,要求必須使得運(yùn)行時(shí)間在10-100秒之間,否則結(jié)果會(huì)報(bào)錯(cuò)。處理器主頻通過(guò)一個(gè)簡(jiǎn)單的宏定義即可。關(guān)于時(shí)間計(jì)算的函數(shù)需要根據(jù)被測(cè)嵌入式系統(tǒng)的特點(diǎn)進(jìn)行修改,文件中原本有的測(cè)試方法一般不適合現(xiàn)有的方式。這里需要對(duì)所用嵌入式系統(tǒng)的定時(shí)器進(jìn)行操作,所以要在<core_portme.c>文件中先引入嵌入式系統(tǒng)的硬件配置文件。本文所述嵌入式系統(tǒng)采用的是24位定時(shí)器,每個(gè)定時(shí)器具有3個(gè)寄存器:預(yù)分頻器、重載計(jì)數(shù)值寄存器和控制寄存器。預(yù)分頻器為一個(gè)10位的減一計(jì)數(shù)器,由系統(tǒng)時(shí)鐘定時(shí),每個(gè)時(shí)鐘周期減一。當(dāng)產(chǎn)生下溢時(shí),由預(yù)分頻重載寄存器自動(dòng)重新裝載,同時(shí)產(chǎn)生定時(shí)脈沖,定時(shí)器的值就減一。每當(dāng)定時(shí)器下溢時(shí),就產(chǎn)生一個(gè)中斷,通過(guò)設(shè)置定時(shí)器控制寄存器的加載位可以自動(dòng)重載寄存器的值,同時(shí)定時(shí)器繼續(xù)運(yùn)行。為了不使中斷的時(shí)間影響程序運(yùn)行的整體時(shí)間,所以將定時(shí)器的重載值設(shè)置為最大,盡量避免中斷。然后將文件中時(shí)間計(jì)算函數(shù)做了以下修改。
<coremark.h>文件中主要是有關(guān)函數(shù)和變量的定義,在<core_portme.c>文件中函數(shù)里用到的變量的定義都需在<coremark.h>文件中進(jìn)行定義。
把以上文件修改完畢后,需要建立一個(gè)<main.c>文件作為工程的頭文件,在這個(gè)文件中需要對(duì)所用嵌入式系統(tǒng)的相關(guān)寄存器進(jìn)行初始化,然后再調(diào)用coremark_main()函數(shù)。這樣整個(gè)移植過(guò)程就完成了。
由于嵌入式系統(tǒng)應(yīng)用環(huán)境的特殊性,尤其是用于工業(yè)控制和航空領(lǐng)域的嵌入式系統(tǒng),嵌入式系統(tǒng)的關(guān)鍵部件需要根據(jù)環(huán)境的需求配置成不同的值,而目前大部分嵌入式系統(tǒng)的性能指標(biāo)都是在各個(gè)部件配置成最佳情況時(shí)測(cè)試所得,不能正確反映出嵌入式系統(tǒng)在不同環(huán)境下的性能。本文對(duì)嵌入式系統(tǒng)中SRAM、SDRAM、DCache、ICache、Burst模式以及影響它們內(nèi)部的可配置因素進(jìn)行分析,采用對(duì)比策略,改變其中1個(gè)參數(shù),保持其它參數(shù)不變情況下,進(jìn)行性能測(cè)試。得出嵌入式系統(tǒng)在不同的配置環(huán)境下的性能,可以為在特殊應(yīng)用環(huán)境下的嵌入式系統(tǒng)提供性能對(duì)比的參數(shù)。同時(shí)可以獲得某一參數(shù)的性能加速比,加速比是使用增強(qiáng)措施時(shí)完成整個(gè)任務(wù)的性能與不使用增強(qiáng)措施時(shí)完成整個(gè)任務(wù)的性能的比值[13,14]。加速比可以反映出該增強(qiáng)措施或關(guān)鍵部件對(duì)嵌入式系統(tǒng)整體性能提高的貢獻(xiàn)值大小,加速比越大,表明增強(qiáng)措施對(duì)性能提高的效果越明顯。借助性能加速比,可以量化的分析這一參數(shù)對(duì)整個(gè)嵌入式系統(tǒng)性能的影響程度。嵌入式系統(tǒng)設(shè)計(jì)者可以分析得出如何分配資源才能充分發(fā)揮處理器性能,提高嵌入式系統(tǒng)性能。為避免多個(gè)參數(shù)相互影響,在測(cè)試一個(gè)參數(shù)對(duì)嵌入式系統(tǒng)性能的影響時(shí),關(guān)閉其它參數(shù)。
嵌入式系統(tǒng)中,當(dāng)SRAM 選定后,影響SRAM 速度的可配置參數(shù)有讀等待周期和寫等待周期。研究SRAM 嵌入式系統(tǒng)性能影響時(shí),為避免Burst模式、ICache和DCache對(duì)整體性能的影響,將Burst模式、ICache和DCache均關(guān)閉。同時(shí)把SRAM 的寫等待周期設(shè)置為0,改變SRAM 的讀等待周期,研究SRAM 的讀等待周期對(duì)系統(tǒng)整體性能的影響。讀等待周期分別為0和8個(gè)時(shí)鐘周期時(shí)嵌入式系統(tǒng)的性能 (CoreMark/MHz)見(jiàn)表3。SRAM 讀等待周期為0時(shí)的嵌入式系統(tǒng)性能明顯高于讀等待周期為8的性能,且加速比為2.5。在Burst模式、ICache和DCache均關(guān)閉的情況下,處理器每次讀取數(shù)據(jù)都需要從SRAM 中獲取,從處理器RTL級(jí)仿真中可以發(fā)現(xiàn),SRAM 在0讀等待周期和0寫等待周期的情況下,處理器讀取一個(gè)數(shù)據(jù)需要5個(gè)時(shí)鐘周期。當(dāng)讀等待周期為8時(shí),處理器讀取一個(gè)數(shù)據(jù)需要13個(gè)時(shí)鐘周期,時(shí)間是原來(lái)的2.6倍。通過(guò)從RTL 級(jí)的時(shí)序分析也證明了CoreMark 基準(zhǔn)集測(cè)試的正確性。SRAM 的寫等待周期同樣影響整個(gè)系統(tǒng)的性能。其測(cè)試方法同讀等待周期的測(cè)試方法相同,在此不再做詳細(xì)的論證。因此,由上述測(cè)試結(jié)果,可以看出SRAM 的讀寫等待周期對(duì)嵌入式系統(tǒng)性能的影響程度。而一般情況下,SRAM 的讀寫等待周期都會(huì)默認(rèn)設(shè)置為最大。用戶在使用嵌入式系統(tǒng)時(shí),為提高系統(tǒng)性能,要在時(shí)序允許的情況下,盡量把SRAM的讀寫等待周期設(shè)置為最小。
表3 SRAM、SDRAM 對(duì)嵌入式系統(tǒng)性能的影響
嵌入式系統(tǒng)中,當(dāng)SDRAM 選定后,影響SDRAM 速度的主要有CAS 延遲、tRP、刷新間隔時(shí)間和刷新時(shí)間。同樣為避免其它因素的干擾,將Burst模式、ICache 和DCache全部關(guān)閉。本嵌入式系統(tǒng)中采用的SDRAM 的刷新間隔時(shí)間所允許的最大時(shí)鐘周期為4800,本次實(shí)驗(yàn)分別采用1000 和4000。而刷新時(shí)間為固定值不能修改。從SDRAM 讀時(shí)序中可以分析得到CAS延遲和tRP 均置為0和均置為1時(shí),SDRAM 讀取一個(gè)數(shù)據(jù)分別需要8個(gè)和10個(gè)時(shí)鐘周期,與刷新時(shí)間相比,CAS延遲和tRP 對(duì)系統(tǒng)性能的影響較小。為看到實(shí)驗(yàn)效果,所以將CAS延遲和tRP同時(shí)置1 或0。根據(jù)分析設(shè)計(jì)兩套測(cè)試方案,分別評(píng)測(cè)CAS延遲、tRP和刷新間隔時(shí)間對(duì)嵌入式系統(tǒng)性能的影響。方案一:在刷新間隔時(shí)間設(shè)置為4000時(shí),測(cè)試CAS延遲和tRP分別為0 和1 情況下嵌入式系統(tǒng)的性能。方案二:在CAS延遲和tRP 均為0 時(shí),測(cè)試刷新間隔時(shí)間分別為1000和4000時(shí)嵌入式系統(tǒng)的性能。測(cè)試結(jié)果見(jiàn)表4。
表4 SDRAM 對(duì)嵌入式系統(tǒng)性能的影響
由表4的前3行數(shù)據(jù),可以看出,在刷新間隔時(shí)間和刷新時(shí)間一定的情況下,CAS延遲和tRP 由全1變?yōu)槿?時(shí),嵌入式系統(tǒng)的性能有所提高,但是對(duì)嵌入式系統(tǒng)性能的影響不大,這與我們之前的預(yù)測(cè)是一致的。當(dāng)CAS延遲和tRP一定的情況下,刷新間隔時(shí)間由1000變?yōu)?000時(shí)嵌入式系統(tǒng)性能得到了較大的提升。因?yàn)樘幚砥鲝腟DRAM 中讀取一個(gè)數(shù)據(jù)的時(shí)間是由SDRAM 讀時(shí)序的時(shí)間與定期刷新所花費(fèi)的時(shí)間,當(dāng)刷新間隔時(shí)間變大,處理器從SDRAM 中讀取的數(shù)據(jù)的速度就會(huì)提升。所以用戶在使用SDRAM 時(shí),要根據(jù)SDRAM 的最大刷新間隔時(shí)間參數(shù),將這個(gè)值盡量配置為最大,來(lái)提高嵌入式系統(tǒng)性能。同時(shí)在時(shí)序允許的情況下,可以將CAS延遲和tRP的值配置為0,適當(dāng)?shù)奶岣呦到y(tǒng)的性能。
在工程實(shí)踐中,常常面臨著選擇SRAM 還是SDRAM來(lái)存儲(chǔ)程序和數(shù)據(jù)。由表3 的SRAM (0 讀等待周期)和表4中SDRAM (CAS和tRP均為0)的嵌入式系統(tǒng)性能可知,在Burst 模 式、ICache 和DCache 都 關(guān) 閉 的 情 況 下,SRAM 的讀寫速度要明顯高于SDRAM 的速度,嵌入式系統(tǒng)的性能提高了1.8倍。這些數(shù)據(jù)可以幫助嵌入式系統(tǒng)設(shè)計(jì)者在特殊的應(yīng)用環(huán)境中 (如不能打開(kāi)Cache或Burst模式)做出合理的選擇。
Burst模式是針對(duì)讀寫存儲(chǔ)器太慢而設(shè)置,Burst模式可以一次性地讀出成組數(shù)據(jù)到內(nèi)部寄存器或Cache,一次讀取數(shù)據(jù)的個(gè)數(shù)由Burst Length決定,常見(jiàn)有1,2,4和8。本文的嵌入式處理器采用的是Burst Length 為8 的取指Burst模式,對(duì)SRAM 和SDRAM 的取指操作都會(huì)起到作用。Burst模式打開(kāi)后,處理器可以一次讀取連續(xù)的8個(gè)數(shù)據(jù),大大減少了取指周期,進(jìn)而提高嵌入式系統(tǒng)的整體性能。為研究Burst模式對(duì)系統(tǒng)性能的影響程度,需要關(guān)閉ICache和DCache。分別測(cè)試在SRAM 和SDRAM 情況下Burst模式打開(kāi)后系統(tǒng)的性能,結(jié)果見(jiàn)表5。
表5 Burst模式對(duì)嵌入式系統(tǒng)性能的影響
由表5可以看出,Burst模式打開(kāi)后,嵌入式系統(tǒng)的性能得到了很大程度的提高,且在SDRAM 情況下系統(tǒng)性能的加速比要大于SRAM 情況下的加速比。根據(jù)嵌入式處理器RTL級(jí)SRAM 和SDRAM 在Burst模式下的時(shí)序圖,處理器一次從SRAM 和SDRAM 讀取連續(xù)8個(gè)數(shù)據(jù)分別需要19和15加上定期刷新時(shí)間。而如果在Burst模式關(guān)閉的情況下,處理器一次從SRAM 和SDRAM 讀取連續(xù)8個(gè)數(shù)據(jù)分別需要40和64加上定期刷新時(shí)間??梢?jiàn)Burst模式對(duì)嵌入式處理器性能的影響很大,所以用戶在環(huán)境條件許可的情況下,盡量要打開(kāi)Burst模式。而嵌入式處理器設(shè)計(jì)時(shí)也應(yīng)該盡量將Burst Length設(shè)置為較大值。
Cache是提高處理器及嵌入式系統(tǒng)性能的關(guān)鍵部件,能夠大幅度提高處理器的讀取速度,提升處理器性能,進(jìn)而提升嵌入式系統(tǒng)的性能。但是在工業(yè)控制和航空一些特殊環(huán)境下,Cache并沒(méi)有打開(kāi)。為能定量的分析Cache對(duì)嵌入式系統(tǒng)性能的影響,本文在Burst模式關(guān)閉的情況下,研究程序分別在SRAM 和SDRAM 時(shí),DCache、ICache分別打開(kāi)關(guān)閉對(duì)嵌入式系統(tǒng)性能 (CoreMark/MHz)影響,結(jié)果如圖2所示。
圖2 Cache對(duì)嵌入式系統(tǒng)性能的影響
由圖2可以看出,當(dāng)僅打開(kāi)DCache時(shí),在SDRAM 和SRAM 中的嵌入式系統(tǒng)的性能加速比分別為1.38和1.18;當(dāng)僅打開(kāi)ICache時(shí),嵌入式系統(tǒng)的性能加速比分別為5.46和3.34;當(dāng)把Cache全部打開(kāi)時(shí),加速比分別為8.19 和4.55。根據(jù)各種模式下性能加速比,可以看到嵌入式系統(tǒng)性能都有提升。ICache對(duì)嵌入式系統(tǒng)性能的影響要高于DCache的影響,了解ICache和DCache在嵌入式系統(tǒng)性能優(yōu)化中所占比重,幫助嵌入式處理器設(shè)計(jì)者根據(jù)處理器應(yīng)用環(huán)境,合理安排ICache 和DCache 的大小。同時(shí)看到Cache全部打開(kāi)后,嵌入式系統(tǒng)性能有了大幅度的提升,尤其是嵌入式系統(tǒng)采用SDRAM 作為外存時(shí),這一數(shù)據(jù)可以告訴用戶在環(huán)境允許的情況下,要盡量打開(kāi)Cache,充分發(fā)揮嵌入式處理器性能,提高嵌入式系統(tǒng)性能。
根據(jù)以上關(guān)于SDRAM、SRAM、Burst模式、ICache和DCache這些關(guān)鍵部件對(duì)嵌入式系統(tǒng)性能 (CoreMark/MHz)影響的分析,可以量化的得到這些關(guān)鍵部件在嵌入式系統(tǒng)性能優(yōu)化中的影響程度。其影響嵌入式系統(tǒng)性能的程度大小依次是Cache,Burst模式,SDRAM 的刷新間隔時(shí)間,SRAM 的讀寫等待時(shí)間,SDRAM 的CAS 延遲和tRP。根據(jù)這些影響程度,可以做出兩套性能優(yōu)化方案:一是將程序和數(shù)據(jù)存入SDRAM 中時(shí),SDRAM 的CAS延遲和tRP設(shè)置為0,SDRAM 刷新價(jià)格時(shí)間設(shè)置為最大,打開(kāi)Cache,打開(kāi)Burst模式,嵌入式系統(tǒng)性能可以達(dá)到最大優(yōu)化。二是將程序和數(shù)據(jù)存放在SRAM 中時(shí),SRAM 的讀寫等待周期設(shè)置為0,打開(kāi)Cache,打開(kāi)Burst模式,嵌入式系統(tǒng)性能可以達(dá)到最大優(yōu)化。根據(jù)特定的應(yīng)用環(huán)境靈活的改變以上兩種方案的某些參數(shù),可以使嵌入式系統(tǒng)在該特定環(huán)境下達(dá)到最佳性能。
根據(jù)以上兩個(gè)方案,在主頻25 MHz的情況下,分別對(duì)CoreMark基準(zhǔn)集下載在SDRAM 和SRAM 中嵌入式系統(tǒng)的性能做出測(cè)試,結(jié)果兩種方案的測(cè)試結(jié)果幾乎相同,且都達(dá)到了最大的CoreMark 值。因?yàn)锽urst模式、Cache打開(kāi)后,Cache的命中率較高,從主存中訪問(wèn)的比重很小,再加上Burst模式的作用,SDRAM 和SRAM 訪問(wèn)速度的差異進(jìn)一步縮小。對(duì)嵌入式系統(tǒng)性能影響的比率很低,因此兩種優(yōu)化方案下嵌入式系統(tǒng)的性能可以達(dá)到相同的值。最終該嵌入式系統(tǒng)的性能測(cè)試結(jié)果為CoreMark 1.0:39.075/GCC 3.2.3-O3,CoreMark/MHz 1.0A1C31.563/GCC 3.2.3-O3。
本文將目前最新的用于嵌入式處理器性能評(píng)測(cè)的CoreMark基準(zhǔn)集用于面向工業(yè)控制的嵌入式系統(tǒng)的性能分析,彌補(bǔ)了長(zhǎng)期使用Dhrystone基準(zhǔn)集作為嵌入式處理器性能評(píng)估的不足。準(zhǔn)確評(píng)估出嵌入式系統(tǒng)的性能,豐富了同國(guó)外先進(jìn)處理器性能比較的指標(biāo)。同時(shí)對(duì)嵌入式系統(tǒng)中的關(guān)鍵部件SDRAM、SRAM、ICache、DCache、Burst模式以及它們各自內(nèi)部的一些因素做了仔細(xì)分析。量化的得出它們分別對(duì)嵌入式系統(tǒng)的性能的影響程度。為嵌入式系統(tǒng)設(shè)計(jì)者充分發(fā)揮嵌入式處理器性能,優(yōu)化嵌入式系統(tǒng)性能提供有力支持。但是CoreMark基準(zhǔn)集主要是針對(duì)整數(shù)運(yùn)算性能,對(duì)于浮點(diǎn)運(yùn)算性能的評(píng)估仍需要進(jìn)一步研究。
[1]Anthony Gutierrez,Ronald G Dreslinski,Thomas F Wenisch,et al.Full-system analysis and characterization of interactive smartphone applications [C]//IEEE Int Symp on Workload Characterization,2011:81-89.
[2]Alexander Heinecke, Karthikeyan Vaidyanathan, Mikhail Smelyanskiy.Design and implementation of the Linpack benchmark for single and multi-node systems based on IntelRXeon PhiTMcoprocessor[C]//IEEE 27th International Symposium on Parallel &Distributed Processing,2013:126-136.
[3]Nabil Litayem,Bochra Jaafar,Slim Ben Saoud.Embedded microprocessor performance evaluation case study of the Leon3 processor[J].Journal of Engineering Science and Technology,2012,7 (5):576-586.
[4]Zhang Tiefei,Yu Licheng,Chen Tianzhou,et al.Process scheduling-based energy management for bank-aware memory system [J].Journal of Information &Computational Science,2012 (9):4013-4015.
[5]Shay Gal-On,Markus Levy.Creating portable,repeatable,realistic benchmarks for embedded systems and the challenges thereof[C]//ACM,2012:149-152.
[6]Marisha Rawlins,Ann Gordon-Ross.On the interplay of loop caching,code compression,and cache configuration [C]//IEEE,2011:244-248.
[7]Jeyaraj Andrews,Thangappan Sasikala.Evaluation of various compiler optimization techniques related to mibench benchmark applications[J].Journal of Computer Science,2013,9 (6):749-756.
[8]Maheswari R,Pattabiraman V.Performance evaluation of OR1200 processor with evolutionary parallel HPRC using GEP [J].ICTACT Journal on Soft Computing,2012,2 (3):331-336.
[9]EmilyBlem,Jaikrishna Menon,Karthikeyan Sankaralingam.A detailed analysis of contemporary ARM and x86architectures[C]//The 19th IEEE Intl Symposium on High Performance Computer Architecture,2013:4-11.
[10]Igor Bohm,Bjorn Franke,Nigel Topham.Cycle-accurate performance modeling in an ultrafast just-in-time dynamic bi-nary translation instruction set simulator [C]//IEEE,2010:1-8.
[11]Shay Gal-On,Markus Levy.CoreMark instruction [EB/OL].[2013-12-20].http://www.CoreMark.org.
[12]Shay Gal-On,Markus Levy.The embedded microprocessor benchmark consortium:EEMBC bench-mark suite [EB/OL].[2013-12-20].http://www.eembc.org.
[13]John L Hennessy,David A Patterson.Computer architecture:A quantitative approach [M].4th ed.Beijing:Publishing House of Electronics Industry,2007:23-30 (in Chinese).[John L Hennessy,David A Patterson.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):量化研究方法 [M].4版.北京:電子工業(yè)出版社,2007:23-30.]
[14]John L Hennessy,David A Patterson.Computer organization and design:The hardware/software interface [M].3rd ed.Beijing:China Machine Press,2007:168-178 (in Chinese).[John L Hennessy,David A Patterson.計(jì)算機(jī)組成與設(shè)計(jì):硬件/軟件接口 [M].3版.北京:機(jī)械工業(yè)出版社,2007:168-178.]