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