如何在MIPS单周期数据路径中实现指令jrlti(如果小于立即数,则跳转寄存器)?

如何在MIPS单周期数据路径中实现指令jrlti(如果小于立即数,则跳转寄存器)?,mips,cpu-architecture,Mips,Cpu Architecture,我在执行jrlti指令时遇到问题。我没有权利修改ALU,所以它必须保持完整 以下是指令的定义方式: [rs]

我在执行jrlti指令时遇到问题。我没有权利修改ALU,所以它必须保持完整

以下是指令的定义方式:

[rs] 在mips单周期数据路径中处理的比较[rs]


我如何做PC=[rt]和than PC=PC+4请纠正我在尝试执行指令时所做的任何错误假设。

显然,如果使用ALU进行比较,您不能将其用于任何其他事情,因为您处于单周期架构,您必须找到另一条路径

在SrcA(RD1)和Imm16之间进行比较。因此,为了跳转而写入PC的寄存器在RD2中

目前,RD2和PC之间没有路径。只有从RD2到内存或ALU输入的路径。所以您必须在RD2和PC之间添加一条路径

有几种方法可以做到这一点,但更简单的方法是在PCBranch之后添加一个多路复用器,它将把为分支计算的地址或这个新指令的寄存器RD2驱动到PC。在这两种情况下,相同的信号(ALU比较的输出)用于控制写入PC的值

还必须使用附加信号对控制单元进行修改,以控制该多路复用器