问答题 设某处理器具有五段指令流水线:IF(取指令)、ID(指令译码及取操作数)、EXE(ALU执行)、MEM(存储器访问)和WB(结果寄存器写回)。现由该处理器执行如下的指令序列: (a)SUB R2,R1,R3;R 2 ←R 1 -R 3 (b)ADD R12,R2,R5;R 12 ←R 2 +R 5 (c)OR R13,R6,R2;R 13 ←R 6 or R 2 (d)AND R14,R5,R2;R 14 ←R 5 and R 2 (e)ADD R15,R3,R2;R 15 ←R 3 +R 2 问: (1)如果不对这些指令之间的数据相关性进行特殊处理而允许这些指令进入流水线,哪些指令将从未准备好数据的R2寄存器取到错误的操作数? (2)假定采用将相关指令延迟到所需操作数被写回寄存器堆时执行的方式解决数据相关问题,那么处理器执行这五条指令需要占用多少时钟周期?
【正确答案】正确答案:(1)由表5.4(a)可以看出,如果不采取特殊措施,则指令(b),(c),(d)将取到错误的操作数。(2)由表5.4(b)可以看出,从第一条指令进入流水线到最后一条指令离开流水线共需12个时钟周期。
【答案解析】