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

时间:2019-04-16 15:34:41

标签: mips cpu-architecture

我无法执行指令jrlti。我无权修改ALU,因此它必须保持完整。

以下是指令的定义方式:

[rs]

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

This is the standard datapath I'm using

This is what I tried to do

我该怎么做PC = [rt]而不是PC = PC + 4请尝试纠正我在尝试执行指令时所做的任何错误假设。

1 个答案:

答案 0 :(得分:1)

很明显,如果使用ALU进行比较,则不能像在单周期体系结构中那样将其用于其他任何事情,并且必须找到其他路径。

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

RD2和PC之间目前没有路径。 RD2的唯一路径通往存储器或ALU的输入。因此,您必须在RD2和PC之间添加路径。

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

还必须在控制单元上进行附加信号的修改,以控制此多路复用器。

相关问题