在程序运⾏过程中, 根据分⽀指令过去的表现来预测其将来的⾏为。
分⽀预测
Pentium 基本型 分⽀历史表BHT 标识最近⼏次分⽀操作是否成功
分⽀⽬标缓冲器BTB 执⾏过成功分⽀指令的地址
⾼级动态执⾏:分⽀预测+指令流分析+猜测执⾏
猜测执⾏
Pentium IV
CPU 向前查看PC, 并执⾏后⾯可能要执⾏的指令, 执⾏结果存⼊缓冲区。如果后⾯确要执
⾏, 则执⾏结果有效。其实质是允许CPU 预先执⾏指令, 以后需要时直接获得结果。
指令预测
利⽤编译来消除某些转移指令,让多个分⽀能同时执⾏, 即“指令断定” (指令预测的进⼀步发展):
相关技术 (1) 将分⽀指令断定为true 值或false 值
(2) 将为true 和false 的指令并⾏执⾏。当判断结果出来时, 再将断定错误的指令结果删除。
指令断定 (3) 提供64个断定寄存器, 每个断定寄存器可保存⼀位(true 或false) 。其值由⽐较指令⽐较的结
Itanium 1 果来决定。分⽀指令使⽤⼀对存有相反结果的断定寄存器。
推测执⾏ 控制推测 将分⽀指令之后的取数指令提前若⼲个 期执⾏, 以消除访存延迟, 提⾼并⾏度。
Itanium 1
数据推测 ⽤于解决提前取数指令后所产⽣的数据相关。
超级标量结构SSA
Pentium 基本型 处理器内有多个独⽴并⾏的流⽔线指令部件
利⽤特殊的硬件指令, 将两个逻辑内核模拟成两个物理芯⽚, 使单个处理器实现线程级并⾏计算, 理论上就