介紹CPU
幾個(gè)問題
在步入正題之前先問幾個(gè)問題就是
程序是什么?
程序是由什么組成的?
?什么是機(jī)器語(yǔ)言?
正在運(yùn)行的程序存儲(chǔ)在什么位置?
什么是內(nèi)存地址?
計(jì)算機(jī)的構(gòu)成元件中,負(fù)責(zé)程序的解釋和運(yùn)行的是哪個(gè)?
其實(shí),每個(gè)人的答案都不一樣,沒必要完全按照標(biāo)準(zhǔn)答案,理解就可以了。
指示計(jì)算機(jī)每一步動(dòng)作的一組指令
指令和數(shù)據(jù)
CPU 可以直接識(shí)別并使用的語(yǔ)言
內(nèi)存
內(nèi)存中,用來(lái)表示命令和數(shù)據(jù)存儲(chǔ)位置的數(shù)值
CPU
CPU功能
CPU負(fù)責(zé)解釋和運(yùn)行最終轉(zhuǎn)換成機(jī)器語(yǔ)言的程序內(nèi)容。

CPU組成

CPU內(nèi)部與內(nèi)存都是由許多晶體管組成的電子部件,通常稱為 IC(Integrated Circuit,集成電路),CPU 的內(nèi)部由寄存器、控制器、運(yùn)算器和時(shí)鐘四個(gè)部分構(gòu)成。
寄存器可用來(lái)暫存指令、數(shù)據(jù)等處理對(duì)象,可以將其看作是內(nèi)存的一種。根據(jù)種類的不同,一個(gè) CPU 內(nèi)部會(huì)有 20~100 個(gè)寄存器。
控制器負(fù)責(zé)把內(nèi)存上的指令、數(shù)據(jù)等讀入寄存器,并根據(jù)指令的執(zhí)行結(jié)果來(lái)控制整個(gè)計(jì)算機(jī)。
運(yùn)算器負(fù)責(zé)運(yùn)算從內(nèi)存讀入寄存器的數(shù)據(jù)。
時(shí)鐘負(fù)責(zé)發(fā)出 CPU 開始計(jì)時(shí)的時(shí)鐘信號(hào)。不過,也有些計(jì)算機(jī)的時(shí)鐘位于 CPU 的外部。
程序啟動(dòng)后,根據(jù)時(shí)鐘信號(hào),控制器會(huì)從內(nèi)存中讀取指令和數(shù)據(jù)。通過對(duì)這些指令加以解釋和運(yùn)行,運(yùn)算器就會(huì)對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,控制器根據(jù)該運(yùn)算結(jié)果來(lái)控制計(jì)算機(jī)。
寄存器
不同類型的 CPU,其內(nèi)部寄存器的數(shù)量、種類以及寄存器存儲(chǔ)的數(shù)值范圍都是不同的。
因?yàn)槌绦騿T利用操作的就是寄存器,所以在程序員眼中CPU就像是一個(gè)寄存器的集合一樣。


CPU類型
不同的 CPU 能解釋的機(jī)器語(yǔ)言的種類也是不同的。例如,CPU 有 x86、MIPS、SPARC、PowerPC 等幾種類型,它們各自的機(jī)器語(yǔ)言是完全不同的。
機(jī)制
一、條件分支和循環(huán)機(jī)制
就像我們?nèi)俗鍪虑橐粯?,CPU處理流程也會(huì)按照順序去做(順序執(zhí)行),遇到需要判斷的事情去做抉擇(條件分支),循環(huán)做一件事(循環(huán))。

二、函數(shù)調(diào)用機(jī)制
有時(shí)我們遇到一些問題沒辦法自己上述的幾個(gè)機(jī)制來(lái)完成,這時(shí)我們可能會(huì)想到找其他人幫忙一起完成這件事情,但是你僅僅將工作拆分后吧內(nèi)容給其他人,還有得到最后的結(jié)果,至于其他人是怎么完成的是不知道的。這就是函數(shù)調(diào)用。
在CPU的層面對(duì)應(yīng)的指令就是CALL與RET指令(C語(yǔ)言就是return指令)

CPU指令
其實(shí)我在剛開始學(xué)習(xí)的時(shí)候,每次看書,聽老師講課的時(shí)候經(jīng)常感覺到時(shí)不時(shí)出現(xiàn)一個(gè)新的指令,但是我并不了解僅僅是會(huì)用,我想這個(gè)原因就是不知道機(jī)器語(yǔ)言和匯編語(yǔ)言的指令到底有多少種,因而對(duì) CPU 的運(yùn)行沒什么概念。

其實(shí)CPU可以進(jìn)行的處理非常的少,雖然高級(jí)語(yǔ)言寫出來(lái)感覺很復(fù)雜,但是實(shí)際上對(duì)于CPU來(lái)說真的就是這么簡(jiǎn)單。
一般CPU是具有指令集,不同CPU架構(gòu),指令集不同
分為精簡(jiǎn)指令集與復(fù)雜指令集,
工作頻率
1.外頻:CPU 與外部組件進(jìn)行數(shù)據(jù)傳輸時(shí)的速度
2.倍頻:CPU 內(nèi)部用來(lái)加速工作效能的一個(gè)倍數(shù)
3.頻率速度:外頻 x 倍頻
超線程(HT)
超線程(Hyper-Threading),CPU 可以假象的同時(shí)執(zhí)行兩個(gè)程序
具體實(shí)現(xiàn):在每一個(gè) CPU 內(nèi)部將重要的緩存器 (register) 分成兩群, 而讓程序分別使用這兩群緩存器。也就是說,可以有兩個(gè)程序“同時(shí)競(jìng)爭(zhēng) CPU 的運(yùn)算單元”,而非透過操作系統(tǒng)的多任務(wù)切換!?這一過程就會(huì)讓 CPU 好像“同時(shí)有兩個(gè)核心”的模樣!因此,雖然大部分 i7 等級(jí)的 CPU 其實(shí)只有四個(gè)實(shí)體核心,但透過HT 的機(jī)制, 則操作系統(tǒng)可以抓到八個(gè)核心!并且讓每個(gè)核心邏輯上分離,就可以同時(shí)運(yùn)作八個(gè)程序了。
如果有建議和看法,可以在文末留言,謝謝。
