下面通过具体例子介绍一般流水线的性能分析方法。 例5.1、线性流水线,输入任务是不连续的情况,计算流水线的吞吐率、加速比和效率。用图5.4所示的一条4段浮点加法器流水线计算8个浮点数的和: Z=A+B+C+D+E+F+G+H (5.25) 解:由于存在数据相关,要在A+B的运算结果在第4个时钟周期末尾产生之后,在第5个时钟周期才能继续开始做加C的运算。这样,在每两个加法运算之间,每个功能部件都要空闲3个时钟周期。这时候,实际上与不采用流水线的顺序执行方式完全一样。 把(5.25)作一个简单的变换,得到: Z=[(A+B)+(C+D)]+[(E+F)+(G+H)] (5.26) 小括号内的4个加法操作之间,由于没有数据相关,可以连续输入到流水线中。只要前两个加法的结果出来之后,第一个中括号内的加法就可以开始进行。8个浮点数求和的流水线时空图如图5.11所示。
从流水线的时空图中可以很清楚地看到,7个浮点加法共用了15个时钟周期。假设每一个流水段的延迟时间均为,则有=15 ,n=7。那么,流水线的吞吐率TP为: 流水线的加速比S为: 流水线的效率E为: