衆所周知,CPU是電腦的「心臟」,是整個微機系統的核心,所以,它也每每成了各類檔次微機的代名詞,如昔日的28六、38六、486,奔騰、PII、K6到今天的PIII、P四、K7等。回顧CPU發展歷史,CPU在製造技術上已經得到了極大的提升,主要表如今集成的電子元件愈來愈多,從開始集成幾千個晶體管,到如今的幾百萬、幾千萬個晶體管,這麼多晶體管,它們是若是處理數據的呢?
◆ CPU的原始工做模式在瞭解CPU工做原理以前,咱們先簡單談談CPU是如何生產出來的。CPU是在特別純淨的硅材料上製造的。一個CPU芯片包含上百萬個精巧的晶體管。人們在一塊指甲蓋大小的硅片上,用化學的方法蝕刻或光刻出晶體管。所以,從這個意義上說,CPU正是由晶體管組合而成的。簡單而言,晶體管就是微型電子電子開關,它們是構建CPU的基石,你能夠把一個晶體管看成一個電燈開關,它們有個操做位,分別表明兩種狀態:ON(開)和OFF(關)。這一開一關就相等於晶體管的連通與斷開,而這兩種狀態正好與二進制中的基礎狀態「0」和「1」對應!這樣,計算機就具有了處理信息的能力。但你不要覺得,只有簡單的「0」和「1」兩種狀態的晶體管的原理很簡單,其實它們的發展是通過科學家們多年的辛苦研究得來的。在晶體管以前,計算機依靠速度緩慢、低效率的真空電子管和機械開關來處理信息。後來,科技人員把兩個晶體放置到一個硅晶體中,這樣便創做出第一個集成電路,再後來纔有了微處理器。
看到這裏,你必定想知道,晶體管是如何利用「0」和「1」這兩種電子信號來執行指令和處理數據的呢?其實,全部電子設備都有本身的電路和開關,電子在電路中流動或斷開,徹底由開關來控制,若是你將開關設置微OFF,電子將中止流動,若是你再將其設置爲ON,電子又會繼續流動。晶體管的這種ON與OFF的切換隻由電子信號控制,咱們能夠將晶體管稱之爲二進制設備。這樣,晶體管的ON狀態用「1」來表示,而OFF狀態則用「0」來表示,就能夠組成最簡單的二進制數。衆多晶體管產生的多個「1」與「0」的特殊次序和模式能表明不一樣的狀況,將其定義爲字母、數字、顏色和圖形。舉個例子,十進制位中的1在二進制模式時也是「1」,2在二進制位模式時是「10」,3是「11」,4是「100」,5是「101」,6是「110」等等,依此類推,這就組成了計算機工做採用的二進制語言和數據。成組的晶體管聯合起來能夠存儲數值,也能夠進行邏輯運算和數字運算。加上石英時鐘的控制,晶體管組成就像一部複雜的機器那樣同步地執行它們的功能。 ◆ CPU的內部結構如今咱們已經大概知道CPU是負責些什麼事情,可是具體由哪些部件負責處理數據和執行程序呢? 1.算術邏輯單元ALU(Arithmetic Logic Unit) ALU是運算器的核心。它是以全加器爲基礎,輔之以移位寄存器及相應控制邏輯組合而成的電路,在控制信號的做用下可完成加、減、乘、除四則運算和各類邏輯運算。就像剛纔提到的,這裏就至關於工廠中的生產線,負責運算數據。 2.寄存器組RS(Register Set或Registers) RS實質上是CPU中暫時存放數據的地方,裏面保存着那些等待處理的數據,或已經處理過的數據,CPU訪問寄存器所用的時間要比訪問內存的時間短。採用寄存器,能夠減小CPU訪問內存的次數,從而提升了CPU的工做速度。但由於受到芯片面積和集成度所限,寄存器組的容量不可能很大。寄存器組可分爲專用寄存器和通用寄存器。專用寄存器的做用是固定的,分別寄存相應的數據。而通用寄存器用途普遍並可由程序員規定其用途。通用寄存器的數目因微處理器而異。
3.控制單元(Control Unit)正如工廠的物流分配部門,控制單元是整個CPU的指揮控制中心;由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操做控制器OC(Operation Controller)三個部件組成,對協調整個電腦有序工做極爲重要。它根據用戶預先編好的程序,依次從寄存器中取出各條指令,放在指令寄存器IR中,經過指令譯碼(分析)肯定應該進行什麼操做,而後經過操做控制器OC,按肯定的時序,向相應的部件發出微操做控制信號。操做控制器OC中主要包括節拍脈衝發生器、控制矩陣、時鐘脈衝發生器、復位電路和啓停電路等控制邏輯
4.總線(Bus)就像工廠中各部位之間的聯繫渠道,總線其實是一組導線,是各類公共信號線的集合,用於做爲電腦中全部各組成部分傳輸信息共同使用的「公路」。直接和CPU相連的總線可稱爲局部總線。其中包括:數據總線DB(Data Bus)、地址總線AB(Address Bus)、控制總線CB(Control Bus)。其中,數據總線用來傳輸數據信息;地址總線用於傳送CPU發出的地址信息;控制總線用來傳送控制信號、時序信號和狀態信息等。 ◆ CPU的工做流程由晶體管組成的CPU是做爲處理數據和執行程序的核心,其英文全稱是:Central Processing Unit,即中央處理器。首先,CPU的內部結構能夠分爲控制單元,邏輯運算單元和存儲單元(包括內部總線及緩衝器)三大部分。CPU的工做原理就像一個工廠對產品的加工過程:進入工廠的原料(程序指令),通過物資分配部門(控制單元)的調度分配,被送往生產線(邏輯運算單元),生產出成品(處理後的數據)後,再存儲在倉庫(存儲單元)中,最後等着拿到市場上去賣(交由應用程序使用)。在這個過程當中,咱們注意到從控制單元開始,CPU就開始了正式的工做,中間的過程是經過邏輯運算單元來進行運算處理,交到存儲單元表明工做的結束。 ◆ 數據與指令在CPU中的運行剛纔已經爲你們介紹了CPU的部件及基本原理狀況,如今,咱們來看看數據是怎樣在CPU中運行的。咱們知道,數據從輸入設備流經內存,等待CPU的處理,這些將要處理的信息是按字節存儲的,也就是以8位二進制數或8比特爲1個單元存儲,這些信息能夠是數據或指令。數據能夠是二進制表示的字符、數字或顏色等等。而指令告訴CPU對數據執行哪些操做,好比完成加法、減法或移位運算。咱們假設在內存中的數據是最簡單的原始數據。首先,指令指針(Instruction Pointer)會通知CPU,將要執行的指令放置在內存中的存儲位置。由於內存中的每一個存儲單元都有編號(稱爲地址),能夠根據這些地址把數據取出,經過地址總線送到控制單元中,指令譯碼器從指令寄存器IR中拿來指令,翻譯成CPU能夠執行的形式,而後決定完成該指令須要哪些必要的操做,它將告訴算術邏輯單元(ALU)何時計算,告訴指令讀取器何時獲取數值,告訴指令譯碼器何時翻譯指令等等。假如數據被送往算術邏輯單元,數據將會執行指令中規定的算術運算和其餘各類運算。當數據處理完畢後,將回到寄存器中,經過不一樣的指令將數據繼續運行或者經過DB總線送到數據緩存器中。基本上,CPU就是這樣去執行讀出數據、處理數據和往內存寫數據3項基本工做。但在一般狀況下,一條指令能夠包含按明確順序執行的許多操做,CPU的工做就是執行這些指令,完成一條指後,CPU的控制單元又將告訴指令讀取器從內存中讀取下一條指令來執行。這個過程不斷快速地重複,快速地執行一條又一條指令,產生您在顯示器上所看到的結果。咱們很容易想到,在處理這麼多指令和數據的同時,因爲數據轉移時差和CPU處理時差,確定會出現混亂處理的狀況。爲了保證每一個操做準時發生,CPU須要一個時鐘,時鐘控制着CPU所執行的每個動做。時鐘就像一個節拍器,它不停地發出脈衝,決定CPU的步調和處理時間,這就是咱們所熟悉的CPU的標稱速度,也稱爲主頻。主頻數值越高,代表CPU的工做速度越快。 ◆ 如何提升CPU工做效率既然CPU的主要工做是執行指令和處理數據,那麼工做效率將成爲CPU的最主要內容,所以,各CPU廠商也盡力使用CPU處理數據的速度更快。根據CPU的內部運算結構,一些製造廠商在CPU內增長了另外一個算術邏輯單元(ALU),或者是另外再設置一個處理很是大和很是小的數據浮點運算單元(Floating Point Unit,FPU),這樣就大大加快了數據運算的速度。而在執行效率方面,一些廠商經過流水線方式或以幾乎並行工做的方式執行指令的方法來提升指令的執行速度。剛纔咱們提到,指令的執行須要許多獨立的操做,諸如取指令和譯碼等。最初CPU在執行下一條指令以前必須所有執行完上一條指令,而如今則由分佈式的電路各自執行操做。也就是說,當這部分的電路完成了一件工做後,第二件工做當即佔據了該電路,這樣就大大增長了執行方面的效率。另外,爲了讓指令與指令之間的鏈接更加準確,如今的CPU一般會採用多種預測方式來控制指令更高效率地執行。程序員