我大致(抽象地)理解了为什么管道比非流水线管道快一倍(就像这样):
但我无法理解这个数学表达式:
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)是流水线时间?
发布于 2018-11-07 12:12:02
您是正确的-- (k-1)*t+n*t是在管道中执行n命令的时候。
你应该这样想:
在第一个(k-1)循环(t)中,管道已被填满。之后,0赞扬已经完全执行,但是所有的管道都被填满了。
从现在开始,每个循环t都会有新的命令,它完成了(由于管道效应) ->的执行,即n*t。
总之,在(k-1)*t + n*t之后是在管道中执行n命令的时间。
希望这能让事情更清楚!
https://stackoverflow.com/questions/53187147
复制相似问题