中央處理器的工作原理設(shè)計(jì)
中央處理器)是計(jì)算機(jī)中核心的組件之一,負(fù)責(zé)執(zhí)行程序指令、處理數(shù)據(jù)和控制計(jì)算機(jī)的各種操作。它的工作原理可以簡(jiǎn)要概括如下:
取指令: CPU從計(jì)算機(jī)的內(nèi)存中讀取指令。指令通常存儲(chǔ)在內(nèi)存中的程序段中,程序計(jì)數(shù)器(PC)示下一條要執(zhí)行的指令地址。
解碼指令: CPU對(duì)指令進(jìn)行解碼,將其轉(zhuǎn)化為內(nèi)部指令格式,以便于后續(xù)的操作。
執(zhí)行指令: 根據(jù)解碼后的指令,CPU執(zhí)行相應(yīng)的操作,包括算術(shù)邏輯運(yùn)算、數(shù)據(jù)傳輸?shù)?。這些操作可能涉及到寄存器、算術(shù)邏輯單元(ALU)等內(nèi)部組件。
訪問(wèn)內(nèi)存: 在執(zhí)行指令的過(guò)程中,CPU可能需要從內(nèi)存中讀取或?qū)⒂?jì)算結(jié)果寫回內(nèi)存。這通常涉及到地址計(jì)算、數(shù)據(jù)傳輸控制等操作。
控制流程: CPU控制程序的順序執(zhí)行,根據(jù)條件跳轉(zhuǎn)或循環(huán)來(lái)改變指令的執(zhí)行順序。這涉及到條件判斷、分支跳轉(zhuǎn)等操作。
中斷處理: CPU能夠響應(yīng)來(lái)自外部設(shè)備的中斷信號(hào),暫停當(dāng)前正在執(zhí)行的任務(wù),執(zhí)行相應(yīng)的中斷處理程序。這通常用于處理實(shí)時(shí)事件、外部設(shè)備數(shù)據(jù)傳輸?shù)惹闆r。
時(shí)鐘調(diào)度: CPU通過(guò)時(shí)鐘信號(hào)來(lái)同步各個(gè)內(nèi)部組件的操作,確保指令和數(shù)據(jù)的處理按照正確的頻率進(jìn)行。
需要注意的是,CPU的工作是高度并行的,它可以同時(shí)執(zhí)行多個(gè)指令,利用流水線等技術(shù)實(shí)現(xiàn)指令級(jí)并行和數(shù)據(jù)級(jí)并行。此外,CPU還包含多級(jí)緩存、寄存器等用于存儲(chǔ)和快速訪問(wèn)數(shù)據(jù)的組件,以提高處理速度。
總體來(lái)說(shuō),CPU的工作原理是通過(guò)不斷取指令、解碼指令、執(zhí)行指令和控制流程來(lái)完成計(jì)算機(jī)系統(tǒng)的各種任務(wù),它是實(shí)現(xiàn)計(jì)算和控制功能的核心組件。
中央處理器(Central Processing Unit,簡(jiǎn)稱CPU)是一塊由超大規(guī)模的集成電路組成的運(yùn)算和控制核心,主要功能是運(yùn)行指令和處理數(shù)據(jù)?,F(xiàn)在CPU一般都比較小,基本上只有指甲蓋般大小。CPU從誕生到現(xiàn)在主要在兩個(gè)維度上做了很大的提升,一個(gè)是材料及工藝,另一個(gè)是設(shè)計(jì)思想。
我們先看第一個(gè)維度:材料及工藝。你可曾想過(guò)人類歷史上第一個(gè)計(jì)算機(jī)(主要就是CPU)有多大?據(jù)資料了解其大小為24.4米×2.4米,重達(dá)28噸,功耗為170kW,但是運(yùn)算速度僅為每秒5000次的加法運(yùn)算。人類第一個(gè)CPU之所以體積這么大,功耗這么高,是因?yàn)樗褂昧?7840支電子管。隨著1947年貝爾實(shí)驗(yàn)室的肖克利等人發(fā)明了鍺晶體管(又叫做三極管),人們可以用體積小、功耗低、開(kāi)關(guān)速度快的晶體管替換體積大、功耗高、開(kāi)關(guān)慢的電子管。晶體管是20世紀(jì)的一項(xiàng)重大發(fā)明,為集成電路的誕生做了堅(jiān)實(shí)的鋪墊。
隨著20世紀(jì)中后期,半導(dǎo)體制造技術(shù)進(jìn)步,使得集成電路成為可能。相對(duì)于使用各種分立電子組件組裝電路,集成電路可以把很大數(shù)量的微晶體管集成到一個(gè)小芯片上,這是一個(gè)巨大的進(jìn)步。第一個(gè)集成電路是在1958年由杰克·基爾比完成的,它包括一個(gè)雙極性晶體管,三個(gè)電阻和一個(gè)電容器。1959年,仙童公司首先推出了采用光刻技術(shù)的平面型晶體管(如二極管、三極管、電阻和電容),而后1961年推出了平面型集成電路。理論上只要光刻工藝不斷提升,元器件的密度也會(huì)相應(yīng)地提升。1965年時(shí)任仙童半導(dǎo)體實(shí)驗(yàn)室主任的摩爾提出了摩爾定律:集成電路可容納的元器件數(shù)量,每18~24個(gè)月翻一番。
再看第二個(gè)維度:設(shè)計(jì)思想。其實(shí),在第一個(gè)計(jì)算機(jī)誕生的時(shí)候,雖然采取了最先進(jìn)的電子技術(shù),但缺少設(shè)計(jì)思想上的指導(dǎo),導(dǎo)致很多邏輯都是硬化在電路板上的。這會(huì)造成一旦修改程序,就要重新組裝電路板,這樣的編程效率很低。這時(shí)馮·諾依曼提出了一個(gè)至關(guān)重要的設(shè)計(jì)思路:計(jì)算機(jī)的邏輯結(jié)構(gòu),將軟硬件分離,要求CPU順序地從存儲(chǔ)器中取出指令和數(shù)據(jù)進(jìn)行相應(yīng)的計(jì)算,主要的思想:
二進(jìn)制:程序、數(shù)據(jù)的最終形態(tài)都是二進(jìn)制編碼、存儲(chǔ)在存儲(chǔ)器中,二進(jìn)制編碼也是CPU能夠識(shí)別、執(zhí)行的編碼;
指令、數(shù)據(jù)可存儲(chǔ):指令序列和數(shù)據(jù)存在主(內(nèi))存儲(chǔ)器中,以便于CPU在工作時(shí)能夠高速地從存儲(chǔ)器中提取指令并加以分析和執(zhí)行;
計(jì)算機(jī)組成:確定了計(jì)算機(jī)的五個(gè)基本組成部分,運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備;
其實(shí),馮·諾依曼體系結(jié)構(gòu)也存在一些問(wèn)題,但是人們并沒(méi)有完全拋棄這種體系結(jié)構(gòu),而是在這一系列問(wèn)題上做了改進(jìn):
指令、數(shù)據(jù)公用內(nèi)存:指令和數(shù)據(jù)都存儲(chǔ)在一個(gè)存儲(chǔ)器上,并且通過(guò)一個(gè)系統(tǒng)總線進(jìn)行訪問(wèn)。 當(dāng)前主存的讀寫速度是跟不上cpu運(yùn)行速度的,所以為了解決這個(gè)問(wèn)題,在cpu和主存增加了高速緩存,并且在L1高速緩存上,還區(qū)分了指令緩存和數(shù)據(jù)緩存,并進(jìn)一步提升系統(tǒng)總線的訪問(wèn)速度。 另外,為了解決指令和數(shù)據(jù)共用系統(tǒng)總線帶來(lái)的速度慢的問(wèn)題,又提出了哈佛架構(gòu),將指令和數(shù)據(jù)分別存放在不同的主存上,可以并行訪問(wèn),這提高了運(yùn)行速度,但是結(jié)構(gòu)復(fù)雜,不適合外部主存的擴(kuò)展,所以哈佛結(jié)構(gòu)并未得到廣泛應(yīng)用;
指令順序指令:指令只能順序,在一個(gè)pipe上運(yùn)行。 為了提升指令運(yùn)行速度增加了,亂序執(zhí)行、多級(jí)流水線、分支預(yù)測(cè)等功能;
在馮·諾依曼體系結(jié)構(gòu)設(shè)計(jì)思想指導(dǎo)下,并伴隨著芯片在摩爾定律下的制作工藝提升,現(xiàn)在的CPU越來(lái)越強(qiáng)大,在功能、算力不斷提升的同時(shí),功耗、面積也在不停的減少。 得益于芯片技術(shù)的發(fā)展,我們現(xiàn)在不僅有更輕便,容易攜帶的筆記本,還有各種方便攜帶的嵌入式產(chǎn)品使用,比如:智能手機(jī)、智能手表、藍(lán)牙耳機(jī)等。 可以預(yù)見(jiàn),隨著技術(shù)的發(fā)展,后面將會(huì)有更豐富的產(chǎn)品出現(xiàn),這無(wú)不彰顯了科學(xué)技術(shù)就是第一生產(chǎn)力。 接下來(lái),我們重點(diǎn)關(guān)注當(dāng)代CPU的工作原理,通過(guò)對(duì)CPU工作原理的了解,為工作中更好地進(jìn)行功能開(kāi)發(fā)、性能優(yōu)化、功耗優(yōu)化做鋪墊。
在學(xué)習(xí)整個(gè)CPU的組成原理之后,大家會(huì)發(fā)現(xiàn),最最核心的其實(shí)不是CPU本身,而是基礎(chǔ)學(xué)科物理。因?yàn)?a href="/tags/CPU" target="_blank">CPU最底層的門路設(shè)計(jì),需要基于物理學(xué)的電流、電壓相關(guān)知識(shí),如果沒(méi)有這部分理論支持,那我們永遠(yuǎn)沒(méi)辦法發(fā)明出計(jì)算機(jī)出來(lái)。這也是任正非先生所說(shuō)的,我們最需要大力發(fā)展的不是某一項(xiàng)技術(shù),而是最底層的基礎(chǔ)學(xué)科。
《林老師帶你學(xué)編程》知識(shí)星球,創(chuàng)始人由工作10年以上的一線大廠人員組成,希望通過(guò)我們的分享,幫助大家少走彎路,可以在技術(shù)領(lǐng)域不斷突破和發(fā)展。