【技术实现步骤摘要】
一种处理器分支指令执行结果预测方法及系统
[0001]本专利技术涉及分支预测
,并特别涉及一种处理器分支指令执行结果预测方法及系统
。
技术介绍
[0002]分支预测是处理器前端取指的关键技术,它对分支指令的执行结果进行预测,取指部件据此对推测
(speculative)
执行流进行取指,并送往后端执行部件进行执行
。
用于分支预测的分支预测器的核心部件是记录分支预测信息的缓存
BTB
,以指令为单位记录分支指令的信息
。
[0003]某些处理器会中采用一种
FTB(FetchTargetBuffer)
设计,以指令块为单位,记录其中存在的分支指令信息,以及块的结束地址
。
指令块代表一次预测覆盖的范围
/
单位,同一指令块内的分支指令会一起进行预测
。
[0004]FetchTargetBuffer
,其代表一种以块为单位存储分支指令信息的
BTB(BranchTargetBuffer)
设计,它和传统
BTB
的主要区别在于:
[0005]传统
BTB
每一项对应一条分支指令信息,通过分支指令本身的地址
(
或程序计数器
PC)
寻址存储表;而
FTB
以指令块为单位进行预测,以指令块起始地址寻址存储表,查到的项内包含该指令块内的分支指令信息,以及该指令块的结束地 ...
【技术保护点】
【技术特征摘要】
1.
一种处理器分支指令执行结果预测方法,其特征在于,包括:步骤
1、
根据第一指令块的起始地址查询分支预测器内部记录有连续预测能力的指令块的连续预测缓存
NBB
,并进行标签
tag
匹配,若存在匹配的标签
tag
则执行步骤2,否则根据该分支预测器的预测流程,输出当前该第一指令块的预测结果;步骤
2、
在该分支预测器的快速预测流水级,根据该匹配的标签
tag
得到连续预测缓存
NBB
中记录的该第一指令块的预测偏向;同时从快速预测器得到对该第一指令块的快速预测结果,并比较其和该预测偏向是否一致,若是,则使用
NBB
中记载的对第二指令块的默认预测结果得到第三指令块的起始地址,以在下一个时钟周期对该第三指令块进行预测;步骤
3、
在该分支预测器的后续流水级,该分支预测器根据该第一指令块的起始地址得到该第一指令块的准确预测结果,并比较其和该预测偏向是否一致,若是,则输出该第一指令块的准确预测结果和该第二指令块的预测结果;否则,仅输出该第一指令块的准确预测结果
。2.
如权利要求1所述的处理器分支指令执行结果预测方法,其特征在于,该步骤3包括:在该第一指令块的该准确预测结果和连续预测缓存
NBB
偏向不一致时,若该快速预测流水级曾根据该第一指令块的快速预测结果,使用该第二指令块的预测结果,则进行流水线冲刷,从该第一指令块的准确预测结果
对
应的该第二指令块的起始地址开始,进行预测;用该连续预测缓存
NBB
中记载的该第一指令块的跳转目标作为该第二指令块的起始地址,通过预设分支预测算法得到第二指令块的预测需要的标签
tag
,执行
TAGE
预测逻辑,从而得到该分支预测器对该第二指令块的分支指令结果的预测,并结合连续预测缓存
NBB
中得到的
FTB
项,得到该第二指令块的准确预测结果,从而检查该第二指令块的预测结果,如果不符,则进行流水线冲刷,根据该第二指令块的准确预测结果,重定向至该第三指令块的起始地址
。3.
如权利要求1所述的处理器分支指令执行结果预测方法,其特征在于,还包括:步骤4,对于每个指令块的更新请求,连续预测缓存
NBB
的标签
tag
使用该第一指令块的起始地址计算,更新时用该第一指令块的起始地址查询连续预测缓存
NBB
:如果命中,则判断该第一指令块的真实分支结果是否和
NBB
项内记录的相符,若是则增加该第一指令块的偏向置信度
Bias conf
,否则降低该第一指令块的偏向置信度
Bias conf
;如果不命中,则新建
NBB
中表项,
Bias conf
从初始值起步;该步骤2包括:当根据该匹配的标签
tag
对应的偏向置信度
Bias conf
大于阈值时,根据
NBB
中记录的该匹配的标签
tag
对应的第一个块跳转路径作为该第一指令块的预测偏向
。4.
如权利要求1所述的处理器分支指令执行结果预测方法,其特征在于,该
FTB
项内最多支持的分支条数为预设的正整数
...
【专利技术属性】
技术研发人员:勾凌睿,唐丹,包云岗,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。