第i次迭代(i=0..98)开始周期:1+(i×17) 总的时钟周期数:(98×17)+18=1684 有正常定向路径,预测分支失败。
指令12345678910111131415LWIFIDEXMWBDADDIUIFIDSEXMWBSWIFSIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBLWIFmissmissIFIDEXM第i次迭代(i=0..98)开始周期:1+(i×10) 总的时钟周期数:(98×10)+11=991 有正常定向路径。单周期延迟分支。
LOOP: LW R1,0(R2)
DADDIU R2,R2,#4 DADDIU R1,R1,#1 DSUB R4,R3,R2 BNEZ R4,LOOP SW R1,-4(R2)
第i次迭代(i =0..98)开始周期:1+(i ×6 ) 总的时钟周期数:(98×6)+10=598
指令1234567891011LW IFIDEXMWBDADDIUIFIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBSWIFIDEXMWBLW IFIDEXMWB
WB
2.13 在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。
k: MOVE R1,R0 ;R1← (R0) k+1: MUL R0,R2,R1 ;R0← (R2)×(R1) k+2: ADD R0,R2,R3 ;R0← (R2)+(R3)
画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?
解:由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。若3条指令顺序流动,共需要9个时钟周期。
链接技术:
当前一条指令的结果寄存器是后一条指令的源寄存器、且不存在任何其他冲突时:(不存在功能部件冲突、不存在源寄存器冲突、不存在目的寄存器冲突如下:)就可以采用连接技术来提高性能。 V3<--V1+V2 V5<--V3xV4
向量流水线链接:是指具有先写后读相关的两条指令,在不出现功能部件冲突和其他Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。由于同步的要求,连接时Gray-1
中把向量数据元素送往向量功能部件以及把结果存入向量寄存器都需要一拍时间。从存储器把数据送入访存功能部件也需要一拍时间。 例4-1
考虑在Cray-1上利用链接技术执行以下4条执行; V0<--存储器//访存取向量7拍 V2<--V0+V1//向量加 3拍 V3<--V2 画出链接示意图,并求该链接流水线的通过时间,如果向量长度为64,则需要多少拍才能得到全部结果。 解:对于这4条指令分析可知:它们即不存在部件冲突,也不存在寄存器冲突,相邻两条指令之间都存在先写后读相关,因而可以把访存流水线、向量加流水线、向量移位流水线以及向量逻辑运算流水线连接成一个较长的流水线。 该链接流水线的通过时间为: 通过时间=1+7+1+1+3+1+1+4+1+1+2=23 在向量长度为64的情况下,得到所有结果共需要:23+64=87拍。 例4.2 若要在Cray-1上进行向量运算:D=Ax(B+C),假设向量长度N<=64,向量元素为浮点数,且向量B/C已经存放在V0和V1中。画出链接示意图,并分析非链接执行和链接执行两种情况下的执行时间。 解:用以下三条向量完成上述运算。 v3<--A //访存取得向量A V2=V0+V1// 向量B和向量C进行浮点加 V4<--V2XV3 //浮点乘,结果存入V4 分析:第1.2条向量既没有Vi冲突,也没有功能部件冲突,可以并行执行。第三条指令与第二条指令之间均存在先写后读相关。而且不存在功能部件冲突,因此可以将第三条与第(1)(2)条指令链接执行。 (1)如果全用串行的方式,执行时间为: [(1+6+1)+(N-1)]+[(1+6+1)+(N-1)]+[(1+7+1)+(N-1)]=3N+22(拍) (2)如果前两条指令并行执行,然后再串行执行: [(1+6+1)+(N-1)]+[(1+7+1)+(N-1)]=2N+15(拍) (3)如果前两条指令并行执行,并且与第三条指令链接执行: [(1+6+1)]+[(1+7+1)]+(N-1)=N+16(拍) 课后题4.5: 3.18在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果? V0←存储器(从存储器中取数:7拍) V2←V0+V1(向量加:3拍) V3←V2 解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时 间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。 课后题4.6: 3.在CRAY-1机器上,按照链接方式执行下述5条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果? V0←存储器(从存储器中取数:7拍) V2←V0+V1(向量加:3拍) V3←V2
计算机系统结构第二版张晨曦考前资料大题大全看完必过



