首页 > 解决方案 > 证明 ak 级流水线最多可以比非流水线的快 k 倍

问题描述

我大致(抽象地)理解为什么管道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+n t) 是什么意思?

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

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

标签: algorithmpipelinepipelining

解决方案


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

你应该这样想:

在第一个(k-1)周期 ( t) 中,管道正在填充。在那之后,0 个推荐已完全执行,但所有管道都已填满。

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

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

希望能让它更清楚!


推荐阅读