TAGE predictor

参考文档:分支预测算法(一):TAGE|SunnyChen的小窝

TAGE的基础概念

        TAGE是现今最经典的分支预测算法,TAGE及其后续的变体都是当今高性能微处理器的分支预测算法基础。因此,要聊分支预测算法的话题必定绕不开TAGE。

        TAGE的全称是 TAgged GEometric history length (predictor),也就是基于带标签的几何级数递增历史长度的分支预测算法,其核心主要是两个部份:

 

 TAGE的组成:

  • 一个直接索引预测表,T0, 双峰预测方式,用于在Tn表都miss的时候,提供基本的预测;
  • 若干个基于几何级数递增的分支历史长度进行匹配的索引表项Tn;
    • 索引方式:PC值和GHR的值,继续hash操作;
    • 标签的意义:索引到具体的entry后,需要再次进行pc和GHR的值的hash操作,与这个entry中的tag进行比较,才能决定是否hit;
    • 这就意味着,索引的计算方式,以及tag的计算方式,是不一样的,可以有多种方式;
    • 每个表使用分支指令的地址与不同长度的全局分支历史的哈希值进行索引,每个表Ti匹配的全局分支历史长度服从几何级数递增:L(i) = (int)(ai-1 * L(1))

TAGE预测器的特点:

  • 使用基于几何级数递增的分支历史长度允许预测器在允许捕捉超长全局分支历史模式的同时,将大部份的存储资源分配给使用较短的分支历史长度进行匹配的表项。
  • 因为能够匹配到很长的GHR的场景是非常少的,大部分都是集中在比较短的范围内,这样,既可以保证很长的规律能捕捉到,也能保证存储资源不会因为很少的场景而过度的浪费;

TAGE架构

一些基本的术语:

       

从上图中可以看出TAGE的特点:

  • T0表是使用PC直接索引的2位饱和计数器组成的bimodal表项;
  • TN表是使用PC与对应全局分支历史长度进行哈希索引的带标签表,其每个表项中:
    • pred:3位的有符号饱和计数器,符号位表示预测跳转与否,1表示预测跳转(taken),0表示预测不跳转(not-taken)
    • tag:PC与分支历史哈希得到的标签信息,不同TN表的tag长度可以相同,也可以不同。
    • u:2位useful计数器,表示当前表项“有用”的程度。

预测方式

根据pc值和GHR值,并行索引T0~Tn;

预测结果由 tag hit的最长的Tn表的pred计数器的符号位给出;如果都没有命中,则由T0表的2位饱和计数器给出;

信息更新

  • 对useful的更新
    • fpred的结果,与最终分支指令的结果相同,则pcpn.u + 1;
    • 不同,则pcpn.u - 1;
    • u满足饱和计数的规则;
    • 同时,useful计数器u还起到年龄计数器的作用,其MSB(bit-1)以及LSB(bit-0)会周期性的交替重置为0。原文中的周期设置为每256K个分支指令进行一次重置操作。
  • 对pred的更新
    • fpred与最终的分支指令跳转结果相同:
      • 最终结果为taken, 则pcpn.pred+1;
      • 最终结果为not-taken, 则pcpn.pred-1;
    • fpred与最终的分支指令跳转结果不同,更新方式与上面是一致的;
  • 错误预测的更新
  1. 更新pcpn.pred, 根据最终结果进行更新;
  2. 如果pcpn不是最长的全局分支历史信息表,也就是Ti(0<i<max), 则需要往使用更长的全局分支历史信息的表上分配一个新的entry;
    1. 根据PC值和GHR,计算出idex, 然后基于该index, 读取比i更大的所有的表中,对应idex位置的entry中的u位;
    2. 读出来的多个entry中的u位,如果都不是0,则所有比i更长的全局分支历史信息表项的u值都-1;
    3. 如果存在一个表k,索引到的u==0,则将该预测信息,分配到该entry中;
    4. 如果存在多个这样的表(0<i<j<k<max),优先分配第一个(j);
  3. 新分配的表项,需要进行如下的初始化步骤,此时需要根据该分支指令的指令结果进行处理:
    1. pred的初始化;
      1. 该分支指令的结果为taken, 则pred==3'b100,弱跳转;
      2. 该分支指令的结果为not-taken, 则pred==3'b011,弱不跳转;
    2. tag的初始化:pc值与GHR的哈希值;
    3. u初始化为0,strong not useful;

