1、按照流水线的级别来分处理机级流水线,又称为指令流水线(Instruction Pipelining)例如:在采用先行控制器的处理机中,各功能部件之间的流水线先行指令缓冲栈输入先行控制方式中的指令流水线先行指令分析器先行读数栈先行操作栈取指译码取操作数指令执行部件后行写数栈输出执行写结果部件级流水线(操作流水线),如浮点加法器流水线处理机之间的流水线称为宏流水线(Macro Pipelining)每个处理机对同一个数据流的不同部分分别进行处理求阶差输入输出t1对阶尾数加规格化t2t3t4P1输入任务1MMP2任务2MP3任务3输出3、单功能流水线与多功能流水线单功能流水线:只能完成一种固定功能的
2、流水线Cray-1计算机中有12条;YH-1计算机有18条;Pentium有一条5段的定点和一条8段的浮点流水线;Pentium有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。多功能流水线:流水线的各段通过不同连接实现不同功能 Texas公司的ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。A B A B A B A B输入输入输入输入求阶差求阶差求阶差求阶差对阶对阶对阶对阶尾数加尾数加尾数加尾数加规格化规格化规格化规格化尾数乘尾数乘尾数乘尾数乘累加累加累加累加输出输出输出输出g=f(A,B)定点乘浮点加浮
3、点点积(a)功能段间的互连 (b)定点乘法 (c)浮点加法 (d)浮点点积4、静态流水线与动态流水线静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。动态流水线:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。1时间空间02 3 n1 2 3 n1 2 3 n1 2 3 n1 2 3 n1 2 3 n1 2 3 4 1 2 3 1 2 1输入求阶差对阶尾数加规格化尾数乘累加输出静态流水线时空图浮点加法定点乘法1时间空间02 3 n1 2 3 n1 2 3 n
4、1 2 3 n1 2 3 n1 2 3 n输入求阶差对阶尾数加规格化尾数乘累加输出动态流水线时空图1 2 35461 2 3541 2 3 41 2 3浮点加法定点乘法5、流水线的其他分类方法按照数据表示方式:标量流水线和向量流水线按照控制方式:同步流水线和异步流水线顺序流水线与乱序流水线:乱序流水线又称为无序流水线、错序流水线或异步流水线等S1就绪回答S2就绪回答S3就绪回答输出就绪回答输入5.2.3 线性流水线的性能分析衡量流水线性能的主要指标有:吞吐率、加速比和效率1、吞吐率(Though Put)求流水线吞吐率的最基本公式:TP=n/Tkn为任务数,Tk为完成n个任务所用时间各段执行时
5、间相等,输入连续任务情况下完成n个连续任务需要的总时间为:Tk=(k+n-1)t k为流水线的段数,t为时钟周期1时间空间S123 n-1 nS2S3S4123 n-1 n123 n-1 n123 n-1 nkt(n-1)tnt(k-1)tT吞吐率:最大吞吐率为:各段执行时间不相等、输入连续任务情况下:吞吐率为:最大吞吐率为:tnknTP)1(nTPLimnknttmax()11),max()1(211kkiitttntnTP ),max(121ktttTP 流水线各段执行时间不相等的解决办法S1输入t1=tS2t2=3tS3t3=tS4t4=t输出1时间空间S1S2S3S4ti(n-1)t2
6、Tk23 n123n123 n123 n一是将“瓶颈”流水段细分(如果可分的话):二是将“瓶颈”流水段重复设置:S1输入输出tS2-1tS2-2tS2-3tS3tS4tS2(3t)S1输入输出t1=tS2-1S2-1S2-1S3S4t3=tt4=tt2=3t1时间空间2 3nS1流水段重复设置的流水线S2-14 5 614-2-1n-225n-136n1 2 3n4 5 6-2-11 2 3n4 5 6-2-1S2-2S2-3S3S42、加速比(Speedup)计算流水线加速比的基本公式:S=顺序执行时间T0/流水线执行时间Tk各段执行时间相等,输入连续任务情况下加速比为:最大加速比为:各段执行时间不等,输入连续任务情况下实际加速比为:1)1(nknktnktnkSSLimk nknknmax1