【问题标题】:CPU Pipeline: How to find average instruction execution timeCPU 流水线:如何找到平均指令执行时间
【发布时间】:2017-06-02 07:01:06
【问题描述】:

在具有由获取、解码、执行和写入组成的四 (4) 级管道的 CPU 中 后面,每个阶段分别需要 10、6、8 和 8 ns。以下哪一项是 CPU 中以纳秒 (ns) 为单位的近似平均指令执行时间?在这里, 要执行的指令数量足够多。此外,开销为 流水线过程可以忽略不计,并且忽略所有危险的延迟影响。

a) 6 b) 8 三)10 d) 32

答案是 10ns。但我认为它可能是 8ns,因为执行阶段需要 8ns。请简单解释一下。谢谢

【问题讨论】:

    标签: pipeline cpu-architecture


    【解决方案1】:

    每条指令都必须经过四个阶段。一旦流水线满了,指令的进出流由最长阶段的持续时间决定:

                 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还在阻塞Fetch,所以I5无法进入

    • 再过 2ns(总共 10ns)后,I4 从 Fetch 移动到 Exec,并且 I5 可以进入。

    您会看到管道停止,直到最长的阶段完成;每 10ns 一条指令进入流水线。 (Decode 阶段将有 40% 的时间空闲,Exec 和 Write 阶段有 20% 的时间。)

    【讨论】:

      【解决方案2】:

      在流水线的情况下,“产生输出的速率”由最慢的阶段决定。不管管道的其余部分工作多快,事情都受速率解码器操作的约束。因此,我们可以期望流水线每 10 ns 产生一个输出。 “产生输出的速率”可以解释为平均执行时间。所以它是 10 ns。

      【讨论】:

        猜你喜欢
        • 2014-01-06
        • 2016-09-21
        • 2023-03-07
        • 2013-09-08
        • 2011-04-15
        • 2015-12-17
        • 2017-04-15
        • 1970-01-01
        • 2012-09-06
        相关资源
        最近更新 更多