【问题标题】:Change to the multiple-cycle implementation that alters the register file so that it has only one read port更改为更改寄存器文件的多周期实现,使其只有一个读取端口
【发布时间】:2021-03-21 15:42:13
【问题描述】:

单读端口:

对于sw指令,在第3个周期RegRead不需要设置为1;

【问题讨论】:

  • 不清楚你在问什么。您提到了标题的更改以及问题中的特定类型的更改,但我没有看到更多。此外,这可能不是编程问题。请阅读How to Ask
  • 我在哪里可以问这个问题?涉及多周期数据路径的理论。有了照片,问题就更容易理解了
  • 有关 cpu-architecture / cpu-design 的问题可以在 Stack Overflow (@ThomasJager) 上讨论。这个问题的问题不是主题,而是缺乏细节和清晰度,并且缺乏任何尝试看起来像家庭作业问题的证据。 (How do I ask and answer homework questions?)

标签: assembly mips cpu-architecture


【解决方案1】:

sw 指令有两个寄存器源,add 指令也是如此。

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

但是sw只需要在ID阶段获得rs(以及imm),以便在下一阶段(EX)中添加。获取rt 寄存器(Write Data 的值)可以延迟到 EX 阶段,因为实际的存储直到 EX 之后的下一个阶段,即 MEM 阶段才会发生。

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

此外,这种方法仅适用于多周期机器,但流水线机器需要其他方法,因为所有阶段(流水线阶段)都重叠 - 将一条指令的读取分散到多个周期并不会减轻负载在注册文件上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 2016-04-07
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多