在计算机体系结构中,分支预测器(Branch predictor)是一种数字电路,在分支指令执行结束之前猜测哪一路分支将会被运行,以提高处理器的指令流水线的性能。使用分支预测器的目的,在于改善指令管线化的流程,进而通过指令管线化提高处理器性能,分支预测器是现今指令流水线微处理器性能提升的关键技术之一。

01 分支类型
按照是否条件执行以及是否直接寻址可以将分支分为下表中的四类:
| 分类方式 |
条件执行 |
非条件执行 |
| 直接寻址 |
条件分支 |
立即分支 |
| 间接寻址 |
无 |
返回分支 间接分支 |
按照分支指令是否需要满足某条件后才会发生分支跳转,将指令执行方式分为条件执行和非条件执行。
按照指令寻址模式(直接寻址和间接寻址)的不同,分为直接寻址分支和间接寻址分支。直接寻址分支的跳转偏移量被编在指令码中,可直接由指令码计算得出跳转地址,间接寻址分支的跳转地进位于寄存器中,随寄存器值的变化而改变。

本文探讨了计算机体系结构中的分支预测技术,包括条件分支跳转方向预测和目标地址预测,以及模式历史表、分支目标缓存区和返回堆栈缓冲区等关键组件。同时,分析了基于历史的分支预测引发的Spectre类型幽灵攻击。
最低0.47元/天 解锁文章
3703

被折叠的 条评论
为什么被折叠?



