指令寄存器

更新时间:2023-11-17 21:04

指令寄存器(IR,Instruction Register),用于暂存当前正在执行的指令。指令寄存器的时钟信号是clk,在clk的上升沿触发。指令寄存器将数据总线送来的指令存入16位的寄存器中,但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的 Ir_ena信号控制数据是否需要寄存。复位时,指令寄存器被清零。

属性描述

BSDL语言中有一个重要的描述,即指令寄存器(Instruclion Register),它是由一些强制的、可选的和用户自定义的指令集合而成。关于这个指令寄存器的属性描述,必须包含5个要素:指令寄存器的长度、各种指令的名称、对应的操作码、指令寄存器的捕获操作码以及哪些指令是内部的。

取指过程

取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中,具体的操作如下:

1、将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB)。

2、由控制单元(CU)经控制总线(CB)向存储器发读命令。

3、从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR)。

4、将MDR的内容送至指令寄存器(R)中。

5、将PC的内容递增,为取下一条指令做好准备。

以上这些操作对任何一条指令来说都是必须要执行的操作,所以称为公共操作。

原理

指令寄存器可以在移入一条新的指令的同时,将当前指令保持在它的输出端口。可用这个寄存器来指定所要执行的操作和选择测试数据寄存器。当TAP接收到一条指令寄存器扫描指令时,对指令寄存器进行读取。在指令寄存器工作过程中,来自TAP的控制信号选择指令寄存器的输出驱动TDO管脚。

指令寄存器的功能由三部分构成:扫描移位寄存器、保持寄存器与译码逻辑。扫描移位寄存器从TDI端扫描移入当前指令代码;保持寄存器对当前指令代码进行保持;译码逻辑根据当前指令代码,产生相应的数据寄存器控制信号。三部分的运行控制信号均来自TAP控制器。

概念区分

IP是指令指针寄存器(Instruction Pointer),它用来存放待要取出指令的地址偏移量。它只有与CS寄存器相结合,才能形成指向指令的真正物理地址。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}