所以我要复习计算机组织期末考试的一些旧测验,我一定错过了这次讲座或其他什么。我在编程 MIPS 方面相当精通,但这个问题让我完全难过。有人可以帮我理解这一点吗?
1 回答
该图缺少连接处理器各个部分的线路以及用于确定下一条指令地址是来自 PC+4 还是来自jr ra
指令中的寄存器的多路复用器。
从 ALU 到寄存器文件的写入数据部分需要有一条线。这适用于 R-Type 指令,因为它们的结果需要写回目标寄存器。进入 ALU 需要来自读取数据 1 和读取数据 2 的行,这就是寄存器中的值如何进入 R 型指令的 ALU。
已经从指令存储器添加了几行到寄存器,但是您缺少写入寄存器的那一行(这指定了 R 型指令的目标寄存器)。
对于 PC,进入加法器的线进入另一个输入(上面的那个)。加法器的 4 是恒定的,因为每条指令的地址在前一条之后的 4 个字节,所以除非我们跳转到一个地址,否则我们将在当前指令之后立即执行指令。从 PC 到读取地址的线路也是必要的,因为 PC 指定在哪个指令地址处查找当前指令。进入 PC 的行要么来自 PC+4 加法的结果,要么来自指令中指定的寄存器jr ra
。
为了处理这个决定,需要一个多路复用器。多路复用器有两个输入和一个输出,因此这个输入将有一个来自 PC+4 加法器(用于常规 R 型指令),另一个来自读取数据 1(用于jr ra
指令)。来自读取数据 1 的输入应该被可视化为从读取数据 1 和 ALU 之间的线分割出来的。输出将直接返回到 PC,因为它确定要执行的下一条指令。
我认为这就是该问题所需要的一切,因为教授指定控制信号已经生成(多路复用器是一种控制单元,但我认为它仍然是必要的)。希望有帮助!