CPU在絕大部分時間是什么都不干的。 大多數(shù)技術(shù)專家都知道這個事實,但對于 CPU 是如何從空閑狀態(tài)切換到工作狀態(tài),忙完后又回到空閑狀態(tài)的相應機制,我們還沒有詳細討論過。 對現(xiàn)代處理器來說這種機制變得越來越重要; 今天大部分芯片設計的一個目標是將處理器盡快地切換到低功率狀態(tài)。
Gustavo Duarte 寫的 一篇詳細文章指出, CPU 空閑時(idle CPU)并不是什么都不干(doing nothing) —— 而是在運行空閑任務(idle tasks)。 CPU整體設計就是完成當前操作后盡可能快速地返回到空閑狀態(tài), 但系統(tǒng)必須要有某種方法/方式來喚醒芯片,讓它去關(guān)注其他某些東西。 其中的一種方式是使用系統(tǒng)計時器(system timer)。
[圖片來源:Gustavo Duarte]
如 Duarte 文中所述, 阻止CPU消耗太多電量的一種方法是內(nèi)置更長的時鐘周期(tick periods)。 通過這種方式,CPU在喚醒之前需要度過更長的空閑時間,然后執(zhí)行基本任務,接著再次睡眠。
什么是空閑任務(idle task)?
空閑任務可能聽起來有點自相矛盾。 關(guān)鍵是你要理解CPU既然通電,那么就必須時刻不停地在運轉(zhuǎn), 即使他什么正事也不干。 在哲學上對應的詞匯就是所謂的“忙等待”(busy waiting),本質(zhì)是讓 CPU 不停地去計算某個條件,看看是否為 true.
對于運行在x86芯片上的Windows來說, 這個功能表現(xiàn)為暫停(HLT)指令,對應 Windows 的 System Idle Process 進程。 Windows只有在某個CPU核心沒有合適的線程可執(zhí)行時,才會調(diào)用 idle 空閑進程去運行。 如果你查看 Windows 系統(tǒng)的任務管理器, 你會看到 System Idle Process(系統(tǒng)空閑進程) 大多數(shù)時候都顯示一個較高的CPU使用百分比。 和進程列表中的其他進程不同,空閑進程的值越高,代表CPU的工作量越小。 設計 HLT 指令的目的是為了盡可能地減少電量消耗,并使 CPU 進入節(jié)能模式/狀態(tài)。
HLT的歷史
HLT(暫停)指令其實有很長的歷史 —— 在 第一顆8086處理器 上就已經(jīng)實現(xiàn)了, 但早期操作系統(tǒng)并不支持它。 老程序員可能會記得,曾經(jīng)有一段時間, 甚至連基本的 HLT 功能都總是不能按預期方式執(zhí)行。 回首過去的超頻年代, 那時候CPU有一個基本的工具(utility)叫做 Rain(雨), 用來實際地增加CPU的idle空閑時間(以及提升處理過程中的散熱和能耗)。 隨著時間的流逝,我們可以看到硬件制造廠商和軟件開發(fā)者都變得越來越復雜。
這是 Windows 8 創(chuàng)新的一個方面 —— 好吧,本質(zhì)上只是嘗試創(chuàng)新 —— 但卻產(chǎn)生了一些奇怪的結(jié)果。 在默認情況下它允許在處理過程中有更長的間隔周期,但這也導致一些程序產(chǎn)生問題,如Google Chrome等程序為了更快地對用戶操作進行響應,會自動將時鐘頻率(tick rate)設置為操作系統(tǒng)所允許的最小值。 這個BUG在新版程序中已經(jīng)修復了, 但仍可能減少某些Windows 8電腦的電池續(xù)航時間。
一顆 Intel 8086 CPU, 1978年。確實, 當時CPU是很簡單的玩意兒 —— 大約只有2萬個晶體管.
這確實是一個可以調(diào)節(jié)時鐘周期的地方, 加上要支持沒有基于晶體定時器的系統(tǒng),使微軟措手不及。 在Windows8中,軟件通過混合操作系統(tǒng)時間記錄的方式來調(diào)整前端總線速度,就會導致錯誤的基準測試結(jié)果 。 這種行為在[Windows 10]中一直保持, 盡管它只是一個小眾的問題 —— 在操作系統(tǒng)產(chǎn)生錯誤的結(jié)果你必須調(diào)整系統(tǒng)前端總線的時鐘.
原來的那篇博客主要討論的是桌面操作系統(tǒng),race-to-idle是現(xiàn)代CPU架構(gòu)的關(guān)鍵組件。 AMD和英特爾每年都會發(fā)布新一代產(chǎn)品,還會經(jīng)常推出更新,可能最高性能只提升那么一點點, 但通過更好的時鐘門控(clock gating)卻能顯著提高能量使用率并更快地進行節(jié)能模式切換.
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費用,即可穩(wěn)步提升排名至首頁。歡迎體驗最佳的哈爾濱網(wǎng)站建設。
