CPU閑著就是閑著了嗎_也是有任務(wù)的
CPU閑著就是閑著了嗎_也是有任務(wù)的
中央處理器(CentralProcessingUnit)的縮寫(xiě),即CPU,CPU是電腦中的核心配件,只有火柴盒那么大,幾十張紙那么厚,但它卻是一臺(tái)計(jì)算機(jī)的運(yùn)算核心和控制核心。下面是學(xué)習(xí)啦小編帶來(lái)的關(guān)于CPU閑著就是閑著了嗎 也是有任務(wù)的的內(nèi)容,歡迎閱讀!
CPU閑著就是閑著了嗎 也是有任務(wù)的:
CPU閑著就是閑著了?也是有任務(wù)的!
我們打開(kāi)電腦而沒(méi)有使用的時(shí)候,CPU是閑著的嗎?當(dāng)我們點(diǎn)擊一個(gè)程序的時(shí)候,電腦如何快速的做出反應(yīng)?大家都知道,CPU是電腦的中央處理器,CPU是不是隨時(shí)待命的呢?其實(shí)CPU閑著的時(shí)候也是有任務(wù)的!
CPU在絕大部分時(shí)間是什么都不干的。大多數(shù)技術(shù)專(zhuān)家都知道這個(gè)事實(shí),但對(duì)于CPU是如何從空閑狀態(tài)切換到工作狀態(tài),忙完后又回到空閑狀態(tài)的相應(yīng)機(jī)制,我們還沒(méi)有詳細(xì)討論過(guò)。
對(duì)現(xiàn)代處理器來(lái)說(shuō),這種機(jī)制變得越來(lái)越重要。今天大部分芯片設(shè)計(jì)的一個(gè)目標(biāo)是將處理器盡快地切換到低功率狀態(tài)。
其實(shí)CPU空閑時(shí)并不是什么都不干,而是在運(yùn)行空閑任務(wù)(idle tasks)。
CPU整體設(shè)計(jì)就是完成當(dāng)前操作后盡可能快速地返回到空閑狀態(tài),但系統(tǒng)必須要有某種方法/方式來(lái)喚醒芯片,讓它去關(guān)注其他某些東西。
其中的一種方式是使用系統(tǒng)計(jì)時(shí)器(system timer)。
阻止CPU消耗太多電量的一種方法是內(nèi)置更長(zhǎng)的時(shí)鐘周期(tick periods)。通過(guò)這種方式,CPU在喚醒之前需要度過(guò)更長(zhǎng)的空閑時(shí)間,然后執(zhí)行基本任務(wù),接著再次睡眠。
什么是空閑任務(wù)(idle task)
空閑任務(wù)可能聽(tīng)起來(lái)有點(diǎn)自相矛盾,關(guān)鍵是你要理解CPU既然通電,那么就必須時(shí)刻不停地在運(yùn)轉(zhuǎn),即使他什么正事也不干。
在哲學(xué)上對(duì)應(yīng)的詞匯就是所謂的“忙等待”(busy waiting),本質(zhì)是讓CPU不停地去計(jì)算某個(gè)條件,看看是否為true。
對(duì)于運(yùn)行在x86芯片上的Windows來(lái)說(shuō),這個(gè)功能表現(xiàn)為暫停(HLT)指令,對(duì)應(yīng)Windows的System Idle Process進(jìn)程。
Windows只有在某個(gè)CPU核心沒(méi)有合適的線(xiàn)程可執(zhí)行時(shí),才會(huì)調(diào)用idle空閑進(jìn)程去運(yùn)行。
如果你查看Windows系統(tǒng)的任務(wù)管理器,你會(huì)看到System Idle Process(系統(tǒng)空閑進(jìn)程)大多數(shù)時(shí)候都顯示一個(gè)較高的CPU使用百分比。和進(jìn)程列表中的其他進(jìn)程不同,空閑進(jìn)程的值越高,代表CPU的工作量越小。
設(shè)計(jì)HLT指令的目的是為了盡可能地減少電量消耗,并使CPU進(jìn)入節(jié)能模式/狀態(tài)。
HLT的歷史
HLT(暫停)指令其實(shí)有很長(zhǎng)的歷史,在第一顆8086處理器上就已經(jīng)實(shí)現(xiàn)了,但早期操作系統(tǒng)并不支持它。老程序員可能會(huì)記得,曾經(jīng)有一段時(shí)間,甚至連基本的HLT功能都總是不能按預(yù)期方式執(zhí)行。
回首過(guò)去的超頻年代,那時(shí)候CPU有一個(gè)基本的工具叫做Rain(雨),用來(lái)增加CPU的空閑時(shí)間(以及提升處理過(guò)程中的散熱和能耗)。隨著時(shí)間的流逝,我們可以看到硬件制造廠(chǎng)商和軟件開(kāi)發(fā)者都變得越來(lái)越復(fù)雜。
這是Windows 8創(chuàng)新的一個(gè)方面——好吧,本質(zhì)上只是嘗試創(chuàng)新——但卻產(chǎn)生了一些奇怪的結(jié)果。在默認(rèn)情況下它允許在處理過(guò)程中有更長(zhǎng)的間隔周期,但這也導(dǎo)致一些程序產(chǎn)生問(wèn)題,如Google Chrome等程序?yàn)榱烁斓貙?duì)用戶(hù)操作進(jìn)行響應(yīng),會(huì)自動(dòng)將時(shí)鐘頻率(tick rate)設(shè)置為操作系統(tǒng)所允許的最小值。
這個(gè)BUG在新版程序中已經(jīng)修復(fù)了,但仍可能減少某些Windows 8電腦的電池續(xù)航時(shí)間。
這確實(shí)是一個(gè)可以調(diào)節(jié)時(shí)鐘周期的地方,加上要支持沒(méi)有基于晶體定時(shí)器的系統(tǒng),使微軟措手不及。在Windows8中,軟件通過(guò)混合操作系統(tǒng)時(shí)間記錄的方式來(lái)調(diào)整前端總線(xiàn)速度,就會(huì)導(dǎo)致錯(cuò)誤的基準(zhǔn)測(cè)試結(jié)果。
這種行為在Windows 10中一直保持,盡管它只是一個(gè)小眾的問(wèn)題——在操作系統(tǒng)產(chǎn)生錯(cuò)誤的結(jié)果你必須調(diào)整系統(tǒng)前端總線(xiàn)的時(shí)鐘.
race-to-idle是現(xiàn)代CPU架構(gòu)的關(guān)鍵組件,AMD和Intel基本每年都會(huì)發(fā)布新一代產(chǎn)品,還會(huì)經(jīng)常推出更新,可能最高性能只提升那么一點(diǎn)點(diǎn),但通過(guò)更好的時(shí)鐘門(mén)控(clock gating)卻能顯著提高能量使用率,并更快地進(jìn)行節(jié)能模式切換。
編后語(yǔ)
通過(guò)這篇文章,大家對(duì)CPU應(yīng)該都有更多的了解,CPU閑著的時(shí)候在干什么?正是通過(guò)運(yùn)行空閑任務(wù)來(lái)保證及時(shí)執(zhí)行任務(wù)的。
看了CPU閑著就是閑著了嗎 也是有任務(wù)的文章內(nèi)容的人還看:
1.雙路CPU是什么
2.什么是雙路cpu