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

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

最佳答案

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

关于mips - 对单周期MIPS实现跳转寄存器控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17240710/

10-12 00:40