其他说明

  • 之所以每次错误预测,都只会分配一个且仅此一个表项,是为了最小化一些偶发性或者与分支历史不甚相关的分支指令占据过多的表项的现象。
  • useful计数器的作用机理:
    • 保证最近“有用”的表项不会被替换掉
    • 维护一种近似于伪LRU的替换策略
    • 初始化为0,是为了保证该表项在有效的提供准确的预测结果时才可以获得长时间逗留的资格;而为了防止发生乒乓替换的现象,分配的优先级仲裁可以防止该现象的发生。

改进方向

        某些时候,当最长命中表项的pred计数器表明,该预测结果信心不足时,altpred会拥有更准确的预测结果。

        当然,如何定义强信心以及弱信心也可以有多种不同的定义方式,比如可以定义仅3'b100以及3'b011为弱信心,其他都为强信心。当然,你也可以定义仅3'b111以及3'b000为强信心,其他都为弱信心。

静态策略

        如果最长命中表项pcpn的预测信心为强,则选择最长命中表项的预测结果;否则,选择altpred为最终预测结果。

动态策略

        使用一个有符号的USE_ALT_ON_NA计数器来作为一个动态的阈值,来决定当最长命中表项信心不足时,最终预测结果的选择方式。USE_ALT_ON_NA可以是单个计数器,也可以是一个计数器寄存器组,其使用分支指令的PC直接索引。当最长命中表项的预测信息不为弱且USE_ALT_ON_NA为负时,选择最长命中预测的结果,否则选择altpred。 当altpred与最终的分支结果相同时,USE_ALT_ON_NA递增,反之则递减。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp内置组件uni.navigateTo跳转后页面空白问题解决

文章目录 导文空白问题 导文 在h5上跳转正常 但是在小程序里面跳转有问题 无任何报错 页面跳转地址显示正确&#xff0c;但页面内容为空 空白问题 控制台&#xff1a; 问题解决&#xff1a; 方法1&#xff1a; 可能是没有注册的问题&#xff0c;把没注册的页面 注册一下。 方…

数据库基础练习4

准备 create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charsetutf8;insert into dept values(101,财务),(102,销售),(103,IT技术),(104,行政);INSERT …

WANGLS

DHCP 动态主机配置协议 原理 网络 网络是双向的,网络是有方向的 广播;广播是由种类的,广播是有范围的的 租约的建立——租约的相应、租约的选择——租约的完成 租约的建立:租约的请求 有客户端发出 DHCP discover 广播、寻找服务器 租约的响应 收到响应,不是服务器,…

模块一SpringBoot(一)

maven记得配置本地路径和镜像 IJ搭建 SpringIntiallizer--》将https://start.spring.io改成https://start.aliyun.com/ 项目结构 Spring有默认配置&#xff0c; application.properties会覆盖默认信息&#xff1a; 如覆盖端口号server.port8888

提升校园管理效率!智慧校园人事管理的职工培训功能解析

在智慧校园的构建框架下&#xff0c;人事管理系统中关于职工培训的部分&#xff0c;扮演了一个促进师资力量成长与个人职业规划深度融合的角色。这一模块细腻地融合了现代教育的需求与教职工个人发展的期望&#xff0c;为提升教学团队的整体实力铺设了一条高效路径。 首先&…

为什么3d模型在透视里面闪烁?---模大狮模型网

在展览3D模型设计中&#xff0c;透视效果是展示空间深度和立体感的重要手段。然而&#xff0c;有时候我们会面对3D模型在特定透视角度下出现闪烁或者失真的问题。本文将深入探讨这一现象的原因及解决方法&#xff0c;帮助设计师们更好地理解和处理这类挑战。 一、为什么3D模型在…

哪个充电宝口碑比较好?怎么选充电宝?2024年口碑优秀充电宝推荐

在如今快节奏的生活中&#xff0c;充电宝已然成为我们日常生活中的必备品。然而&#xff0c;市场上充电宝品牌众多&#xff0c;质量参差不齐&#xff0c;如何选择一款安全、可靠且口碑优秀的充电宝成为了消费者关注的焦点。安全性能不仅关系到充电宝的使用寿命&#xff0c;更关…

记一次mysql迁移Kingbase8

