首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展MIPS数据路径以实现SLL和SRL

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

Stack Overflow用户
提问于 2015-10-26 04:07:54
回答 3查看 13.1K关注 0票数 3

下面是数据路径:

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

这是我想要做的,但我不完全确定:

它将需要另一个多路复用器来读取寄存器堆旁边的数据1。该多路复用器将读取数据1 (rs)和读取数据2 (rt)作为输入。如果我们不进行移位操作,它将选择Read data 1,如果我们正在进行移位操作,它将选择rt (因为sl1和sr1使用rt,而不是rs)。然后这将被馈送到ALU。

接下来,我们需要将指令10:6从指令15:0分支出来,然后将指令10:6馈送到算术逻辑单元的另一个端口。这是正确的想法吗?

EN

回答 3

Stack Overflow用户

发布于 2017-02-24 03:05:13

这是单周期数据路径上的sll,但我不确定ALU现在是否获得5位而不是4位控制输入。如果你做了sll,那么第一个ALU输入将是shamt,第二个是要移位的寄存器,ALU知道它是否因为指令字段而必须移位,因为它是一条R型指令。然后将移位后的数据保存在rd寄存器中。SLL SC datapath

票数 3
EN

Stack Overflow用户

发布于 2015-12-05 09:03:50

您需要修改SLL指令的数据路径,向带有"shamt“字段的ALU添加一条输入行,以确定去移位量。算术逻辑单元将通过ALUop字段来识别SLL操作。Modiffied datapath

票数 2
EN

Stack Overflow用户

发布于 2019-03-27 11:21:33

你的方向是正确的。如其中一个答案所述,可以向ALU添加一个额外的端口,该端口将考虑shamt量(位10:6)。可以有一些内部硬件,例如ALU中的MUX,其负责从寄存器文件的输出选择shamt字段或读取数据2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33334521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档