【问题标题】:Proving that a k stage pipeline can be at most k times faster than that of a nonpipelined one证明一个 k 阶段的流水线最多可以比非流水线的快 k 倍
【发布时间】:2019-04-10 17:54:18
【问题描述】:

我大致(抽象地)理解为什么管道比非流水线快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) 是流水线时间?

【问题讨论】:

    标签: algorithm pipeline pipelining


    【解决方案1】:

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

    你应该这样想:

    在第一个 (k-1) 循环 (t) 中,管道正在填满。在那之后,0个commands已经被完全执行,但是所有的管道都被填满了。

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

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

    希望它更清楚!

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      相关资源
      最近更新 更多