请参见设置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)