证明k级流水线最多可以比非流水线的流水线快k倍

时间:2018-11-07 09:59:31

标签: algorithm pipeline pipelining

我大致(抽象地)理解了为什么管道比非管道化的管道快k倍(像这样):

    K级流水线将电路分为K部分。
  1. 每级具有相同的晶体管延迟(理想情况下)
  2. 所以它快了K倍。(例如在汽车工厂使用传送带系统)

但是我无法理解这个数学表达式:

clock cycle time = t 
number of command = n  
speedup = (n*k*t)/((k-1)*t+n*t) = (n*k*t)/(k*t+(n-1)*t)

if n -> infinite: speedup is k  

我不知道的是:((k-1) t + n t)是什么意思?

我只能理解(nkt)表示非流水线时间,因此我认为((k-1)*t+n*t)应该是流水线时间。

但是,为什么((k-1)*t+n*t)是流水线时间?

1 个答案:

答案 0 :(得分:3)

您是正确的-(k-1)*t+n*t是在管道中执行n命令的时间。

您应该考虑如下:

在第一个(k-1)周期(t)中,管道正在充满。在那之后,已经完全执行了0条建议,但是所有管道都被填满了。

从现在开始,每个周期t,都有一个新命令要执行(由于管道效应)-> n*t

总共(k-1)*t + n*t之后是在管道中执行n命令的时间。

希望它变得更加清晰!