需要帮助向 MIPS 单周期数据路径添加更多功能

发布于 2024-12-05 17:44:38 字数 212 浏览 1 评论 0原文

我正在尝试向以下内容添加 jal 功能,但我不知道它是如何工作的。我知道它将旧的 PC+4 值存储在 $ra 寄存器中,然后将控制权转移到通过 return $ra 传回控制权的函数 但是我如何在硬件中实现它呢? 在此处输入图像描述

I am trying to add jal functionality to the following but I am stuck with how does it work. I know that it stores the old PC+4 value in the $ra register and then transfers the control to the function which transfers back the control by return $ra but how do I implement it in the hardware?
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

打小就很酷 2024-12-12 17:44:38

您需要做两件事。

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

There are two things you need to do.

  1. Add a mux at the input of the Registers so that the PC+4 value can be selected as the data to be written. With the appropriate control signal this will allow you to write PC+4 as an additional effect of the "jal $ra" instruction.
  2. Implement the return "jr $ra" instruction. You will need to add a mux to the chain of logic that selects the next PC so that "read data 1" from the register file can be selected as the next PC when the instruction is "jr xxx".
甚是思念 2024-12-12 17:44:38

在此处输入图像描述
我们添加一个新行,它获取 PC+4 并将其发送到寄存器文件的“写入数据”输入。我们需要添加一个多路复用器。我们还需要确保“写入寄存器”字段设置为 $RA 的地址。寄存器 $RA 大多数时候是寄存器号 31。

enter image description here
We ad a new line that takes the PC+4 and sends it to the "Write Data" input of the register file. We need to add a multiplexer. We also need to make sure the "Write Register" field is set to the address of $RA. Register $RA is register number 31 most of the time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文