在一台每个时钟周期发射两条指令的超标量处理机上运行程序P。所有指令都要经过“取指令(IF)”、“译码(ID)”、“执行”和“写结果(WB)”4个阶段,其中,“取指令”,“译码”和“写结果”三个阶段各为一个流水段,其延迟时间都为10ns。在“执行”阶段,LOAD和AND操作延迟都为10ns,ADD操作延迟20ns,MUL操作延迟30ns,这四种操作部件各设置一个。ADD部件和MUL部件都采用流水线结构,每一级流水线的延迟时间都为10ns。其中,程序P:
n1:LOAD R0, A ;RO←主存(A)单元
n2:ASS R1, R0 ;R1←(R1)+(R0)
n3:LOAD R2, B ;R2←主存(B)单元
n4:MUL R3, R4 ;R3←(R3)×(R4)
n5:AND R4, R5 ;R4←(R4)∧(R5)
n6:ADD R2, R5 ;R2←(R2)+(R5)
列出程序P中所有的数据相关,包括写读数据相关、读写数据相关和写写数据相关。
参考答案:
指令n1 与n2 之间存在(关于寄存器R0 的)写读数据相关
指令n3 与n6 之间存在(关于寄存器R2 的)写读数据相关
指令n4 与n5 之间存在(关于寄存器R4 的)读写数据相关
指令n3 与n6 之间存在(关于寄存器R2 的)写写数据相关