當前位置:首頁 > 科技 > 正文

CPU工作原理及核心技術

衆所周知,CPU是電腦的“心髒”,是整個微機系統的核心,因此,它也往往成了各種檔次微機的代名詞,如昔日的286、386、486,奔騰、PⅡ、K6到今天的PⅢ、P4、K7、K8等。回顧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)和操作控制器0C(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通常會采用多種預測方式來控制指令更高效率地執行。

你可能想看:

有話要說...

取消
掃碼支持 支付碼