📜  计算机组织与架构|流水线|第3组(类型和停顿)

📅  最后修改于: 2021-06-28 16:38:19             🧑  作者: Mango

请参见设置1的执行,阶段和性能(吞吐量),以及设置2的依赖性和数据危害。管道类型

  • 统一延迟流水线
    在这种类型的管道中,所有阶段都将花费相同的时间来完成一个操作。
    在统一延迟流水线中,循环时间(Tp)=阶段延迟

    如果阶段之间包含缓冲器,则周期时间(Tp)=阶段延迟+缓冲器延迟

  • 非均匀延迟流水线
    在这种类型的管道中,不同的阶段花费不同的时间来完成操作。
    在这种类型的管道中,循环时间(Tp)=最大值(阶段延迟)

    例如,如果有四个具有1 ns,2 ns,3 ns和4 ns延迟的级,则

    Tp =最大值(1 ns,2 ns,3 ns,4 ns)= 4 ns

    如果阶段之间包含缓冲区,

    Tp =最大值(阶段延迟+缓冲延迟)

    示例:考虑一个具有段延迟(2 ns,8 ns,3 ns,10 ns)的4段流水线。在上述管道中找到执行100个任务所需的时间。
    解决方案:由于上述管道是非线性管道,
    Tp = max(2、8、3、10)= 10 ns
    我们知道ET管道=(k + n – 1)Tp =(4 + 100 – 1)10 ns = 1030 ns

    注意:MIPS =每秒百万条指令

停滞管道的性能

Speed Up (S) = Performancepipeline / Performancenon-pipeline
=> S = Average Execution Timenon-pipeline / Average Execution Timepipeline
=> S = CPInon-pipeline * Cycle Timenon-pipeline / CPIpipeline * Cycle Timepipeline

流水线处理器的理想CPI为“ 1”。但是由于失速,它变得大于“ 1”。
=>

S = CPInon-pipeline * Cycle Timenon-pipeline  / (1 + Number of stalls per Instruction) * Cycle Timepipeline

As Cycle Timenon-pipeline =   Cycle Timepipeline,

Speed Up (S) = CPInon-pipeline / (1 + Number of stalls per instruction)