单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,取指令,3,执行指令,3,一、指令流水原理,2.,指令的二级流水,1.,指令的串行执行,取指令,取指令部件,完成,总有一个部件,空闲,指令预取,若,取指,和,执行,阶段时间上,完全重叠,指令周期,减半,速度提高,1,倍,执行指令,执行指令部件,完成,取,指令,1,执行,指令,1,取,指令,2,执行,指令,2,取,指令,3,执行,指令,3,取指令,2,执行指令,2,取指令,1,执行指令,1,1,取指令3执行指令3一、指令流水原理2.指令的二级流水1.,必须等,上条,指令执行结束,才能确定,下条,指令的地址,,造成时间损失,3.,影响指令流水效率加倍的因素,(1),执行时间,取指时间,(2),条件转移指令,对指令流水的影响,解决办法,?,取指令,部件,指令部件,缓冲区,执行指令,部件,猜测法,2,必须等上条指令执行结束,才能确定下条指令的地址,造成时间损失,4.,指令的六级流水,六级流水,14,个时间单位,串行执行,6,9,54,个时间单位,完成,一,条指令,6,个时间单位,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,CO,FO,EI,WO,DI,FI,指令,1,指令,2,指令,3,指令,4,指令,5,指令,6,指令,7,指令,8,指令,9,1 2 3 4 5 6 7 8 9 10 11 12 13 14,t,注释,3,4.指令的六级流水六级流水14 个时间单位串行执行6,二、流水线性能,1.,吞吐率,单位时间内,流水线所完成指令,或,输出结果,的,数量,?,最大吞吐率,?,实际吞吐率,连续处理,n,条指令的吞吐率为,设,m,段的流水线各段时间为,t,T,pmax,=,1,t,T,p,=,m,+(,n,-,1,),n,t,t,4,二、流水线性能1.吞吐率单位时间内流水线所完成指令或输出,2.,加速比,S,p,m,段的,流水线的速度,与等功能的,非流水线的速度,之比,设流水线各段时间为,t,完成,n,条指令在,m,段流水线上共需,T,=,m,+(,n,-,1,),t,t,完成,n,条指令在等效的非流水线上共需,T,=,nm,t,S,p,=,m,+(,n,-,1,),nm,=,nm,m,+,n,-,1,t,t,t,则,5,2.加速比Spm段的流水线的速度与等功能的非流水线的速度,由于流水线有,建立时间,和,排空时间,因此各功能段的,设备不可能,一直,处于,工作,状态,流水线中各功能段的,利用率,3.,效率,m,t,3,1,2,4,5,3,1,2,4,5,3,1,2,4,5,3,1,2,4,5,n,-1,n,n,-1,n,n,-1,n,n,-1,n,T,时间,S,空间,空间,S,4,S,3,S,2,S,1,(,n,-,1,),t,6,由于流水线有建立时间和排空时间因此各功能段的设备不可能一直处,m,(,m,+,n,-,1),t,=,mn,t,流水线各段处于工作时间的时空区,流水线中各段总的时空区,效率,=,3.,效率,m,t,3,1,2,4,5,3,1,2,4,5,3,1,2,4,5,3,1,2,4,5,n,-1,n,n,-1,n,n,-1,n,n,-1,n,T,时间,S,空间,空间,S,4,S,3,S,2,S,1,(,n,-,1,),t,流水线中各功能段的,利用率,7,m(m+n-1)t=,举例,用一条,5,个功能段的浮点加法器流水线计算,?,?,?,10,1,i,i,A,F,分析,首先需要考虑的是,,10,个数的的和最少需要做几次加法。,每个功能段的延迟时间均相等,流水线的输出端和输入端,之间有直接数据通路,而且设置有足够的缓冲寄存器。要,求用,尽可能短,的时间完成计算,画出,流水线时空图,,并计,算流水线的,实际吞吐率,、,加速比,和,效率,。,我们可以发现,加法的次数是不能减少的:,9,次,;,于是我们要尽可能快的完成任务,就只有考虑如何让流水线,尽可能,充满,,,这需要消除,前后指令,之间的,相关,。,由于加法满足交换率和结合率,我们可以调整运算次序如以下的指令序,列,我们把,中间结果寄存器,称为,R,,,源操作数寄存器,称为,A,,最后,结果寄,存器,称为,F,,并假设源操作数已经在寄存器中,则指令如下:,8,举例用一条5个功能段的浮点加法器流水线计算?101iiA,?,I1,:,R1A1+A2,?,I2,:,R2A3+A4,?,I3,:,R3A5+A6,?,I4,:,R4A7+A8,?,I5,:,R5A9+A10,?,I6,:,R6R1+R2,?,I7,:,R7R3+R4,?,I8,:,R8R5+R6,?,I9,:,FR7+R8,这并,不是唯一,可能的计算方法。假设功能段的延迟为,t,。,时,-,空图如下,图中的,数字,是,指令号,。,9,?I1:R1A1+A2?I2:R2A3+A4?I3:R3,3,2,1,4,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,21,t,部件,m,1,5,4,3,2,R1=A1+A2,R2=A3+A4,R3=A5+A6,R4=A7+A8,R5=A9+A10,R6=R1+R2,R7=R3+R4,R8=R5+R6,F=R7+R8,R1,R3,R5,R6,R7,R8,F,R2,R4,时间,10,32 14 1 1 1 1 2 2 2 2 33334 4,整个计算过程需要,21,t,所以吞吐率为:,t,Tp,?,?,21,9,14,.,2,21,45,21,5,9,?,?,?,?,?,?,t,t,S,%,86,.,42,21,5,5,9,?,?,?,?,?,?,t,t,E,加速比为:,效率为:,11,整个计算过程需要21t,所以吞吐率为:tTp?21914,课后思考,?,?,?,15,1,i,i,A,F,?,?,?,20,1,i,i,A,F,?,?,?,100,1,i,i,A,F,?,?,?,1000,1,i,i,A,F,12,课后思考?151iiAF?201iiAF?100,本课到此结束,谢谢大家,13,本课到此结束谢谢大家13,?,取指(,FI,),:从存储器取出一条指令并暂时,存入指令部件的缓冲区。,?,指令译码(,DI,),:确定操作性质和操作数地,址的形成方式。,?,计算操作数地址(,CO,),:计算操作数的有效,地址,涉及到寄存器间址、间址、变址、基,址、相对寻址等各种地址计算方式。,?,取操作数(,FO,),:,从存储器中取操作数,(,若,操作数在寄存器中,则无需此阶段,),。,?,执行指令(,EI,),:执行指令所需的操作,并,将结果存于目的位置,(,寄存器中,),。,?,写操作数(,WO,),:将结果存入存储器。,返回,14,?取指(FI):从存储器取出一条指令并暂时存入指令部件的缓冲,