概述:
分支预测基于流水线技术(提升cpu吞吐量的)
流水线技术:
细节总结:
主要是条件判断通常包含多条(n)指令,而对于cpu来说必须知道这n条指令都从流水线执行完毕之后得到的结果值才能确定执行哪个分支的代码。
这样直接导致了流水线的卡顿(一次的话例如下图:条件判断3条指令则需要6个时钟周期),若果外层有大数量级的循环流水线等待时间为:循环次数*6,此过程中cpu都
是在空转。
所以:在执行条件语句时,cpu/编译器会存储指令状态推断/设置默认值 保证不阻塞流水线,也就是将条件指令当做普通指令过流水线不等待,待执行完用结果跟
自己预测或者编译器默认指定结果进行对比,如果一致说明猜对了继续执行;如果不一致那么抛弃此分支指令重新加载另外分支指令执行。