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