EnergyBench 評估嵌入式處理器功耗的工具
許多處理器廠(chǎng)家在產(chǎn)品參數表中標明了產(chǎn)品功耗,但這些數據卻很難相互進(jìn)行比較。廠(chǎng)家也提供處理器的標準功率,但卻很少標示出在測量功率時(shí)負載狀況。
為解決上述問(wèn)題,嵌入式微處理器測試基準協(xié)會(huì )(EEMBC)發(fā)明了一種軟件工具,顯示在運行特定應用負載時(shí)處理器的實(shí)際功耗。該軟件名為EnergyBench,設計者可以利用它和協(xié)會(huì )其他性能標準共同確定各種處理器在執行一系列以應用為核心的標準化任務(wù)時(shí)的功耗。利用與全套性能測試直接相關(guān)的功耗測量標準,設計者可以比較不同廠(chǎng)家產(chǎn)品的性能/功耗狀況,并從中挑選出特定應用條件和功耗預算下最切合需要的處理器產(chǎn)品。
EnergyBench最重要的啟示之一是根本不存在所謂的“典型功耗”,因為嵌入式微處理器測試基準協(xié)會(huì )在數字娛樂(lè )、聯(lián)網(wǎng)和自動(dòng)控制等基準套件的目標應用領(lǐng)域驅動(dòng)內核時(shí)所需的平均功耗數據差異極大。EnergyBench并未試圖就某種特定器件達成放之四海而皆準的虛幻的“典型功耗”,而是關(guān)注在特定的性能水平上,某一種算法或者應用程序所需的典型功耗。
EnergyBench的測試方法
嵌入式微處理器測試基準協(xié)會(huì )采用美國國家儀器有限公司數據采集(DAQ)卡和LabVIEW軟件平臺進(jìn)行EnergyBench功耗測量。該數據采集卡支持多測量通道,可以在多功率軌上同時(shí)進(jìn)行功耗測量(所有測量均需獲取電壓和電流數據),并同時(shí)進(jìn)行觸發(fā)通道采樣。EnergyBench利用數據采集卡對電壓進(jìn)行采樣,并為實(shí)現性能基準和功耗測試同步提供一條觸發(fā)通道。這樣可以保證在基準代碼的同步部分測量功耗,從而避免計入基準初始化或記錄保存階段的功耗狀況。
EnergyBench采樣模塊接受配置文件,該文件可以通過(guò)為觸發(fā)探測和電壓電流通道指定電壓水平來(lái)定義觸發(fā)機制。
若企業(yè)希望公開(kāi)其EnergyBench測量得分,則須先獲得嵌入式微處理器測試基準協(xié)會(huì )技術(shù)中心的認證資格。協(xié)會(huì )明確規定了一整套認證必須滿(mǎn)足的測量條件,從而確保得出一致、可靠并可以重復的測量結果。為得出統計學(xué)意義上的準確結果,采樣頻率必須是2倍以上尼奎斯特頻率或者是一些隨機數。EnergyBench采樣模塊接受采樣頻率輸入,且該采樣模塊必須以不同的采樣頻率數次調用。在基準測試中以非偽頻率多次采樣所得到的采樣點(diǎn)可以避免與基準執行頻率發(fā)生共振現象。此法執行便利,且能確保得到統計學(xué)意義上的準確結果。
由于可以輕易重復測量過(guò)程并加大采樣頻率,EnergyBench能耗基準可以盡可能多地搜集樣本,直至能確定統計意義上精確的平均能耗為止。為獲得認證資格,并協(xié)助器件和工具設計者更好地完成設計,EnergyBench測試過(guò)程一般會(huì )重復多次,并計算最終結果的標準誤差。任何誤差都可以輕易被發(fā)現,因為每項基準測試的每次運行均可得出一個(gè)基準每次迭代功耗的平均值。
當然,以針對特定器件的任何測試為基礎進(jìn)行歸納的前提是該目標器件能代表廠(chǎng)家的生產(chǎn)水平,嵌入式微處理器測試基準協(xié)會(huì )一直定有嚴格的規則,防止廠(chǎng)家選擇最好的產(chǎn)品送交認證檢測。出于同樣原因,過(guò)程變化是所有半導體廠(chǎng)家必須經(jīng)常面對的一個(gè)問(wèn)題,而EnergyBench眾多目標中的一個(gè)是幫助廠(chǎng)商更深入地理解特定部件和過(guò)程變化的結果與能耗之間的關(guān)系。
EnergyBench規定器件運行的環(huán)境溫度為70°F +/- 5°F,并須至少進(jìn)行30分鐘預熱。設定這樣的基準條件非常重要,可以確保測試得出一致的結果。此外,事實(shí)表明能耗可隨器件溫度的升高而顯著(zhù)增加。由于我們量化評估的是基準測試情況下的一般功耗狀況,因此可以對室內溫度進(jìn)行人為的控制。這樣做還可以避免配備昂貴的器件來(lái)對處理器溫度進(jìn)行控制。
EnergyBench與性能基準的融合
要理解EnergyBench為何如此高效,就必須理解嵌入式微處理器基準協(xié)會(huì )的相關(guān)規則。協(xié)會(huì )規則遵循ANSI C標準,并由基準控制程序負責運行管理。調用所有系統時(shí)均需通過(guò)控制程序內置的一個(gè)抽象層,而不可直接調用??刂瞥绦蜻€負責初始化系統、準備必要的基準數據和設定基準運行的迭代數值。將協(xié)會(huì )基準移植到新的器件或操作系統上時(shí),只需改變抽象層,即可運行所有嵌入式微處理器基準協(xié)會(huì )標準。為兼容EnergyBench基準,測試控制程序調用抽象層內置的特別觸發(fā)機制,對功耗基準的定時(shí)部分進(jìn)行顯示。觸發(fā)開(kāi)關(guān)的問(wèn)題是從軟件發(fā)出觸發(fā)信號到測量設備實(shí)際收到信號當中存在著(zhù)一定的時(shí)滯。某些系統在觸發(fā)時(shí)
通過(guò)操作系統驅動(dòng)器將信號發(fā)送至通用異步收發(fā)傳輸器(UART)。為解決觸發(fā)時(shí)滯問(wèn)題,控制程序內置的抽象層允許在發(fā)出觸發(fā)信號后及功耗基準開(kāi)始執行前設置一定的延遲??紤]到結束基準測試的時(shí)滯,分析模塊允許在特定的迭代數中進(jìn)行限制分析。
EnergyBench的采樣、分析和數據搜集方式
EnergyBench采用由LabVIEW軟件平臺創(chuàng )建的采樣模塊獲取功耗信息,對定義觸發(fā)方式和預期電壓范圍的配置文件進(jìn)行讀取。該采樣模塊連接到數據采集卡,在運行基準測試的同時(shí)采集電壓及電流信息。所采信息在收到開(kāi)始信號后即行寫(xiě)入磁盤(pán),收到結束信號后停止。為減少可能發(fā)生的用戶(hù)錯誤,該程序提供統一的用戶(hù)界面,如圖1所示。而數據采集卡(DAQ)也提供了經(jīng)濟實(shí)用的HW平臺,以采集必要的數據。
圖1 EnergyBench采樣模塊通過(guò)友好的圖形用戶(hù)界面(GUI)或配置文件進(jìn)行設置。所有相關(guān)參數如電壓、電阻和采樣頻率均可進(jìn)行設置。通過(guò)采集信號的可選圖形對電流、電壓和觸發(fā)通道進(jìn)行顯示。
美國國家儀器有限公司與DAQMx驅動(dòng)兼容的數據采集卡均可使用。數據采集卡缺省要求,同時(shí)EnergyBench規則也規定須測量微處理器所有功率軌的功耗狀況。EnergyBench含有可執行程序,可以同時(shí)測量一條、兩條或三條功率軌的功耗狀況。對于有不止一條功率軌(即堆芯功率和輸入/輸出功率)的微處理器來(lái)講,可以采用兩種方法計算出基準程序每次迭代的功耗。第一種方法,EnergyBench使用數據采集卡同時(shí)測量三條功率軌的功耗狀況,也就是說(shuō)所有通道都以相同的速率進(jìn)行采樣,因此可能需要降低數據采集卡的采樣速率,以匹配主機的采樣能力。此外,由于確保測量結果可以重復,因此可以分別對功率軌進(jìn)行測量,這種情況下各功率軌的平均功耗之和即等于累計總能耗量。
對捕獲數據進(jìn)行分析是EnergyBench的最后一步。用于數據分析的微軟程序名叫功耗分析模塊。分析過(guò)程中需要計算以下數值:
1. 各功率軌的最低、最高、平均功率及標準誤差狀況。
2. 總功率的幾何平均數
3. 基準程序每次迭代功耗的最低、最高、平均功率及標準誤差大小。
基準程序經(jīng)多次迭代獲取測量樣本后,分析模塊即開(kāi)始分析,尋找其中的關(guān)鍵細節。嵌入式微處理器測試基準協(xié)會(huì )功耗分析模塊分析捕獲的樣本,確定基準程序每次迭代的平均功耗,找到最低和最高功耗樣本。計算功耗須先計算基準程序每次迭代功耗樣本的幾何平均值,并乘以迭代時(shí)間得出最后的結果。某些情況下,可能會(huì )出現基準程序迭代過(guò)速,以致于功耗樣本的出現趕不上基準程序迭代的速度。在這種情況下,必須先分析至少100個(gè)樣本,再計算該段時(shí)間內所有迭代的平均能耗。
功耗分析模塊的能耗/迭代表以圖表形式顯示結果。用戶(hù)也可利用協(xié)會(huì )設置在基準程序運行時(shí)查看最低和最高功耗,了解所獲樣本的變化狀況。
EnergyBench測試的最終結果是負載迭代的平均功耗。經(jīng)嵌入式微處理器測試基準協(xié)會(huì )認證的Energymark?分數是供制造廠(chǎng)商選擇的一種衡量標準,廠(chǎng)家可以與認證的性能得分一道向客戶(hù)提供,以顯示處理器功耗效率的大小。
可靠性驗證須測試下列數值:
1. 特定采樣頻率區間內的變化(置信區間須達到95%)
2. 頻率間報告能耗的變化
3. 反復調用基準程序時(shí)報告能耗的變化
如果特定采樣頻率區間內變化過(guò)大,用戶(hù)可以加大頻率和/或基準程序迭代數,直至采集到足夠的樣本,以使平均值的置信區間達到規定的95%。
如果兩采樣頻率之間變化過(guò)大,可以改變采樣頻率。
如果各次調用結果相差過(guò)大,可能由于線(xiàn)路噪音過(guò)大,需要采取減噪措施。另外一種可能是在基準程序運行時(shí)處理器在大部分時(shí)間內還在執行除基準程序以外的其他任務(wù),在這種情況下則需要更好地實(shí)現基準程序與其他任務(wù)的分離。本過(guò)程原理如圖2所示。
圖2 本過(guò)程在特定基準及該基準的特定負載與典型能耗之間建立了聯(lián)系
可編程數據采集卡能輕易地確定采樣頻率等參數,同時(shí)將獲取數據永久保留。圖3是此方法幕后運行的代碼樣本。此代碼以L(fǎng)abVIEW軟件編寫(xiě),可以持續將獲取的樣本寫(xiě)入文件,直至從觸發(fā)通道收到配置信號。代碼還配備了顯示所有捕獲信號選項,實(shí)際上是驅動(dòng)圖1圖形用戶(hù)界面的部分代碼。電壓、電阻和采樣頻率等所有相關(guān)參數均可進(jìn)行配置。具體地講,圖1顯示的是當該循環(huán)收到觸發(fā)信號、并準備退出時(shí)的圖形用戶(hù)界面狀態(tài)。
圖3 采樣循環(huán)的數據采集卡代碼
EnergyBench背后的選擇為加深對測試方法的理解,嵌入式微處理器基準協(xié)會(huì )也考慮過(guò)許多替代選項,包括:
? 規定能耗測量的結溫度。
? 采用高頻范圍并對環(huán)境嚴格控制。
? 指定探測和校驗技術(shù)。
但由于目的不是定性部件,而是要確定一種推導典型能耗的標準方法,因此找到一種采用現有經(jīng)濟實(shí)用硬件的方法更為重要。EnergyBench通過(guò)統計分析和規則進(jìn)行驗證,無(wú)需昂貴設備和工廠(chǎng)化流程。驗證過(guò)程只需控制室溫而無(wú)需測量結溫和外殼溫度, 而控制室溫在任何實(shí)驗室或大學(xué)均可做到。驗證過(guò)程只需用到簡(jiǎn)單的數據采集卡而非昂貴的分析軟件,在規定結果誤差的情況下以不同頻率多次運行能夠確保驗證結果可靠且可以重復。
另外一個(gè)問(wèn)題是驗證過(guò)程需要從5MHZ微控制器推導出目前市場(chǎng)上速度最快的處理器狀況。同樣需要關(guān)注的還有確保能在不同測試地點(diǎn)重復驗證過(guò)程以獨立認證結果。
采樣結果
上表所示的是對外公開(kāi)的認證信息。以上兩個(gè)硬件平臺上兩套基準程序的采樣信息顯示,若運行不同的平臺和基準程序,即便平均功耗的浮動(dòng)幅度也可以高達8%(相對于這些基準程序)而完成某項特定任務(wù)時(shí)測定的功耗效率在平均功耗相似(即便AMD和IBM平臺的平均功率均為2.3W上下,但AMD平臺的RGB 到YIQ為2.8e-2,而IBM平臺則為1.6e-2)的情況下也可以出現很大變化。
同樣有趣的是研究在不同性能點(diǎn)運行軟件平臺及開(kāi)啟或關(guān)閉不同功能時(shí)處理器的能耗情況。圖4顯示的在開(kāi)啟或關(guān)閉緩存和浮點(diǎn)硬件的情況下,在NXP 3180的不同性能點(diǎn)運行特定基準程序(基本浮點(diǎn)控制)的能耗結果。該表明確顯示開(kāi)啟浮點(diǎn)硬件并以208MHz頻率運行比以13MHz頻率運行能效更高。
圖4 不同配置下NXP 3180的能耗結果
結論
EnergyBench利用嵌入式微處理器測試基準協(xié)會(huì )開(kāi)發(fā)的標準方法,提供了可與價(jià)格合理的現有硬件配套使用的測量典型能耗的若干工具。EnergyBench是該領(lǐng)域首個(gè)行業(yè)標準,雖然標準性能評估公司(SPEC)等其他機構也在制定政策解決上述問(wèn)題??梢缘顷懬度胧轿⑻幚砥鳒y試基準協(xié)會(huì )網(wǎng)站(www.eembc.org),免費查詢(xún)經(jīng)過(guò)認證的EnergyBench測試結果。
評論