一、計算機的指令系統
1.機器指令的形式
計算機中的機器指令 = 操作碼 + 地址碼
1.1操作碼
操作碼 指定了要完成的操作
假設操作碼的位數為n ,則計算機最多能執行的操作類型為 2^n 種
1.2地址碼
地址碼 中 可能直接為指令的操作數 或者操作數的的地址。
根據地址碼中地址的個數分為 三地址指令、二地址指令、一地址指令、零地址指令
- 三地址指令
op addr1 addr2 addr3
執行的內容為 (addr1)op(addr2) -> (addr3) 將地址1的操作數對 地址2的操作數執行 op操作 結果保存的地址三 - 二地址指令
op addr1 addr2
執行的內容為 (addr1)op(addr2) -> (addr1/addr2) 結果保存的地址1或地址2 - 一地址指令
op addr1
執行結果報錯到原地址 addr1 如自增操作 - 零地址指令 無地址碼指令 如空操作、停機操作等操作
1.3操作的分類
- 數據傳輸操作 寄存器之間、寄存器與存儲單元、存儲單元之間的數據傳輸
- 算數邏輯操作 + - * / 與 或 非
- 移位操作
- 控制指令操作 等待指令、停機指令、空指令等
2.尋址方式
2.1指令尋址
- 順序尋址
- 跳躍尋址
假設程序存儲在CPU的寄存器中 101-104按順序執行為 順序尋址
105跳回至102為跳躍尋址
2.2數據尋址
- 立即尋址 地址碼中直接為數據 速度快 數據大小受地址碼位數限制
- 直接尋址 地址碼中存儲的為數據在主存中的地址
- 間接尋址 地址碼中存儲的為數據在主存中的地址的地址 尋址速度慢
二、控制器
控制器是CPU的主要組成部分,主要協調、控制計算機的程序運行,分為以下組成結構
1。程序計數器
用於存儲下一條指令的地址,循環從其中拿出,指令拿出時,指向下一條
2.時序發生器
電氣工程領域,發送時序脈沖,CPU根據脈沖進行有節奏的工作
3.指令譯碼器
翻譯機器指令中操作碼與地址碼
4.指令寄存器
緩存主存或者高速緩存中取到的指令,使得CPU高速運轉
5.主存地址寄存器
保存CPU正要訪問的內存單元的地址 地址總線
6.主存數據寄存器
保存CPU正要讀寫的主存數據 數據總線
7.通用寄存器
用於暫時存放或傳送數據或指令,可保存ALU的中間運算結果,容量比專用寄存器大
三、運算器
主要用於數據的加工運算
1.數據緩沖器
輸入輸出緩沖,暫時存放外設送的數據、要傳送到外設的數據
2.ALU 算術邏輯單元
常見位運算、基本運算
3.狀態字寄存器
存放運算狀態(條件碼、進位、溢出、結果正負)
存放運算控制信息(調試跟蹤標記位、允許中斷位等)
4.通用寄存器
用於暫時存放或傳送數據或指令,可保存ALU的中間運算結果,容量比專用寄存器大
四、指令執行的過程
1.取指令 2.分析指令 3.執行指令 CPU內通過片內總線進行數據傳輸,最終ALU的運算結果通過數據總線更新到內存
問題:運算器、控制器串行 效率不高
改進為並行,可以顯著提升效率,第一條指令進行分析是就可以執行取第二條指令
建設 取、分析、執行 耗時都為 t
串行執行m條 T1 = 3tm
並行執行 T2 = t*(m+2)