向 MIPS 添加新指令

Adding a new instruction to a MIPS

嘿,我学习软件,所以在绘制电路方面我绝对是新手,我需要在此处向此 MIPS 机器添加新指令

我必须添加的新指令 jt - jump table - 是一条指令,它可以转到内存中由两个寄存器指示的地址处的值指示的地址:

jt rs, rt # PC := mem[ R[rs] + R[rt] * 8 ]

其编码如下: • 指令[31-26]:jt

的操作码

• 指令[25-21]:rs注册号

• 指令 [20-16]:rt 注册号

• 指令 [15-11]:0

• 指令 [10-6]:0

• 指令[5-0]:0x20

有人可以向初学者(我)解释在图表上添加这样一条指令的过程吗?谢谢你的时间。

根据您的指令描述,您需要使用 R 中的寄存器作为输入将新值存储到 PC。现有架构不允许将使用寄存器 rs 和 rt 值作为输入计算的地址移动到 PC 寄存器。但是,允许将 R[rs] 和 R[rt] 的值移动到输出端口 V1 和 V2。您只需将 E(enable) 设置为 1。要进一步实施,需要添加和移位。一种简单的方法是添加一个 barrel shifter 块来移动第二个输入或 V2。 V1 和 V2*8 作为 UAL 的输入。在 UAL 中启用添加算术运算。加法器的输出进入MD的Adr输入。应启用 MD。 MD 的输出应该进入 PC。由于现在有两个以上的输入到 PC a 2:1 多路复用器之前是必需的。 控制器应生成五个控制位。一个启用R(寄存器文件),一个启用3位移位,另一个启用Adder,另一个启用MD,另一个设置PC之前的Mux控制,最后一个启用PC的LD(Load)控制。