內建硬體向量浮點運算單元 微控制器速配醫療電子應用

2010-01-19
本文以在醫療電子領域的應用為例作說明,並提供基於恩智浦(NXP)微控制器(MCU)的基準測試資料。這些資料使用由嵌入式微處理器評測基準協會(EEMBC)開發的工具收集而得,並由此得到一種用於測量處理器性能和能耗的標準方法學。
目前,越來越多的嵌入式控制應用需要訊號處理,例如:濾波(平均濾波、光滑濾波、FIR/IIR濾波)、插值(採樣插值,較高採樣頻率解析)、降噪(有效提高訊噪比SNR)、頻譜分析(頻率分析與檢測)、解調(I-Q解調)以及更多其他技術。  

醫療電子設備正是須要進行訊號處理的一個應用領域。例如用於超聲診斷的圖像處理,在進行圖像重建、邊緣處理、增強以及圖像識別和辨識形狀時均須進行大量的數位訊號處理。用於胎心/血壓/心跳等監護的控制平台,其運算模組也會對採樣得到的原始資料經過一定的演算法處理,再將處理和分析結果透過液晶顯示器(LCD)等回饋給使用者。  

以往,8位元/16位元微控制器通常須要消耗許多計算資源來做這些工作。今日,內置浮點運算的強大微控制器開始面世,且32位元微控制器有足夠的能力來實現其中大部分的功能。

積極展現優勢 MCU擬踩DSP地盤

相比於專業的數位訊號處理器(Digital Signal Processor, DSP),微控制器應用於訊號處理具有如下優勢:  

有效的迴圈控制
豐富的外設
單一的處理器結構、指令集、開發工具鏈
統一的中斷和任務切換環境、同類記憶體
基於MMU,同樣的作業系統(OS)同時管理控制和訊號處理任務
由於大幅簡化的開發過程,因此上市時間較短
通行的微控制器容易獲得,開發工具成本低
 
而如何評估微控制器的性能是否滿足應用需求,是工程師在專案設計早期階段須要考慮的問題。這些方法的其中一種是來自資料手冊資訊的評價和匯總,另一種方法則包括使用某一類型的評估板來進行特定性能測試和功耗測試的方法。這兩類方法都各有缺點。  

依賴於資料手冊的比較是有風險的,而測試多種硬體通常不切實際,耗時且昂貴。本文中,檢驗了一種使用工業標準基準資料的中間解決方案,在產品設計的早期階段,當關鍵元件選定之後,使用這種方法來評估性能和能耗。  

這麼做的目標是調查恩智浦微控制器在幾種不同測試標準下的系統性能,並把收集到的資料和能耗關聯起來。必須同時測量性能和功耗,進而能夠測量在特定負載下的整體能耗。  

在評估過程中,使用了三個步驟。首先,透過進行各種系統測試基準,並改變不同的系統參數,抽象得出系統特徵;第二步,解釋收集的特徵資料來確立系統的行為;第三步,透過系統的行為決定如何設定控制參數,進而讓系統表現達到預期的效果。  

透過性能測試 展現潛力股實力  

從理論上來說,性能測試是對運作系統類型的質化或量化評估。在實際應用中,系統的類型可能不夠詳細,不足以定義完整的品質測試,或者建立測試也許太昂貴,不能保證其開發的結果。一個得到系統特徵比較好的折衷方法,是使用測試基準來當作一個或一系列以軟體執行的測試,提供量化的資料,這些資料就可以用來比較不同系統的特性。

為了得到微控制器的特性,從EEMBC的AutoBench中選擇一套性能測試基準。這些基準幫助預測微控制器在汽車電子、工業和一般應用中的性能。進行每一個基準測試都透過多次反覆迴圈,來消除某些每次測試開始時只執行一次啟動代碼所產生的影響。使用此一工業標準基準元件的一個優勢,就是可以將結果資料拿來與其他類似架構微控制器的測試資料進行比較,以評判總體系統性能。  

