隨著嵌入式系統在消費電子和工業設備中的廣泛應用,功耗已經開始像時鐘速度和系統性能一樣成為微處理器的一個核心特性。為了確定各種微處理器的功耗效率,嵌入式微處理器基準協會開發了一個有力的工具——EnergyBench。 同協會的其他性能benchmark一起使用,EnergyBench可以測試處理器在進行一系列標準應用任務時的功耗大小。有了這樣一個同性能測試緊密聯系的功耗標準測度,設計工程師就能比較多個供應商提供的微處理器的性能/功耗,從而選擇一款最適合自己應用的產品。 測試方法 EnergyBench采用National Instruments公司的一個8通道的數據采集卡和LabVIEW軟件。可以支持三個能量(電壓和電流)測試加上一個觸發通道,數據采集卡對觸發通道和電壓一起采樣,并且把結果輸出到一個文件里。靈活的觸發機制可以將功耗測試同性能benchmark同步,這一點可以保證功耗測試是在benchmark代碼的同步部分內進行,從而避免將benchmark初始化階段的功耗包括進去。LabVIEW采樣程序接受一個配置文件,它可以通過為觸發探測和電壓電流通道一起指定電壓來定義觸發機制。 一個benchmark要稱得上標準化,它的結果必須是可靠的、可重復的,并且是一致的。EnergyBench采用幾種方法來達到統計學上的精確結果。 作為一個規則,采樣模塊必須使用不同的采樣頻率調用數次。一般的,為了得到精確的結果,采樣頻率必須是2倍以上Nyquist頻率或者是一些隨機數。偽隨機方法是benchmark以一個與benchmark執行頻率無關的頻率運行時進行多次取樣。假定benchmark的每個遍歷(iteration)以周期性的時間間隔出現,那么錯開這個周期來取樣就可以保證每個遍歷(iteration)內在偽隨機點時取樣。這種方法可以簡單地實現和保證統計上的精確結果。一旦所有的測試取樣都已完成,分析模塊將開始計算benchmark的每個遍歷(iteration)上消耗的能量的平均值。嵌入式微處理器基準協會的功耗分析模塊分析這些采樣,決定每個遍歷(iteration)所使用的能量,找出最大值和最小值。 對于某個特定的采樣頻率,如果測試值變化太大,用戶可以增大采樣頻率和/或遍歷(iteration)次數,直到有足夠的采樣,以便滿足平均值誤差在規定的5%之內。EnergyBench測試的最終結果是工作量一次遍歷(iteration)上消耗的能量的平均值,該工作量是指在目標器件上運行benchmark時的工作量,該過程如圖1所示。 點擊看原圖 圖1 EnergyBench的數據給出了評估處理器功耗效率的基礎 結果在功率分析模塊中以energy/iteration表顯示,圖1中同時顯示了分析的遍歷(iteration)次數。用戶也可以使用EEMBC測試套件來測試最大和最小功耗。 測試條件 EnergyBench規定,器件測試時,至少預熱30分鐘,器件周圍的環境溫度為70°F±5°F,這些規定可以保證測試結果的一致性,因為器件溫度升高時,其功耗也會顯著增加。 EnergyBench的規定中還要求處理器上的所有功率軌(power rail)都要測試,對于有超過1個功率軌(power rail)(如核心功率和I/0功率)的處理器,有兩種方法來計算benchmark的每個遍歷(iteration)的功耗。使用數據采集卡,EnergyBench可以同時測試最多3個rail,在這種方法中,所有通道都以同樣速率采樣,因此,數據采集卡的采樣率可能需要降低,以便主機的處理能力與采樣率相匹配。另一種方法,是采取分別測試各個rail,將每個rail消耗的能量之和作為整個功耗。該如何決定采用哪種測試方法呢?首先,一些處理器有超過3個功率軌(power rail),在這種情況下,即使三個rail同時測試,但個別rail還是需要單獨測試。另外,要根據處理器的工作頻率選擇合適的采樣率,以便允許有足夠的采樣。為了滿足幾GHz的處理器,采樣率一般會非常高,以致主機因為無法跟得上這么快的速度而一次只能進行一個rail的測試。 |