我們現(xiàn)在的智能手機(jī)、電視,、電腦、空調(diào)等等東西都在向智能化的方向發(fā)展,,要想實(shí)現(xiàn)這個(gè)“智能”,達(dá)到很高的境界就好像真的人為控制一樣,,人們一直為此努力,,可能你不知道,,在現(xiàn)在的生活中控制這些東西的就是“處理器”這個(gè)東西,人們把一定的規(guī)則編程輸入,,模擬人類(lèi)行為,。
現(xiàn)在我們說(shuō)什么高通、英特爾等等它們都是生產(chǎn)處理器的著名廠(chǎng)商,。
生產(chǎn)出來(lái)這個(gè)東西,,就是處理器,你們可能了解幾核心,、處理速度等等,,但是它是怎么工作的,你知道嗎,?
世界第一臺(tái)計(jì)算機(jī)出現(xiàn),,造成體積龐大的原因就是等眾多的二極管、電線(xiàn)組成的處理器,,但是自從集成電路和微型晶片出來(lái)以后,,從此計(jì)算機(jī)微型化開(kāi)始,不斷的縮小變種,。所以現(xiàn)在的手機(jī),、電腦等等用的處理器工作原理都是一樣的。
處理器說(shuō)的通俗易懂就是有很多開(kāi)關(guān)通過(guò)控制進(jìn)行組合打開(kāi)關(guān)閉的操作來(lái)讓電子通過(guò),,控制電子設(shè)備,,所有的電子設(shè)備都有自己的開(kāi)關(guān)和電路,通過(guò)打開(kāi)這些開(kāi)關(guān)進(jìn)行組合,,控制這些電子設(shè)備的打開(kāi)關(guān)閉,,這就是處理器最基本的運(yùn)作方式。
現(xiàn)在的CPU是在特別純凈的硅材料上面制造的,,通過(guò)光刻,,一個(gè)CPU芯片上面包含了上百萬(wàn)個(gè)晶體管,而這些晶體管就是所謂的微型開(kāi)關(guān),,它是構(gòu)建CPU的基石,。編程的人都知道,電腦只認(rèn)識(shí)“0”和“1”,,而“0”和“1”就相當(dāng)于晶體管的兩種狀態(tài):開(kāi) ,、關(guān),,這樣的運(yùn)作方式表現(xiàn)出來(lái)就是處理器的處理信息的能力,。
那你一定就有點(diǎn)納悶,晶體管又是如何利用“0”和“1”這兩種電子信號(hào)來(lái)執(zhí)行指令和處理數(shù)據(jù)的呢,?
其實(shí),,所有電子設(shè)備都有自己的電路和開(kāi)關(guān),,電子在電路中流動(dòng)或斷開(kāi),完全由開(kāi)關(guān)來(lái)控制,,如果你將開(kāi)關(guān)設(shè)置為OFF,,電子將停止流動(dòng),如果你再將其設(shè)置為ON,,電子又會(huì)繼續(xù)流動(dòng),。晶體管的這種ON與OFF的切換只由電子信號(hào)控制,我們可以將晶體管稱(chēng)之為二進(jìn)制設(shè)備,。這樣,,晶體管的ON狀態(tài)用“1”來(lái)表示,而OFF狀態(tài)則用“0”來(lái)表示,,就可以組成最簡(jiǎn)單的二進(jìn)制數(shù),。眾多晶體管產(chǎn)生的多個(gè)“1”與“0”的特殊次序和模式能代表不同的情況,將其定義為字母,、數(shù)字,、顏色和圖形。舉個(gè)例子,,十進(jìn)位中的1在二進(jìn)位模式時(shí)也是“1”,,2在二進(jìn)位模式時(shí)是“10”,3是“11”,,4是“100”,,5是“101”,6是“110”等等,,依此類(lèi)推,,這就組成了計(jì)算機(jī)工作采用的二進(jìn)制語(yǔ)言和數(shù)據(jù)。成組的晶體管聯(lián)合起來(lái)可以存儲(chǔ)數(shù)值,,也可以進(jìn)行邏輯運(yùn)算和數(shù)字運(yùn)算,。加上石英時(shí)鐘的控制,晶體管組就像一部復(fù)雜的機(jī)器那樣同步地執(zhí)行它們的功能,。
而一個(gè)擁有計(jì)算能力的處理器并不光光是二極管,,而是有非常復(fù)雜的結(jié)構(gòu)組成,那么復(fù)雜處理數(shù)據(jù)和執(zhí)行程序是怎么實(shí)現(xiàn)的呢,?
1.算術(shù)邏輯單元ALU(Arithmetic Logic Unit)
ALU是運(yùn)算器的核心,。它是以全加器為基礎(chǔ),輔之以移位寄存器及相應(yīng)控制邏輯組合而成的電路,,在控制信號(hào)的作用下可完成加,、減、乘、除四則運(yùn)算和各種邏輯運(yùn)算,。就像剛才提到的,,這里就相當(dāng)于工廠(chǎng)中的生產(chǎn)線(xiàn),負(fù)責(zé)運(yùn)算數(shù)據(jù),。
2.寄存器組 RS(Register Set或Registers)
RS實(shí)質(zhì)上是CPU中暫時(shí)存放數(shù)據(jù)的地方,,里面保存著那些等待處理的數(shù)據(jù),或已經(jīng)處理過(guò)的數(shù)據(jù),,CPU訪(fǎng)問(wèn)寄存器所用的時(shí)間要比訪(fǎng)問(wèn)內(nèi)存的時(shí)間短,。采用寄存器,可以減少CPU訪(fǎng)問(wèn)內(nèi)存的次數(shù),,從而提高了CPU的工作速度,。但因?yàn)槭艿叫酒娣e和集成度所限,寄存器組的容量不可能很大,。寄存器組可分為專(zhuān)用寄存器和通用寄存器,。專(zhuān)用寄存器的作用是固定的,分別寄存相應(yīng)的數(shù)據(jù),。而通用寄存器用途廣泛并可由程序員規(guī)定其用途,。通用寄存器的數(shù)目因微處理器而異。
3.控制單元(Control Unit)
正如工廠(chǎng)的物流分配部門(mén),,控制單元是整個(gè)CPU的指揮控制中心,,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器OC(Operation Controller)三個(gè)部件組成,,對(duì)協(xié)調(diào)整個(gè)電腦有序工作極為重要,。它根據(jù)用戶(hù)預(yù)先編好的程序,依次從存儲(chǔ)器中取出各條指令,,放在指令寄存器IR中,,通過(guò)指令譯碼(分析)確定應(yīng)該進(jìn)行什么操作,然后通過(guò)操作控制器OC,,按確定的時(shí)序,,向相應(yīng)的部件發(fā)出微操作控制信號(hào)。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器,、控制矩陣,、時(shí)鐘脈沖發(fā)生器、復(fù)位電路和啟停電路等控制邏輯,。
4.總線(xiàn)(Bus)
就像工廠(chǎng)中各部位之間的聯(lián)系渠道,,總線(xiàn)實(shí)際上是一組導(dǎo)線(xiàn),是各種公共信號(hào)線(xiàn)的集合,,用于作為電腦中所有各組成部分傳輸信息共同使用的“公路”,。直接和CPU相連的總線(xiàn)可稱(chēng)為局部總線(xiàn),。其中包括: 數(shù)據(jù)總線(xiàn)DB(Data Bus)、地址總線(xiàn)AB(Address Bus) ,、控制總線(xiàn)CB(Control Bus)。其中,,數(shù)據(jù)總線(xiàn)用來(lái)傳輸數(shù)據(jù)信息,;地址總線(xiàn)用于傳送CPU發(fā)出的地址信息;控制總線(xiàn)用來(lái)傳送控制信號(hào),、時(shí)序信號(hào)和狀態(tài)信息等,。
CPU的工作流程
由晶體管組成的CPU是作為處理數(shù)據(jù)和執(zhí)行程序的核心,其英文全稱(chēng)是:Central Processing Unit,,即中央處理器,。首先,CPU的內(nèi)部結(jié)構(gòu)可以分為控制單元,,邏輯運(yùn)算單元和存儲(chǔ)單元(包括內(nèi)部總線(xiàn)及緩沖器)三大部分,。CPU的工作原理就像一個(gè)工廠(chǎng)對(duì)產(chǎn)品的加工過(guò)程:進(jìn)入工廠(chǎng)的原料(程序指令),經(jīng)過(guò)物資分配部門(mén)(控制單元)的調(diào)度分配,,被送往生產(chǎn)線(xiàn)(邏輯運(yùn)算單元),,生產(chǎn)出成品(處理后的數(shù)據(jù))后,再存儲(chǔ)在倉(cāng)庫(kù)(存儲(chǔ)單元)中,,最后等著拿到市場(chǎng)上去賣(mài)(交由應(yīng)用程序使用),。在這個(gè)過(guò)程中,我們注意到從控制單元開(kāi)始,,CPU就開(kāi)始了正式的工作,,中間的過(guò)程是通過(guò)邏輯運(yùn)算單元來(lái)進(jìn)行運(yùn)算處理,交到存儲(chǔ)單元代表工作的結(jié)束,。
數(shù)據(jù)與指令在CPU中的運(yùn)行
剛才已經(jīng)為大家介紹了CPU的部件及基本原理情況,,現(xiàn)在,我們來(lái)看看數(shù)據(jù)是怎樣在CPU中運(yùn)行的,。我們知道,,數(shù)據(jù)從輸入設(shè)備流經(jīng)內(nèi)存,等待CPU的處理,,這些將要處理的信息是按字節(jié)存儲(chǔ)的,,也就是以8位二進(jìn)制數(shù)或8比特為1個(gè)單元存儲(chǔ),這些信息可以是數(shù)據(jù)或指令,。數(shù)據(jù)可以是二進(jìn)制表示的字符,、數(shù)字或顏色等等。而指令告訴CPU對(duì)數(shù)據(jù)執(zhí)行哪些操作,,比如完成加法,、減法或移位運(yùn)算。
我們假設(shè)在內(nèi)存中的數(shù)據(jù)是最簡(jiǎn)單的原始數(shù)據(jù)。首先,,指令指針(Instruction Pointer)會(huì)通知CPU,,將要執(zhí)行的指令放置在內(nèi)存中的存儲(chǔ)位置。因?yàn)閮?nèi)存中的每個(gè)存儲(chǔ)單元都有編號(hào)(稱(chēng)為地址),,可以根據(jù)這些地址把數(shù)據(jù)取出,,通過(guò)地址總線(xiàn)送到控制單元中,指令譯碼器從指令寄存器IR中拿來(lái)指令,,翻譯成CPU可以執(zhí)行的形式,,然后決定完成該指令需要哪些必要的操作,它將告訴算術(shù)邏輯單元(ALU)什么時(shí)候計(jì)算,,告訴指令讀取器什么時(shí)候獲取數(shù)值,,告訴指令譯碼器什么時(shí)候翻譯指令等等。
假如數(shù)據(jù)被送往算術(shù)邏輯單元,,數(shù)據(jù)將會(huì)執(zhí)行指令中規(guī)定的算術(shù)運(yùn)算和其他各種運(yùn)算,。當(dāng)數(shù)據(jù)處理完畢后,將回到寄存器中,,通過(guò)不同的指令將數(shù)據(jù)繼續(xù)運(yùn)行或者通過(guò)DB總線(xiàn)送到數(shù)據(jù)緩存器中,。
基本上,CPU就是這樣去執(zhí)行讀出數(shù)據(jù),、處理數(shù)據(jù)和往內(nèi)存寫(xiě)數(shù)據(jù)3項(xiàng)基本工作,。但在通常情況下,一條指令可以包含按明確順序執(zhí)行的許多操作,,CPU的工作就是執(zhí)行這些指令,,完成一條指令后,CPU的控制單元又將告訴指令讀取器從內(nèi)存中讀取下一條指令來(lái)執(zhí)行,。這個(gè)過(guò)程不斷快速地重復(fù),,快速地執(zhí)行一條又一條指令,產(chǎn)生你在顯示器上所看到的結(jié)果,。我們很容易想到,,在處理這么多指令和數(shù)據(jù)的同時(shí),由于數(shù)據(jù)轉(zhuǎn)移時(shí)差和CPU處理時(shí)差,,肯定會(huì)出現(xiàn)混亂處理的情況,。為了保證每個(gè)操作準(zhǔn)時(shí)發(fā)生,CPU需要一個(gè)時(shí)鐘,,時(shí)鐘控制著CPU所執(zhí)行的每一個(gè)動(dòng)作,。時(shí)鐘就像一個(gè)節(jié)拍器,它不停地發(fā)出脈沖,,決定CPU的步調(diào)和處理時(shí)間,,這就是我們所熟悉的CPU的標(biāo)稱(chēng)速度,,也稱(chēng)為主頻。主頻數(shù)值越高,,表明CPU的工作速度越快,。
一個(gè)小小的芯片,卻擁有飛快的計(jì)算能力,,科技改變生活,,這就是科技進(jìn)步的結(jié)果,不知道若干年后,,這個(gè)由原來(lái)的機(jī)型變成現(xiàn)在小小的芯片,以后會(huì)變成什么,,科技就是如此神奇,。