【发布时间】:2021-10-09 16:21:48
【问题描述】:
我正在处理与处理器有关的问题。题为《计算机组织与设计(第6版)》一书中的问题4.12。问题有如下假设: 这是一个图像 图 4.45
这个问题的答案是 MEM/WB 的停顿周期数(CPI 为 1.35)比 EX/MEM(CPI 为 1.45)少。我对这个答案的解释感到很困惑。 它指出:
仅从 EX/MEM 寄存器转发,EX 到第一个依赖项 可以在没有停顿的情况下得到满足,但没有任何其他依赖(即使 连同 EX 到第 1) 招致一个周期的停顿。仅转发自 MEM/WB 寄存器,EX 到第二个依赖项不会产生停顿。 MEM 到 1 依赖仍然会导致一个周期的停顿,现在 EX 到第一个依赖 导致一个停顿周期,因为我们必须等待指令完成 MEM阶段能够转发到下一条指令
只用 EX/MEM 流水线寄存器,EX 到 1st 是正确的,但是,我不能证明所有其他情况只需要一个 STALL CYCLE。例如,在 MEM 到 1st 的情况下,我认为它需要 2 个停顿周期,因为现在结果是在 MEM 阶段产生的,它没有任何 MEM/WB 流水线寄存器来保存结果并将其转发到下一条指令.因此,再加上 2 个停顿周期,就会得到正确的结果。还有一件事我想告诉你的是,在“EX 到 1 和 MEM 到 2”的情况下,在答案中,它还需要一个循环来解决这里的危险。这让我很困惑,因为它与只需要 1 个周期的“MEM to 1st”的情况相冲突。
同样在下一个只有 MEM/WB 管道寄存器的情况下。你有任何证据来解释这个答案吗?我真的很期待你对这个问题的回答
【问题讨论】:
标签: assembly architecture mips cpu-architecture pipelining