对于条件转移指令(即:分支指令Branch),其执行结果总有两种可能性(即:两个分支或两条执行路径):一种是条件满足(称为“Branch
taken”),此时转到转移目的地址处继续执行;另一种是条件不满足(称为“Branch not taken”),此时则继续取下条指令执行。
分支预测(Branch
predict):
在流水线执行过程中,对每条分支指令进行预测,可以简单地预测总是“Branch
Taken”或“Branch not taken”,也可以根据历史情况动态预测,总是把预测发生的分支处下条指令取到流水线中。这样,只要预测成功,流水线就不会发生阻塞。如果预测不成功,则流水线要退回到正确的分支地址处重新启动流水线执行,原先不该取出执行的指令要排除出流水线。