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