摘 要: 恩智浦微控制器非常適用于需要高性能和低功耗的嵌入式應(yīng)用。LPC3000系列ARM9微控制器具有片上的矢量浮點(diǎn)運(yùn)算單元,,使其在需要較多的算法處理特別是單精度及雙精度浮點(diǎn)運(yùn)算的應(yīng)用中具有性能上的優(yōu)勢,。以該產(chǎn)品在醫(yī)療電子領(lǐng)域的應(yīng)用為例作了說明,并提供了基于恩智浦微控制器的基準(zhǔn)測試數(shù)據(jù),。這些數(shù)據(jù)使用由嵌入式微處理器評測基準(zhǔn)協(xié)會(EEMBC)開發(fā)的工具收集得到,,并由此得到一種用于測量處理器性能和能耗的標(biāo)準(zhǔn)方法學(xué)。
關(guān)鍵詞: 微控制器,;ARM9,;浮點(diǎn)運(yùn)算;醫(yī)療電子
如今,,越來越多的嵌入式控制應(yīng)用需要信號處理,,如:濾波、插值,、降噪,、頻譜分析、解調(diào)等,。醫(yī)療電子設(shè)備正是需要進(jìn)行信號處理的一個應(yīng)用領(lǐng)域,。例如用于超聲診斷的圖像處理,在進(jìn)行圖像重建,、邊緣處理,、增強(qiáng)以及圖像識別和辨識形狀時均需要進(jìn)行大量的數(shù)字信號處理。用于胎心,、血壓和心跳等監(jiān)護(hù)的控制平臺,,其運(yùn)算模塊也會對采樣得到的原始數(shù)據(jù)經(jīng)過一定的算法處理,再將處理和分析結(jié)果通過LCD等反饋給使用者,。
8 bit/16 bit微控制器通常需要消耗很多計算資源來做這些工作,。今天,內(nèi)置浮點(diǎn)運(yùn)算的強(qiáng)大微控制器開始出現(xiàn),,32 bit微控制器有足夠的能力來實(shí)現(xiàn)其中的許多功能,。
評估微控制器的性能
相比于專業(yè)的DSP處理器,微控制器用于信號處理具有如下優(yōu)勢:
(1)有效的循環(huán)控制,;(2)豐富的外設(shè),;(3)單一的處理器結(jié)構(gòu)、指令集和開發(fā)工具鏈,;(4)統(tǒng)一的中斷和任務(wù)切換環(huán)境,,同類存儲器;(5)同樣的操作系統(tǒng)同時管理控制和信號處理任務(wù),,基于MMU,;(6)由于大大地簡化了開發(fā)過程,所以上市時間較短,;(7)流行的微控制器容易獲得,,開發(fā)工具成本低。
如何評估微控制器的性能是否滿足應(yīng)用需求,,是工程師在項目設(shè)計的早期階段需要考慮的問題,。評價和匯總來自數(shù)據(jù)手冊的信息是一種有效方法,,另一種方法是使用某一類型的評估板來進(jìn)行特定性能測試和功耗測試的方法。這兩類方法都有各自的缺點(diǎn),。
依賴于數(shù)據(jù)手冊的比較是有風(fēng)險的,,而測試多種硬件通常不切實(shí)際、耗時且昂貴,。本文檢驗(yàn)了一種使用工業(yè)標(biāo)準(zhǔn)基準(zhǔn)數(shù)據(jù)的中間解決方案,,在產(chǎn)品設(shè)計的早期階段,當(dāng)關(guān)鍵器件選定以后,,使用這種方法來評估性能和能耗,。
目標(biāo)是調(diào)查恩智浦微控制器在幾種不同測試標(biāo)準(zhǔn)下的系統(tǒng)性能,并把收集到的數(shù)據(jù)和能耗關(guān)聯(lián)起來,。這就需要同時測量性能和功耗,,進(jìn)而能夠測量在特定負(fù)載下的整體能耗。
在評估過程中,,使用了三個步驟:(1)通過運(yùn)行各種系統(tǒng)測試基準(zhǔn),,并改變不同的系統(tǒng)參數(shù),抽象出系統(tǒng)特征,;(2)解釋收集的特征數(shù)據(jù)來確立系統(tǒng)的行為,;(3)通過系統(tǒng)的行為決定怎樣設(shè)定控制參數(shù),從而使系統(tǒng)表現(xiàn)達(dá)到預(yù)想的效果,。
特征化
從理論上來說,,性能測試是對運(yùn)作系統(tǒng)式樣的質(zhì)化或量化評估。在實(shí)際應(yīng)用中,,系統(tǒng)的式樣可能不夠詳細(xì),,不足以定義完整的質(zhì)量測試,創(chuàng)建測試也許太昂貴,,不能保證其開發(fā),。一個比較好的得到系統(tǒng)特征的折衷方法是,使用測試基準(zhǔn)作為一個或一系列以軟件執(zhí)行的測試,,提供量化的數(shù)據(jù),,這些數(shù)據(jù)可以用來比較不同系統(tǒng)的特性。
為得到微控制器的特性,,從EEMBC的Auto-Bench組選擇一套性能測試基準(zhǔn),。這些基準(zhǔn)幫助預(yù)測微控制器在汽車電子,工業(yè)和一般應(yīng)用中的性能,。運(yùn)行每一個基準(zhǔn)測試都通過多次反復(fù)循環(huán)以消除一些啟動代碼在每次測試開始時只運(yùn)行一次的影響,。使用這一工業(yè)標(biāo)準(zhǔn)基準(zhǔn)組件的一個優(yōu)勢就是可以將結(jié)果數(shù)據(jù)與其他類似架構(gòu)微控制器的測試數(shù)據(jù)進(jìn)行比較,以評判總體系統(tǒng)性能。
這里所測試的微控制器是基于ARM926EJ-S內(nèi)核,,帶硬件矢量浮點(diǎn)協(xié)處理器和一個32 KB的指令緩存(I-cache),。該測試衡量浮點(diǎn)協(xié)處理器和指令緩存的性能。在微控制器不同的工作頻率時運(yùn)行Auto-Bench測試基準(zhǔn),,使用Energy-Bench測量每一基準(zhǔn)執(zhí)行中消耗的能量,。Energy-Bench是另一個EEMBC工具,可以測量基準(zhǔn)負(fù)載運(yùn)行時處理器消耗的能量,。從Energy-Bench收集的數(shù)據(jù)可以觀察到微控制器在各種不同負(fù)載下的能量效率。選擇了這些工具來評估微控制器,,下一步就是確定微控制器在不同運(yùn)行條件下的性能,。
性能分析
為了分析微控制器的性能,需要決定在不同條件下的整體系統(tǒng)響應(yīng),。在測試項目中,,需要評估恩智浦微控制器上浮點(diǎn)協(xié)處理器和指令緩存的性能。
運(yùn)行Auto-bench基準(zhǔn)測試組,,改變4個參數(shù):運(yùn)行頻率,、CPU核的電壓、指令緩存的狀態(tài)和浮點(diǎn)協(xié)處理器的狀態(tài),。
圖1為建立Auto-Bench/Energy-Bench測試環(huán)境的示意圖,。由三部分組成:數(shù)據(jù)獲取系統(tǒng)(DAC)、軟件開發(fā)環(huán)境和測試目標(biāo),。美國國家儀器公司的DAC連接到PC機(jī)上,,PC機(jī)運(yùn)行Energy-Bench這一功耗和能耗測試軟件。軟件測試環(huán)境使用KeilTM集成開發(fā)工具來編譯,,下載和運(yùn)行Auto-Bench測試基準(zhǔn),。把供給微處理器的三個電源電壓隔離開,Energy-Bench可以測量Auto-Bench基準(zhǔn)測試中消耗的能量,,并計算在每一測試中消耗的總能量,。
在4種不同的頻率下運(yùn)行Auto-Bench(13 MHz、52 MHz,、104 MHz和208 MHz),,并組合其他測試條件,包括打開或關(guān)閉浮點(diǎn)協(xié)處理器,,打開或關(guān)閉指令緩存,。浮點(diǎn)協(xié)處理器默認(rèn)為不使能的,使得編譯器對任何需要浮點(diǎn)運(yùn)算的情況使用軟件浮點(diǎn),。
實(shí)際收集到的數(shù)據(jù)遠(yuǎn)比本文中所能呈現(xiàn)的多,,這里只介紹兩個有代表性的案例以表現(xiàn)收集的特征數(shù)據(jù)怎樣決定系統(tǒng)的性能。圖2中以圖形方式表示了EEMBC的有限脈沖響應(yīng)濾波(FIR)的測試數(shù)據(jù)結(jié)果。圖3則以圖形方式表示收集到的EEMBC的基本整數(shù)浮點(diǎn)的數(shù)據(jù)結(jié)果,。在13 MHz運(yùn)行兩個不同的基準(zhǔn)測試,,在0.9 V~1.2 V之間改變CPU核的電壓。當(dāng)測試基準(zhǔn)運(yùn)行在CPU時鐘設(shè)置為208 MHz時,,AHB的時鐘設(shè)置為其極限104 MHz,。在所有其他測試頻率中,CPU時鐘和AHB時鐘是相同的,。
圖2 EEMBC的有限脈沖響應(yīng)濾波(FIR)測試數(shù)據(jù)結(jié)果
圖3 收集到的EEMBC的基本整數(shù)浮點(diǎn)數(shù)據(jù)結(jié)果
選擇FIR基準(zhǔn)作為一個測試基線是因?yàn)樗话↑c(diǎn)運(yùn)算,,當(dāng)與基本整數(shù)浮點(diǎn)基準(zhǔn)進(jìn)行比較時,它可以提供有用的數(shù)據(jù),。提供這兩個基準(zhǔn)的數(shù)據(jù)以確定指令緩存和浮點(diǎn)協(xié)處理器性能所需的必要信息,。
首先來看指令緩存的性能,觀察圖2和標(biāo)示著循環(huán)次數(shù)/s的圖,。數(shù)據(jù)表明,,在所有頻率下,當(dāng)指令緩存使能時,,微控制器的絕對性能都更好,。第二,當(dāng)CPU時鐘頻率增加時,,即使指令緩存提供了更好的絕對性能,,其提高的相對幅度不是線性的。通過觀察標(biāo)示著循環(huán)次數(shù)/s/MHz的圖,,讀者可以驗(yàn)證這一特性,。圖2表明,對于幾乎所有的CPU時鐘頻率性能都線性增加大約100次/s/MHz,,而除了運(yùn)行在208 MHz時,,根據(jù)指令緩存使能與否,性能降至60或80次/s/MHz,。
很明顯,,當(dāng)指令緩存使能時,系統(tǒng)運(yùn)行更快,。因?yàn)楫?dāng)CPU從指令緩存執(zhí)行指令時,,對AHB RAM進(jìn)行讀寫的次數(shù)減少。
非線性性能特征是由于AHB時鐘具有最高104 MHz的上限的結(jié)果,。當(dāng)AHB時鐘慢于CPU時鐘時,,CPU必須等待較長的時間以從AHB總線的RAM上讀取指令,其結(jié)果是每MHz相對性能的增加較小,。
下面分析一下指令緩存對能耗的影響,。如果只考慮圖2中功率(Power)的絕對功耗,,也許會得出關(guān)閉指令緩存可以節(jié)省整個系統(tǒng)能量的結(jié)論。然而,,Energy-Bench數(shù)據(jù)表明,,當(dāng)指令緩存被使能時,每一個基準(zhǔn)循環(huán)消耗的能量實(shí)際上是低于指令緩存被關(guān)閉時的,。
更詳細(xì)地對能量(Energy)圖進(jìn)行觀察表明,,當(dāng)指令緩存使能,在208 MHz,,1.2 V時每個循環(huán)消耗的能量甚至低于其他運(yùn)行頻率,。實(shí)際上,有10%~12%的提高,。換句話說,,在使能指令緩存的情況下執(zhí)行同樣的基準(zhǔn),高速(208 MHz)運(yùn)行較短的一段時間比低速(52 MHz或104 MHz)運(yùn)行較長時間具有更好的能量效率,。
從圖3及循環(huán)次數(shù)/s的圖可以看到使用浮點(diǎn)協(xié)處理器的運(yùn)行效率和能耗。這張圖相當(dāng)生動地表明了集成的浮點(diǎn)協(xié)處理器的性能效果,。在頻率為208 MHz時,,使能指令緩存,使用軟件浮點(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)算時,,每個基準(zhǔn)負(fù)載在208 MHz的能量表明微控制器消耗每次循環(huán)大約16 J; 而使用浮點(diǎn)協(xié)處理器時,,這一值小于4 J/循環(huán)-節(jié)省超過75%的能量,,而工作量是相同的。
圖2和循環(huán)次數(shù)/s圖表明,,在頻率為13 MHz,、供電電壓為0.9 V和1.2 V時,性能基準(zhǔn)數(shù)據(jù)是相等的,。
然而,,功率圖表示,在1.2 V時的功耗比0.9 V時的功耗要高大約75%,。
系統(tǒng)控制參數(shù)
在測試?yán)又?,使用的EEMBC特性工具決定目標(biāo)測試系統(tǒng)中指令緩存和浮點(diǎn)協(xié)處理器的性能。根據(jù)這一性能,可以選擇通用的配置參數(shù),,以提供具有低能耗的系統(tǒng)性能的最好條件,。
下面是一些參數(shù)選擇,在類似那些EEMBC Auto-Bench基準(zhǔn)測試組的環(huán)境下,,可以控制系統(tǒng)的功率利用率和性能:
(1)使能指令緩存能使性能更好,;
(2)使用硬件浮點(diǎn)協(xié)處理器比軟件浮點(diǎn)的運(yùn)算性能明顯提高且能耗明顯降低;
(3)在208 MHz時,,指令緩存使能,,其能耗比低頻率時要好;
(4)對于13 MHz低功耗運(yùn)行,,內(nèi)核電壓在0.9 V時比1.2 V時要好得多,。
除以上這些總體概要外,更重要的事實(shí)是,,根據(jù)工業(yè)標(biāo)準(zhǔn)的性能和能量基準(zhǔn)測試得到的數(shù)據(jù),,確定了系統(tǒng)的性能。而這些基準(zhǔn)可以公開得到,,并可得到獨(dú)立權(quán)威的驗(yàn)證,。
使用EEMBC Auto-Bench基準(zhǔn)和Energy-Bench基準(zhǔn),可以得到一致的性能分析,,很容易演示給其他人,。而且,可以被重復(fù),、驗(yàn)證,。
設(shè)計嵌入式系統(tǒng)通常是一項很有挑戰(zhàn)性的任務(wù),幾乎每一個嵌入式系統(tǒng)都有相對唯一的硬件配置,。對于特定的嵌入式操作系統(tǒng),,經(jīng)常需要重寫特定的代碼。對此通常還有非常嚴(yán)格的能耗限制,。本文給出了量化的科學(xué)測試方法以幫助嵌入式工程師考慮如何選擇適合于特定應(yīng)用的控制器來構(gòu)建系統(tǒng),。即使所測試的嵌入式系統(tǒng)差異很大,確鑿的數(shù)據(jù)仍可以幫助系統(tǒng)評估者比較相同的性能特征,。
在本文的測試設(shè)置中,,使用了EEMBC的特性工具來決定恩智浦微控制器的性能。然后使用這些性能信息為特定的運(yùn)行環(huán)境選擇最好的控制參數(shù),。該測試?yán)塘炕嗽u估系統(tǒng)中使用微控制器的指令緩存和浮點(diǎn)協(xié)處理器的系統(tǒng)性能,。收集到的特征數(shù)據(jù)方便定義系統(tǒng)行為,并提供一種方法學(xué)來選擇運(yùn)行參數(shù)以控制系統(tǒng)性能和能量消耗,。
測試結(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)行信號處理的醫(yī)療電子等行業(yè)應(yīng)用,。