效能、功耗與能量

動態電壓頻率調整(DVFS)

/ DVFS: dee-vee-eff-ess /

你的手機並不會一直全速跑處理器——那會耗光電池、烤熱你的手。你只是在讀文字時,它放慢、保持涼爽;你啟動遊戲時,它就拉高。動態電壓頻率調整就是這背後的機制:硬體和軟體隨時、一刻一刻地調整晶片的時脈速度和供應電壓,去配合實際需要的工作。

DVFS 靠利用動態功耗公式運作,功率約等於電容乘以電壓平方乘以頻率。關鍵在於,讓電路跑得更快需要更高的電壓,跑得更慢則允許更低的電壓,所以頻率和電壓是一起調的。當系統降低時脈時,它也能降低電壓,而因為功率取決於電壓平方,把兩者一起降會帶來陡峭、超過線性的功率下降。作業系統依核心有多忙,在一組電壓-頻率工作點之間挑選,閒置時降下、負載時升上——常在數微秒內完成。

DVFS 是行動裝置與資料中心功率管理的主力,但誠實的推理有個讓人意外的轉折:跑得更慢省功率,卻不一定省能量。功率是每秒的;能量是功率乘以時間。跑得更慢你就更晚完成,於是你可能漏電(靜態功耗)漏更久、浪費更多總能量。這促成了相反的策略,競速回閒(race-to-idle):全速跑以快速完成,然後功率閘控進入深度睡眠,有時花的總能量比慢吞吞地用低頻跑還少。哪個勝出取決於漏電、閒置的省電、以及工作負載——所以 DVFS 是一個要瞄準正確量度的工具,而非保證省能量的萬靈丹。

一個核心在 1.0 V / 3 GHz 抽取的功率正比於 1.0^2 x 3 = 3.0。DVFS 為一項輕量任務把它降到 0.8 V / 1.5 GHz:功率因子降到 0.8^2 x 1.5 = 0.96——約是功率的三分之一。但這項任務現在花兩倍時間,所以總能量是否下降,取決於晶片在跑得更久的期間漏電多少。

DVFS 把電壓和頻率一起調以陡降功率——但跑得慢就跑得久,所以省能量並無保證。

降低頻率永遠降低功率,但不一定降低能量,因為任務接著要跑更久、整段期間都在漏電。有時競速回閒(全速跑完再深度睡眠)用的總能量比慢慢跑還少。

又称
DVFSfrequency scalingvoltage scalingSpeedStep動態調頻調壓變頻變壓