簡單介紹 CPU 的工做原理

內部架構

CPU 的根本任務就是執行指令,對計算機來講最終都是一串由 0 和 1 組成的序列。CPU 從邏輯上能夠劃分紅 3 個模塊,分別是控制單元、運算單元和存儲單元 。其內部架構以下:html

【1】控制單元

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

【2】運算單元

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

【3】存儲單元

存儲單元包括 CPU 片內緩存和寄存器組,是 CPU 中暫時存放數據的地方,裏面保存着那些等待處理的數據,或已經處理過的數據,CPU 訪問寄存器所用的時間要比訪問內存的時間短。採用寄存器,能夠減小 CPU 訪問內存的次數,從而提升了 CPU 的工做速度。寄存器組可分爲專用寄存器和通用寄存器。專用寄存器的做用是固定的,分別寄存相應的數據;而通用寄存器用途普遍並可由程序員規定其用途。架構

工做原理

總的來講,CPU 從內存中一條一條地取出指令和相應的數據,按指令操做碼的規定,對數據進行運算處理,直到程序執行完畢爲止。具體過程可分爲如下四步:測試

【1】取指令

CPU 控制器從內存讀取一條指令並放入指令寄存器。指令的格式以下:ui

 

操做碼:就是彙編語言裏的 mov,add,jmp 等符號碼;.net

操做數地址:說明該指令須要的操做數所在的地方,是在內存裏仍是在CPU的內部寄存器裏。unix

【2】指令譯碼

指令寄存器中的指令通過譯碼,決定該指令應進行何種操做(就是指令裏的操做碼)、操做數在哪裏(操做數的地址) 。code

【3】 執行指令

執行指令分爲兩個階段: 取操做數 和 進行運算 。htm

取操做數: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
 
 
參考資料
相關文章
相關標籤/搜索