天天看點

簡單介紹 CPU 的工作原理

内部架構

CPU 的根本任務就是執行指令,對計算機來說最終都是一串由 0 和 1 組成的序列。CPU 從邏輯上可以劃分成 3 個子產品,分别是控制單元、運算單元和存儲單元 。其内部架構如下:

簡單介紹 CPU 的工作原理

【1】控制單元

控制單元是整個CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和 操作控制器OC(Operation Controller) 等組成,對協調整個電腦有序工作極為重要。它根據使用者預先編好的程式,依次從存儲器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)确定應該進行什麼操作,然後通過操作控制器OC,按确定的時序,向相應的部件發出微操作控制信号。操作控制器OC中主要包括:節拍脈沖發生器、控制矩陣、時鐘脈沖發生器、複位電路和啟停電路等控制邏輯。

【2】運算單元

運算單元是運算器的核心。可以執行算術運算(包括加減乘數等基本運算及其附加運算)和邏輯運算(包括移位、邏輯測試或兩個值比較)。相對控制單元而言,運算器接受控制單元的指令而進行動作,即運算單元所進行的全部操作都是由控制單元發出的控制信号來指揮的,是以它是執行部件。

【3】存儲單元

存儲單元包括 CPU 片内緩存和寄存器組,是 CPU 中暫時存放資料的地方,裡面儲存着那些等待處理的資料,或已經處理過的資料,CPU 通路寄存器所用的時間要比通路記憶體的時間短。采用寄存器,可以減少 CPU 通路記憶體的次數,進而提高了 CPU 的工作速度。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分别寄存相應的資料;而通用寄存器用途廣泛并可由程式員規定其用途。

工作原理

總的來說,CPU 從記憶體中一條一條地取出指令和相應的資料,按指令操作碼的規定,對資料進行運算處理,直到程式執行完畢為止。具體過程可分為以下四步:

【1】取指令

CPU 控制器從記憶體讀取一條指令并放入指令寄存器。指令的格式如下:

簡單介紹 CPU 的工作原理

操作碼:就是彙編語言裡的 mov,add,jmp 等符号碼;

操作數位址:說明該指令需要的操作數所在的地方,是在記憶體裡還是在CPU的内部寄存器裡。

【2】指令譯碼

指令寄存器中的指令經過譯碼,決定該指令應進行何種操作(就是指令裡的操作碼)、操作數在哪裡(操作數的位址) 。

【3】 執行指令

執行指令分為兩個階段: 取操作數 和 進行運算 。

取操作數:CPU 通過尋址操作,從記憶體(資料段)中讀取操作數到通用寄存器中,暫存起來。

進行運算:運算單元通過指令中的操作碼,對寄存器中的操作數進行 mov,add,jmp 操作。

【4】 指令計數

修改指令計數器,決定下一條指令的位址 。CPU 重複上述三步操作,處于記憶體代碼段的指令被逐個的執行,直到程式執行完畢為止。

CPU 字長

CPU在機關時間内(同一時間)能一次處理的二進制數的位數叫字長。是以,能處理字長為 8 位資料的 CPU 通常就叫 8 位的 CPU。同理,32 位CPU 能在機關時間内處理字長為 32 位的二進制資料 。

常見的 32位 CPU 和 64位 CPU 主要存在以下兩個差異:

【1】處理能力不同

32 位 CPU 的一個指令,最大能處理 32 位二進制資料,即一次能處理 4 個位元組資料。

64 位 CPU 的一個指令,最大能處理 64 位二進制資料,即一次能處理 8 個位元組資料。

【2】尋址空間不同

32 位 CPU 的尋址範圍是 32 位的二進制,32位二進制能表示的位址長度為2的32次方,即尋址空間最大為 4GB。

而 64 位CPU的尋址範圍是 64 位的二進制。能表示的位址長度更大,其尋址空間也會更大。

原創釋出  @一像素  2018.04

參考資料

[1] CPU的内部架構和工作原理

繼續閱讀