-
指令寄存器
鎖定
指令寄存器(IR,Instruction Register),用於暫存當前正在執行的指令。指令寄存器的時鐘信號是clk,在clk的上升沿觸發。指令寄存器將數據總線送來的指令存入16位的寄存器中,但並不是每次數據總線上的數據都需要寄存,因為數據總線上有時傳輸指令,有時傳輸數據。由CPU狀態控制器的 Ir_ena信號控制數據是否需要寄存。復位時,指令寄存器被清零
[1]
。
根據指令在存貯器中的地址(由指令地址計數器給出),把指令從存貯器中取出來之後,需要有一個專門用於存放指令的地方,以便對指令進行分析和執行。這個專門存放現行指令的部件就叫做指令寄存器。指令寄存器的位數應滿足指令長度的要求
[2]
。
指令寄存器與CPU的8根數據總線相連接。當程序計數器訪問存儲器地址時,存儲在該地址單元內的信息經8位數據總線送出,並儲存在指令存器中
[3]
。
指令寄存器屬性描述
BSDL語言中有一個重要的描述,即指令寄存器(Instruclion Register),它是由一些強制的、可選的和用户自定義的指令集合而成。關於這個指令寄存器的屬性描述,必須包含5個要素:指令寄存器的長度、各種指令的名稱、對應的操作碼、指令寄存器的捕獲操作碼以及哪些指令是內部的
[4]
。
指令寄存器取指過程
指令寄存器原理
指令寄存器可以在移入一條新的指令的同時,將當前指令保持在它的輸出端口。可用這個寄存器來指定所要執行的操作和選擇測試數據寄存器。當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頁