計算機系統—CPU結構和內部工作
一、計算機系統硬體組成
計算機系統的基本組成由:計算器、控制器、儲存器、輸入和輸出裝置這5大核心部件組成。
運算器和控制器等繼承在一起成為CPU,下面通過這張圖可以很清晰的表達計算機系統,先從全域性上對CPU的位置和作用有一定認識。
二、CPU和記憶體之間的工作
(1)計算機的工作由程式控制,程式是一個指令序列,指令是能被計算機理解和執行的操作命令;
(2)程式(指令)和資料均以二進位制編碼表示,均存放在儲存器中;
(3)儲存器中存放的指令和資料按地址進行存取;
(4)指令是由CPU一條一條順序執行的。
由此可見,CPU的主要任務是執行指令,並按指令的規定對資料進行操作。正如下圖所示:
指令也就是命令,用來規定CPU執行什麼操作。CPU控制器靠指令指揮機器工作,人們用指令表達自己的意圖,並交給控制器執行。
指令是構成程式的基本單位,程式是由一連串指令組成的。指令採用二進位表示,大多數情況下,指令由兩個部分組成:
操作碼 |
運算元地址 |
操作碼:指出CPU應執行何種操作的一個命令詞,例如加、減、乘、除、取數、存數等
運算元地址:指出該指令所操作(處理)的資料或者資料所在位置
三、CPU的結構和內部工作
CPU是計算機的運算和控制核心,主要由運算器、控制器、暫存器組和內部匯流排等部件組成。
運算器:用於對資料執行運算
算術邏輯單元(ALU):負責處理資料
累加暫存器(AC):為ALU提供一個工作區
資料緩衝暫存器(DR):作為CPU和記憶體、外部裝置之間資料傳送的中轉站和操作速度上的緩衝。
狀態條件暫存器(PSW):存放當前指令執行結果的各種狀態資訊,控制資訊。
控制器:控制整個CPU工作,使計算機執行過程自動化
指令暫存器(IR):CPU執行指令時,先從DR中把指令送入IR暫存,然後指令譯碼器根據IR的內容產生各種微指令。
程式計數器(PC):具有寄存資訊和計數的功能。每讀一條指令裝入IR,然後PC+1
地址暫存器(AR):AR儲存當前CPU所訪問的記憶體單元的地址,知道記憶體的讀/寫完成。
指令譯碼器(ID):ID對指令中的操作碼欄位進行分析解釋,也就是來識別指令規定的操作,識別後向操作控制器發出具體的控制訊號,控制各部件工作,以完成所需的功能。
暫存器組:
專用暫存器:運算器和控制器中的暫存器是專用暫存器,其作用是固定的。
通用暫存器(GPR):參加ALU運算的運算元通常來自GPR,運算結果也送回GPR。
可由程式設計師規定其用途。
內部匯流排:
通過內部匯流排將CPU內部的所有結構單元內部相連。就如鐵軌一樣,火車必須行駛在鐵軌上。
四、一條指令在cpu中的執行流程
5個階段:取指、指令譯碼、執行指令、訪存取數、結果寫回。
如下例:
地址 |
op碼 |
地址碼 |
103 |
ADD |
R1,R2 |
說明:R1=100,R2=20;ADD指令即做R1+R2操作;
執行過程:
取指:程式計數器PC裝入所要執行的指令的地址。通過指令匯流排裝入指令暫存器IR,程式計數器PC指令地址+1,為下一條指令做準備。
指令譯碼:指令譯碼器ID對指令暫存器IR中的指令進行譯碼,識別出指令型別。
執行指令:操作控制器儲存送出控制訊號到通用暫存器,選擇R1,R2,通過ALU處理資料進行R1+R2,完成後通過內部匯流排傳送操作,將R1+R2的結果120打入緩衝暫存器DR,並將進位訊號儲存在狀態條件暫存器PSW。
結果寫回:將DR中的結果120打入通用暫存器R2中,替換掉原來R2的值。
再多的文字性描述,總是不比圖更容易理解,如下圖能清楚的明白指令執行中各個暫存器執行的時間和發揮的作用。
圖總是死的,不能清楚地知道指令的執行順序,想要動態的學習指令的執行過程,請見此教程演示,非常好!