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