System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 分支预测方法、电子设备及可读存储介质技术_技高网

分支预测方法、电子设备及可读存储介质技术

技术编号:40588133 阅读:4 留言:0更新日期:2024-03-12 21:48
本申请提供了一种分支预测方法、电子设备及可读存储介质。能够基于本申请提供的分支预测器同时预测多条指令的跳转结果。分支预测器包含若干个预测表,预测表中包含若干个项,各个项均具有可基于指令地址以及全局历史寄存器确定的索引值。并且,每个项中均包含若干个存储有预测值的计数器。对于处理器在一个时钟周期内获取了多个指令的场景,可确定多个指令对应的预测地址,并基于该预测地址与全局历史寄存器确定各个预测表中对应于该预测地址的项,每个项中的不同计数器中的预测值可对应于不同指令的预测结果。因此,基于预测地址可在同一个时钟周期内同时确定多个指令的预测结果,以此提高处理器的指令处理速度以及分支预测的准确性。

【技术实现步骤摘要】

本申请涉及处理器,具体涉及一种分支预测方法、电子设备及可读存储介质


技术介绍

1、为满足用户对处理器处理指令的高效率需求,可基于分支预测(branchprediction)在分支指令的跳转结果生成之前,预测该分支指令的跳转方向。进而使得处理器在处理分支指令时,可直接在预测的跳转方向上继续获取指令,以此节省等待生成分支指令的跳转结果所需的时间,提高处理器性能。

2、具体地,在基于几何历史长度(geometric history length,gehl)分支预测器进行分支预测的场景中,可基于分支指令地址和全局历史寄存器(global historyregister,ghr)在gehl分支预测器的各个预测表中索引到一个包含预测值的计数器,进而,gehl分支预测器可将索引到的各个预测值加和,作为该分支指令的预测结果。

3、基于上述内容,可以理解,gehl分支预测器基于一个指令地址仅能确定一个预测结果。对于一个时钟周期内可一次性取多条指令的处理器架构,gehl分支预测器无法一次性对获取的多条指令生成不同的预测结果,导致gehl分支预测器在同时取多条指令的处理器架构下的性能不佳。


技术实现思路

1、本申请提供了一种分支预测方法、电子设备及可读存储介质。对于处理器在一个时钟周期可同时取多条指令的场景中,能够同时预测多条指令的跳转结果,提高指令处理效率。

2、第一方面,本申请提供了一种分支预测方法,应用于处理器,该处理器包括用于根据指令地址预测分支指令跳转结果的分支预测器,该分支预测方法包括:确定当前周期内取得的多个指令的指令地址;基于多个指令的指令地址确定多个指令对应的预测地址;基于预测地址及全局历史寄存器在分支预测器的预测表中索引预测地址对应的表项,其中,表项包括多个计数器,计数器存储了分支指令的跳转结果的第一预测值;基于表项的多个计数器的第一预测值预测多个指令中的分支指令的跳转结果,其中,表项中的计数器数量与多个指令的指令数量相同。

3、如此,处理器可基于每个表项中包括多个计数器的分支预测器同时生成多个指令的预测结果。可以理解,若处理器在当前周期内取得的多个指令中存在多个分支指令,则可同时预测多个分支指令的跳转结果。在此,前述周期可为下述时钟周期。

4、在上述第一方面的一种可能的实现中,基于多个指令的指令地址确定多个指令对应的预测地址,包括:基于多个指令的虚拟地址确定多个指令相同的高位地址,其中,多个指令的虚拟地址相邻;将高位地址作为多个指令对应的预测地址。

5、在此,通过上述方式将处理器同时取得的多个指令的指令地址融合为一个预测地址,使得分支预测器可基于该预测地址进行一次索引操作即可索引到多个指令在预测表中对应的表项。在此,前述表项可为下述预测表的项(entry)。

