采用基于Tomasulo算法的前瞻执行对下列指令的第一次循环进行调度。假设程序开始前分支预测为成功,但是预测错误。在第一次循环结束之前需要继续调度第二次循环部分的指令。假设有足够的运算部件和保留站,2条CDB,但是只有10个ROB,假设分支和整数加法执行需要1个时钟周期,LD/ST执行需要2个时钟周期(1地址计算+1访存)。
Loop: LD R2, 0(R1)
DADDI R2, R2,#1
SD R2, 0(R1)
DADDI R1, R1, #4
BNEZ R2, Loop
采用基于Tomasulo算法的前瞻执行对下列指令的第一次循环进行调度。假设程序开始前分支预测为成功,但是预测错误。在第一次循环结束之前需要继续调度第二次循环部分的指令。假设有足够的运算部件和保留站,2条CDB,但是只有10个ROB,假设分支和整数加法执行需要1个时钟周期,LD/ST执行需要2个时钟周期(1地址计算+1访存)。
Loop: LD R2, 0(R1)
DADDI R2, R2,#1
SD R2, 0(R1)
DADDI R1, R1, #4
BNEZ R2, Loop