1. 程式人生 > 其它 >計算機組成原理考研複試複習-4

計算機組成原理考研複試複習-4

第五部分:中央處理器CPU

1,CPU的功能與結構?

1)CPU的結構?

控制器,運算器,資料通路,一些暫存器

控制器:協調並控制計算機各個部件執行。具體包括:程式計數器PC,指令暫存器IR,地址暫存器MAR,資料暫存器MDR,時序系統,微程式控制器,控制器的核心是控制單元CU

運算器:執行各種運算,並將結果輸出。具體包括:ACC累加暫存器,ALU算數邏輯單元,暫存暫存器,通用暫存器組,PWS程式狀態字暫存器、移位暫存器、計數器

 

各種暫存器中對使用者不可見的有:暫存暫存器、移位暫存器、MAR、MDR、IR

 

2)CPU的功能:指令控制、時間控制、操作控制、中斷處理、資料加工

2,指令執行的過程:

1)各種不同的週期之間的關係(機器週期,時鐘週期、指令週期)

時鐘週期是CPU完成一個動作(微操作)的最小時間單位,

機器週期(又稱CPU週期)完成一個指令的子工作(子步驟)所需要的時間,

指令週期:CPU從主存中取出一條指令並執行完畢所需要的時間。

通常指令週期由多個機器週期組成,機器週期的時間通常由存取週期來確定(時間最長),且機器週期由多個時鐘週期組成。

 

2)指令週期的組成:

1⃣️取指週期:根據PC的內容傳入MAR,根據MAR的內容從記憶體中取出指令存入MDR中,再將MDR的內容存入IR

2⃣️間址週期:【可能不存在】(去運算元的有效地址)根據指令的地址碼部分,和尋值特徵位取出運算元的有效地址

3⃣️執行週期【不同指令各不相同】

4⃣️中斷週期:處理中斷請求

儲存斷點、送中斷向量、處理中斷請求

為了區別不同的機器週期,用觸發器FE(fetch),IND( instruction decode),EX(execute),INT(interrupt)來進行標記。

3)指令執行的時間安排:單指令週期(一個時鐘週期執行一條指令)、多指令週期、流水線方案

 

3,資料通路

資料通路結構的分類

1)CPU內部單匯流排=>運算器需要暫存器(因為如果沒有暫存器的話,無法使ALU兩個輸入端同時有效)

2)CPU內部三匯流排

3)專用資料通路:每個需要傳遞資料的部件之間都有直接連線,需要多路選擇器(MUX)與三態門

 

控制器的內部結構

4、硬佈線控制器

由組合邏輯技術實現,執行速度快,一般用於精簡指令集計算機(RISC),擴充指令困難。

5、微程式控制器:

1)思想?

計算機通過控制部件對外發出各種控制命令,這種命令叫做微命令,各個接收命令的部件之後執行的操作叫做微操作,微程式控制器的思想就是將微操作訊號程式碼化,使用儲存邏輯的思想,將實現微操作的程式存入控制儲存器(CM)中。【控制儲存器CM是由ROM實現的,只讀不寫】。存入CM的每條指令叫做微指令,微指令是對要完成的一條或多條微操作的內容的封裝。這樣在對指令的OP碼進行譯碼之後,選擇相對應的微指令發出微命令控制其他部件的執行。

我們使每一個機器週期對應一串微指令序列(也可以叫做微程式,這裡有爭議可以說一個機器週期對應一個微程式,也可以說一個指令對應一個微程式),因為每一個指令的取址、間址、中斷週期執行的做的工作大致相同,所以可以使用同一個微程式,但執行週期完成的工作各不相同所以要設計不同的微指令。

2)具體的執行過程?

1⃣️ 取到一條指令之後會放到IR中,將其中的OP碼送入微地址形成部件

2⃣️ 微地址形成部件會根據OP碼、定址特徵位決定微程式的入口地址

3⃣️ 送入CMAR,通過CMAR的地址從CM中取出微指令(分為控制訊號和下地址欄位),控制訊號(經過譯碼)輸出稱為微命令

4⃣️ 下地址欄位決定下一條執行的微指令的地址。

5⃣️ 當本段微程式執行完畢之後需要通過微地址形成部件(+OP)決定下一段的微程式的地址。

 3)與指令相同,微指令也需要設計編碼方式(即OP碼的設計):

1⃣️ 直接編碼:每一位直接代表一個微命令(不進行譯碼)

2⃣️ 欄位直接編碼:互斥同段,相容不同段需要進行譯碼

3⃣️ 欄位間接編碼:可以進一步縮短字長,一段依賴於另一段的解釋,所以譯碼更慢

 

6,指令流水線

將一條指令分為多個子過程,如五段式指令流水:

IF(取值)、ID(譯碼)、EX(執行)、 M(訪存)、WB(寫回)。

影響流水線執行的因素:

1)資料相關:屬於同步問題,等待前一條指令執行完畢之後才能執行下一條

解決方法:

暫停延後(Stall,NOP指令)

資料旁路(上一條指令的結果從ALU出來之後直接作為本條指令的輸入資料寫入ALU的輸入端)

編譯優化:調整指令順序

2)結構相關:同一時刻爭用同一資源

解決方法:新增資源或等待一個時鐘週期

3)控制相關:經過轉移指令或者中斷改變了PC的值,從而執行了不需要執行的指令

解決方法:

分支預測:預測將要轉移的線路

預取:提前取出轉移成功與不成果兩條線路上的指令。

加快、提前形成條件碼

提高猜準率