這裡測試的微控制器是基於附帶硬體向量浮點輔助運算器和一個32k的指令緩存(I-cache)的ARM926EJ-S內核,測試衡量其浮點輔助運算器與指令緩存的性能。微控制器在不同的工作頻率下,進行AutoBench測試基準,使用EnergyBench測量每一基準執行中消耗的能量。EnergyBench是另一個EEMBC工具,可以測量基準負載進行時處理器消耗的能量。從EnergyBench收集的資料可以觀察到微控制器在各種不同負載下的能量效率。選擇了這些工具來評估微控制器,下一步就是決定微控制器在不同進行條件下的性能。

在不同條件下展現性能

為了分析微控制器的性能,須要決定在不同條件下的整體系統回應。在測試項目中,評估恩智浦微控制器上浮點輔助運算器和指令緩存的性能。  

進行AutoBench基準測試組時改變四個參數,包括進行頻率、CPU核的電壓、指令緩存的狀態以及浮點輔助運算器的狀態。  

圖1為建立AutoBench/EnergyBench測試環境的示意圖。由資料獲取系統(DAC)、軟體發展環境和測試目標三個部分組成。美商國家儀器(NI)的DAC連接到個人電腦(PC)上,個人電腦執行EnergyBench這個功耗和能耗測試軟體。在軟體測試環境中,使用Keil整合開發工具來編譯、下載與進行AutoBench測試基準。把供給微處理器的三個電源電壓隔離開,因此EnergyBench可以測量AutoBench基準測試中消耗的能量,並計算在每個測試中所消耗的總能量。

圖1 EEMBC AutoBench/EnergyBench測試環境

在四種不同的頻率下進行AutoBench(13/52/104/208MHz),並組合其他測試條件,包括打開或關閉浮點輔助運算器,打開或關閉指令緩存。浮點輔助運算器預設為關閉,讓編譯器面對任何需要浮點運算的情況下改採軟體浮點。  

收集到的資料要遠比在這篇簡介中所能呈現來得多,但限於篇幅,在此只介紹兩個具代表性的案例來表現收集的特徵資料如何決定系統的性能。圖2以圖形表示EEMBC的「有限 脈衝回應濾波(Finite Impulse Response, FIR)」的測試資料結果。圖3則以圖形表示收集到的EEMBC的「基本整數浮點」的資料結果。在13MHz進行兩個不同的基準測試,在0.9~1.2伏特之間改變中央處理器(CPU)核心的電壓。當測試基準進行在CPU時脈(Clock)設定為208MHz時,AHB的時脈設定為其極限的104MHz。在所有其他測試頻率中,CPU時脈和AHB時脈是相同的。

圖2 EEMBC有限脈衝回應濾波測試資料結果

選擇FIR基準作為一個測試基線是因為它不包含浮點運算,所以在與「基本整數浮點」基準進行比較時,可以提供有用的資料。這兩個基準的資料提供了確定指令緩存和浮點輔助運算器性能所需的必要資訊。  

首先說明指令緩存的性能,觀察圖2與標示著迴圈次數/秒(iterations/sec)的圖形。資料顯示,在所有頻率下,當指令緩存啟用時,微控制器的絕對性能都會更好。其次,當CPU時脈頻率增加時,即使指令緩存提供更好的絕對性能,其提高的相對幅度卻不是線形的。透過觀察標示著迴圈次數/秒/MHz (iterations/sec/MHz)的圖形,可以驗證這一特性。該圖形顯示,幾乎所有的CPU時脈頻率,除了在208MHz情況下,會因為指令緩存是否啟用而讓性能降至60或80次/秒/MHz之外,性能大都線形增加在大約100次/秒/MHz。

很明顯地,當指令緩存發生作用時,系統進行更快。因為當CPU從指令緩存執行指令時,對AHB RAM進行讀寫的次數減少。

非線性性能特徵是因為AHB時脈具有最高104MHz的上限的結果。當AHB時脈比CPU時脈慢的時候,CPU必須等待較長的時間,以便從AHB匯流排的RAM上讀取指令,其結果是每MHz相對性能的增加較小。

接著觀察指令緩存對能耗的影響。如果只考慮圖2功率(Power)圖中的絕對功耗,也許可以得出關閉指令緩存能夠節省整個系統能量的結論。然而,EnergyBench資料卻顯示,當指令緩存被啟用時,每一個基準迴圈消耗的能量實際上是低於指令緩存被關閉時。  

