X86 microarchitecture(branch predictor)

本文详细探讨了X86微架构中的分支预测技术,包括Intel Pentium系列和AMD的不同处理器型号。介绍了从P1的简单BTB机制到现代CPU如Intel Sandy Bridge和AMD Ryzen中复杂预测器的工作原理,以及各种预测策略如循环计数器、两级自适应预测器和混合预测器。同时,还讨论了错误预测的代价以及如何减少上下文切换的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

X86 microarchitecture(branch predictor)

(The microarchitecture of Intel, AMD and VIA CPUs https://www.agner.org/optimize/)

  1. 转移预测器

    • loop counter:如果循环次数很多,使用传统的两级预测器需要记录很长的历史信息,因此单独设计loop/switch counter。PM和Core2设计了一个6位的loop counter。

    • indirect jump/control transfer instruction:目标跳转地址超过了两个。生成indirect jump/call的情况:switch语句,函数指令,虚函数等。BTB中需要考虑到一条间接跳转指令会有多个跳转目标地址,只记录上一次的跳转目标地址已经不够使用。(switch语句的汇编讲解:https://www.cnblogs.com/ye-ming/articles/7942472.html)

    • 转移预测的未来的可能方法:

      • 剔除无用的转移指令,减少GHR中的噪声
      • 同时译码分支的部分或者全部路径
      • 神经网络。(转移预测器的存储开销随着n呈指数增长,预热时间也可能是随n指数增加)
      • 减少上下文切换带来的影响
    • P1中的转移预测(Intel Pentium)

      • BTB:256表项,四路组相联,伪随机替换算法。每个表项包含一个饱和计数器,其中一个状态用于表示该表项尚未

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值