1

好的,关于 MIP 的问题,转发被禁用。如果有两条指令代表 RAW 危险,实际发生了什么?

指令 1 开始了它通过管道的旅程。指令 2 被提取、解码并识别出危险。ID 无法从所需的寄存器中读取数据,直到数据被写回寄存器文件。

我相信 ID 开始并且由于危险,指令停止(如适当命名)并且 ID 与指令 1 的 WB 同时完成,如下所示:

安装 1 | 中频 | 身份证 | 前 | 记忆 | 世界银行

安装 2 | -- | 中频 | 身份证 | -----> | ID 完成 | 前 | 记忆 | 世界银行

所以我和一个人交谈,他告诉我它会是这样的:

IF-ID-EX-MEM-WB

__ _ __ _ __ _IF-ID-EX-MEM-WB

(ID与WB对齐)

这意味着当解码时它发现数据还没有准备好,所以它被 nop'ed,并且再次获取相同的指令。由于 PC 已经检索到指令 3(不太确定管道将如何备份),因此对于 PC 会发生什么确实没有答案

对我来说,禁用/启用某些阶段的时钟更有意义,因为这似乎会使指令保持在阶段并阻止它执行。

我可以找到一些各种学术材料,但没有关于实际行为的正式内容。

4

1 回答 1

2

你的问题在这里没有很好的答案。您要问的是微架构,它涉及如何实施给定 ISA 的决策,并且可能因计算机而异。

事实上,这两种方法都已实施,今天可能更有可能采用第二种方法。考虑一个超标量机器,其中有多个并行执行的管道,比如说 4——在这种情况下,指令可能会在适当的功能单元的窗口中等待,直到计算出操作数,这更类似于您拥有的第二种情况提出了。

于 2013-10-26T18:52:34.973 回答