6、在上述第一方面的一种可能的实现中,分支预测器包括多个具有对应的哈希规则的预测表,预测表中包括多个具有索引值的表项,其中,基于预测地址及全局历史寄存器在分支预测器的预测表中索引预测地址对应的表项,包括:将预测地址与全局历史寄存器根据各个预测表对应的哈希规则进行哈希运算,得到预测地址在各个预测表中的索引值;将各个预测表中预测地址的索引值对应的表项作为预测地址对应的各个表项。

7、如此,处理器可根据分支预测器的多个预测表确定分支指令的跳转结果,由于各个预测表的哈希规则不同,因此,同一个预测地址在不同预测表中基于哈希规则计算得到的索引值可能不同。同样地,不同预测表中索引值相同的表项对应的预测地址也可能不同。此方式有效降低了基于预测地址索引对应表项中的哈希冲突。此外,一个预测地址在各个预测表中均具有对应的表项,因此,各个指令的预测结果基于多个对应的表项确定,提高了预测结果的可靠性。

8、在上述第一方面的一种可能的实现中,预测地址对应的各个表项中的各个计数器与多个指令中的各个指令一一对应,其中,基于表项的多个计数器的第一预测值预测多个指令中的分支指令的跳转结果,包括:在预测地址对应的各个表项中确定指令对应的计数器;将指令在各个表项中对应的计数器的第一预测值加和,得到该指令的第二预测值;基于多个指令中的分支指令对应的第二预测值预测该分支指令的跳转结果。

9、在此,分支预测器的预测表中的各个表项包括多个计数器,计数器的数量与处理器在同一个时钟周期内取得的指令数量相同。每个计数器均对应同一个时钟周期内取得的一条指令,计数器中的数值即为对应指令的第一预测值。可以理解,处理器在同一个时钟周期内取得的各个指令均具有多个对应的计数器,指令对应的计数器个数即为分支预测器的预测表个数。各个指令的预测结果基于其对应的多个计数器确定,具体地,将指令对应的多个计数器中的第一预测值加和得到第二预测值,进而,基于第二预测值确定指令的预测结果。在此,前述第一预测值可为下述计数器中的预测值,前述第二预测值可为下述目标预测值。

10、在上述第一方面的一种可能的实现中,处理器还包括用于确定指令类型的指令对照表,其中,基于多个指令中的分支指令对应的第二预测值预测该分支指令的跳转结果,包括:基于指令对照表确定多个指令中的分支指令;基于分支指令对应的第二预测值预测该分支指令的跳转结果。

11、在此,处理器可存储有记载指令类型的指令对照表,进而,在确定各个指令的第二预测值后,可在该指令对照表中确定该指令是否为分支指令。若该指令为分支指令,则可基于其对应的第二预测值预测其跳转结果;若该指令不是分支指令,则不需预测该指令的跳转结果。

12、在上述第一方面的一种可能的实现中,计数器为有符号饱和计数器,其中,基于分支指令对应的第二预测值预测该分支指令的跳转结果,包括:

13、分支指令对应的第二预测值为非负数,预测分支指令的跳转结果为跳转;反之,

14、分支指令对应的第二预测值为负数,预测分支指令的跳转结果为不跳转。

15、在此,计数器可为具有固定数据范围的有符号饱和计数器,例如,计数器的数值范围可为-8至7的整数,计数器中的第一预测值为非负数,表明该计数器对应的指令具有跳转的倾向性。因此,若基于多个第一预测值加和得到的第二预测值为非负数,则可确定该指令的预测结果为跳转。相应地,计数器中的第一预测值为负数,表明该计数器对应的指令具有不跳转的倾向性。因此,若基于多个第一预测值加和得到的第二预测值为负数,则可确定该指令的预测结果为不跳转。

