CPU歷來都是一個高大上的話題,普通吃瓜群眾除了CPU越貴越好之外,可能就一無所知了。曾經(jīng)小編對于CPU也是一頭霧水,后來請教了很多大神,又查閱了很多資料,才粗略地搞明白了一點。在此,小編就按照自己的理解,盡量用最通俗的語言去撕開CPU神秘的面紗,讓更多人能夠明白CPU。
CPU的中文翻譯叫中央處理器,好吧,這其實只是一句廢話,不過為了這個牛逼的翻譯,我們也給它一個牛逼的比喻,那我們就把CPU比喻成一個國家的中央機構(gòu),接下來我們一一對應打比喻講解。
影響CPU性能的主要因素可以分為兩大塊:主頻和架構(gòu)。這里看不懂不要緊,接下來聽小編為你一一解釋就懂了。
CPU性能
主頻我們可以理解為中央部門的工作能力,架構(gòu)可以理解為國家的管理制度,主要用于協(xié)調(diào)中央機構(gòu)各部門之間的工作。所以整個中央機構(gòu)的工作效率(CPU性能)主要就是受到這兩個方面的影響。工作能力越高各部門之間協(xié)調(diào)越好,整體工作效率自然就越高。反之,任何一方面不夠好,都會對整體工作效率造成明顯的影響。
我們知道市面上最大的PC處理器主要由兩大品牌Intel和AMD壟斷,而大部分時間里,Intel都是壓著AMD打的,原因就是因為AMD的架構(gòu)不行,雖然主頻對比Intel不落下風甚至稍微領(lǐng)先,但是整體性能卻被Intel徹底壓制了。這就是因為AMD的中央機構(gòu)各部門協(xié)調(diào)能力比Intel差多了,所以即使工作能力差不多,但協(xié)調(diào)不好,所以整體工作性能就比不過了。
AMD和Intel
說完了性能接下來我們就來說說CPU的結(jié)構(gòu)和工作原理。
CPU的結(jié)構(gòu)主要由運算器、控制器、寄存器三大塊組成。
①運算器就是中央機構(gòu)里負責執(zhí)行任務(wù)的部門,也就是專門干活的;而控制器就是中央機構(gòu)的領(lǐng)導小組,針對不同需要,給運算器下達不同的命令;寄存器可以理解為控制器和運算器之間的聯(lián)絡(luò)小組,主要工作就是協(xié)調(diào)控制器和運算器。
運算器這個干活的部門,平日里整個中央機構(gòu)要干點啥事就找這個部門。例如東邊洪災了,你去賑災吧;西邊發(fā)現(xiàn)金礦了,你去主導挖礦吧;北邊下大雪了,你去送溫暖吧;南邊下暴雨了,你去疏導洪流吧……
②而控制器這個部門比較牛逼,他們是不用干活的,主要就是對國家(整部計算機)發(fā)生的各種情況,做出應對,然后讓運算器去把活干好。在這里,我們會發(fā)現(xiàn)一個大問題:如果這個部門閑的蛋疼,亂下命令怎么辦?這也好辦,我們就制定出一套行為規(guī)范來限制他們,不讓他們亂搞。而這套行為規(guī)范就是CPU的指令集。
指令集就是CPU的行為規(guī)范,所有的命令都必須嚴格按照這部行為規(guī)范來執(zhí)行。在這里說明一下不同類型的CPU指令集也不一樣,其中最常見的就是X86架構(gòu)下的復雜指令集和ARM架構(gòu)下的簡單指令集。X86就是我們平常電腦CPU的架構(gòu),ARM就是手機CPU的架構(gòu)。
由于電腦CPU這個中央機構(gòu)所在的國家(電腦)面積大、人口多、國情復雜,啥事都會發(fā)生,所以規(guī)章制度就需要特別完善,考慮到方方面面的情況要怎么應對。而手機CPU這個中央機構(gòu)國家小、人口少、面積窄,所以規(guī)章制度簡單一點就可以了。這就是復雜指令集和簡單指令集的區(qū)別。
③寄存器這個部門稍微復雜一點,因為它雖然沒有運算器和控制器那么重要,但是它P事多,控制器平時總喜歡讓寄存器去給運算器傳達個命令。而運算器有時候也會擔心數(shù)據(jù)太多一時處理不過來,就讓寄存器幫它先記著,有時候工作需要紙筆、螺絲刀之類的小工具,也讓寄存器幫它拿著。
CPU讀取數(shù)據(jù)速度
了解完寄存器的功能后,又發(fā)現(xiàn)了一個問題,如果控制部門下達的命令太多,而運算部門又沒那么快可以做完,又或者運算器讓它記住的東西或者臨時拿著的東西太多,寄存器部門太小,人太少,忙不過來怎么辦?好辦,擴招人員吧,可是這個部門的人員都是編制內(nèi)的,沒有在編名額了怎么辦?也好辦,那就招些編外人員吧,也就是我們常說的臨時工。
招了臨時工,總要給他個名號吧,那就再成立一個部門,叫高速緩存。為了體現(xiàn)親疏有別,這個部門把臨時工分為三個等級,分別是一級高速緩存、二級高速緩存、三級高速緩存。反正也是臨時工,名號就這么隨便叫吧。
在CPU這個中央機構(gòu)可跟新聞上說的事給臨時工做、鍋給臨時工背不同,在這里高速緩存這個臨時工部門是作為寄存器替補而存在的,也是說,必須在寄存器完成不了工作量時,才能交給高速緩存來做。一開始交給一級高速緩存來做,一級也做不完再給二級,二級還做不完就給三級。這里又有一個問題出現(xiàn)了,那就是如果三級也做不完怎么辦?
這完全沒問題,交給中央機構(gòu)的一個下屬部門去辦,這個部門就是內(nèi)存。但是因為內(nèi)存畢竟不屬于中央機構(gòu),工作能力沒有中央機構(gòu)人員那么強,效率也沒有那么高。
所以控制部門要下達命令或者運算部門要做事時,首先想到的就是寄存器,寄存器忙不過來了就找高速緩存幫忙,高速緩存也忙不過來就找內(nèi)存幫忙。那么,內(nèi)存也傳達不過來呢?內(nèi)存?zhèn)鬟_不過來那就沒辦法了,只能讓電腦卡著吧,等運算部門先把上一件事處理好再說。所以,買電腦,不能光看CPU牛不牛,內(nèi)存容量也要跟上。
還有一個容易被大家忽略的問題,在這里也說一下吧,那就是晶體管。晶體管是構(gòu)成CPU最基礎(chǔ)的原件,可以理解為整個中央機構(gòu)的工作人員。隨著科技的進步,CPU生產(chǎn)工藝越來越精細,目前手機端CPU(ARM架構(gòu))制程已經(jīng)提升到7nm,電腦端也達到了14nm。
制程的提升,我們可以理解為,縮減每個辦公人員的辦公面積,以前科技不發(fā)達每個辦公人員必須配一個獨立辦公室,才能有效完成工作,現(xiàn)在技術(shù)進步了,每個辦公人員只需要一張辦公桌就能完成工作了。所以同樣的一棟大樓,可以容納的辦公人員(晶體管)就多了,工作能力就上升了。
以前一個CPU由于制程落后,只能容納幾千萬或者幾億個晶體管,現(xiàn)在制程進步了,一個同樣體積的CPU可以容納幾十億個晶體管,性能自然就提升了。
那么,為什么晶體管數(shù)量增加了,CPU的能耗卻沒有增加呢?我們可以這么理解,每個工作人員都需要吃飽了才有力氣干活,以前的工作人員需要吃九菜一湯才夠力氣,現(xiàn)在改為營養(yǎng)配餐了,每個工作人員只需要吃一片營養(yǎng)藥丸就可以工作了,所以工作人員雖然增加了,但是整體伙食成本(耗電量)并沒有增加。
最后,我們說一下CPU的核心和進程又是什么呢?我們可以這么理解,在單核時代,每個CPU只有一個核心,也就是只有一個中央機構(gòu),但是國家那么大,事那么多,中央機構(gòu)每天加班25個小時都忙不完了。那就沒辦法了,擴充中央機構(gòu)吧。于是乎雙核、四核、多核CPU就出來了。每一個核心都是一個獨立的中央機構(gòu),都具有相同的工作能力。
這么多個中央機構(gòu)成立了,那聽誰的,有事情交給哪個中央機構(gòu)去做,要知道它們的權(quán)利和功能都是一樣的啊。這時候就要改變CPU架構(gòu)了,也就是國家的管理制度了。以前國家只有一個中央機構(gòu),啥事都交給它去做準沒錯,現(xiàn)在突然變成好幾個中央機構(gòu)了,怎么辦?
這個時候就需要為每個核心安排去負責不同的事務(wù)了,這套中央機構(gòu)專門負責農(nóng)業(yè),那套負責工業(yè),剩下的負責稅收、財政等等之類的。
那什么是進程呢,進程其實可以理解為一個中央機構(gòu)里面的人員組成。有時候事太多了,光這幾個中央機構(gòu)處理起來還是有點吃力,但是為了節(jié)約成本,我們不能再組建新的中央機構(gòu)了,那就只好折中處理,不另外成立新的中央機構(gòu)了,就在原有的基礎(chǔ)上,每個中央機構(gòu)組建兩套完全一致的工作班子吧。
所以,4核CPU就是擁有四個獨立的中央機構(gòu),都具備相同的工作能力和權(quán)限,但是每個核心都會負責不同的事務(wù)。4核8線程就是四個獨立的中央機構(gòu),每一個中央機構(gòu)都擁有兩套完整的工作班子,每套工作班子權(quán)限也一樣。
這時候問題又出現(xiàn)了,例如某個中央機構(gòu)負責的事特別多,忙不過來,而其他的中央機構(gòu)負責的事很少,閑的發(fā)慌,那怎么辦?這時候,我們的架構(gòu)又出現(xiàn)了,好辦!今天你這個核心負責的事多,就你來主導,讓其他事少的核心輔助你工作。明天另外一個核心負責的事多,就由它來主導,其他核心輔助它工作。
在這里小編想起來一個網(wǎng)上很火的段子:MTK的CPU一核有難九核圍觀。這就是架構(gòu)落后造成的,它的管理制度不完善,沒辦法調(diào)節(jié)每個中央機構(gòu)之間的互相配合,有事情要做,往死里用一個核心,其他九個核心啥事沒有,只好吃瓜圍觀了。