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