几个概念
- 任务(token) :定义为一组输入,该组输入经过处理后能产生一组输出
- 延迟(Delay) :一个任务从开始到结束所需要的时间
- 吞吐量(throughout) :系统单位时间内产生任务的数量。
- 并行可以提高吞吐量
并行
空间并行
- 多个相同的硬件在同一时间处理多个任务
时间并行
- 任务被分配成不同的阶段
- 也被称作流水线
- 例如, 一个装配流水线
实例:烤饼干
- Ben 决定举行一个饼干party来庆祝交通灯控制器成功安装。因此要烘烤饼干,分两个步骤:
- 饼干做好并放入盘中要用5分钟
- 把饼干放入烤箱并烘烤要用15分钟
没有并行
空间并行-找人帮忙
时间并行-烤第二盘时制作第一盘
- 延迟为L的任务
- 没有并行的系统中,吞吐量为1/L
- 有并行的系统中
- 空间并行(N个相同的硬件): 吞吐量为N/L
- 时间并行(只需要一套硬件):流水线
- 任务分成等长的N个阶段):吞吐量为N/L
- 实际分成N个等长的阶段,不切实际,如果最长阶段的延迟为L1,则吞吐量为1/L1
关于流水线
- 由上述几个图可知,一个流水阶段的引入可以提高吞吐量,并稍微增加延迟
- 实际电路中,两阶段流水线通常可以得到几乎双倍的吞吐量和稍微增加的延迟。相比之下,理想流水线的吞吐量可以提高一倍,而延迟不变。产生差别的原因在于电路不可能分成完全相等的两半,而且寄存器引入了额外的时序开销
- 并行的克星是依存关系,如果当前的任务依赖于前一个任务的结果,而不是当前任务中的前一步结果,则只有前一个任务完成后,后一个任务才能开始
参考资料
数字设计和计算机体系结构,第二版