Mips ID上的原始暂停

Mips ID上的原始暂停,mips,Mips,好的,关于MIPs的问题,转发被禁用。如果有两个说明代表原始危险,实际发生了什么 说明1开始它通过管道的旅程。指令2被提取、解码并识别危险。在将数据写回寄存器文件之前,ID无法从所需寄存器读取数据 我认为ID启动,并且由于危险,指令暂停(适当命名),ID与此处确定的指令1的WB同时完成: 指令1 | IF | ID | EX | MEM | WB 指令2——如果——ID——ID完成——EX——MEM——WB 因此,我与一位人士交谈,他告诉我,情况如下: IF-ID-EX-MEM-WB \uuuu

好的,关于MIPs的问题,转发被禁用。如果有两个说明代表原始危险,实际发生了什么

说明1开始它通过管道的旅程。指令2被提取、解码并识别危险。在将数据写回寄存器文件之前,ID无法从所需寄存器读取数据

我认为ID启动,并且由于危险,指令暂停(适当命名),ID与此处确定的指令1的WB同时完成:

指令1 | IF | ID | EX | MEM | WB 指令2——如果——ID——ID完成——EX——MEM——WB 因此,我与一位人士交谈,他告诉我,情况如下:

IF-ID-EX-MEM-WB \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu (ID与WB对齐)

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

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


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

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

事实上,这两种方法都已经实施,第二种方法今天可能更为可行。考虑一个超级标量机,其中有多条流水线,比如4条,并行执行——在这种情况下,指令可以在适当的功能单元的窗口中等待,直到计算出操作数,这更类似于您提出的第二种方案。