1. 程式人生 > >簡單介紹 CPU 的工作原理

簡單介紹 CPU 的工作原理

原理 組成 img struct 單位 opera 分析 操作碼 .com

1、內部架構

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

技術分享圖片

【1】控制單元

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

【2】運算單元

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

【3】存儲單元

存儲單元包括 CPU 片內緩存和寄存器組,是 CPU 中暫時存放數據的地方,裏面保存著那些等待處理的數據,或已經處理過的數據,CPU 訪問寄存器所用的時間要比訪問內存的時間短。采用寄存器,可以減少 CPU 訪問內存的次數,從而提高了 CPU 的工作速度。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應的數據;而通用寄存器用途廣泛並可由程序員規定其用途。

2、工作原理

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

【1】取指令

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

技術分享圖片

  • 操作碼:就是匯編語言裏的 mov,add,jmp 等符號碼;
  • 操作數地址:說明該指令需要的操作數所在的地方,是在內存裏還是在CPU的內部寄存器裏。

【2】指令譯碼

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

【3】 執行指令

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

  • 取操作數
    :CPU 通過尋址操作,從內存(數據段)中讀取操作數到通用寄存器中,暫存起來。
  • 進行運算:運算單元通過指令中的操作碼,對寄存器中的操作數進行 mov,add,jmp 操作。

【4】 指令計數

修改指令計數器,決定下一條指令的地址 。CPU 重復上述三步操作,處於內存代碼段的指令被逐個的執行,直到程序執行完畢為止。

3、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的內部架構和工作原理

簡單介紹 CPU 的工作原理