16、在上述第一方面的一种可能的实现中,基于预测的分支指令的跳转结果以及分支指令的实际跳转结果更新分支指令对应的第一预测值,其中,若实际跳转结果与预测的跳转结果不同,且分支指令的预测的跳转结果为跳转,则更新后的第一预测值为第一预测值与预设变化量的差值;若实际跳转结果与预测的跳转结果不同,且预测的分支指令的跳转结果为不跳转,则更新后的第一预测值为第一预测值与预设变化量的加和。

17、如此,可根据分支指令的实际跳转结果动态调整该指令对应的计数器中的第一预测值,以提高后续的分本文档来自技高网...

【技术保护点】

1.一种分支预测方法,其特征在于,应用于处理器,所述处理器包括用于根据指令地址预测分支指令跳转结果的分支预测器,所述方法包括:

2.根据权利要求1所述的分支预测方法,其特征在于,所述基于所述多个指令的指令地址确定所述多个指令对应的预测地址,包括:

3.根据权利要求1所述的分支预测方法,其特征在于,所述分支预测器包括多个具有对应的哈希规则的预测表,所述预测表中包括多个具有索引值的表项,

4.根据权利要求3所述的分支预测方法,其特征在于,所述预测地址对应的各个表项中的各个计数器与所述多个指令中的各个指令一一对应,其中,所述基于所述表项的所述多个计数器的第一预测值预测所述多个指令中的所述分支指令的跳转结果,包括:

5.根据权利要求4所述的分支预测方法,其特征在于,所述处理器还包括用于确定指令类型的指令对照表,其中,所述基于所述多个指令中的所述分支指令对应的第二预测值预测该分支指令的跳转结果,包括:

6.根据权利要求4所述的分支预测方法,其特征在于,所述计数器为有符号饱和计数器,其中,所述基于所述分支指令对应的第二预测值预测该分支指令的跳转结果,包括:

7.根据权利要求6所述的分支预测方法,其特征在于,所述方法还包括:基于预测的所述分支指令的跳转结果以及所述分支指令的实际跳转结果更新所述分支指令对应的第一预测值,

8.根据权利要求6所述的分支预测方法,其特征在于,所述方法还包括:基于预测的所述分支指令的跳转结果、所述分支指令的实际跳转结果、预设阈值及所述分支指令的所述第二预测值更新所述分支指令对应的第一预测值,

9.一种分支预测装置,其特征在于,应用于处理器,所述处理器包括用于根据指令地址预测分支指令跳转结果的分支预测器,所述分支预测装置包括:

10.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至9中任一项所述的分支预测方法。

11.一种计算机可读介质,其特征在于,所述可读介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至9中任一项所述的分支预测方法。

12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至9中任一项所述的分支预测方法的步骤。

...

【技术特征摘要】

1.一种分支预测方法,其特征在于,应用于处理器,所述处理器包括用于根据指令地址预测分支指令跳转结果的分支预测器,所述方法包括:

2.根据权利要求1所述的分支预测方法,其特征在于,所述基于所述多个指令的指令地址确定所述多个指令对应的预测地址,包括:

3.根据权利要求1所述的分支预测方法,其特征在于,所述分支预测器包括多个具有对应的哈希规则的预测表,所述预测表中包括多个具有索引值的表项,

4.根据权利要求3所述的分支预测方法,其特征在于,所述预测地址对应的各个表项中的各个计数器与所述多个指令中的各个指令一一对应,其中,所述基于所述表项的所述多个计数器的第一预测值预测所述多个指令中的所述分支指令的跳转结果,包括:

5.根据权利要求4所述的分支预测方法,其特征在于,所述处理器还包括用于确定指令类型的指令对照表,其中,所述基于所述多个指令中的所述分支指令对应的第二预测值预测该分支指令的跳转结果,包括:

6.根据权利要求4所述的分支预测方法,其特征在于,所述计数器为有符号饱和计数器,其中,所述基于所述分支指令对应的第二预测值预测该分支指令的跳转结果,包括:

7.根据权利要求6所述的分支...

【专利技术属性】
技术研发人员:孙秋杰王文明
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1