複製鏈接
請複製以下鏈接發送給好友

指令寄存器

鎖定
指令寄存器(IR,Instruction Register),用於暫存當前正在執行的指令。指令寄存器的時鐘信號是clk,在clk的上升沿觸發。指令寄存器將數據總線送來的指令存入16位的寄存器中,但並不是每次數據總線上的數據都需要寄存,因為數據總線上有時傳輸指令,有時傳輸數據。由CPU狀態控制器的 Ir_ena信號控制數據是否需要寄存。復位時,指令寄存器被清零 [1] 
根據指令在存貯器中的地址(由指令地址計數器給出),把指令從存貯器中取出來之後,需要有一個專門用於存放指令的地方,以便對指令進行分析和執行。這個專門存放現行指令的部件就叫做指令寄存器。指令寄存器的位數應滿足指令長度的要求 [2] 
指令寄存器與CPU的8根數據總線相連接。當程序計數器訪問存儲器地址時,存儲在該地址單元內的信息經8位數據總線送出,並儲存在指令存器中 [3] 
中文名
指令寄存器 [1] 
外文名
Instruction Register [1] 
所屬類別
計算機硬件 [1] 
簡    稱
IR [1] 
含    義
臨時放置從內存裏面取得的程序指令的寄存器 [1] 
領    域
數理科學 [1] 

指令寄存器屬性描述

BSDL語言中有一個重要的描述,即指令寄存器(Instruclion Register),它是由一些強制的、可選的和用户自定義的指令集合而成。關於這個指令寄存器的屬性描述,必須包含5個要素:指令寄存器的長度、各種指令的名稱、對應的操作碼、指令寄存器的捕獲操作碼以及哪些指令是內部的 [4] 

指令寄存器取指過程

取指令階段完成的任務是將現行指令從主存中取出來並送至指令寄存器中,具體的操作如下: [5] 
1、將程序計數器(PC)中的內容送至存儲器地址寄存器(MAR),並送地址總線(AB) [5] 
2、由控制單元(CU)經控制總線(CB)向存儲器發讀命令 [5] 
3、從主存中取出的指令通過數據總線(DB)送到存儲器數據寄存器(MDR) [5] 
4、將MDR的內容送至指令寄存器(R)中 [5] 
5、將PC的內容遞增,為取下一條指令做好準備 [5] 
以上這些操作對任何一條指令來説都是必須要執行的操作,所以稱為公共操作 [5] 

指令寄存器原理

指令寄存器可以在移入一條新的指令的同時,將當前指令保持在它的輸出端口。可用這個寄存器來指定所要執行的操作和選擇測試數據寄存器。當TAP接收到一條指令寄存器掃描指令時,對指令寄存器進行讀取。在指令寄存器工作過程中,來自TAP的控制信號選擇指令寄存器的輸出驅動TDO管腳 [6] 
指令寄存器的功能由三部分構成:掃描移位寄存器、保持寄存器與譯碼邏輯。掃描移位寄存器從TDI端掃描移入當前指令代碼;保持寄存器對當前指令代碼進行保持;譯碼邏輯根據當前指令代碼,產生相應的數據寄存器控制信號。三部分的運行控制信號均來自TAP控制器 [6] 

指令寄存器概念區分

IP是指令指針寄存器(Instruction Pointer),它用來存放待要取出指令的地址偏移量。它只有與CS寄存器相結合,才能形成指向指令的真正物理地址 [7] 
參考資料
  • 1.    康磊,張燕燕主編,Verilog HDL數字系統設計 原理、實例及仿真,西安電子科技大學出版社,2012.03,第227頁
  • 2.    倪永仁著,電子數字計算機基本組成原理,廣東科技出版社,1984.05,第150頁
  • 3.    姚源金編譯,微型計算機的故障尋跡與修理,福建科學技術出版社,1987.03,第230頁-第231頁
  • 4.    譚劍波編著,邊界掃描測試技術,國防工業出版社,2013.12,第41頁
  • 5.    馬海峯,張雨主編,計算機組成原理,哈爾濱工業大學出版社,2009.08,第90頁
  • 6.    譚劍波編著,邊界掃描測試技術,國防工業出版社,2013.12,第196頁
  • 7.    李兆鳳編,8088/8086彙編語言程序設計,中央廣播電視大學出版社,1993.10,第13頁