微控制器是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而性能越來越強(qiáng)大,這使其應(yīng)用已經(jīng)無處不在,遍及各個(gè)領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類電子、游戲設(shè)備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機(jī)、微波爐)等。
現(xiàn)今的嵌入式工業(yè)及汽車系統(tǒng)中,有許多是基于8位或16位微控制器架構(gòu)來設(shè)計(jì)的。隨著新的低功耗32位架構(gòu)的面市,這些應(yīng)用有可能獲得更高的性能、準(zhǔn)確度和功效。此外,處理能力的提高也有助于實(shí)現(xiàn)新產(chǎn)品的差異性功能,包括先進(jìn)的控制算法,GUI顯示器、語音控制,以及電容式觸摸感測(cè)等下一代接口。8 bit/16 bit微控制器通常需要消耗很多計(jì)算資源來做這些工作。今天,內(nèi)置浮點(diǎn)運(yùn)算的強(qiáng)大微控制器開始出現(xiàn),32 bit微控制器有足夠的能力來實(shí)現(xiàn)其中的許多功能。
評(píng)估微控制器的性能
相比于專業(yè)的DSP處理器,微控制器用于信號(hào)處理具有如下優(yōu)勢(shì):
(1)有效的循環(huán)控制;(2)豐富的外設(shè);(3)單一的處理器結(jié)構(gòu)、指令集和開發(fā)工具鏈;(4)統(tǒng)一的中斷和任務(wù)切換環(huán)境,同類存儲(chǔ)器;(5)同樣的操作系統(tǒng)同時(shí)管理控制和信號(hào)處理任務(wù),基于MMU;(6)由于大大地簡化了開發(fā)過程,所以上市時(shí)間較短;(7)流行的微控制器容易獲得,開發(fā)工具成本低。
如何評(píng)估微控制器的性能是否滿足應(yīng)用需求,是工程師在項(xiàng)目設(shè)計(jì)的早期階段需要考慮的問題。評(píng)價(jià)和匯總來自數(shù)據(jù)手冊(cè)的信息是一種有效方法,另一種方法是使用某一類型的評(píng)估板來進(jìn)行特定性能測(cè)試和功耗測(cè)試的方法。這兩類方法都有各自的缺點(diǎn)。
32位與8/16位系統(tǒng)的效率差異相當(dāng)大,在16位處理器上,一次普通的32位乘/累加操作需要4次乘法與4次加法運(yùn)算。由于需要訪問存儲(chǔ)器以存儲(chǔ)中間結(jié)果或釋放多個(gè)寄存器,執(zhí)行效率會(huì)進(jìn)一步降低,并可能減慢其他操作的速度。因此,在16處理器上,一次32位乘法可能需要20~40個(gè)周期。而32位UC3C處理器只需要單個(gè)周期即可。此外,32位管線較寬,故從存儲(chǔ)器檢索數(shù)據(jù)及指令的速度更快。
在評(píng)估過程中,使用了三個(gè)步驟:(1)通過運(yùn)行各種系統(tǒng)測(cè)試基準(zhǔn),并改變不同的系統(tǒng)參數(shù),抽象出系統(tǒng)特征;(2)解釋收集的特征數(shù)據(jù)來確立系統(tǒng)的行為;(3)通過系統(tǒng)的行為決定怎樣設(shè)定控制參數(shù),從而使系統(tǒng)表現(xiàn)達(dá)到預(yù)想的效果。
特征化
從理論上來說,性能測(cè)試是對(duì)運(yùn)作系統(tǒng)式樣的質(zhì)化或量化評(píng)估。在實(shí)際應(yīng)用中,系統(tǒng)的式樣可能不夠詳細(xì),不足以定義完整的質(zhì)量測(cè)試,創(chuàng)建測(cè)試也許太昂貴,不能保證其開發(fā)。一個(gè)比較好的得到系統(tǒng)特征的折衷方法是,使用測(cè)試基準(zhǔn)作為一個(gè)或一系列以軟件執(zhí)行的測(cè)試,提供量化的數(shù)據(jù),這些數(shù)據(jù)可以用來比較不同系統(tǒng)的特性。
為得到微控制器的特性,從EEMBC的Auto-Bench組選擇一套性能測(cè)試基準(zhǔn)。這些基準(zhǔn)幫助預(yù)測(cè)微控制器在汽車電子,工業(yè)和一般應(yīng)用中的性能。運(yùn)行每一個(gè)基準(zhǔn)測(cè)試都通過多次反復(fù)循環(huán)以消除一些啟動(dòng)代碼在每次測(cè)試開始時(shí)只運(yùn)行一次的影響。使用這一工業(yè)標(biāo)準(zhǔn)基準(zhǔn)組件的一個(gè)優(yōu)勢(shì)就是可以將結(jié)果數(shù)據(jù)與其他類似架構(gòu)微控制器的測(cè)試數(shù)據(jù)進(jìn)行比較,以評(píng)判總體系統(tǒng)性能。
這里所測(cè)試的微控制器是基于ARM926EJ-S內(nèi)核,帶硬件矢量浮點(diǎn)協(xié)處理器和一個(gè)32 KB的指令緩存(I-cache)。該測(cè)試衡量浮點(diǎn)協(xié)處理器和指令緩存的性能。在微控制器不同的工作頻率時(shí)運(yùn)行Auto-Bench測(cè)試基準(zhǔn),使用Energy-Bench測(cè)量每一基準(zhǔn)執(zhí)行中消耗的能量。Energy-Bench是另一個(gè)EEMBC工具,可以測(cè)量基準(zhǔn)負(fù)載運(yùn)行時(shí)處理器消耗的能量。從Energy-Bench收集的數(shù)據(jù)可以觀察到微控制器在各種不同負(fù)載下的能量效率。選擇了這些工具來評(píng)估微控制器,下一步就是確定微控制器在不同運(yùn)行條件下的性能。
性能分析
為了分析微控制器的性能,需要決定在不同條件下的整體系統(tǒng)響應(yīng)。在測(cè)試項(xiàng)目中,需要評(píng)估恩智浦微控制器上浮點(diǎn)協(xié)處理器和指令緩存的性能。
運(yùn)行Auto-bench基準(zhǔn)測(cè)試組,改變4個(gè)參數(shù):運(yùn)行頻率、CPU核的電壓、指令緩存的狀態(tài)和浮點(diǎn)協(xié)處理器的狀態(tài)。
Auto-Bench/Energy-Bench測(cè)試環(huán)境系統(tǒng)由三部分組成:數(shù)據(jù)獲取系統(tǒng)(DAC)、軟件開發(fā)環(huán)境和測(cè)試目標(biāo)。美國國家儀器公司的DAC連接到PC機(jī)上,PC機(jī)運(yùn)行Energy-Bench這一功耗和能耗測(cè)試軟件。軟件測(cè)試環(huán)境使用KeilTM集成開發(fā)工具來編譯,下載和運(yùn)行Auto-Bench測(cè)試基準(zhǔn)。把供給微處理器的三個(gè)電源電壓隔離開,Energy-Bench可以測(cè)量Auto-Bench基準(zhǔn)測(cè)試中消耗的能量,并計(jì)算在每一測(cè)試中消耗的總能量。
在4種不同的頻率下運(yùn)行Auto-Bench(13 MHz、52 MHz、104 MHz和208 MHz),并組合其他測(cè)試條件,包括打開或關(guān)閉浮點(diǎn)協(xié)處理器,打開或關(guān)閉指令緩存。浮點(diǎn)協(xié)處理器默認(rèn)為不使能的,使得編譯器對(duì)任何需要浮點(diǎn)運(yùn)算的情況使用軟件浮點(diǎn)。
實(shí)際收集到的數(shù)據(jù)遠(yuǎn)比本文中所能呈現(xiàn)的多,這里只介紹兩個(gè)有代表性的案例以表現(xiàn)收集的特征數(shù)據(jù)怎樣決定系統(tǒng)的性能。圖1以圖形方式表示了EEMBC的有限脈沖響應(yīng)濾波(FIR)的測(cè)試數(shù)據(jù)結(jié)果。在13 MHz運(yùn)行兩個(gè)不同的基準(zhǔn)測(cè)試,在0.9 V~1.2 V之間改變CPU核的電壓。當(dāng)測(cè)試基準(zhǔn)運(yùn)行在CPU時(shí)鐘設(shè)置為208 MHz時(shí),AHB的時(shí)鐘設(shè)置為其極限104 MHz.在所有其他測(cè)試頻率中,CPU時(shí)鐘和AHB時(shí)鐘是相同的。
圖1EEMBC的有限脈沖響應(yīng)濾波(FIR)測(cè)試數(shù)據(jù)結(jié)果
浮點(diǎn)運(yùn)算就是實(shí)數(shù)運(yùn)算,因?yàn)橛?jì)算機(jī)只能存儲(chǔ)整數(shù),所以實(shí)數(shù)都是約數(shù),這樣浮點(diǎn)運(yùn)算是很慢的而且會(huì)有誤差?,F(xiàn)在大多數(shù)機(jī)器都是32位的,也就是說32位都用來表示整數(shù)的話,那么對(duì)于無符號(hào)整數(shù)就是0 到 2^32-1,對(duì)于有符號(hào)的話就是-2^31 到 2^31-1.
首先來看指令緩存的性能,觀察圖1標(biāo)示著循環(huán)次數(shù)/s的圖。數(shù)據(jù)表明,在所有頻率下,當(dāng)指令緩存使能時(shí),微控制器的絕對(duì)性能都更好。第二,當(dāng)CPU時(shí)鐘頻率增加時(shí),即使指令緩存提供了更好的絕對(duì)性能,其提高的相對(duì)幅度不是線性的。通過觀察標(biāo)示著循環(huán)次數(shù)/s/MHz的圖,讀者可以驗(yàn)證這一特性。圖2表明,對(duì)于幾乎所有的CPU時(shí)鐘頻率性能都線性增加大約100次/s/MHz,而除了運(yùn)行在208 MHz時(shí),根據(jù)指令緩存使能與否,性能降至60或80次/s/MHz。
很明顯,當(dāng)指令緩存使能時(shí),系統(tǒng)運(yùn)行更快。因?yàn)楫?dāng)CPU從指令緩存執(zhí)行指令時(shí),對(duì)AHB RAM進(jìn)行讀寫的次數(shù)減少。
非線性性能特征是由于AHB時(shí)鐘具有最高104 MHz的上限的結(jié)果。當(dāng)AHB時(shí)鐘慢于CPU時(shí)鐘時(shí),CPU必須等待較長的時(shí)間以從AHB總線的RAM上讀取指令,其結(jié)果是每MHz相對(duì)性能的增加較小。
下面分析一下指令緩存對(duì)能耗的影響。如果只考慮圖2中功率(Power)的絕對(duì)功耗,也許會(huì)得出關(guān)閉指令緩存可以節(jié)省整個(gè)系統(tǒng)能量的結(jié)論。然而,Energy-Bench數(shù)據(jù)表明,當(dāng)指令緩存被使能時(shí),每一個(gè)基準(zhǔn)循環(huán)消耗的能量實(shí)際上是低于指令緩存被關(guān)閉時(shí)的。
更詳細(xì)地對(duì)能量(Energy)圖進(jìn)行觀察表明,當(dāng)指令緩存使能,在208 MHz,1.2 V時(shí)每個(gè)循環(huán)消耗的能量甚至低于其他運(yùn)行頻率。實(shí)際上,有10%~12%的提高。換句話說,在使能指令緩存的情況下執(zhí)行同樣的基準(zhǔn),高速(208 MHz)運(yùn)行較短的一段時(shí)間比低速(52 MHz或104 MHz)運(yùn)行較長時(shí)間具有更好的能量效率。
從循環(huán)次數(shù)/s的圖可以看到使用浮點(diǎn)協(xié)處理器的運(yùn)行效率和能耗。這張圖相當(dāng)生動(dòng)地表明了集成的浮點(diǎn)協(xié)處理器的性能效果。在頻率為208 MHz時(shí),使能指令緩存,使用軟件浮點(diǎn)運(yùn)算,微控制器運(yùn)行在大約8 500次/s;而使用浮點(diǎn)協(xié)處理器,這一值越至超過32 500次/s,性能提高超過280 %.
檢驗(yàn)浮點(diǎn)協(xié)處理器的能耗效果參見圖3中的能量圖。當(dāng)指令緩存使能、使用軟件浮點(diǎn)運(yùn)算時(shí),每個(gè)基準(zhǔn)負(fù)載在208 MHz的能量表明微控制器消耗每次循環(huán)大約16 J; 而使用浮點(diǎn)協(xié)處理器時(shí),這一值小于4 J/循環(huán)-節(jié)省超過75%的能量,而工作量是相同的。
圖1循環(huán)次數(shù)/s圖表明,在頻率為13 MHz、供電電壓為0.9 V和1.2 V時(shí),性能基準(zhǔn)數(shù)據(jù)是相等的。
然而,功率圖表示,在1.2 V時(shí)的功耗比0.9 V時(shí)的功耗要高大約75%.
系統(tǒng)控制參數(shù)
在測(cè)試?yán)又校褂玫腅EMBC特性工具決定目標(biāo)測(cè)試系統(tǒng)中指令緩存和浮點(diǎn)協(xié)處理器的性能。根據(jù)這一性能,可以選擇通用的配置參數(shù),以提供具有低能耗的系統(tǒng)性能的最好條件。
下面是一些參數(shù)選擇,在類似那些EEMBC Auto-Bench基準(zhǔn)測(cè)試組的環(huán)境下,可以控制系統(tǒng)的功率利用率和性能:
(1)使能指令緩存能使性能更好;
(2)使用硬件浮點(diǎn)協(xié)處理器比軟件浮點(diǎn)的運(yùn)算性能明顯提高且能耗明顯降低;
(3)在208 MHz時(shí),指令緩存使能,其能耗比低頻率時(shí)要好;
(4)對(duì)于13 MHz低功耗運(yùn)行,內(nèi)核電壓在0.9 V時(shí)比1.2 V時(shí)要好得多。
除以上這些總體概要外,更重要的事實(shí)是,根據(jù)工業(yè)標(biāo)準(zhǔn)的性能和能量基準(zhǔn)測(cè)試得到的數(shù)據(jù),確定了系統(tǒng)的性能。而這些基準(zhǔn)可以公開得到,并可得到獨(dú)立權(quán)威的驗(yàn)證。
使用EEMBC Auto-Bench基準(zhǔn)和Energy-Bench基準(zhǔn),可以得到一致的性能分析,很容易演示給其他人。而且,可以被重復(fù)、驗(yàn)證。
設(shè)計(jì)嵌入式系統(tǒng)通常是一項(xiàng)很有挑戰(zhàn)性的任務(wù),幾乎每一個(gè)嵌入式系統(tǒng)都有相對(duì)唯一的硬件配置。對(duì)于特定的嵌入式操作系統(tǒng),經(jīng)常需要重寫特定的代碼。對(duì)此通常還有非常嚴(yán)格的能耗限制。本文給出了量化的科學(xué)測(cè)試方法以幫助嵌入式工程師考慮如何選擇適合于特定應(yīng)用的控制器來構(gòu)建系統(tǒng)。即使所測(cè)試的嵌入式系統(tǒng)差異很大,確鑿的數(shù)據(jù)仍可以幫助系統(tǒng)評(píng)估者比較相同的性能特征。
在本文的測(cè)試設(shè)置中,使用了EEMBC的特性工具來決定恩智浦微控制器的性能。然后使用這些性能信息為特定的運(yùn)行環(huán)境選擇最好的控制參數(shù)。該測(cè)試?yán)塘炕嗽u(píng)估系統(tǒng)中使用微控制器的指令緩存和浮點(diǎn)協(xié)處理器的系統(tǒng)性能。收集到的特征數(shù)據(jù)方便定義系統(tǒng)行為,并提供一種方法學(xué)來選擇運(yùn)行參數(shù)以控制系統(tǒng)性能和能量消耗。
測(cè)試結(jié)果表明,硬件向量浮點(diǎn)運(yùn)算單元的使用可以使系統(tǒng)性能提高5倍左右,并可減少代碼量,降低功耗。
硬件浮點(diǎn)協(xié)處理器VFP9是NXP基于ARM926EJ-S內(nèi)核的LPC3000系列的特征,NXP低功耗的90 nm工藝技術(shù)可以以非常小的芯片面積和極小的功耗實(shí)現(xiàn)這一功能,使得LPC3000 ARM9微控制器非常適合需要進(jìn)行信號(hào)處理的醫(yī)療電子等行業(yè)應(yīng)用。