- 相關(guān)推薦
CPU空閑時在忙什么
CPU空閑時在忙什么?你知道嗎?關(guān)于這個問題小編整理的這篇文章,希望對大家有用,更多信息請瀏覽應(yīng)屆畢業(yè)生考試網(wǎng)!
如Duarte文中所述,阻止CPU消耗太多電量的一種方法是內(nèi)置更長的時鐘周期(tick periods)。通過這種方式,CPU在喚醒之前需要度過更長的空閑時間,然后執(zhí)行基本任務(wù),接著再次睡眠。
什么是空閑任務(wù)(idle task)?
空閑任務(wù)可能聽起來有點自相矛盾。關(guān)鍵是你要理解CPU既然通電,那么就必須時刻不停地在運轉(zhuǎn),即使他什么正事也不干。在哲學上對應(yīng)的詞匯就是所謂的“忙等待”(busy waiting),本質(zhì)是讓CPU不停地去計算某個條件,看看是否為true.
對于運行在x86芯片上的Windows來說,這個功能表現(xiàn)為暫停(HLT)指令,對應(yīng)Windows的System Idle Process進程。Windows只有在某個CPU核心沒有合適的線程可執(zhí)行時,才會調(diào)用idle空閑進程去運行。如果你查看Windows系統(tǒng)的任務(wù)管理器,你會看到System Idle Process(系統(tǒng)空閑進程)大多數(shù)時候都顯示一個較高的CPU使用百分比。和進程列表中的其他進程不同,空閑進程的值越高,代表CPU的工作量越小。設(shè)計HLT指令的目的是為了盡可能地減少電量消耗,并使 CPU 進入節(jié)能模式/狀態(tài)。
HLT的歷史
HLT(暫停)指令其實有很長的歷史——在第一顆8086處理器上就已經(jīng)實現(xiàn)了,但早期操作系統(tǒng)并不支持它。老程序員可能會記得,曾經(jīng)有一段時間,甚至連基本的 HLT 功能都總是不能按預(yù)期方式執(zhí)行;厥走^去的超頻年代,那時候CPU有一個基本的工具(utility)叫做 Rain(雨),用來實際地增加CPU的idle空閑時間(以及提升處理過程中的散熱和能耗)。隨著時間的流逝,我們可以看到硬件制造廠商和軟件開發(fā)者都變得越來越復(fù)雜。
這是Windows 8創(chuàng)新的一個方面——好吧,本質(zhì)上只是嘗試創(chuàng)新——但卻產(chǎn)生了一些奇怪的結(jié)果。在默認情況下它允許在處理過程中有更長的間隔周期,但這也導(dǎo)致一些程序產(chǎn)生問題,如Google Chrome等程序為了更快地對用戶操作進行響應(yīng),會自動將時鐘頻率(tick rate)設(shè)置為操作系統(tǒng)所允許的最小值。這個BUG在新版程序中已經(jīng)修復(fù)了,但仍可能減少某些Windows 8電腦的電池續(xù)航時間。
一顆 Intel 8086 CPU, 1978年。確實,當時CPU是很簡單的玩意兒—— 大約只有2萬個晶體管.
這確實是一個可以調(diào)節(jié)時鐘周期的地方,加上要支持沒有基于晶體定時器的系統(tǒng),使微軟措手不及。在Windows8中,軟件通過混合操作系統(tǒng)時間記錄的方式來調(diào)整前端總線速度,就會導(dǎ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é)能模式切換.
【CPU空閑時在忙什么】相關(guān)文章:
什么cpu好用02-16
CPU主頻是什么04-27
什么是雙核CPU08-02
cpu緩存是什么06-03
CPU頻率是什么02-07
CPU的頻率是什么07-26
cpu作用是什么06-03
為什么CPU那么貴?07-20
CPU中Cache是什么06-01