©1北京信息科技大学计算机体系结构3.2流水线技术张伟计算机学院计算机体系结构北京信息科技大学3流水线性能分析计算机体系结构北京信息科技大学流水线性能分析吞吐率(throughputrate)单位时间内流水线所完成的任务数或输出结果的数量加速比(speedupratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比计算机体系结构北京信息科技大学流水线的基本参数——吞吐率吞吐率(ThroughPut)——在单位时间内流水线所完成的任务数量或输出的结果数。其中:n为任务数,Tk为完成n个任务所用的时间。各段执行时间相等,输入连续任务情况下,完成n个任务需要的总时间为:Tk=(k+n-1)∆t其中:k为流水线的段数,∆t为时钟周期。kTnTP=计算机体系结构北京信息科技大学Tk=k·Δt+(n-1)Δt=(k+n-1)∆t•吞吐率为:•最大吞吐率:–流水线达到不间断流水的稳定状态后可获得的吞吐率。1)Δtn(knTP−+=Δt11)Δtn(knLimTPmax n=−+=∞→空间Sk123……n-1nS3123……n-1nS2123……n-1nS1123……n-1n时间k·∆t(n-1)∆tn·∆t(k-1)∆tT计算机体系结构北京信息科技大学各段时间不等,完成n个连续任务:吞吐率:最大吞吐率:)Δt,,Δt,1)max(Δt(ntnTPk21k1ii⋅⋅⋅−+=∑=)Δt,,Δt,max(Δt1TPk21⋅⋅⋅=计算机体系结构北京信息科技大学空间S4123…nS3123…nS2123…nS1123…n时间∑∆=kiit1(n-1)∆t2Tk各段执行时间不相等的流水线及其时空图流水线各段执行时间不相等的解决办法输入S1S2S3S4输出∆t1=∆t∆t2=3∆t∆t3=∆t∆t4=∆t瓶颈计算机体系结构北京信息科技大学空间S4123456…n-2n-1nS3123456…n-2n-1nS2-3123456…nn-1nS2-2123456…n-1n-1nS2-1123456…n-2n-1nS1123456…n-2n-1n时间流水段重复设置的流水线(1)将“瓶颈”部分再细分(如果可分的话)输入S1S2-1S2-2S2-3S3S4输出∆t∆t∆t∆t∆t∆t“瓶颈”流水段再次细分S2(3∆t)计算机体系结构北京信息科技大学空间S4123456…n-2n-1nS3123456…n-2n-1nS2-336…nS2-225…n-1S2-114…n-2S1123456…n-2n-1n时间流水段重复设置的流水线(2)“瓶颈“流水段重复设置:增加分配器和收集器S2-3输入S1S2-2S3S4输出∆t1=∆t∆t3=∆t∆t4=∆tS2-1∆t2=3∆t计算机体系结构北京信息科技大学流水线的基本参数——加速比加速比----完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。k0流水线执行时间T顺序执行时间TS=各段执行时间相等,输入连续任务情况下,加速比:1nknk1)Δtn(kΔtnkS−+⋅=−+⋅⋅=最大加速比:k1nknkLimS nmax=−+⋅=∞→计算机体系结构北京信息科技大学流水线的基本参数——加速比各段时间不等,输入连续任务情况下,实际加速比为:)Δt,,Δt,max(Δt1)(nΔtΔtnSk21k1iik1ii⋅⋅⋅==⋅−+⋅=∑∑最大加速比为:)Δt,,Δt,max(ΔtΔtSk21k1iimax⋅⋅⋅=∑=计算机体系结构北京信息科技大学•当流水线段数增加时,需要连续输入的任务数也必须增加加速比S10加k=10段8速6比k=6段4211248163264128n任务个数计算机体系结构北京信息科技大学流水线的基本参数——效率效率(Efficiency)——流水线的设备利用率。在时空图上,流水线的效率定义为n个任务实际占用的时空区,与k个功能段总的时空区之比。k0TkTknE个流水段的总的时空区个任务占用的时空区⋅==•各流水段时间相等,输入n个连续任务,流水线的效率为:1nknΔt1)n(kkΔtnkE−+=⋅−+⋅⋅⋅=•最高效率为:11nknLimE nmax=−+=∞→计算机体系结构北京信息科技大学流水线的基本参数——效率各流水段时间不等,输入n个连续任务,流水线效率为:)]Δt,,Δt,max(Δt1)(nΔt[kΔtnEk21k1iik1ii⋅⋅⋅⋅−+⋅⋅=∑∑==•最高效率为:)Δt,,Δt,max(ΔtΔtEk21k1ii⋅⋅⋅=∑=计算机体系结构北京信息科技大学吞吐率、加速比与效率的关系1)Δtn(knTP−+=1nknkS−+⋅=1nknE−+=S=k·EE=TP·∆tS=TP·k·∆t计算机体系结构北京信息科技大学流水线性能分析举例对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。每个浮点加法都需经过4级:求阶差、对阶、尾数加、规格化例:用一条4段浮点加法器流水线求8个浮点数的和:Z=A+B+C+D+E+F+G+H。计算机体系结构北京信息科技大学解:Z=[(A+B)+(C+D)]+[(E+F)+(G+H)]空间周期123456789101112131415规格化1234567尾数加1234567对阶1234567求阶差1234567时间加数ACEGA+BE+FA+B+C+D加数BDFHC+DG+HE+F+G+H结果A+BC+DE+FG+HA+B+C+DZE+F+G+H用一条4段浮点加法器流水线求8个数之和的流水线时空图计算机体系结构北京信息科技大学7个浮点加法共用了15个时钟周期。Δt1470Δt157TnTPk⋅=⋅==871Δt15Δt74TTSk0⋅=⋅⋅×==470Δt154Δt74TkTEk0⋅=⋅×⋅×=⋅=流水线的吞吐率为:流水线的加速比为:流水线的效率为:计算机体系结构北京信息科技大学例:∏=+41iii)b(a实现算法:消除相关性,可并行执行的操作先执行;使流水线尽可能长时间执行同一种功能。最佳实现顺序:x1=a1+b1,x2=a2+b2,x3=a3+b3,x4=a4+b4;y1=x1*x2,y2=x3*x4;z=y1*y2流水线结构如下:143265xyz乘加在静态、双功能(加法和乘法)流水线上实现。计算机体系结构北京信息科技大学TPSE=7/(17Δt)=(4*3Δt+3*5Δt)/(17Δt)=27/17=1.88=(4*3Δt+3*5Δt)/(6*17Δt)=9/34=26.4%134Ss4s3s2s1t6t12T265656565777713421342s5s6657(a1+b1)(a2+b2)(a3+b3)(a4+b4)(a1+b1)(a2+b2)×(a3+b3)(a4+b4)×(a1+b1)(a2+b2)×(a3+b3)(a4+b4)××t17加法乘法1乘法2a1b1a2b2a3b3(a1+b1)(a2+b2)(a3+b3)(a4+b4)(a1+b1)(a2+b2)×(a3+b3)(a4+b4)×a4b4计算机体系结构北京信息科技大学结果分析:流水线适用范围?流水线适合于操作相同、操作数间无相关性的多个指令的执行。功能切换必须等待排空后进行。(静态通病)如何提高流水线效率?尽量细化各功能段,尽量减少功能切换,尽量减少数据相关,尽量增加一次处理的指令数量。建立、排空时间过多;(流水线断流—数据相关和操作变换)动态流水线结果如何?(减少2个Δt)计算机体系结构北京信息科技大学有关流水线性能的若干问题(1)流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2)适当增加流水线的深度(段数)可以提高流水线的性能。(3)流水线的深度受限于流水线的延迟和流水线的额外开销。(4)相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。计算机体系结构北京信息科技大学流水线的最佳段数从上面分析看到,增加流水线段数k时,流水线的吞吐率和加速比都能提高。流水线的额外开销(性能、成本)流水寄存器延迟建立时间:在触发写操作的时钟信号到达之前,寄存器输入必须保持稳定的时间。传输延迟:时钟信号到达后到寄存器输出可用的时间。时钟偏移开销流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)计算机体系结构北京信息科技大学bka1dt/k1CTPPCRmax+⋅+==流水线的最佳段数根据总价性能价格比来选择流水线最佳段数。流水线的性能价格比PCR定义为:分子TPmax=1/(t/k+d):流水线的最大吞吐率其中t表示非流水机器上串行完成一个任务所需的时间;t/k+d表示在同等速度的k段流水机上执行一个任务需要的时间;d表示锁存器延迟时间。分母C=a+bk:流水线的总价格,其中a为所有流水段本身的总价格,b为每个锁存器的价格。计算机体系结构北京信息科技大学通过对自变量k求导,可得PCR的极值。由于大于零的极值只有一个,这个极值就是最大值。当性能价格比PCR取最大值时,它所对应的流水线的段数K0就是最佳段数。性能价格比PCR峰值最佳值(K0)流水线dbtaK0=•一般把8段或超过8段的流水线称为超流水线,采用8段以上流水线的处理机有时也称为超流水线处理机。