在多周期 MIPS 上,所有 I 型指令都采用相同的周期数吗?

Do all I-type instructions take the same number of cycles on a multi-cycle MIPS?

是否所有 I 型 MIPS 指令在多周期数据路径中采用相同的周期数?我知道R型有相同的周期数。

Do all I-type MIPS instructions take the same number of cycles in a multi-cycle datapath?

没有

首先,让我们看一下 MIPS I-Type 类别中包含的一些指令:addilw。这些都是 I 型指令 — 具有相同的 16 位立即数以及 rs 和 rt 字段。它们使用相同的字段进行解码,这就是它们都被视为 I 型指令的原因。

好的,接下来,让我们看看多周期处理器。这不是流水线处理器,但一般来说,在等效的流水线版本中,每个阶段都有一个周期。

虽然我们通常会发现流水线处理器在相同兆赫兹下的性能更优,但多周期处理器实现优于流水线处理器实现的一个优势是可以跳过不需要的“阶段”(跳过一个周期不是由于指令执行重叠,在流水线处理器中可行;而多周期处理器不重叠指令执行)。

因此,在 IF、ID、EX、MEM、WB 阶段中,addi 不需要或利用 MEM 阶段,因此不跳过该循环是愚蠢的,使得 addi 一个 4 周期指令。

但是,lw 确实需要 MEM 阶段(因此所有阶段),因此它将比 addi 长 1 个周期。