超标量MIPS管道中的nops

时间:2014-07-13 22:14:20

标签: mips cpu-architecture

完全披露:这与家庭作业问题有关,但本身并不是一个家庭作业问题(如果有意义的话)。

假设我有以下MIPS代码:

100 addi $1, $0, 1
104 nop
108 addi $2, $0, 2
112 addi $3, $0, 3

我在超标量数据路径上运行它,每个循环加载两条指令。根据我对超标量流水线的了解,我想说在第一周期,处理器将获取指令100和104.

我还会说在100/104执行完之前的某个时刻,CPU会获取指令108和112.现在,如果指令104不是nop,我会说这会发生在第2周期(抛开复杂性,如停滞)。但是,它是一个nop的事实让我停下来。

我有两个问题:

  1. 我是否正确处理器将在同一周期内同时获取100和104?换句话说,超标量处理器通常在获取nop指令方面有任何特殊处理吗?

  2. 假设我的假设是正确的:将在第2周期或第3周期中取出指令108和112吗?

  3. 我怀疑答案是第2周期。虽然nop的意图是延迟执行下一条指令,但它只是做了一些空的工作。我怀疑该过程只是与指令100并行执行指令,然后在下一个周期中取指令108和112.

0 个答案:

没有答案