好的,关于 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 会发生什么确实没有答案
对我来说,禁用/启用某些阶段的时钟更有意义,因为这似乎会使指令保持在阶段并阻止它执行。
我可以找到一些各种学术材料,但没有关于实际行为的正式内容。