計算機組成原理考研複試複習-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的值,從而執行了不需要執行的指令
解決方法:
分支預測:預測將要轉移的線路
預取:提前取出轉移成功與不成果兩條線路上的指令。
加快、提前形成條件碼
提高猜準率