【CPU微架构】分支预测(二)常用分支预测算法

上一节介绍分支预测的作用和相关指令分类。本节主要介绍常用的分支预测算法

(一)预测算法分类:

当CPU碰到跳转指令时,可以选择以下三种方法:

  1. 不预测,将流水线停滞,等到方向确定了再取接下来的指令;

  2. 固定往左或者往右,如果走错了,则返回岔路口; 简称静态预测

  3. 将岔路口信息记下来,以后就可以预测它大概率往哪儿走;简称动态预测

这三种方法都是CPU常用的一些手段,在流水线和超标量CPU诞生前,通常采用方法1将流水线停滞;在一些微控制器领域,通常为了节省功耗,采用方法2静态预测方式;在高性能CPU领域,通常以动态预测为主,并结合静态预测,以达到较高的准确度,提升cpu性能。接下来部分主要介绍动态预测算法。

(二)动态预测方法

上一节讲述到,预测的核心问题有两个:跳不跳?跳到哪里?下面介绍2-bit饱和计数器和Gshare,tage来解决跳不跳问题,btb来解决跳到哪里的问题。

2- bit 饱和计数器:

所谓2-bit计数器,即每条指令PC,通过一个2-bit的计数器,记录历史跳转情况:

(1)2-bit所能记录的数字包含00/01/10/11。

(2)分支实际跳转一次,计数器+1,不跳转,则-1。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值