根据此图,执行AND指令会将这些值分配给标记为蓝色的信号:
RegWrite = 1
ALUSrc = 0
ALU operation = 0000
MemRead = 0
MemWrite = 0
MemtoReg = 0
PCSrc =0
但是,我有点困惑哪些输入将用于寄存器块?任何人都可以描述MIPS数据路径中的整体AND过程吗?
答案 0 :(得分:1)
从指令存储器读取指令后,您需要知道AND
是一个r型指令,因此使用3个寄存器。实际使用哪个寄存器是基于编码指令。 (R-Type有3个5位字段,每个寄存器一个。)rs
和rt
转到读寄存器1和2,而rd
转到写寄存器。从那里,读数据1和2(寄存器s和t的位)进入ALU,在ALU上对它们执行按位AND
。结果写入写寄存器。我追踪了你图片中的路径(省略了PC增量部分)。我这个学期上了一堂课使用那本精确的书。如果你看起来有点前进,它会更深入地了解正在发生的事情。控制(蓝色)线的解释有很多帮助。多路复用器模块是多路复用器,即它们允许在两个输入之间交替输出。在这种情况下,ALUSrc mux将使用读数据2,因为AND
是r型。如果它是i-type,它将切换到使用来自符号扩展的数据,因为那将是直接的。另一个多路复用器允许将来自数据的存储器写入写寄存器或ALU操作的结果。在这种情况下,它将是ALU操作的结果。
答案 1 :(得分:0)
要暗示回答有关寄存器块的问题,请记住寄存器块的输入是指令将使用的寄存器的地址,寄存器块然后取出数据在寄存器中给出了哪个地址,或者在该寄存器的末尾写入数据。
然而,有一点请注意,你的mux设计中存在不一致性,MemtoReg和ALUSrc应该具有相反的值,因此,除非其中一个多路复用器是颠倒的(这是不可取的),否则控制器逻辑会出错。