CN114154763A - 一种利用感知器改进的锦标赛分支预测方法 - Google Patents
一种利用感知器改进的锦标赛分支预测方法 Download PDFInfo
- Publication number
- CN114154763A CN114154763A CN202111681414.1A CN202111681414A CN114154763A CN 114154763 A CN114154763 A CN 114154763A CN 202111681414 A CN202111681414 A CN 202111681414A CN 114154763 A CN114154763 A CN 114154763A
- Authority
- CN
- China
- Prior art keywords
- predictor
- branch
- global
- perceptron
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000009738 saturating Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Development Economics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Game Theory and Decision Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Advance Control (AREA)
Abstract
本发明提出一种利用感知器改进的锦标赛分支预测方法,称为P‑Tournament分支预测器。本分支预测器旨在利用感知器预测器对于过往历史的学习能力,改进Tournament分支预测器的选择器。P‑Tournament的预测策略为从两个预测器表中选出对应的预测器后,根据感知器输出的正负进行预测器的选择。规定当感知器输出为负时选择局部预测器,为正时选择全局预测器。在分支指令执行完成后,根据下一分支是否采用,以及两个预测器谁预测正确进行更新:假如两个预测器的结果全部正确或者全部错误,不对感知器进行更新;假如只有其中一方正确,那么进行感知器的训练。
Description
技术领域
本发明属于计算机系统结构下流水线技术领域,涉及到一种基于传统分支预测方法的创新型改进。
背景技术
为了提高当代计算机在面对大量重复的指令的效率,人们引入流水线技术来将一个指令的完整运行过程拆分成多个子过程,错开他们的执行时间来使得他们并行执行,最终达到了提高程序指令组整体运行效率的目的。理想的流水线,分级多少就应该有多少倍效率的提升,然而实际情况并非如此,流水线会因许多问题而导致效率降低,其中之一就是“指令相关”及由指令相关引发的“流水线冲突”。
指令相关指的是指令之间存在的相互依赖关系。这种关系使得许多指令无法并行执行,或者只能部分并行执行。指令相关会导致流水线冲突,即由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。流水线冲突可能会导致错误的执行结果,可能会导致流水线停顿,产生气泡从而降低流水线的效率和实际的加速比;为了解决这种冲突我们还需要暂停某些指令的执行以错开指令,消除冲突。不管那种结果,最后都会导致流水线的效率受到影响。
指令相关可以分为数据相关、名相关以及控制相关;由这些相关引起的流水线冲突可以分为数据冲突、控制冲突和结构冲突。其中控制相关与控制冲突的解决与改善是本组此次研究的方向。
“控制相关”,指受到分支指令引起的当前分支指令与目标跳转指令之间的相关。流水线的高效依赖于指令的不断输入,而这依赖于使用PC值进行指令的提取。然而分支指令只有执行到一定阶段才能判断出待跳转指令地址是什么,是否需要跳转也需要分支指令完全执行完毕后才能判断。这种遇到分支指令和其他改变PC值的指令所引起的冲突称为“控制冲突”。
根据对SPEC89的统计,在整体分支执行程序中,仅有11%的分支指令执行超过10000次,但这些分支指令的执行时间占分支指令执行时间总体的90%以上;在所有的分支执行当中,60%的指令具有一个强烈的跳转方向,40%的指令的跳转方向是完全不确定的。通过以上统计结果可以得出,如果能够“预测”指令的跳转成功与否,并且能够提前获得下一条指令的地址,使得计算机能够取出指令放入流水线运行,可以大幅减小控制冲突对效率的影响。为此“分支预测”的理论被提出以用于解决控制冲突问题。
分支预测可以分为静态预测和动态预测两种。静态预测含有单方向静态分支预测(预测总是成功或者总是失败,以及更适应循环执行的“向后分支”静态预测器。静态分支预测由于一旦确定策略就不能再改变,因此预测准确度很难提升,并且对程序的适应性较差。
由于当下流水级数非常长,而流水线分支预测失败需要整个流水线废弃分支指令执行到写回阶段之前的所有已执行操作。对于复杂的流水线,可能会损失20个左右的时钟周期,因此更好的分支预测器非常重要。
动态分支预测方法作为一种将分支指令过去的跳转历史考虑进当前分支预测决策的最新颖的分支预测方法,有着对不同程序的更好适应性,以及大幅提高的预测准确度。
动态分支预测本身可以按照利用的分支历史记录长度的不同分成局部分支预测和全局分支预测;而后续研究发现,如果可以将两种预测方法通过某种方式结合在一起,在实际预测时从中选取成功率更高的一种,可以有效提高预测成功率。这种分支预测方法称为混合分支预测,其中典型之一就是锦标赛分支预测方法(Tournament BranchPredictor)。
全局分支预测的问题在于由于全局历史的记录单纯的记录了所有分支指令的所有分支记录,拥有相似分支历史记录的不同指令可能会因此产生混淆的情况。并且全局分支历史记录对于计数器的要求是指数级增长的,为了达成较好的预测效果需要大量的资源开销。感知器的应用使得全局历史得到了更好的学习,并且全局历史对于感知器的需求是线性增长的。在同等资源规模下,使用感知器的全局预测方法比传统全局预测效果更好。
发明内容
本发明提出一种分支预测器,称为P-Tournament分支预测器。本分支预测器旨在利用感知器预测器对于过往历史的学习能力,改进Tournament分支预测器的选择器。利用感知器代替以往的2为饱和计数器作为选择器可以更好的利用全局历史记录来进行选择,因为最后判断结果的得出依靠的是全局历史记录的加权和;在此基础上,为了进一步改进全局历史预测的效果,引入gshare分支预测技术将全局历史长度和预测器表长度解耦的思想来进一步提高预测准确度并节省更多的资源。
本发明提出的分支预测器命名为P-Tournament分支预测器。这种分支预测器主要由三种功能组成:全局预测器的选择,局部预测器的选择,以及感知器的训练。
全局预测器的选择主要通过将分支指令的低几位与全局历史表的最后几位记录进行哈希或异或运算得出索引,再指向全局分支预测器表中取出对应的饱和计数器预测器。这种异或/哈希运算可以引入当前指令特征并将预测器表长度和全局历史长度解耦,以消除混淆状况并提高预测的准确率。
局部预测器的选择由两层组成。第一层为通过分支指令低几位从局部模式历史表中选出对应的局部历史记录,并且一一对应指向一个局部预测器表进行二级索引。
感知器选择器的选择同样通过指令地址低几位进行索引,值得注意的是感知器存储在一个特殊的表中,表中各项为每个感知器对应于全局历史每一位的权值。
P-Tournament的预测策略为从两个预测器表中选出对应的预测器后,根据感知器输出的正负进行预测器的选择。规定当感知器输出为负时选择局部预测器,为正时选择全局预测器。在分支指令执行完成后,根据下一分支是否采用,以及两个预测器谁预测正确进行更新:假如两个预测器的结果全部正确或者全部错误,不对感知器进行更新;假如只有其中一方正确,那么进行感知器的训练。
感知器选择器的训练与一般的感知器差别不大,感知器对每一个分支历史都有一个对应的权值,最终选择结果根据加权和的正负决定。在训练时应加上一训练阈值应保证训练效果。
有益效果
本分支预测策略比起传统的Tournament预测器,优势一方面在于利用了gshare分支预测器将全局历史记录和预测器表长度解耦的思路,通过引入当前指令的部分特征,可以缩小预测器表长度,最重要的是可以消除由于一部分指令的历史具有相似性导致预测混淆的情况;另一方面,这种分支预测方法利用了感知器预测器来代替传统的2位饱和计数器,因为感知器预测器对于历史的学习效果明显优于传统计数器,因为权值的训练过程可以看作是将历史中蕴含的知识存储下来的过程。
附图说明
图1为整个方法的功能分组示意图;
图2为方法的执行流程;
图3为感知器加权模型。
具体实施方式
为使本发明的目的,技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。
1.PT分支预测器模型的技术细节:
图1里面涉及到了如何选取全局/局部分支预测器,以及整个预测过程的功能分组。值得注意的时,感知器表中存储的时各个感知器的权值。
本节可以结合图1进行查看。
①全局预测器的选择:由当前指令的低8位和全局模式历史表的最后16位散列成一个12位的索引,对应一个拥有4K项的全局预测表,表中的每一项都是一个标准的2位饱和计数器。
②局部预测器的选择:由当前指令的低10位形成索引,指向一个拥有1K项的局部模式历史表,其中每一项都为10bit,记录近期10次跳转结果,而该表同时对一个拥有1K项3位计数器构成的局部预测器表一一对应进行索引。
③感知器选择器:使用PC低12位进行索引,共有4K个感知器,每个索引得到一个感知器,用来选择使用全局预测器还是局部预测器的结果。
之后根据实际分支是否采用更新权值。
2.PT分支预测器的更新策略为:
本节可以结合图2进行查看。
首先,根据当前指令地址的低8位与全局历史最后16位哈希运算形成12位索引,得到一个全局2位饱和计数器预测器。
其次,根据当前指令的低10位作为索引选择对应的局部BHT记录,并选择对应的3位饱和计数器预测器。
最后,根据当前指令的低12位形成索引,得到对应的感知器选择器,进行选择。当感知器的输出为正,采用全局预测器结果,否则采用局部预测器结果。
3.感知器选择器的更新规律:
本节可以结合图1、图2以及图3查看。
感知器本身为采用单层的感知器组成最为简单的神经网络,学习目标为以全局分支历史的纪录的每一数位作为输入的布尔函数T(x1,x2,…,xn)。我们以目标函数的值来判断选择哪种预测器。
图3中展示了作为饱和计数器替代品的感知器模型,其中w1…n是感知器分配给每个记录的权重,而w0则乘1以规范化输入向量,作为偏置量。
感知器的输出y被定义为:
所有的感知器的权值初始化为使得感知器输出为负,即默认采用局部预测器结果作为预测。当全局预测与局部预测结果与实际采用结果均一致或均不一致时,不更新;若只有全局预测结果正确,设t=1,反之若只有局部预测结果正确时,设t=-1。
设n为全局历史长度,wi为对应权重,θ为训练阈值,则感知器的训练伪代码为:
训练结束后将感知器权值存回对应的表中。
Claims (1)
1.一种利用感知器改进的锦标赛分支预测方法,称为P-Tournament分支预测方法,其特征在于包括以下步骤:
①全局预测器的选择:由当前指令的低8位和全局模式历史表的最后16位散列成一个12位的索引,对应一个拥有4K项的全局预测表,表中的每一项都是一个标准的2位饱和计数器;
②局部预测器的选择:由当前指令的低10位形成索引,指向一个拥有1K项的局部模式历史表,其中每一项都为10bit,记录近期10次跳转结果,而该表同时对一个拥有1K项3位计数器构成的局部预测器表一一对应进行索引;
③感知器选择器:使用PC低12位进行索引,共有4K个感知器,每个索引得到一个感知器,用来选择使用全局预测器还是局部预测器的结果;之后根据实际分支是否采用更新权值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681414.1A CN114154763A (zh) | 2021-12-29 | 2021-12-29 | 一种利用感知器改进的锦标赛分支预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111681414.1A CN114154763A (zh) | 2021-12-29 | 2021-12-29 | 一种利用感知器改进的锦标赛分支预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114154763A true CN114154763A (zh) | 2022-03-08 |
Family
ID=80449777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111681414.1A Pending CN114154763A (zh) | 2021-12-29 | 2021-12-29 | 一种利用感知器改进的锦标赛分支预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114154763A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6550004B1 (en) * | 1999-11-05 | 2003-04-15 | Ip-First, Llc | Hybrid branch predictor with improved selector table update mechanism |
CN1601463A (zh) * | 2003-09-24 | 2005-03-30 | 三星电子株式会社 | 低功率消耗的分支预测装置和方法 |
US7219217B1 (en) * | 1998-10-16 | 2007-05-15 | Intel Corporation | Apparatus and method for branch prediction utilizing a predictor combination in parallel with a global predictor |
CN102520914A (zh) * | 2011-11-04 | 2012-06-27 | 杭州中天微系统有限公司 | 支持多路并行预测的分支预测装置 |
US9442726B1 (en) * | 2015-12-15 | 2016-09-13 | International Business Machines Corporation | Perceptron branch predictor with virtualized weights |
US20180285107A1 (en) * | 2017-03-31 | 2018-10-04 | International Business Machines Corporation | Branch prediction using a perceptron-based branch prediction technique |
US20180293076A1 (en) * | 2017-04-05 | 2018-10-11 | International Business Machines Corporation | Branch predictor selection management |
CN110462587A (zh) * | 2018-03-29 | 2019-11-15 | 深圳市大疆创新科技有限公司 | 分支预测的方法与装置 |
-
2021
- 2021-12-29 CN CN202111681414.1A patent/CN114154763A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219217B1 (en) * | 1998-10-16 | 2007-05-15 | Intel Corporation | Apparatus and method for branch prediction utilizing a predictor combination in parallel with a global predictor |
US6550004B1 (en) * | 1999-11-05 | 2003-04-15 | Ip-First, Llc | Hybrid branch predictor with improved selector table update mechanism |
CN1601463A (zh) * | 2003-09-24 | 2005-03-30 | 三星电子株式会社 | 低功率消耗的分支预测装置和方法 |
CN102520914A (zh) * | 2011-11-04 | 2012-06-27 | 杭州中天微系统有限公司 | 支持多路并行预测的分支预测装置 |
US9442726B1 (en) * | 2015-12-15 | 2016-09-13 | International Business Machines Corporation | Perceptron branch predictor with virtualized weights |
US20180285107A1 (en) * | 2017-03-31 | 2018-10-04 | International Business Machines Corporation | Branch prediction using a perceptron-based branch prediction technique |
US20180293076A1 (en) * | 2017-04-05 | 2018-10-11 | International Business Machines Corporation | Branch predictor selection management |
CN110462587A (zh) * | 2018-03-29 | 2019-11-15 | 深圳市大疆创新科技有限公司 | 分支预测的方法与装置 |
Non-Patent Citations (3)
Title |
---|
C. Y. HO等: ""Combining Local and Global History Hashing in Perceptron Branch Prediction", 《6TH IEEE/ACIS INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE (ICIS 2007)》, 23 July 2007 (2007-07-23), pages 1 - 6 * |
ITEYE_18800: "【体系结构】转移预测器涉及与比较", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/iteye_18800/article/details/82522049?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%88%86%E6%94%AF%E9%A2%84%E6%B5%8B%20%E5%85%A8%E5%B1%80%20%E5%B1%80%E9%83%A8%204K%201K&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-82522049.142^v100^pc_search_result_base9&spm=1018.2226.3001.4187> * |
叶新栋等: "Perceptron-Based分支预测SimpleScalar中的实现", 计算机系统应用, vol. 19, no. 01, 31 December 2010 (2010-12-31), pages 51 - 54 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | A discrete particle swarm optimization for covering array generation | |
CN106997286B (zh) | 用于循环分支的分支历史寄存器 | |
US10162635B2 (en) | Confidence-driven selective predication of processor instructions | |
US8943298B2 (en) | Meta predictor restoration upon detecting misprediction | |
CN103250131A (zh) | 包括用于早期远分支预测的影子缓存的单周期多分支预测 | |
CN105224452A (zh) | 一种针对科学计算程序静态分析性能的预测代价优化方法 | |
CN109964207A (zh) | 用于时间行程调试和分析的基于高速缓存的跟踪 | |
CN105242907B (zh) | Arm二进制代码的neon向量化转换方法 | |
Aoki et al. | Heterogeneous multi-task learning with expert diversity | |
CN114154763A (zh) | 一种利用感知器改进的锦标赛分支预测方法 | |
CN116805157A (zh) | 无人集群自主动态评估方法及装置 | |
US10963260B2 (en) | Branch predictor | |
CN101488096B (zh) | 利用出入边关系的剖分信息构建超级块的方法 | |
CN110109811A (zh) | 一种面向gpu计算性能问题的溯源方法 | |
WO2022057459A1 (zh) | 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质 | |
CN115686639A (zh) | 一种应用于处理器的分支预测方法以及分支预测器 | |
CN110069243A (zh) | 一种java程序线程优化方法 | |
CN109582911A (zh) | 用于实行卷积的计算装置及实行卷积的计算方法 | |
Alam et al. | Production-run software failure diagnosis via A daptive C ommunication T racking | |
Healy et al. | Branch Prediction in CPU Pipelining | |
JP7510253B2 (ja) | 分岐予測器 | |
CN114895966A (zh) | 通过bypass电路提升loop分支预测算法准确率的方法 | |
CN115269377B (zh) | 一种基于优化实例选择的跨项目软件缺陷预测方法 | |
CN116069602B (zh) | 一种最坏情况执行时间分析方法和装置 | |
Jing-jing et al. | Intention-aware for Session-based Recommendation with Multi-channel Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |