本发明专利技术提供一种指令分支预测方法,包括:获取预测表,所述预测表包括标记字段,所述标记字段用于预测对应指令是否为压缩指令且非对齐跳转。本发明专利技术指令分支预测方法,通过在预测表中加入一个标记字段来标记该索引对应的指令类型以及该指令是如何跳转的,从而能够区分当前指令是否为压缩指令且进行非对齐跳转,从而能够准确预测指令的跳转,提高处理器的工作效率。
Instruction branch prediction method
【技术实现步骤摘要】
指令分支预测方法
本专利技术涉及预测器
,尤其涉及一种指令分支预测方法。
技术介绍
处理器通常采用流水线结构,并且支持条件分支指令执行。在采用流水线结构的处理器的执行可在条件的确定前使流水线中止,流水线越长,处理器等待时间越长。为了避免处理器性能损失,使用了分支预测技术从而允许处理器基于预测的分支行为推测的获取和执行指令。如果误预条件分支成立,则冲刷流水线中基于预测获取和执行的指令并重新从确定的分支地址获取新的指令。分支预测器预测准确率越高,处理器性能损失越小。传统预测器是基于分支的重复行为。分支预测器通过记录遇到过的分支的地址及分支历史来学习分支行为,从而根据最近几次同一分支指令的记录来预测特定分支指令的分支结果。对于RSIC-V的指令集,32位指令和16位指令可以无缝接一起,这对于读取固定指令长度的传统预测器预测精度带来了挑战。当32位指令与16位指令混杂时,32位指令可能与发生非对齐跳转的16位压缩指令生成的索引数相同,因此32位指令与非对齐的16位压缩指令可能共享一个条目,造成混叠。
技术实现思路
本专利技术提供的指令分支预测方法,能够对压缩指令的非对齐跳转情形进行识别,提高预测的准确性。本专利技术指令分支预测方法,包括:预测器获取预测表,所述预测表包括标记字段;所述预测器依据所述预测表中的标记字段预测指令是否为压缩指令且发生非对齐跳转。可选地,所述标记字段中记录的数据具有第一状态和第二状态;所述第一状态预测当前跳转指令为压缩指令且发生非对齐跳转;所述第二状态预测当前跳转指令为非压缩指令或不发生非对齐跳转。可选地,所述标记字段中记录的数据依据上一次的指令跳转情况更新状态;当上一次的指令跳转情况为压缩指令且发生非对齐跳转时,所述标记字段中记录的数据更新为第一状态;当上一次的指令跳转情况为非压缩指令或不发生非对齐跳转时,所述标记字段中记录的数据更新为第二状态。可选地,所述第一状态以二进制数字1表示,所述第二状态以二进制数字0表示。可选地,所述预测表还包括索引数字段、置信度字段和预测结果字段。可选地,依据所述置信度字段的数据状态判断所述标记字段的数据状态是否重置;当所述预测表的置信度字段为0时,将当前获取的指令的索引数填充进入索引数字段,并重置标记字段中的数据为第一状态或第二状态。可选地,依据所述预测表当前条目的置信度字段判断当前指令是否依据当前条目跳转;当所述当前条目的置信度字段的置信度数据高于预定值时,依据所述预测结果字段和所述标记字段的数据预测当前指令的跳转。可选地,所述预测表为BasePredictor表或tagtable表。可选地,将获取的指令同时在BasePredictor表和若干tagtable表中进行匹配;当tagtable表中具有命中条目时,依据历史信息最长的tagtable表预测指令的跳转;当tagtable表中不具有命中条目时,依据BasePredictor表预测指令的跳转。可选地,所述预测表用于预测RSIC-V指令集中的32位指令和16位压缩指令的跳转进行预测。本专利技术提供了一种指令分支预测方法,通过在预测表中加入一个标记字段来标记该索引对应的指令类型以及该指令是如何跳转的,从而能够区分当前指令是否为压缩指令且进行非对齐跳转,从而能够准确预测指令的跳转,提高处理器的工作效率。附图说明图1为本专利技术指令分支预测方法一实施例的预测流程图;图2为本专利技术指令分支预测方法一实施例的预测器示意图;图3为本专利技术指令分支预测方法一实施例的取指令及跳转示意图;图4为本专利技术指令分支预测方法一实施例的取指令及跳转示意图;图5为本专利技术指令分支预测方法一实施例的取指令及跳转示意图;图6为本专利技术指令分支预测方法一实施例的取指令及跳转示意图;图7为本专利技术指令分支预测方法一实施例的取指令及跳转示意图;图8为本专利技术指令分支预测方法一实施例的BasePredictor表的其中一个条目的示意图;图9为本专利技术指令分支预测方法一实施例的tagtable表的其中一个条目的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1如图1所示,本专利技术实施例提供一种指令分支预测方法,包括:预测器获取预测表,所述预测表包括标记字段;所述预测器依据所述预测表中的标记字段预测指令是否为压缩指令且发生非对齐跳转。本实施例以RSIC-V指令集中的32位指令和16位压缩指令的跳转进行预测为例进行具体说明,但是,本专利技术的应用范围并不限于RSIC-V指令集,也不限于16位压缩指令和32位指令执行过程中,本领域技术人员应当理解,本专利技术的应用范围包括一切易导致混叠的指令执行过程。本实施例的指令分支预测方法的预测过程如图2所示,将指令和全局历史信息同时在BasePredictor表或tagtable表中进行运算匹配;当32位指令与16位压缩指令混杂时,当32位指令与16位指令混杂时,32位指令与非对齐跳转16位压缩指令生成的索引数相同,即32位指令与非对齐16位压缩指令可能共享一个条目,造成混叠,从而使预测器进行误预测。非对齐指的时预测器读取的固定指令长度中跨越了32位地址边界,或是包含了不完整的半条32位指令和一条16位压缩指令。读取一条64位指令束(instructionbundle)时,该指令可能有一下几种组合:1、4条16位压缩指令;2、1条32位指令和两条16位压缩指令;3、2条32位指令;由于32位指令与16位压缩指令集混杂,读取固定长度指令时包含如图3-6所示的几种非对齐指令情况,在图中,灰色为预测器读取的固定指令长度32-bit,箭头为指令跳转位置,虚线为32位地址边界。以图6的情况为例,在运算过程中会出现如下情况:正常的32位指令pc[0:31],全局历史信息为32位h[0:31],但是索引数为8位,其运算过程如下;Tag1=pc[0:7]xorpc[8:15]xorpc[16:23]xorpc[23:31]xorh[0:7]xorh[7:15]xorh[16:23]xorh[24:31];图6中的16位压缩指令pc[0:15]和前半条32位指令pc[16:31],全局历史信息为32位h[0:31],索引数为8位,其运算过程如下:Tag2=pc[0:7]xorpc[8:15]xorpc[16:23]xorpc[23:31]xorh[0:7]xorh[7:15]xorh[16:2本文档来自技高网...
【技术保护点】
1.一种指令分支预测方法,其特征在于,包括:/n预测器获取预测表,所述预测表包括标记字段;/n所述预测器依据所述预测表中的标记字段预测指令是否为压缩指令且发生非对齐跳转。/n
【技术特征摘要】
1.一种指令分支预测方法,其特征在于,包括:
预测器获取预测表,所述预测表包括标记字段;
所述预测器依据所述预测表中的标记字段预测指令是否为压缩指令且发生非对齐跳转。
2.如权利要求1所述指令分支预测方法,其特征在于:所述标记字段中记录的数据具有第一状态和第二状态;
所述第一状态预测当前跳转指令为压缩指令且发生非对齐跳转;
所述第二状态预测当前跳转指令为非压缩指令或不发生非对齐跳转。
3.如权利要求2所述指令分支预测方法,其特征在于:所述标记字段中记录的数据依据上一次的指令跳转情况更新状态;
当上一次的指令跳转情况为压缩指令且发生非对齐跳转时,所述标记字段中记录的数据更新为第一状态;
当上一次的指令跳转情况为非压缩指令或不发生非对齐跳转时,所述标记字段中记录的数据更新为第二状态。
4.如权利要求2所述指令分支预测方法,其特征在于:所述第一状态以二进制数字1表示,所述第二状态以二进制数字0表示。
5.如权利要求2所述指令分支预测方法,其特征在于:所述预测表还包括索引数字段、置信度字段和预测结果字段。
6.如权利要求5所述指令分支预测方法,其...
【专利技术属性】
技术研发人员:张俊逍,王前,葛悦飞,
申请(专利权)人:宁波轸谷科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。