在具有四(4)阶段管道的CPU中,由fetch,decode,execute和write组成 回来,每个阶段分别需要10,6,8和8 ns。以下哪一项是 CPU中近似平均指令执行时间(纳秒)(ns)?在这里, 要执行的指令数量足够大。另外,开销也是如此 流水线处理过程可以忽略不计,忽略所有危险的延迟影响。
a)6 b)8 c)10 d)32
答案是10ns。但我认为它可能是8ns,因为执行阶段需要8ns.please解释简单。谢谢
答案 0 :(得分:2)
每条指令必须通过四个阶段。一旦管道满了,指令流入和流出由最长阶段的持续时间决定:
Fetch|Decode|Exec|Write|
10ns | 6ns |8ns | 8ns |
-----+------+----+-----+
I7 I6 I5 --> I4 : I3 : I2 : I1 --> out
-----+------+----+-----+
I1..I7 are instructions. I1..I4 are in the pipeline, I5..I7 are
waiting to enter the pipeline.
6ns之后I3准备从Decode移动到Exec,但不能因为阶段Exec仍然被I2占用
经过2ns(总共8ns)后,I1移出Write,I2从Exec移到Write,I3最终从Decode移到Exec
I4仍在阻止抓取,因此I5无法进入
经过2ns(总共10ns)后,I4从Fetch移动到Exec,I5可以进入。
你看到管道一直停止,直到最长的阶段完成;每10ns一条指令进入管道。 (Decode阶段将占空闲时间的40%,Exec和Write阶段占20%的时间。)
答案 1 :(得分:1)
在流水线情况下,“输出产生的速率”由最慢的阶段决定。管道的其余部分工作的速度无关紧要,速率解码器的操作受到限制。因此,我们可以预期管道每10 ns产生一次输出。 “产生输出的速率”可以解释为平均执行时间。所以10 ns。