news 2026/6/20 14:46:18

《超标量处理器》-分支预测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《超标量处理器》-分支预测

分支预测主要预测什么

  • 要不要跳转,
  • 跳转的offset是多少

预测是否跳转

预测是否跳转主要分为两种方式:静态预测和动态预测

静态预测

对于一个流水线较短的简单处理器,一般采用静态预测的方式
静态预测就是遇到分支指令的时候,就默认一直是take或者一直是not take的。假如默认一直是take的。那么如果真实decode出来的是要take 的,那没有什么影响。但是如果真实情况和预测的相反,则要flush 掉预测的以及预测后取的所有指令,重新从真实的地址取指。

动态预测

静态预测的方式比较简单粗暴,对于流水线比较深的处理器,预测错误的代价比较大,因此要采用动态预测。动态预测方式有很多,这里举两个简单的

last-outcome prediction

根据最后一次的结果进行预测
比如

for(i=0;i<1000;i++) {循环体}

如果用最后一次的结果预测,那么执行1000次,只会发生两次预测失败(第一次和最后一次)。但是遇到执行的分支指令是间隔着take和not take的,则完全预测不准

基于两位饱和计数器的分支预测

根据一条分支前两次的执行的结果来预测本次的方向

状态机处于饱和状态时,有两次的预测失败,才会改变预测的结果

跳转的目标地址

跳转的目标地址一般是两种存在方式

  1. 立即数
    好处是decode的时候,即可获得跳转的目标地址,但是立即数作为指令的一部分出现,因此bit位宽有限,能跳转的范围有限
  2. 间接跳转
    好处是能跳转的范围更广阔,但是这个目标地址是存在寄存器里的,寄存器可能受其他指令比如的hazard影响,会延迟目标地址取出的时间
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 14:39:59

从HDLC到ATM:解析分组交换技术的演进与核心设计思想

1. 从铜线到光纤&#xff1a;分组交换技术的起源与HDLC奠基 1970年代&#xff0c;当计算机网络还处于襁褓期时&#xff0c;工程师们面临着一个基础性难题&#xff1a;如何在嘈杂的模拟电话线上实现可靠的数据传输&#xff1f;这个问题催生了HDLC&#xff08;高级数据链路控制&a…

作者头像 李华
网站建设 2026/6/20 14:35:59

深入解析emWin GUIDRV_SPage驱动:配置、优化与实战指南

1. 项目概述&#xff1a;为什么需要深入了解GUIDRV_SPage&#xff1f;在嵌入式GUI开发这条路上&#xff0c;我踩过不少坑&#xff0c;尤其是在显示驱动这一块。很多时候&#xff0c;项目卡壳不是因为GUI库本身功能不够强大&#xff0c;而是卡在了如何让图形库和那块小小的LCD屏…

作者头像 李华
网站建设 2026/6/20 14:31:59

终极指南:如何用OBS多平台直播插件实现一次编码多平台同步推流

终极指南&#xff1a;如何用OBS多平台直播插件实现一次编码多平台同步推流 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要同时直播到YouTube、Twitch、Bilibili等多个平台&#xf…

作者头像 李华
网站建设 2026/6/20 14:30:22

终极指南:如何免费解锁WeMod专业版功能 - Wand-Enhancer完整教程

终极指南&#xff1a;如何免费解锁WeMod专业版功能 - Wand-Enhancer完整教程 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod的专业版功能需…

作者头像 李华