目录 一、下载Kingbase工具二、客户端安装三、数据库开发管理工具 KStudio3.1 主界面3.2 导出数据库建表语句DDL3.3 导出数据 四、数据迁移工具 KDTS4.1 启动KDTS4.2 新建源数据库4.3 新建目标数据库4.4 迁移任务管理 一、下载Kingbase工具 kingbase数据库服务&#xff08;内置…

集合面试题

1. 什么是集合 集合就是一个放数据的容器&#xff0c;准确的说是放数据对象引用的容器 集合类存放的都是对象的引用&#xff0c;而不是对象的本身 集合类型主要有 3 种&#xff1a; set( 集&#xff09;、 list( 列表&#xff09;和 map( 映射 ) 。 2. 集合的特点 集合的特…

软件架构之系统性能评价

软件架构之系统性能评价 第 5 章 系统性能评价5.1 性能指标5.1.1 计算机 5.1.2 网络5.3 性能设计5.3.1 阿姆达尔解决方案5.3.2 负载均衡 5.4 性能评估5.4.1 基准测试程序5.4.2 Web 服务器的性能评估5.4.3 系统监视 第 5 章 系统性能评价 系统性能是一个系统提供给用户的众多性…

四川赤橙宏海商务信息咨询有限公司引领行业发展

随着数字经济的飞速发展&#xff0c;电商行业已成为推动经济增长的重要引擎。在这个大背景下&#xff0c;四川赤橙宏海商务信息咨询有限公司凭借其对抖音电商服务的深度洞察和专业能力&#xff0c;迅速崛起为行业内的佼佼者&#xff0c;为广大企业提供了全方位的电商服务解决方…

Linux学习笔记(二)账户和组

一、基本概念 用 户&#xff1a;用户id&#xff0c;被称为UID 基本组&#xff1a;账户id&#xff0c;被称为GID。用户只能加一个基本组。 0代表超级管理员&#xff0c;root账号。 附加组&#xff1a;用户能加多个基本组。 二、添加账户和组 创建用户名tom&#xff0c;失效…

聚鼎装饰画:装饰画店铺怎么取名

在如今这个充满创意与个性表达的时代&#xff0c;为一家装饰画店铺取名不仅是一个简单的标识过程&#xff0c;它更像是一场精心策划的创意展示。店名不仅承载着商家的期待&#xff0c;也预示着店铺未来的发展方向和市场定位。那么&#xff0c;如何巧妙地为装饰画店铺命名呢? 店…

Java泛型的定义与运用

泛型 泛型的作用从使用层面上来说是统一数据类型&#xff0c;防止将来的数据转换异常。从定义层面上来说&#xff0c;定义带泛型的类&#xff0c;方法等&#xff0c;将来使用的时候给泛型确定什么类型&#xff0c;泛型就会变成什么类型&#xff0c;凡是涉及到泛型的都会变成确…

Tomcat的安全配置

1、生产环境优化 2、部分漏洞修复 转载自风险评估&#xff1a;Tomcat的安全配置&#xff0c;Tomcat安全基线检查加固-CSDN博客

tomcat安装

tomcat tomcat和php一样&#xff0c;都是用来处理动态页面的。 tomcat也可以作为web应用服务器&#xff0c;开源的。 php .php tomcat .jsp nginx .html tomcat是用java代码写的程序&#xff0c;运行的是java的web应用程序 tomcat的特点和功能&#xff1a; 1、servlet容…

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

使用Vue3、Pinia和Vite5打造高度还原的抖音仿制项目

douyin-vue 是一个模仿 抖音|TikTok 的移动端短视频项目。Vue 在移动端的"最佳实践"&#xff0c;媲美原生 App 丝滑流畅的使用体验。使用了最新的 Vue 技术栈&#xff0c;基于 Vue3、Vite5 、Pinia实现。数据保存在项目本地&#xff0c;通过 axios-mock-adapter 库拦…

参数手册 : PXIe-1095

PXIe-1095 起售价 RMB 97,950.00 产品详细信息 PXI机箱类型: PXIe 机箱电源类型: 交流 混合插槽数量: 5 PXI Express插槽数量: 11 冗余硬件选项: 是 最大系统带宽: 24 GB/s 插槽数量: 18 PXI插槽数量: 0 系统定时插槽: 是 槽冷却能力: 82 瓦 简介 PXIe&#xff0c;18槽&am…