本章主要内容
流水线的基本概念
■概念、表示方法、特点和分类
流水线的性能指标
■吞吐率、加速比和效率
流水线的实现原理
■DLX流水线实例
流水线的“相关”问题
■结构相关、数据相关和控制相关
指令级并行技术简介
流水线的性能指标
衡量流水线性能的主要指标有吞吐率、加速比和效率。
流水线设计中,流水线的最佳段数选择也是一个重要问题。
下面以线性流水线为例,分析流水线的主要性能指标。其分析方法和有关公式也适用于非线性流水线。
流水线的吞吐率
■吞吐率(Throughput Rate)是衡量流水线速度的重要指标。它是指在单位时间内流水线所完成的任务数量,或是输出结果的数量,计算流水线吞吐率的最基本的公式表示为:TP=n/Tk
■上面公式中,n为任务数,Tk为处理完成n个任务所用的时间。
■各个流水段执行时间相等的情况,k为流水线的段数,Δt为时钟周期。从流水线输出端看,用k个时钟周期输出第一个任务,其余n-1个时钟周期,每个时钟周期输出一个任务,即用n-1个时钟周期输出n-1个任务。因此,流水线完成n个连续任务需要的总时间为:

■流水线的实际吞吐率为:
■当连续输入的任务n→∞时,得最大吞吐率为:
■最大吞吐率与实际吞吐率的关系是: 
■各段执行时间不相等的流水线,其中第二段的执行时间是其他各段执行时间的3倍。流水线的时空图如下图所示。其中S1、S3、S4各段中的灰色部分表示该段流水线在这一段时间内是空闲的,而S2段没有任何空闲,因此S2段成为瓶颈段。

■流水线存在瓶颈段的情况下,实际吞吐率为:

分母中的第一部分是流水线完成第1个任务所用时间,第二部分是完成其余n-1个任务所用时间。
■此时流水线的最大吞吐率为:

■解决流水线瓶颈的方法之一:瓶颈段细分

■解决流水线瓶颈的方法之二:重复设置瓶颈段

流水线的加速比
■完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比(Speedup Ratio)。
■设T0表示不使用流水线,即顺序执行所用的时间,TK表示使用流水线时的执行时间,则流水线加速比S的基本公式为: S=T0/TK
■如果流水线各段执行时间都相等,则一条k段流水线完成n个连续任务实际加速比为:

■上述情况下的最大加速比为:

流水线的效率
■流水线的设备利用率称为流水线的效率(Efficiency)。在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比。因此,流水线的效率包含了时间和空间两个因素。
■n个任务占用的时空区有效面积就是顺序执行n个任务所使用的总的时间T0,而n个任务所用的时间与k个流水段所围成的时空区总面积为kTK,其中TK是流水线完成n个任务所使用的总时间,计算流水线效率的一般公式可以表示为:
■如果流水线的各段执行时间均相等,而且输入的n个任务是连续的,则一条k段流水线的效率为:

■在流水线的各段执行时间均相等,输入到流水线的任务是连续的情况下,流水线的最高效率为:
流水线的最佳段数
■增加流水线段数k时,流水线的吞吐率和加速比都能提高。但是每一流水段输出端必须设置一个锁存器,当流水段数增多时,锁存器的总延迟时间也将增加;并且流水线的价格也会增加。为此,要综合考虑各方面的因素,根据总价性能价格比来选择流水线最佳段数。
■目前,一般处理机中的流水线段数在3到12之间,极少有超过15段的流水线。一般把8段或超过8段的流水线称为超流水线,采用8段以上流水线的处理机有时也称为超流水线处理机。 |