TAGE Predictor
PPM (Prediction by Partial Matching)
TAGE是PPM的改进版本,两者在数据的更新方式(主要是u值)上有所区别,但是在总体架构上基本相似。
PPM架构: (Michaud Pierre 2005)
最为左边的部分(bimodal bank)是一个由部分PC直接索引的3-bits饱和计数器,充当本地预测器。与一般的饱和计数器不同,附带了一个m位(meta-predictor 代表全局预测器的有效性)。右边的四个部分是四个类似Gshare的预测器,把本地PC和全局分支历史通过Hash结合到一起。其中心思想在于构造一个竞争预测器以本地的预测作为基础,而使用带有全局分支信息的多个作用条件更强的预测器作为辅助,辅助预测器适用的作用条件越强,其预测的上下文越具体,其预测在和其他预测器竞争时可信度越高。这样就在进入和脱离特定上下文时减少了惯性,而在上下文具有典型的特征时作出准确的预测。
在预测时,PC和不同长度的全局分支历史通过索引Hash(此处是带折叠的XOR)得到索引值,而后得到饱和计数器ctr值,8-bit的tag值和u(useful 代表记录的有效性)值,同时PC和不同长度的全局分支历史通过校验Hash(随便起的名字,是图上右边的hash函数,用于校验的hash函数和用于索引的函数是不同的)得到8-bit校验值,比较该值和查找表中的tag值,如果两者相同则控制底部的Mux选择Mux右边输入(ctr高位的输出),如该不同则选择Mux左边输入的值(前一级传入输出)。这样预测器则总会选择tag和Hash输出命中的具有最长全局分支历史的预测器的预测结果,如果tag一个都没命中,则选择本地预测器结果。
在更新时,由于得到了预测是否正确的信息,需要更新预测器的状态。对于饱和计数器而言,只有在作出最终Prediction的那个Bank的3-bits饱和计数器会被更新,其余四个Bank的对应位置的3-bits饱和计数器不会被更新。如果预测错误,就表明在作出该预测时的上下文不具有典型性,预测器就需要对该上下文作出识别,即把该上下文的信息添加到更符合特殊情况(更右边)的预测器中,这样在再次遇到类似情形时就可以更准确的识别预测。其更新的策略为,选取比当前预测器更右的u为0(暗示该记录是过时无效的)的预测器加入记录并把对应u置1,如果所有u都为1,则随机更新。在更新是还需要设置饱和计数器ctr的值,在m位为1时根据真实结果更新为3或4,在m为0时更新为最左边预测器(本地预测器)的预测结果。更新m和u的值仅发生在本地预测器和最终预测结果不同时,如该最终正确则同时置1,否则同时置0。原因在原文中有所分析:如果最终结果正确那么全局预测自然有效(m),对应记录也有效(u)。
TAGE (partially TAgged GEometric history length branch prediction)
TAGE架构: (Seznec André & Michaud Pierre 2006)
TAGE明确的提出了使用几何级数(Geometric series)作为全局分支历史长度,由于PPM原理在于对不同规模上下文的分离预测,使用几何级数序列达到了较好的各级分离度。
在TAGE中u是一个2-bit饱和计数器,生成结果的预测器被称为provider component,当provider component无效时生成结果的预测器被称为altpred,u更新发生在provider component和altpred结果不同时,策略与PPM类似,当正确时增加,错误时降低。此外为了解决PPMu位不易变化的问题,会周期的重置u的高位和低位。在更新pred(ctr)值时,provider component的总是会被更新,而和PPM不同的是,在预测错误时需要更右侧(不包括最右侧)的被更新时,如果有u为0,则倾向更新较靠左边的,pred置为weak correct,u置0,这样可以对上下文匹配的抽象和具体之间可以达到更好的权衡,如果所有u非0,则不改变pred,所有u减去1。
TAGE Predictor相关推荐
- TAGE-SC-L Branch Predictors
[摘要] TAGE被认为是最有存储效率的全局历史信息分支预测器.Andre就指出TAGE加上statistical corrector(SC)和loop predictor会更加高效.CBP-4tra ...
- RISC-V BOOM核学习
来源:RISC-V BOOM documentation RISC-V BOOM核学习 The Berkeley Out-of-Oder Machine INTRODUCTION RV64GC Fig ...
- IEEE-Micro 2021-2010年间CPU Micro-architecture方向文章总结
2021 IBM's POWER10 Processor 服务器 特性概述 提升20%性能和30%core 吞吐量(相对于power9) 优化矩阵运算 1TB/s的跨系统存储集群带宽 模块化die,支 ...
- predictor = dlib.shape_predictor()关键点预测器用法
predictor = dlib.shape_predictor('data/data_dlib/shape_predictor_68_face_landmarks.dat') 功能:标记人脸关键点 ...
- 成功解决 shape = predictor(img, dets[0]) IndexError: Index out of range
成功解决 shape = predictor(img, dets[0]) IndexError: Index out of range 目录 解决问题 解决方法 解决问题 shape = pre ...
- matlab中predictor怎么填,在MATLAB中求解非線性有限元
我嘗試在MATLAB中求解帶有節點熱源的四面體有限元的熱擴散問題,這個節點取決於解矢量.非線性方程系統如下:在MATLAB中求解非線性有限元 乙U」 + A U = Q(T) 與B是熱capactiy ...
- 【演化计算】【论文研读】Surrogate-Assisted Evolutionary DL Using E2E Random Forest-based Performance Predictor
Surrogate-Assisted Evolutionary Deep Learning Using an End-to-End Random Forest-based Performance Pr ...
- 论文阅读:A Novel Graph based Trajectory Predictor with Pseudo Oracle
A Novel Graph based Trajectory Predictor with Pseudo Oracle 摘要 1 引言 2 相关工作 3 PROPOSED METHOD IV. EXP ...
- dlib.get_frontal_face_detector(), Python format 格式化函数 predictor(img, dets[0])
detector = dlib.get_frontal_face_detector() # 人脸检测dets = detector(img, 1)# len(dets) 即为检测到的人脸个数print ...
- JSTSP2016 Fully Deep Blind Image Quality Predictor
这是一个直接用CNN做IQA的工作,直接输入图像不提取特征,借用FR-IQA方法解决了训练数据不足.大量图像没有MOS等问题. 文章首先提出NR-IQA与FR-IQA的区别--是否利用了原始图片信息: ...
最新文章
- Java 多线程编程(锁优化)
- VC2005中依然没有Refactoring和Code Expansion.
- 深入理解Hadoop集群和网络
- mysql log位置_MySql: log 位置
- 关于UAC执行级别的研究
- Java EE 8怎么了? (第2部分)
- com 组件调用不起来_Spring Cloud Alibaba,分布式服务调用(四)
- 错把女生的耍脾气当拒绝
- 资深大学老师告诉你:嵌入式、单片机开发必备软件有哪些
- UE4添加人物动画之前后左右移动
- Git和SVN区别和命令
- 处理24人!又一批科研不端案例被通报批评
- Python每输出n个换行
- 为什么编c语言总有一个错误,为什么程序最后总会显示有1个错误
- 无向有权图的建立(邻接链表法) 广度优先搜索 深度优先搜素
- 三种页面置换算法(详解)
- Intel无线网卡蓝牙功能失效解决思路分享
- hdu2191 买大米 多重背包 模板题
- Thread.currentThread.interrupt()
- 基于Python个人博客系统设计与实现 开题报告
热门文章
- asyncawait的前世今生
- Unity3D手游开发实践《腾讯桌球》客户端开发经验总结
- NMS中的 offset by class 是什么意思?
- 学习Unity3D是一件痛并快乐着的事
- maven的pom文件引入依赖报错:提示无法处理 Cannot resolve...
- Python零基础学习笔记(三十三)—— 窗体的控制...
- miktex报错:the remote package repository is outdated
- 拼图软件——texturepacker
- 七日杀服务器怎么设置家的位置,七日杀固定地图在哪儿建家好 | 手游网游页游攻略大全...
- Swift 网络请求——Moya的使用