【问题标题】:MIPS - Forwarding in static multiple-issueMIPS - 静态多问题转发
【发布时间】:2017-11-14 10:50:05
【问题描述】:

在 MIPS 的静态双问题流水线中,我可以使用在同一时钟周期中运行两条指令的转发路径吗?

例如:

1. add $t0, $t0, $t1 2. sw $t0, 0($t2)

我可以在同一个时钟周期执行这两条指令吗? sw 在执行 MEM 阶段时可以使用 add 的结果值。

对吗?

【问题讨论】:

  • 如果您可以在正确的时间获得正确的数据并且不插入任何气泡(尽管这只会影响性能),那么我认为实现该转发路径没有任何问题。

标签: mips pipeline cpu-architecture


【解决方案1】:

如果考虑典型的 5 级管道(IF、ID、EX、MEM、WB),ADD 的输出将在EX -> MEM 接口上可用。对于SW指令的MEM阶段,它需要内存地址0 + ($t2)和应该在$t0中的数据。但是$t0 还没有更新,因为管道还没有达到WB 阶段。然而,应该写入$t0 的值在EX->MEM 阶段可用。因此,您可以在这种情况下使用转发来执行SW指令,而无需等待ADD完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    相关资源
    最近更新 更多