中央處理器(Central Processing Unit)又稱為中央處理單元,我們也常用CPU來表示。

CPU主要工作有算術、邏輯運算,解讀電腦內的每個指令來控制電腦的運作。

目前的CPU製造技術中,將快取記憶體(Cache Memory,能讓電腦將主要的運算資料先行儲存的地方)也放在CPU內,讓CPU的運作速度加快不少。

和其他晶片產品一樣,CPU本身也是一顆晶片,製造過程與晶片大同小異。只不過CPU是一顆整合性的晶片,裡面含有百萬顆以上的電晶體(也就是電阻電路,可用來進行電腦裡的內建指令),在這些電晶體裡面,事先儲存了專有的指令集(命令電腦工作的基本程式),用來執行電腦所需的一般性工作,所以,CPU又稱為電腦的心臟。

CPU的運算由電流控制

CPU的運算主要透過電流來進行。透過電流的開關動作,可以將資料轉換成1與0等二進位運算資料,並互相傳遞。

在電流的傳輸方面,CPU以接腳方式安插在主機板上,透過這些接腳接收外界的電流訊號,然後經過內部處理,再將結果以電流訊號傳送出去。

每個接腳的功能不盡相同,有的傳送代表指令的電流訊號,有的則傳送代表資料的電流訊號,而有的則是單純的電源供應。因此,主機板的設計需配合CPU的接腳功能才能發揮CPU的作用。

CPU的構造

CPU內部,主要包括有保護層、金屬層、裝置層、矽基座以及包裝層等結構。保護層避免CPU直皆接觸到空氣;金屬層則提供CPU晶片上的電路連結;裝置層則包含了許多電晶體、二極體、電阻…等主要元件,為CPU的主要運算工作區;矽基座則提供了CPU所有元件的基座,晶片上所有工作皆建構在此基座上;包裝層則將晶片罩住以保護晶片。

CPU基礎認識

簡單的說,中央處理器(CPU)裡包含有下列幾個單元:執行控制單元、算術邏輯單元、浮點運算器、指令解碼器快取記憶體以及匯流排介面單元等六大單元。 這六個單元,簡單地講,我們可以將CPU視為六個成員的工作小組,而這個小組最主要的工作便是進行資料的運算與處理。

執行控制單元(Execution control unit)負責控制與其它功能單元的協調運作—執行控制單元是小組長,控制其他五個單元的工作情況

算術邏輯單元(ALU)能夠獨立執行算術或邏輯運算—算術邏輯單元與浮點運算器,負責資料運算與執行的工作

浮點運算器(FPU)透過管線式運算方式(pipelining)可同時執行許多浮點運算功能。

指令解碼器能解譯指令、並找出該指令所需之運算資料和運算結果所要輸出入的位址,方便其他功能單元運作—指令解碼器是小組的翻譯人員,負責小組對外溝通協調的工作,將運算與執行的工作轉換成小組與外部電腦其他元件能了解的語言

快取記憶體(Cache Memory)則提供給CPU將常用的運算資料儲存空間,CPU會在運算前先來讀寫此部份的資料後,再去其他地方讀寫資料後進行運算—快取記憶體則是這個小組的辦公室資料庫

匯流排介面單元則專職控制其他運算單元要利用到匯流排來進行資料傳輸工作時的協調工作—匯流排介面單元就是小組的運輸部門,控制資料的傳遞工作與工作時程安排等工作。

CPU的L1與L2快取

現在有許多CPU的L1快取記憶體(L1 Cache Memory)是128K的容量,但是有的會介紹到64K+64K的L1快取記憶體,為什麼要這樣子寫呢?有沒有什麼特別的原因呢?第二個64K是L2快取記憶體嗎?

原來,在中央處理器內部的快取記憶體,我們便稱為L1快取記憶體。快取記憶體的運作,主要是將CPU運算的部份結果先放置於快取記憶體裡,待CPU要繼續運算時,能夠快速地讀取;或者是先將要處理的資料先放置於快取記憶體裡,由於在CPU內部的傳輸速度比起CPU外部的傳輸速度要快許多,因此資料處理的速度比起沒有內建快取記憶體的CPU快了許多。

快取記憶體,就好像皮包與口袋的關係,當我們從銀行裡領錢出來後就會把錢放在皮包裡,當我們要用時,不僅從皮包裡拿錢出來,把剩下來的錢放到口袋裡去,等待要買時再拿出來花用,最後,我們才會把一天剩下來的錢,重新放到皮包裡,而不夠時再去銀行領。CPU的運作也是如此,銀行就好像是硬碟的資料一樣,先會讀取所需要的資料到像皮包的記憶體裡,而處理器便會從皮包裡再將部份資料給放到像口袋的快取記憶體裡去,等到運算處理完部份資料時,再丟到口袋裡放著待用,直到處理完後一次丟到記憶體去。

因此快取的感覺很有層次,有時候記憶體也會擔任快取的角色,尤其是CPU裡沒有快取記憶體的容量時,又或者在主機板上就會建置有快取記憶體的設備。一般而言,現在的CPU都有L2快取記憶體了,而主機板上又有快取,所以一共就有三層快取的設計。這三層呢,其中有二層是在CPU內部的,所以CPU的運算速度會因為資料傳輸度的增快,而加速許多。

不過,在CPU裡,有的快取記憶體是建置在晶圓上(on die)的,有的是建置在CPU的基板上的。因此,即使是L1的快取記憶體,也會有兩種層次的出現,所以有的文章會用64K+64K的方式來表達。但是,我們一般在表達時,還是僅用總和的方式來表示,因為不管是那種L1的快取,它的地位應該是相同的。

隨著CPU製作技術的提昇,製程的進步讓快取記憶體的空間愈來愈大,也讓CPU運算的速度,有了劃時代的提昇,不管是那一種製作方式,在面對琳瑯滿目的CPU產品時,可別讓快取記憶體混淆我們的耳目囉。

Source: http://www.scjh.tpc.edu.tw/teacher/cc/comteach/hard/cpu01.htm