微控制器是將微型計算機的主要部分集成在一個芯片上的單芯片微型計算機,。微控制器誕生于20世紀70年代中期,,經過20多年的發(fā)展,其成本越來越低,,而性能越來越強大,,這使其應用已經無處不在,遍及各個領域,。例如電機控制,、條碼閱讀器/掃描器、消費類電子,、游戲設備,、電話、HVAC,、樓宇安全與門禁控制,、工業(yè)控制與自動化和白色家電(洗衣機、微波爐)等,。
現今的嵌入式工業(yè)及汽車系統(tǒng)中,,有許多是基于8位或16位微控制器架構來設計的。隨著新的低功耗32位架構的面市,,這些應用有可能獲得更高的性能,、準確度和功效。此外,,處理能力的提高也有助于實現新產品的差異性功能,,包括先進的控制算法,GUI顯示器,、語音控制,,以及電容式觸摸感測等下一代接口。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ā)工具成本低,。
如何評估微控制器的性能是否滿足應用需求,,是工程師在項目設計的早期階段需要考慮的問題。評價和匯總來自數據手冊的信息是一種有效方法,,另一種方法是使用某一類型的評估板來進行特定性能測試和功耗測試的方法,。這兩類方法都有各自的缺點。
32位與8/16位系統(tǒng)的效率差異相當大,,在16位處理器上,一次普通的32位乘/累加操作需要4次乘法與4次加法運算,。由于需要訪問存儲器以存儲中間結果或釋放多個寄存器,,執(zhí)行效率會進一步降低,并可能減慢其他操作的速度,。因此,,在16處理器上,一次32位乘法可能需要20~40個周期,。而32位UC3C處理器只需要單個周期即可,。此外,32位管線較寬,,故從存儲器檢索數據及指令的速度更快,。
在評估過程中,使用了三個步驟:(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)。
Auto-Bench/Energy-Bench測試環(huán)境系統(tǒng)由三部分組成:數據獲取系統(tǒng)(DAC),、軟件開發(fā)環(huán)境和測試目標,。美國國家儀器公司的DAC連接到PC機上,PC機運行Energy-Bench這一功耗和能耗測試軟件,。軟件測試環(huán)境使用KeilTM集成開發(fā)工具來編譯,,下載和運行Auto-Bench測試基準。把供給微處理器的三個電源電壓隔離開,,Energy-Bench可以測量Auto-Bench基準測試中消耗的能量,,并計算在每一測試中消耗的總能量。
在4種不同的頻率下運行Auto-Bench(13 MHz,、52 MHz,、104 MHz和208 MHz),并組合其他測試條件,,包括打開或關閉浮點協(xié)處理器,,打開或關閉指令緩存。浮點協(xié)處理器默認為不使能的,使得編譯器對任何需要浮點運算的情況使用軟件浮點,。
實際收集到的數據遠比本文中所能呈現的多,,這里只介紹兩個有代表性的案例以表現收集的特征數據怎樣決定系統(tǒng)的性能。圖1以圖形方式表示了EEMBC的有限脈沖響應濾波(FIR)的測試數據結果,。在13 MHz運行兩個不同的基準測試,,在0.9 V~1.2 V之間改變CPU核的電壓。當測試基準運行在CPU時鐘設置為208 MHz時,,AHB的時鐘設置為其極限104 MHz.在所有其他測試頻率中,,CPU時鐘和AHB時鐘是相同的。
圖1EEMBC的有限脈沖響應濾波(FIR)測試數據結果
浮點運算就是實數運算,,因為計算機只能存儲整數,,所以實數都是約數,這樣浮點運算是很慢的而且會有誤差?,F在大多數機器都是32位的,,也就是說32位都用來表示整數的話,那么對于無符號整數就是0 到 2^32-1,對于有符號的話就是-2^31 到 2^31-1.
首先來看指令緩存的性能,,觀察圖1標示著循環(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)運行較長時間具有更好的能量效率,。
從循環(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%的能量,而工作量是相同的,。
圖1循環(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時要好得多,。
除以上這些總體概要外,更重要的事實是,,根據工業(yè)標準的性能和能量基準測試得到的數據,,確定了系統(tǒng)的性能。而這些基準可以公開得到,,并可得到獨立權威的驗證,。
使用EEMBC Auto-Bench基準和Energy-Bench基準,可以得到一致的性能分析,,很容易演示給其他人,。而且,可以被重復,、驗證,。
設計嵌入式系統(tǒng)通常是一項很有挑戰(zhàn)性的任務,幾乎每一個嵌入式系統(tǒng)都有相對唯一的硬件配置,。對于特定的嵌入式操作系統(tǒng),,經常需要重寫特定的代碼。對此通常還有非常嚴格的能耗限制,。本文給出了量化的科學測試方法以幫助嵌入式工程師考慮如何選擇適合于特定應用的控制器來構建系統(tǒng)。即使所測試的嵌入式系統(tǒng)差異很大,,確鑿的數據仍可以幫助系統(tǒng)評估者比較相同的性能特征,。
在本文的測試設置中,使用了EEMBC的特性工具來決定恩智浦微控制器的性能,。然后使用這些性能信息為特定的運行環(huán)境選擇最好的控制參數,。該測試例程量化了評估系統(tǒng)中使用微控制器的指令緩存和浮點協(xié)處理器的系統(tǒng)性能。收集到的特征數據方便定義系統(tǒng)行為,,并提供一種方法學來選擇運行參數以控制系統(tǒng)性能和能量消耗,。
測試結果表明,硬件向量浮點運算單元的使用可以使系統(tǒng)性能提高5倍左右,,并可減少代碼量,,降低功耗。
硬件浮點協(xié)處理器VFP9是NXP基于ARM926EJ-S內核的LPC3000系列的特征,,NXP低功耗的90 nm工藝技術可以以非常小的芯片面積和極小的功耗實現這一功能,,使得LPC3000 ARM9微控制器非常適合需要進行信號處理的醫(yī)療電子等行業(yè)應用。