CN113626084B - 一种tage分支预测算法针对超大循环次数指令流优化的方法 - Google Patents
一种tage分支预测算法针对超大循环次数指令流优化的方法 Download PDFInfo
- Publication number
- CN113626084B CN113626084B CN202111032296.1A CN202111032296A CN113626084B CN 113626084 B CN113626084 B CN 113626084B CN 202111032296 A CN202111032296 A CN 202111032296A CN 113626084 B CN113626084 B CN 113626084B
- Authority
- CN
- China
- Prior art keywords
- branch
- predictor
- loop
- prediction
- tage
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 5
- 229920006395 saturated elastomer Polymers 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种TAGE分支预测算法针对超大循环次数指令流优化的方法,涉及处理器分支预测领域。本发明的优点是引入循环预测表和循环预测器(loop predictor),记录现有分支预测算法无法预测的退出循环时的分支指令,筛选出因分支历史信息过长导致TAGE预测失败的分支指令,以及用来实现循环指令流的分支指令,利用循环预测器记录循环跳转的次数,通过TAGE主预测器进行仲裁,最终针对超大循环主体提供有效的分支预测结果;充分利用有限的存储开销,减轻分支预测失败,减少访问冲突,优化分支预测的正确率,提高分支预测精度。
Description
技术领域
本发明涉及处理器分支预测领域,具体涉及一种基于现有的TAGE分支预测算法针对超大循环次数指令流的算法优化的方法。
背景技术
现代处理器通过流水线的级数增加,处理器的工作细化以提升处理器的主频,并广泛采用了超流水,超标量、分支预测、乱序执行、前瞻执行等技术。分支预测技术是提高处理器性能的关键支撑技术,TAGE预测器的实现是通过一个UHT(untagged history table)和N(N>=2)个THT(tagged history table)实现的,每个THT表中每个表项都会包含一个partial tag(部分位)。UHT的索引是通过分支指令的地址直接索引。THT是通过分支指令的地址和GHR(global history register)进行hash(是把任意长度的输入通过特定的算法变换成固定长度的输出,输出的值就是哈希值)后的结果进行索引,并用读出的partial tag和当前分支指令地址生成的partial tag进行比对,如果两个tag值相同表示该THT表命中,从而确定使用哪个表提供的预测结果。不同的THT会使用不同长度的GHR和分支指令的地址进行索引。TAGE预测器的访问会同时访问UHT和THTs(THT_1,THT_2,…THT_N),当所有THTs都没有命中时(THT表项中存储的partial tag和指令计算出的partial tag不相同)预测器会使用UHT提供的预测结果。如果只有1个THT命中,就使用命中的THT提供的结果。如果有多个THT命中,比如THT_i,和THT_j同时命中,如果j>i,会选择THT_j的结果。TAGE预测器的建立是一个从UHT逐步升级到THT_1,THT_2最终到THT_N的过程。THT_1,THT_2,…,THT_N所使用的GHR长度会递增。这样的设计思想是基于如果某个THT无法提供正确的预测,那么说明该分支需要依赖于更长的历史信息,故而将该分支的预测升级到更高的THT_N表项中。比如当UHT不能提供一个正确的预测结果,那么就会在THT_1中建立一个预测项。相似的如果THT_1提供了一个错误的预测,那么就会在THT_2中建立一个预测项。
已有技术的缺点在于:基于TAGE预测器的建立的分支预测系统,如果级别最高的THT(THT_N)依然无法提供正确的结果,那么说明该分支所依赖的历史信息位已经超过了TAGE所能提供的最大历史信息位,无法提供正确的分支预测结果。
发明内容
本发明涉及到一种TAGE分支预测算法针对超大循环次数指令流优化的方法,其特征在于:TAGE条件分支预测器中引入循环预测表和循环预测器,取指后经过predecode后对分支指令进行筛选,
a).如果是因分支历史信息过长导致TAGE预测失败,则直接使用TAGE主预测器的结果;
b).如果是分支历史信息正常,则筛选出用来实现循环指令流的分支指令;
c).记录循环分支实际发生的跳转的次数作为可信度进行判断;
d).如果可信度不满足,则直接使用TAGE主预测器的结果;
e).如果可信度满足,则通过循环预测器与TAGE主预测器进行仲裁,提供有效的分支预测结果。
如以上所述的算法优化的方法,其特征在于所述的步骤a)中所述的分支历史信息过长导致TAGE预测失败的筛选方法具体为,判断TAGE中的THT是否可以提供正确的结果,如果TAGE中级别最高的THT依然无法提供正确的结果,那么说明该分支所依赖的历史信息位已经超过了TAGE所能提供的最大历史信息位,则判定根据TAGE中的THT无法提供正确的分支预测。
如以上所述的算法优化的方法,其特征在于步骤b)中所述的筛选出用来实现循环指令流的分支指令是通过判断向前跳转和向后跳转来实现的,条件分支可以向前跳转(branch target<branch VA,中文意思是目标分支小于可用分支);向后跳转(branchtarget>branch VA,中文意思是目标分支大于可用分支),如果某条指令向前跳转,那么说明此类分支有可能是分支指令。
如以上所述的算法优化的方法,其特征在于步骤c)中所述的记录循环分支实际发生的跳转的次数是通过在循环预测项目中额外加入一个提交跳转次数的计数器(cmt)来实现的,每个循环预测器有三个计数器,一个记录推测跳转的次数(specCnt),一个记录提交跳转的次数(cmtCnt),一个记录循环的次数(termCnt),循环预测器在每个循环预测项目中额外加入一个记录提交跳转次数的计数器(cmtCnt),该计数器在指令提交阶段在更新,当该分支退出该循环时,(cmtCnt)计数器记录循环跳转的次数。
如以上所述的算法优化的方法,其特征在于所述的步骤e)中循环预测器与TAGE主预测器的仲裁方法是包括以下步骤:
1)TAGE中的级别最高的THT通过分支指令的地址和GHR(global historyregister)进行hash后的结果进行索引,并读出的partial tag和当前分支指令地址生成的partialtag来进行比对,如果两个tag值相同则该级别最高的THT表命中;
2)级别最高的THT预测某个分支发生跳转;循环预测器命中;
3)循环预测器提供的可信度很高,本专利在循环预测器中引入3-bit的提交跳转计数器(cmtCnt)作为该预测项的预测可信度,当预测成功时该计数器+1,只有该计数器饱和时才认为该预测项可信,如果某次循环预测器预测失败时,则该预测项无效,后续该预测项便没有机会干预预测;
4)当循环预测器中预测可信度的计数器饱和时,则仲裁TAGE主预测器中提供的预测结果无效,采用循环预测器提供的预测结果为分支预测器的最终结果。
本发明的优点是引入循环预测表和循环预测器(loop predictor),记录现有分支预测算法无法预测的退出循环时的分支指令,筛选出因分支历史信息过长导致TAGE预测失败的分支指令,以及用来实现循环指令流的分支指令,利用循环预测器记录循环跳转的次数,通过TAGE主预测器进行仲裁,最终针对超大循环主体提供有效的分支预测结果;充分利用有限的存储开销,减轻分支预测失败,减少访问冲突,优化分支预测的正确率,提高分支预测精度。
附图说明
下面结合附图和实施例对本发明作进一步的详细说明
图1是本发明的Loop Predictor的系统流程图;
图2和图3是本发明的Loop Predictor与tage predictor的仲裁过程和真值表;
图注:
Tage:TAGE主预测器;
Tage's Result:TAGE主预测器结果;
Loop Predictor's Result:循环预测器结果;
Final Result:循环预测器结果和Tage预测器仲裁后生成的最终结果;
图4是本发明的Loop Predictor的硬件实现;
具体实施方式
本发明是在现有TAGE分支预测算法中针对超大循环次数指令流的算法优化的方法,下面将通过具体实施例说明本发明的优化方法。
图1是本发明的Loop Predictor的系统流程图,如图1中所示,
1.对分支进行predecode(001),并且同时访问Tage预测器(003);
2.根据001的结果,判断是否属于LoopTerm Eligible(002)(branch target<branch VA);
3.如果不满足LoopTerm Eligible(002),那么不开启Loop Predictor.直接使用Tage predictor的结果(008);
4.如果满足LoopTerm Eligible(002),继续访问Loop Predictor(004),使用LoopPredictor(004)和Tage预测器(003)仲裁后生成的预测结果(007),如果可信度不满足直接使用Tage predictor的结果(008);
5.Loop Predictor命中(005)判断访问的loop predictor是否命中,也就是用当前指令的地址和Loop predictor中存放的tag比较的过程,如果相同就是命中。
6.Loop Predictor可信度足够高(006)在Loop Predictor命中(005)命中的前提下,通过loop predictor中conf的内容判断该entry的可信度是否足够高。
7.如果可信度满足Loop Predictor可信度足够高(006),那么使用LoopPredictor和Tage仲裁后的结果(007,009)。
图2,3是本发明的Loop Predictor与tage predictor的仲裁过程和真值表,如图2,3中所示,并结合图1,当图1的006判断为真时,会使用Loop Predictor和Tage仲裁后的结果(007,009),其中,图2提供了仲裁的框架图,图3提供了仲裁过程的真值表。
图4是本发明的Loop Predictor的硬件实现,如图4中所示,
specCnt用于推测更新,通过比较specCnt和termCnt从而确定是否需要终结循环,当specCnt==termCnt是,Loop Predictor提供‘1’,反之提供‘0’;
cmtCnt在commit阶段更新,记录某个分支实际发生的跳转次数,引入cmtCnt的目的用于恢复在错误路径上的speCnt的更新,比如,如果某个命中Loop Predictor的分支在错误的路径上更新了n次,那么speCnt就会比termCnt大n,当这个分支发现在错误的path后那么就用termCnt恢复其speCnt。跳转次数的计数器(cmtCnt)在指令提交阶段在更新,当该分支退出该循环时,跳转次数的计数器(cmtCnt)记录循环跳转的次数;
age用于Loop Predictor的建立,age用于阻拦有效的entry(条目)被替换,只有age为0的Loop Predictor entry才可以被替换掉,每当某个entry的Age阻挡LoopPredictor建立一次,他的值会相应-1;
conf表示该entry提供预测的可信度,只有可信度为高时,该预测才会认为有效。结合图4,conf由一个3-bit饱和计数器实现,当conf的数值达到饱和时,我们认为可信度足够高。
表1列举了Loop predictor可能出现的具体操作,用于更新Loop Predictor,按表1所示Lp Eligible,LoopTermHit,Trained,pred Result以及LoopTerm是分支预测器在推测阶段提供的结果,Determined Result,是指令提交时得到的结果,当分支指令提交时,可以确定是何种操作,从而更新Loop Predictor,表项的最后一列例举了具体的更新行为。
表1
Current Detemined Branch:当前确定的分支;
On flushed path:进行更新路径
Est:初始化分支;
Trained:进行训练;
TrainedCfp:训练更新跳转次数;
Enhance:提高命中;
EnhanceCfp:提高跳转次数;
Disc:无效操作;
Upd:记录实际跳转次数;
UpdCfp:更新实际跳转次数;
Cfplp:实际循环次数;
Lp Eligible的条件:Conditional Branch+Branch Target;smaller than VA;
LoopTermHit的条件:(PC==Tag)&(Vld==1)&();
Trained的条件:初始化为0,在Trained操作后改为1;
LoopTerm:Loop predicotr给出的预测结果;
Pred Resut:分支的最终预测结果;
Determined Result:分支实际的结果。
根据分支预测器(包括TAGE和Loop Predictor)的预测结果以及分支实际的跳转结果,Loop Predictor会有表中提供的9种操作(Est,trained,trainedCfp,Enhance,EnhanceCfp,Disc,Upd,UpdCfp,CfpLp),表中最后一列描述了三个计数器更新在不同操作下的更新情况。
Est操作的条件是,首先这个分支没有被建立,也就是Loop Predictor Miss,并且循环次数超出了ghr的覆盖范围也就是之前提到的:1.THT_N hit;2.THT_N预测跳转;3.分支实际不跳转,满足上述1-3,那么就会建立一个loop predictor entry,建立后的entry并不能提供预测,因为尚未捕捉到该分支循环的次数,无法更新termCnt,Est后的分支主要任务是根据分支实际跳转情况更新cmtCnt,也就是表1中的Upd操作;
Trained/TrainedCfp:当一个命中Loop Predictor的分支实际不跳转时(Determined not taken),此时就捕捉到了该分支loop的次数,将termCnt的值更新为cmtCnt的值,同时将该entry中的Trained位拉高,表示该entry已经训练完成,可以提供预测;
Enhance/EnhanceCfp:操作发生在LpTerm提供正确预测的时候,Enhance用于更新Loop Predictor中的conf,尽管Loop Predictor可以提供预测(命中,并且终止loop)但该预测并不会被采用,直到conf计数器达到饱和后才会被使用;
Di sCard操作用于无效掉某个提供错误结果的Loop Predictor Entry,上述操作都发生在当前指令提交的时候;
Upd/UpdCfp操作的主要目的在于记录分支实际发生的跳转次数(更新specCnt),当某个分支命中Loop predictor后,需要记录该分支实际的跳转次数,当specCnt==termCnt那么Loop Predictor的最终预测结果为‘1’反之为‘0’。
Claims (3)
1.一种TAGE分支预测算法针对超大循环次数指令流优化的方法,其特征在于:TAGE条件分支预测器中引入循环预测表和循环预测器,取指后经过predecode后对分支指令进行筛选,
a)如果是因分支历史信息过长导致TAGE预测失败,则直接使用TAGE主预测器的结果;
b)如果是分支历史信息正常,则筛选出用来实现循环指令流的分支指令;
c)记录循环分支实际发生的跳转的次数作为可信度进行判断,具体为:
通过在循环预测项目中额外加入一个提交跳转次数的计数器来实现的,其中,循环预测器包含三个计数器:推测跳转计数器,用于记录推测跳转的次数;提交跳转计数器,用于记录提交跳转的次数;循环计数器,用于记录循环的次数,其中,记录循环分支实际发生的跳转的次数是通过循环预测项目中的所述提交跳转计数器来实现的,所述提交跳转计数器在指令提交阶段更新,当任一分支退出循环时,所述提交跳转计数器记录循环跳转的次数;
d)如果可信度不满足,则直接使用TAGE主预测器的结果;
e)如果可信度满足,则通过循环预测器与TAGE主预测器进行仲裁,提供有效的分支预测结果,其中,循环预测器与TAGE主预测器的仲裁方法包括以下步骤:
1)TAGE中的级别最高的THT通过分支指令的地址和GHR进行hash后的结果进行索引,并读出的partial tag和当前分支指令地址生成的partial tag来进行比对,如果两个tag值相同则级别最高的THT表命中;
2)所述级别最高的THT预测某个分支发生跳转;
3)循环预测器命中;
4)循环预测器提供的可信度高时,则在循环预测器中引入3-bit 的提交跳转计数器作为预测项的预测可信度,当预测成功时该提交跳转计数器+1,只有该提交跳转计数器饱和时才认为预测项可信,如果某次循环预测器预测失败时,则预测项无效,预测不受后续预测项干预;
5)当循环预测器中预测可信度的计数器饱和时,且同时满足上述1)-4)的步骤,则使用TAGE主预测器与循环预测器仲裁后提供的预测结果作为分支预测器的最终结果。
2.如权利要求1所述的TAGE分支预测算法针对超大循环次数指令流优化的方法,其特征在于步骤a)中所述的分支历史信息过长导致TAGE预测失败具体为:判断TAGE中的THT是否提供正确的结果,如果TAGE中级别最高的THT依然无法提供正确的结果,那么说明该分支所依赖的历史信息位已经超过了TAGE所能提供的最大历史信息位,则判定根据TAGE中的THT无法提供正确的分支预测。
3.如权利要求1所述的TAGE分支预测算法针对超大循环次数指令流优化的方法,其特征在于步骤b)中所述的筛选出用来实现循环指令流的分支指令是通过判断向前跳转和向后跳转来实现的,具体为,当branch target< branch VA时,判断为条件分支向前跳转,当branch target> branch VA时,判断为条件分支向后跳转,如果判断任一条件分支向前跳转,那么说明所述条件分支是分支指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111032296.1A CN113626084B (zh) | 2021-09-03 | 2021-09-03 | 一种tage分支预测算法针对超大循环次数指令流优化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111032296.1A CN113626084B (zh) | 2021-09-03 | 2021-09-03 | 一种tage分支预测算法针对超大循环次数指令流优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626084A CN113626084A (zh) | 2021-11-09 |
CN113626084B true CN113626084B (zh) | 2023-05-19 |
Family
ID=78389002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111032296.1A Active CN113626084B (zh) | 2021-09-03 | 2021-09-03 | 一种tage分支预测算法针对超大循环次数指令流优化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626084B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741118B (zh) * | 2022-04-02 | 2024-10-18 | 江苏华创微系统有限公司 | 一种混合分支预测算法的仲裁方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2937777A2 (en) * | 2014-04-25 | 2015-10-28 | Broadcom Corporation | Branch prediction in a processor |
CN105511838A (zh) * | 2014-09-29 | 2016-04-20 | 上海兆芯集成电路有限公司 | 处理器及其执行方法 |
CN105867884A (zh) * | 2016-03-24 | 2016-08-17 | 清华大学 | 一种改进型PAp分支预测方法 |
CN109783143A (zh) * | 2019-01-25 | 2019-05-21 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
CN112230992A (zh) * | 2019-07-15 | 2021-01-15 | 杭州中天微系统有限公司 | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 |
CN112988234A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向不稳定控制流循环体的分支指令辅助预测器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374349B2 (en) * | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
US20210149676A1 (en) * | 2019-11-14 | 2021-05-20 | Higon Austin R&D Center Corporation | Branch Prediction Method, Branch Prediction Unit and Processor Core |
-
2021
- 2021-09-03 CN CN202111032296.1A patent/CN113626084B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2937777A2 (en) * | 2014-04-25 | 2015-10-28 | Broadcom Corporation | Branch prediction in a processor |
CN105511838A (zh) * | 2014-09-29 | 2016-04-20 | 上海兆芯集成电路有限公司 | 处理器及其执行方法 |
CN105867884A (zh) * | 2016-03-24 | 2016-08-17 | 清华大学 | 一种改进型PAp分支预测方法 |
CN109783143A (zh) * | 2019-01-25 | 2019-05-21 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
CN112230992A (zh) * | 2019-07-15 | 2021-01-15 | 杭州中天微系统有限公司 | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 |
CN112988234A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向不稳定控制流循环体的分支指令辅助预测器 |
Non-Patent Citations (1)
Title |
---|
基于历史长度自适应的分支预测方法;赵朝君;陈晨;陈志坚;孟建熠;;计算机辅助设计与图形学学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113626084A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1513062B1 (en) | Apparatus, method and computer data signal for selectively overriding return stack prediction in response to detection of non-standard return sequence | |
CN110069285B (zh) | 一种检测分支预测的方法及处理器 | |
US7165254B2 (en) | Thread switch upon spin loop detection by threshold count of spin lock reading load instruction | |
CN112543916B (zh) | 多表分支目标缓冲器 | |
MX2008016116A (es) | Metodos y aparato para administracion cache de direccion destino de salto proactivo. | |
US9996469B2 (en) | Methods for prefetching data and apparatuses using the same | |
JP2003005956A (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US20020083310A1 (en) | Method and apparatus for predicting loop exit branches | |
US11442727B2 (en) | Controlling prediction functional blocks used by a branch predictor in a processor | |
US8909908B2 (en) | Microprocessor that refrains from executing a mispredicted branch in the presence of an older unretired cache-missing load instruction | |
JP2010509680A (ja) | ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法 | |
EP2368180B1 (en) | Method and apparatus for performing jump operations in a digital processor | |
US11099849B2 (en) | Method for reducing fetch cycles for return-type instructions | |
US11249762B2 (en) | Apparatus and method for handling incorrect branch direction predictions | |
CN116737240A (zh) | 分支预测方法、装置、处理器、介质及设备 | |
CN113626084B (zh) | 一种tage分支预测算法针对超大循环次数指令流优化的方法 | |
US10620962B2 (en) | Appratus and method for using predicted result values | |
CN117472446B (zh) | 基于处理器的多级取指目标缓冲器的分支预测方法 | |
CN117008979B (zh) | 一种分支预测器 | |
US10922082B2 (en) | Branch predictor | |
CN114840258B (zh) | 一种多层级混合算法过滤式分支预测方法及预测系统 | |
US11403105B2 (en) | Detecting misprediction when an additional branch direction prediction determined using value prediction is considered more accurate than an initial branch direction prediction | |
US11182165B2 (en) | Skip-over offset branch prediction | |
US11204771B2 (en) | Methods and apparatus for handling processor load instructions | |
US6948055B1 (en) | Accuracy of multiple branch prediction schemes |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |