9

我正在尝试实现对单周期 MIPS 处理器的 jr(跳转寄存器)指令支持。在下图中,我绘制了一个简单的多路复用器,它允许在普通链 PC 或指令 (jr) 地址之间进行选择。

多路复用器

我怎么知道指令是 JR 将多路复用器选择设置为“1”?我已经完成了 jump 和 jump_and_link (虽然图像没有显示它,因为我现在没有我的项目),并且为了控制它们,我只需检查 OP 代码是否为 10(跳转)或11 (jal) 在主控件中,然后将 mux sel 设置为“1”。但我认为我不能对 jr 做同样的事情,因为指令布局是不同的。

4

2 回答 2

6

JR指令的操作码具有Instruction[31:26] == 0(特殊)并且Instruction[5:0] == 0x08 (JR).您需要查看这两个位位置以确定这是一条JR指令。图表上的Control块需要有一个额外的输入Instruction[5:0]. 字段rsInstruction[25:21]选择该指令的源寄存器。执行指令rs时需要分配 PC 。JR

于 2013-06-22T23:52:37.757 回答
0

我认为您可以通过在 Jump mux 之前实现 JR mux 来提高硬件性能,因为 JR mux 不依赖于 Jump sel mux 输出的 pcnext。

于 2016-10-07T07:28:55.980 回答