Assembly 更改为多周期实现,更改寄存器文件,使其只有一个读取端口

Assembly 更改为多周期实现,更改寄存器文件,使其只有一个读取端口,assembly,mips,cpu-architecture,Assembly,Mips,Cpu Architecture,单读取端口: 对于sw指令,在第3个循环中,重新研磨不需要设置为1 与add指令一样,sw指令有两个寄存器源 add需要在ID阶段获取两个源(如果是多周期,则为周期;如果是流水线,则为阶段),以便在下一阶段添加它们的值,例如 但是sw只需要在ID阶段获得rs(以及imm),这样就可以在下一阶段(EX)中添加它们。获取rt寄存器(写入数据的值)可以延迟到EX阶段,因为实际存储直到EX之后的下一阶段,即MEM阶段才会发生 因此,虽然延迟读取rt可以将寄存器文件上的读取端口减少到sw指令的一个,但对a

单读取端口:


对于sw指令,在第3个循环中,重新研磨不需要设置为1

add
指令一样,
sw
指令有两个寄存器源

add
需要在ID阶段获取两个源(如果是多周期,则为周期;如果是流水线,则为阶段),以便在下一阶段添加它们的值,例如

但是
sw
只需要在ID阶段获得
rs
(以及
imm
),这样就可以在下一阶段(EX)中添加它们。获取
rt
寄存器(写入数据的值)可以延迟到EX阶段,因为实际存储直到EX之后的下一阶段,即MEM阶段才会发生

因此,虽然延迟读取
rt
可以将寄存器文件上的读取端口减少到
sw
指令的一个,但对
add
指令没有任何作用-为了将所有指令的读取端口减少到一个,我们必须插入一个额外的阶段


此外,这种方法只适用于多周期机器,但流水线机器需要一些其他方法,因为所有阶段(流水线阶段)重叠-将一条指令的读取扩展到多个周期不会减轻寄存器文件的负载。

不清楚您在问什么。你提到了你的标题的变化,以及你的问题中的特定类型的变化,但我没有看到更多的变化。此外,这可能不是一个编程问题。请阅读。我在哪里可以问这个问题?关注多循环数据路径的理论。有了这张照片,这个问题变得更容易理解了。关于cpu架构/cpu设计的问题可以在堆栈溢出(@ThomasJager)上找到。这个问题的问题不是主题,而是缺乏细节和清晰性,也没有证据表明有人试图提出一个家庭作业问题。()