使用動態(tài)電壓頻率縮放進(jìn)行智能節(jié)電的解決方案
消費(fèi)電子產(chǎn)品的電池壽命取決于其集成電路的動態(tài)功率行為。如果可以調(diào)整動態(tài)行為以適應(yīng)手頭的任務(wù),則可以實(shí)現(xiàn)相當(dāng)大的功率節(jié)省。
在 CMOS 電路中,大部分動態(tài)功率消耗在其數(shù)字門中的寄生電容中。
電源電壓和頻率的組合對總功耗具有三次影響,因?yàn)閯討B(tài)功耗對電壓具有二次依賴性,對頻率具有線性依賴性。智能節(jié)電解決方案將降低工作頻率,同時降低電源電壓。動態(tài)電壓頻率縮放 (DVFS) 技術(shù)的一些示例商業(yè)實(shí)現(xiàn)是Intel 的 SpeedStep和AMD 的 PowerNow。
DVFS 已應(yīng)用于硬件和操作系統(tǒng)/平臺級別。主要思想是在給定頻率下盡可能降低電源電壓,同時仍保持正確操作。電壓只能下降到某個臨界水平,超過該臨界水平就會發(fā)生時序故障。
DVFS 的一些硬件機(jī)制使用檢測時序違規(guī)的特殊“安全”觸發(fā)器在硬件本身中實(shí)現(xiàn)時序故障檢測。雖然 DVFS 方法在解決動態(tài)功耗方面是有效的,但它們在降低泄漏功率方面的效果明顯較差。隨著最小特征尺寸的縮小,電源電壓縮放需要降低閾值電壓,這導(dǎo)致隨著每一代新技術(shù)的出現(xiàn)漏電流呈指數(shù)級增長。已經(jīng)表明,同時使用自適應(yīng)體偏置 (ABB) 和 DVFS 可用于降低高性能處理器的功耗。ABB 以前用于在待機(jī)模式下控制泄漏,并且具有以指數(shù)方式降低泄漏電流的優(yōu)勢,而動態(tài)電壓縮放則線性減少泄漏電流。
在操作系統(tǒng)級別,一些操作系統(tǒng)現(xiàn)在部署了某種形式的 DVFS。例如,Linux 使用稱為 cpu-freq 的非常標(biāo)準(zhǔn)的基礎(chǔ)架構(gòu)來實(shí)現(xiàn) DVFS。cpu-freq 提供了一組模塊化的接口,通過各種低級、特定于 CPU 的機(jī)制和高級系統(tǒng)策略來管理 CPU 頻率的變化。cpu-freq 將 CPU 頻率控制機(jī)制從策略中解耦出來,有助于它們的獨(dú)立開發(fā)。實(shí)際的策略是作為“調(diào)節(jié)器”實(shí)施的,并且針對不同類型的系統(tǒng)提出了許多變體,每個系統(tǒng)都有自己的功率和性能要求。
專門在手持/便攜式/嵌入式系統(tǒng)級別完成了工作,提出了在電池受限設(shè)備中實(shí)現(xiàn) DVFS 的不同技術(shù)。一個這樣的例子是 AutoDVS,一種用于手持計算機(jī)的系統(tǒng),提供動態(tài)電壓縮放 (DVS)。AutoDVS 通過估算系統(tǒng)范圍內(nèi)和每個程序的用戶交互時間、思考時間和計算負(fù)載,既降低了能源使用量,又確保了服務(wù)質(zhì)量。
第二種技術(shù)涉及應(yīng)用程序?qū)虻? DVFS。鑒于并非所有應(yīng)用程序都以可預(yù)測的方式運(yùn)行,因此可以繞過嘗試使用操作系統(tǒng)級別的統(tǒng)計數(shù)據(jù)獲得良好結(jié)果的難題。相反,通過使具有突發(fā)行為的應(yīng)用程序具有功耗意識,這些應(yīng)用程序可以向控制時鐘速度和處理器電壓的調(diào)度程序指定它們的平均執(zhí)行時間和截止日期。能量優(yōu)先調(diào)度算法根據(jù)截止日期和任務(wù)重疊的頻率來安排這些功率感知任務(wù)的順序。
用于多核處理器的 DVFS 是另一個有趣且具有挑戰(zhàn)性的領(lǐng)域。一個主要的設(shè)計決策是在芯片級別還是在每個內(nèi)核級別應(yīng)用 DVFS。如果使用每核 DVFS 方法,則每個芯片需要一個以上的電源/時鐘域,并且還需要額外的電路來實(shí)現(xiàn)芯片之間的同步。盡管對于單芯片多處理器而言,每核 DVFS 的實(shí)施成本比每芯片 DVFS 的成本更高,但學(xué)術(shù)或商業(yè)實(shí)體報告說,每核的吞吐量要高 2.5 倍。原因很簡單。即使只有一個內(nèi)核開始過熱,單芯片方法也必須按比例縮小整個芯片。相比之下,per-core 方法僅使具有熱點(diǎn)的核心向下擴(kuò)展;除非出現(xiàn)發(fā)熱問題,否則其他核心會保持快速運(yùn)行。
一個仍然懸而未決的問題是如何在跨混合的多核架構(gòu)集運(yùn)行并行/多線程程序時管理功耗——每個架構(gòu)都有自己獨(dú)特的功耗和性能配置文件。我們可以指出的一個商業(yè)示例是 ARM big.LITTLE。這種方法將速度較慢的低功耗處理器內(nèi)核 (LITTLE) 與更強(qiáng)大且耗電的內(nèi)核 (big) 結(jié)合在一起。通常,只有一個“邊”或另一個將同時處于活動狀態(tài)。工作負(fù)載可以從大交換到小,然后再返回,因?yàn)樗袃?nèi)核都可以訪問相同的內(nèi)存區(qū)域。其目的是創(chuàng)建一個多核處理器,它可以更好地適應(yīng)動態(tài)計算需求,并且比單獨(dú)的時鐘縮放使用更少的功率。ARM 的營銷材料承諾為某些活動節(jié)省高達(dá) 75% 的電力使用。
DVFS 只是控制 CMOS 電路中動態(tài)功耗的幾種方法之一。雖然它的使用帶來了一系列驗(yàn)證和實(shí)施挑戰(zhàn),但我們將繼續(xù)在硬件和操作系統(tǒng)/平臺級別的未來設(shè)計中看到它的應(yīng)用。