用于立即加载的 MIPS 管道阶段

问题描述

我知道 MIPS 中的指令有 5 个标准阶段。对于下面的伪指令

li $t1,0      # pseudo-instruction for addi $t1,$zero,0

谁能确认这是否使用了所有 5 个阶段?我认为这背后是一个 addi,但我真的不明白它是否需要使用 MEM 阶段?

我的想法是立即数存储在指令中,而不是存储在内存中,所以 WB 阶段不会进行寄存器加载吗?

解决方法

此指令将转换为 addi $t1,$0,0 或其他类似内容。

所有阶段都做了有用的工作来执行如此简单的计算指令——除了 MEM 阶段

只有加载和存储指令需要数据存储器流水线级 (MEM)。如果不是他们,我们就不会有 MEM 舞台。 (当然,我们也会有一个不能做太多事情的处理器。)