mips - 对单周期MIPS实现跳转寄存器控制

标签 mips processor organization circuit

我正在尝试为单周期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/

相关文章:

interpreter - 机器代码如何与处理器通信?

assembly - 计算 Intel 8086 的时钟周期

Scala 项目组织

assembly - itoa 负数?

assembly - 如何执行 MIPSEB-LE ECOFF 可执行文件?

MIPS 流水线问题

mysql - 在 phpMyAdmin 中使用文件夹组织数据库

assembly - MIPS - 按数值移位寄存器值

intel - Inte的CPU微架构中的fast LEA和slow LEA unit是什么意思?

c++ - 何时不在 C 中创建单独的接口(interface) (.h) 和实现 (.c)?