algorithm - 证明 ak 级流水线最多可以比非流水线的快 k 倍
问题描述
我大致(抽象地)理解为什么管道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+n t) 是什么意思?
我只能理解(nkt)
意味着非流水线时间,所以我认为((k-1)*t+n*t)
应该是流水线时间。
但是,为什么((k-1)*t+n*t)
是流水线时间?
解决方案
你是对的 -是在管道(k-1)*t+n*t
中执行命令的时间。n
你应该这样想:
在第一个(k-1)
周期 ( t
) 中,管道正在填充。在那之后,0 个推荐已完全执行,但所有管道都已填满。
从现在开始,每个循环t
你都会有新的命令完成执行(由于管道效应)-> 因此,n*t
.
总的来说,after是管道(k-1)*t + n*t
中执行命令的时间。n
希望能让它更清楚!
推荐阅读
- selenium - 一个类中提到的 TestNg 注释是如何从另一个类的另一个类中执行的?
- python - 如何解释 tensorflow 中 tf.rank 的输出
- jquery - 找到最大数量的 tr
- javascript - 如何将丢失的对象添加到数组中?
- c# - Process.Start() 的可靠性然后使用 C# 关闭当前进程
- html-table - 如何将 HTML 表格转换为 PDF 并与 CSS 一起保存为 PDF - 客户端?
- html - 如何在html中禁用用户名的自动填充?
- javascript - RXJS ^5.3.0 与 AWS JS 开发工具包
- pandas - 具有时间序列的高维数据
- google-apps-script - googleappscript 中的错误