用一台每个时钟周期发射两条指令的超标量处理机运行下面一段程序。所有指令都要进行取指(IF)、译码(ID)、执行、写结果(WB)4个阶段。其中IF、ID、WB这3个阶段各为一个流水段,其延迟时间都为10 ns。在执行阶段,LOAD操作、AND操作各延迟10 ns,ADD操作延迟20 ns,MUL操作延迟30 ns。这4种功能部件各设置一个,它们可以并行工作。ADD部件和MUL部件都采用流水结构,每一级流水线的延迟时间都是10 ns。 I1 LOAD R0,M(A) ;R0←M(A) I2 ADD R1,R0 ;R1←(R1)+(R0) I3 LOAD R2,M(B) ;R2←M(B) I4 MUL R3,R4 ;R3←(R3)×(R4) I5 AND R4,R5 ;R4←(R4)∧(R5) I6 ADD R2,R5 ;R2←(R2)+(R5) ①请列出程序代码中所有的数据相关及其相关类型。 ②假设所有运算型指令都在译码(ID)流水段读寄存器,在写结果(WB)流水段写寄存器,采用顺序发射、顺序完成的调度方法。画出流水线的时空图,计算执行这个程序所用的时间。
下列关于“指令流水线”的说法中,错误的是()。
A.随着流水段个数的增加,流水段之间缓冲开销的比例增大
B.每个流水段之间的流水段寄存器的位数一定相同
C.指令流水线可以同时访问指令CaChe和数据CaChe
D.指令流水线可以在一个时钟周期内读/写不同的通用寄存器
有一条动态多功能流水线由6个功能段组成,如图3.6所示。
图3.6 其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50 ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水线计算
xiyizi。
在没有任何其他定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?