扩展MIPS数据路径以实现SLL和SRL

时间:2015-10-25 20:07:54

标签: mips sll srl

这是数据路径:

所以这似乎是一个非常常见的问题,但我似乎无法找到有关如何扩展数据路径以实现SLL和SRL的任何答案。

这就是我想的方式,但我并不完全确定:

在寄存器文件旁边的Read data 1旁边需要另一个多路复用器。该多路复用器将读取数据1(rs)和读取数据2(rt)作为输入。如果我们没有进行换档操作,它会选择读取数据1,如果我们正在进行换档操作,它将选择rt(因为sll和srl使用rt,而不是rs)。然后将其输入ALU。

接下来,我们需要从指令[15:0]分支指令[10:6](移位量),然后将指令[10:6]馈送到ALU的另一个端口。这是正确的想法吗?

2 个答案:

答案 0 :(得分:1)

您需要修改SLL指令的数据路径,使用" shamt"向ALU添加输入行。字段以确定de shift量。 ALU将通过ALUop字段识别SLL操作。 Modiffied datapath

答案 1 :(得分:0)

您正在朝正确的方向前进。如答案之一所述,可以在ALU中添加一个额外端口,该端口将考虑不足量(位[10:6])。在ALU中可能有一些内部硬件,例如MUX,它会从寄存器文件的输出中选择shamt字段或Read Data 2。