基於計算機組成原理(第2版)唐朔飛編著
第7章 指令系統
全部機器指令的集合稱爲機器的指令系統
指令由操作碼和地址碼兩部分組成
操作碼的長度可以是固定的,也可以是變化的。通常採用擴展操作碼技術,使操作碼的長度隨地址數的減少而增加,不同地址數的指令可以具有不同長度的操作碼,從而在滿足需要的前提下,有效的縮短指令字長。
地址碼:
(1)四地址指令
其中OP爲操作碼;A1爲第一操作數地址;A2爲第二操作數地址;A3爲結果地址;A4爲下一條指令的地址。
(2)三地址指令
(3)二地址指令
(4)一地址指令
(5)零地址指令
指令字長取決於操作碼的長度、操作數地址的長度和操作數地址的個數。
機器中常見的操作數類型有地址、數字、字符、邏輯數據等。
通常計算機中的數據存放在存儲器或寄存器中,而寄存器的位數便可反映機器字長。一般機器字長取字節的1、2、4、8倍,便於字符處理。
操作類型:
- 數據傳送
- 算術邏輯操作
- 移位
- 轉移
- 輸入輸出
- 其它
尋址方式
尋址方式分爲指令尋址和數據尋址兩大類
指令尋址分爲順序尋址和跳躍尋址
數據尋址:
-
立即尋址
-
直接尋址
EA=A
-
隱含尋址
-
間接尋址
EA=(A)
-
寄存器尋址
EA=Ri
其操作數在由Ri所指的寄存器內。由於操作數不在主存中,故寄存器尋址在指令執行階段無須訪存,減少了執行時間。由於地址字段只需指明寄存器編號(計算機中寄存器數有限),故指令字較短,節省了存儲空間。因此在計算機中得到廣泛應用。 -
寄存器間接尋址
EA=(Ri)
-
基址尋址
EA=A+(BR)
-
變址尋址
EA=A+(IX)
-
相對尋址
EA=(PC)+A
-
堆棧尋址
RISC 精簡指令集計算機
CISC 複雜指令集計算機
第8章 CPU的結構和功能
CPU實質包括運算器和控制器兩大部分
控制器的基本功能爲:取指令、分析指令、執行指令
CPU必須具有控制程序的順序執行(指令控制),產生完成每條指令所需的控制命令(操作控制),對各種操作加以時間上的控制(時間控制),對數據進行算術運算和邏輯運算(數據加工)以及處理中斷等功能。
CPU中寄存器大之可分兩類,一類屬於用戶可見寄存器,用戶可對這類寄存器編程,以及通過優化使CPU因使用這類寄存器而減少對主存的訪問次數;另一類屬於控制和狀態寄存器,用戶不可對這類寄存器編程。
- 用戶可見的寄存器:
(1)通用寄存器
(2)數據寄存器
(3)地址寄存器
(4)條件碼寄存器 - 控制和狀態寄存器
①MAR:存儲器地址寄存器
②MDR:存儲器數據寄存器
③PC:程序計數器,存放現行指令的地址
④IR:指令寄存器,存放當前欲執行的指令
控制單元CU是提供完成計算機全部指令操作的微操作命令序列部件。
CPU每取出並執行一條指令所需的全部時間稱爲指令週期。
五級流水線:取指(IF)、譯碼(ID)、執行(EX)、訪存(MEM)、寫回(WB)
相關:
- 結構相關
指令在重疊執行的過程中,不同指令爭用同一功能部件產生資源衝突 - 數據相關
流水線中的各條指令因重疊操作,可能改變對操作數的讀寫的訪問順序
數據相關衝突可分爲寫後讀相關、讀後寫相關和寫後寫相關 - 控制相關
控制相關主要由轉移指令引起。
流水線
性能通常用吞吐率、加速比和效率3項指標來衡量。
- 吞吐率
最大吞吐率:
實際吞吐率:
僅當n>>m時,纔會有≈ - 加速比
當流水線各段時間相等時,其最大加速比等於流水線的段數 - 效率
中斷
引起中斷的各種因素:
- 人爲設置的中斷
- 程序性事故
- 硬件故障
- I/O設備
- 外部事件
中斷服務程序入口地址的尋找:硬件向量法和軟件查詢法
中斷隱指令:
CPU響應中斷後即進入中斷週期。在中斷週期內,CPU要自動完成一系列操作:
(1)保護程序斷點
(2)尋找中斷服務程序的入口地址
(3)關中斷
上述操作都是在中斷週期內由一條中斷隱指令完成的。所謂中斷隱指令,即在機器指令系統中沒有的指令,它是CPU在中斷週期內由硬件自動完成的一條指令。