证明第 k 级流水线最多比非流水线快 k 倍
Proving that a k stage pipeline can be at most k times faster than that of a nonpipelined one
我大致(抽象地)理解了为什么管道比非管道快 k
倍(像这样):
- K级流水线将电路分成k个部分。
- 每一级都有相同的晶体管延迟(理想情况下)
- 所以它快了 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
命令的时间。
希望说得更清楚!
我大致(抽象地)理解了为什么管道比非管道快 k
倍(像这样):
- K级流水线将电路分成k个部分。
- 每一级都有相同的晶体管延迟(理想情况下)
- 所以它快了 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
命令的时间。
希望说得更清楚!