對能量圖進行更詳細的觀察後發現,當指令緩存開始作用時,在208MHz、1.2伏特時每個迴圈消耗的能量甚至低於其他進行頻率。實際上,有10~12%的提高。換句話說,在啟用指令緩存的情況下進行同樣的基準,高速(208MHz)進行較短的一段時間比低速(52MHz或104MHz)進行較長時間,具有更好的能量效率。  

從圖3和iterations/sec圖中,可以觀察到使用浮點輔助運算器的進行效率和能耗。這張圖形相當生動地表明了整合浮點輔助運算器的性能效果。在208MHz的狀況下啟用指令緩存,並使用軟體浮點運算,微控制器的運行大約8,500次/秒;而使用浮點輔助運算器,這個數值越至超過32,500次/秒,約有超過280%的性能表現。

圖3 EEMBC基本整數浮點收集資料

從圖3中的能量圖形可以檢驗浮點輔助運算器的能耗效果。啟動指令緩存後,使用軟體浮點運算時,每個基準負載在208MHz時的能量顯示,微控制器消耗大約16焦耳/迴圈;而使用浮點輔助運算器時,這個數值小於4焦耳/迴圈,節省超過75%的能量,但工作量相同。  

前面測試時,同時收集了在13MHz時使用0.9伏特和1.2伏特供電電壓的資料。從圖2與iterations/ sec圖中可以發現,在13MHz、0.9伏特和1.2伏特時的性能基準資料是相等的。然而,功率(Power)圖表示,在1.2伏特時的功耗比0.9伏特時的功耗高了約75%。

以系統控制參數進行測試

另外,在測試時使用EEMBC特性工具決定目標測試系統中指令緩存和浮點輔助運算器的性能。根據此一性能,可以選擇通用的配置參數,以提供具有低能耗系統性能的最好條件。  

以下是一些參數選擇,在類似那些EEMBC AutoBench基準測試組的環境,可以控制系統的功率利用和性能:包括發生作用指令緩存,性能更好;使用硬體浮點輔助運算器,明顯比軟體浮點的運算性能和能耗要來得好;在208MHz、指令緩存啟用時,能耗比低頻率時要好;若以13MHz低功耗運作,內核電壓在0.9伏特比1.2伏特要好得多。  

根據工業標準的性能和能量基準測試得到的資料,確定了系統的性能。而這些基準可以公開得到,並可得到獨立權威的驗證。使用EEMBC AutoBench基準和EnergyBench基準,都可以得到同樣的性能分析。更重要的是,可以被重複與被驗證。

硬體向量浮點運算單元確有可為

設計嵌入式系統是一項很有挑戰性的工作,幾乎每一個嵌入式系統都有相對唯一的硬體配置。對於特定的嵌入式作業系統,經常須要重寫特定的代碼,其中通常還有非常嚴格的能耗限制。本文以量化的科學測試方法來協助嵌入式工程師思考,該如何選擇適合於特定應用的控制器來構建系統。即使所測試的嵌入式系統非常不同,確實無誤的資料可以幫助系統評估者比較相同的性能特徵。  

在此處的測試環境中,使用EEMBC的特性工具來決定恩智浦微控制器的性能。然後使用這些性能資訊為特定進行環境選擇最好的控制參數。該測試程序量化了評估系統中使用微控制器的指令緩存與浮點輔助運算器的系統性能。收集到的特徵資料定義系統行為,並提供一種方法學來選擇進行參數以控制系統性能和能量消耗。  

測試結果顯示,使用硬體向量浮點運算單元,可以讓系統性能提高五倍左右,並減少代碼量,降低功耗。  

硬體浮點輔助運算器VFP9是恩智浦基於ARM926EJ-S內核的LPC3000系列的特徵,恩智浦低功耗的90奈米製程技術可採用非常小的晶片面積和極小的功耗來達成這項功能,讓LPC3000 ARM9微控制器非常適用於須要進行訊號處理的醫療電子等行業應用。  

(本文作者為恩智浦多重市場半導體事業部大中華區微控制器產品專案經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!