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