需要帮助才能为MIPS Single Cycle Datapath添加更多功能

时间:2011-09-18 19:22:35

标签: mips isa mips32

我正在尝试将jal功能添加到以下内容,但我不知道它是如何工作的。我知道它将旧的PC+4值存储在$ra寄存器中,然后将控件传递给函数,该函数通过返回$ra来传回控件,但是如何在硬件中实现它? enter image description here

2 个答案:

答案 0 :(得分:2)

您需要做两件事。

  1. 在寄存器的输入端添加多路复用器,以便可以选择PC + 4值作为要写入的数据。使用适当的控制信号,这将允许您编写PC + 4作为“jal $ ra”指令的附加效果。
  2. 实现返回“jr $ ra”指令。您需要在选择下一台PC的逻辑链中添加一个多路复用器,以便当指令为“jr xxx”时,可以选择寄存器文件中的“读取数据1”作为下一台PC。

答案 1 :(得分:0)

enter image description here 我们添加了一条新线路,它将PC + 4发送到"写入数据"输入寄存器文件。我们需要添加一个多路复用器。我们还需要确保"写入寄存器" field设置为$ RA的地址。寄存器$ RA大部分时间是寄存器号码31。