指令寄存器檢視原始碼討論檢視歷史
指令寄存器 |
指令寄存器(IR,Instruction Register),用於暫存當前正在執行的指令。指令寄存器的時鐘信號是clk,在clk的上升沿觸發。指令寄存器將數據總線送來的指令存入16位的寄存器中,但並不是每次數據總線上的數據都需要寄存,因為數據總線上有時傳輸指令,有時傳輸數據。由CPU狀態控制器的 Ir_ena信號控制數據是否需要寄存。復位時,指令寄存器被清零。
簡介
根據指令在存貯器中的地址(由指令地址計數器給出),把指令從存貯器中取出來之後,需要有一個專門用於存放指令的地方,以便對指令進行分析和執行。這個專門存放現行指令的部件就叫做指令寄存器。指令寄存器的位數應滿足指令長度的要求。指令寄存器與CPU的8根數據總線相連接。當程序計數器訪問存儲器地址時,存儲在該地址單元內的信息經8位數據總線送出,並儲存在指令存器中。
評價
指令寄存器可以在移入一條新的指令的同時,將當前指令保持在它的輸出端口。可用這個寄存器來指定所要執行的操作和選擇測試數據寄存器。當TAP接收到一條指令寄存器掃描指令時,對指令寄存器進行讀取。在指令寄存器工作過程中,來自TAP的控制信號選擇指令寄存器的輸出驅動TDO管腳。指令寄存器的功能由三部分構成:掃描移位寄存器、保持寄存器與譯碼邏輯。掃描移位寄存器從TDI端掃描移入當前指令代碼;保持寄存器對當前指令代碼進行保持;譯碼邏輯根據當前指令代碼,產生相應的數據寄存器控制信號。三部分的運行控制信號均來自TAP控制器。[1]