证明第 k 级流水线最多比非流水线快 k 倍

Proving that a k stage pipeline can be at most k times faster than that of a nonpipelined one

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

  1. K级流水线将电路分成k个部分。
  2. 每一级都有相同的晶体管延迟(理想情况下)
  3. 所以它快了 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+nt) 是什么意思?

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

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

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

你应该这样想:

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

从现在开始,每个周期t你都会有新的命令完成执行(因为管道效应)->因此,n*t

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

希望说得更清楚!