指令预测方法技术

技术编号:39502731 阅读:9 留言:0更新日期:2023-11-24 11:34
本申请公开了一种指令预测方法

【技术实现步骤摘要】
指令预测方法、装置、系统及计算机可读存储介质
[0001]本申请要求于
2022
年5月
10
日提交的申请号为
202210504984.1、
专利技术名称为“数据处理方法

装置和网络系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中



[0002]本申请涉及计算机
,尤其涉及一种指令预测方法

装置

系统及计算机可读存储介质


技术介绍

[0003]指令流水线是一种将指令的执行过程分解为多个相关联的阶段,各个阶段由专门的电路完成的技术

指令流水线至少包括:取指令阶段和执行阶段

取指令阶段用于取出要执行的指令,执行阶段用于执行取指令阶段取出的指令,确定所要执行的下一条指令

若要执行的指令为条件分支指令,该条件分支指令之后通常具有两路分支,不同分支对应的下一条指令不同

由于在执行阶段才能够确定所要执行的是哪个分支对应的下一条指令,因此需要一种指令预测方法,以在确定出所要执行的下一条指令之前,先预测出下一条指令是哪个分支对应的指令,从而能够提前将该分支对应的指令送入取指令阶段,提高指令的执行效率

[0004]相关技术中,将条件分支指令的某一路分支对应的指令固定的作为所要执行的下一条指令

然而,由于一次仅能预测一条条件分支指令对应的下一条指令,相关技术的预测效率较低

并且,对于不同的条件分支指令,由于后续所要执行的下一条指令可能不同,相关技术的预测准确性较低


技术实现思路

[0005]本申请提出一种指令预测方法

装置

系统及计算机可读存储介质,用于提高指令预测的效率以及准确性

[0006]第一方面,提供了一种指令预测方法,该方法应用于处理器,该方法包括:处理器获取待执行的多个第一指令块
(instruction block

IB)
,该多个第一
IB
中的任一个第一
IB
包括顺序执行的至少一条指令,该至少一条指令包括一条分支指令;然后,基于多个第一
IB
包括的分支指令,在至少一条候选执行路径中查找与多个第一
IB
对应的候选执行路径,该至少一条候选执行路径中的任一条候选执行路径指示多个第二
IB
之间的跳转关系,该与多个第一
IB
对应的候选执行路径指示的跳转关系中包括该多个第一
IB
之间的跳转关系;最后,基于该多个第一
IB
之间的跳转关系预测各个第一
IB
包括的分支指令对应的下一条指令

[0007]该方法能够适用于业务随机性较高的网络处理器和
CPU
等处理器,适用范围较广

再有,该方法基于多个第一
IB
包括的分支指令,获取与多个第一
IB
对应的候选执行路径

由于该候选执行路径指示的跳转关系中包括该多个第一
IB
之间的跳转关系,基于该多个第一
IB
之间的跳转关系能够直接对各个第一
IB
包括的分支指令对应的下一条指令进行预测,从而预测各个第一
IB
包括的分支指令对应的下一条指令的效率较高

由于多个第一
IB
之间的跳转关系是通过该多个第一
IB
对应的候选执行路径指示的,该多个第一
IB
之间的跳转关系可以不同

与相关技术中将某一路分支对应的指令固定的作为所要执行的下一条指令的方式相比,该方法获取到的多个第一
IB
之间的跳转关系的准确性较高,从而预测各个第一
IB
包括的分支指令对应的下一条指令的准确性较高,指令的执行效率较高

[0008]在一种可能的实现方式中,基于多个第一
IB
包括的分支指令,在至少一条候选执行路径中查找与多个第一
IB
对应的候选执行路径,包括:基于多个第一
IB
包括的分支指令获取多个第一
IB
对应的关键字,不同关键字对应不同的候选执行路径;在至少一条候选执行路径中查找与该关键字对应的候选执行路径,将与该关键字对应的候选执行路径作为与该多个第一
IB
对应的候选执行路径

由于关键字是基于多个第一
IB
包括的分支指令获取的,该方法能够降低查找与多个第一
IB
对应的候选执行路径所需的资源,从而提高查找与多个第一
IB
对应的候选执行路径的效率

[0009]在一种可能的实现方式中,至少一条候选执行路径以及与至少一条候选执行路径各自对应的索引存储在存储器中,至少一条候选执行路径各自对应的索引以及与各个索引对应的关键字存储在内存中;在至少一条候选执行路径中查找与关键字对应的候选执行路径,包括:将关键字输入内存,获取内存输出的与关键字对应的目标索引,在存储器存储的至少一条候选执行路径中查找与目标索引对应的候选执行路径,将与目标索引对应的候选执行路径作为与关键字对应的候选执行路径

该方法中查找与关键字对应的候选执行路径的过程可以基于多级存储实现,查找与关键字对应的候选执行路径的方式较为灵活

由于内存的查找速度较快但存储资源较为有限,存储器的查找速度较慢但存储资源较为充足,该方法通过以多级存储的方式实现查找与关键字对应的候选执行路径,能够在保证有较为充足的存储空间来存储至少一条候选执行路径的同时,提高查找与关键字对应的候选执行路径的效率

[0010]在一种可能的实现方式中,该方法还包括:基于在至少一条候选执行路径中未查找到与多个第一
IB
对应的候选执行路径,处理器确定多个第一
IB
之间的跳转关系为参考跳转关系;基于参考跳转关系预测各个第一
IB
包括的分支指令对应的下一条指令

在未能查找到与多个第一
IB
对应的候选执行路径的情况下,该方法也能够对各个第一
IB
包括的分支指令对应的下一条指令进行预测,提高获取各个第一
IB
包括的分支指令对应的下一条指令的效率,该方法能够灵活适用于不同的情况

[0011]在一种可能的实现方式中,处理器确定多个第一
IB
之间的跳转关系为参考跳转关系,包括:处理器在各个第一
IB
之间添加目标指令,目标指令用于指示各个第一
...

【技术保护点】

【技术特征摘要】
1.
一种指令预测方法,其特征在于,包括:处理器获取待执行的多个第一指令块
IB
,任一个第一
IB
包括顺序执行的至少一条指令,所述至少一条指令包括一条分支指令;基于所述多个第一
IB
包括的分支指令,在至少一条候选执行路径中查找与所述多个第一
IB
对应的候选执行路径,任一条候选执行路径指示多个第二
IB
之间的跳转关系,所述与所述多个第一
IB
对应的候选执行路径指示的跳转关系中包括所述多个第一
IB
之间的跳转关系;基于所述多个第一
IB
之间的跳转关系预测各个第一
IB
包括的分支指令对应的下一条指令
。2.
根据权利要求1所述的方法,其特征在于,所述基于所述多个第一
IB
包括的分支指令,在至少一条候选执行路径中查找与所述多个第一
IB
对应的候选执行路径,包括:基于所述多个第一
IB
包括的分支指令获取所述多个第一
IB
对应的关键字,不同关键字对应不同的候选执行路径;在所述至少一条候选执行路径中查找与所述关键字对应的候选执行路径,将与所述关键字对应的候选执行路径作为所述与所述多个第一
IB
对应的候选执行路径
。3.
根据权利要求2所述的方法,其特征在于,所述至少一条候选执行路径以及与所述至少一条候选执行路径各自对应的索引存储在存储器中,所述至少一条候选执行路径各自对应的索引以及与各个索引对应的关键字存储在内存中;所述在所述至少一条候选执行路径中查找与所述关键字对应的候选执行路径,包括:将所述关键字输入所述内存,获取所述内存输出的与所述关键字对应的目标索引,在所述存储器存储的所述至少一条候选执行路径中查找与所述目标索引对应的候选执行路径,将与所述目标索引对应的候选执行路径作为与所述关键字对应的候选执行路径
。4.
根据权利要求1‑3任一所述的方法,其特征在于,所述方法还包括:基于在所述至少一条候选执行路径中未查找到与所述多个第一
IB
对应的候选执行路径,所述处理器确定所述多个第一
IB
之间的跳转关系为参考跳转关系;基于所述参考跳转关系预测各个第一
IB
包括的分支指令对应的下一条指令
。5.
根据权利要求4所述的方法,其特征在于,所述处理器确定所述多个第一
IB
之间的跳转关系为参考跳转关系,包括:处理器在各个第一
IB
之间添加目标指令,所述目标指令用于指示各个第一
IB
之间的跳转关系为该参考跳转关系
。6.
根据权利要求1‑5任一所述的方法,其特征在于,所述处理器确定所述多个第一
IB
之间的跳转关系之后,所述方法还包括:所述处理器基于所述多个第一
IB
之间的跳转关系,将所述多个第一
IB
的执行顺序信息和存储地址信息存储在
IB
队列中,所述执行顺序信息用于指示所述多个第一
IB
包括的指令的执行顺序,所述存储地址信息用于指示所述多个第一
IB
包括的指令的存储地址;从所述
IB
队列中依次获取所述多个第一
IB
的执行顺序信息和存储地址信息;按照获取的执行顺序信息指示的执行顺序,基于获取的存储地址信息指示的存储地址依次获取指令,执行获取到的指令
。7.
根据权利要求6所述的方法,其特征在于,还包括:
对于所述获取到的指令为分支指令,响应于预测的所述分支指令对应的下一条指令与所需执行的下一条指令不同,所述处理器基于所述所需执行的下一条指令获取待执行的至少一个第三
IB
,预测所述至少一个第三
IB
包括的分支指令对应的下一条指令
。8.
根据权利要求6或7所述的方法,其特征在于,还包括:对于所述获取到的指令为分支指令,响应于预测的所述分支指令对应的下一条指令与所需执行的下一条指令不同,所述处理器删除所述
IB
队列中存储的所述多个第一
IB
的执行顺序信息和存储地址信息
。9.
根据权利要求6‑8任一所述的方法,其特征在于,所述处理器支持至少两个线程,所述处理器在所述至少两个线程中的任一个线程上,执行基于存储地址获取指令的操作
。10.
根据权利要求9所述的方法,其特征在于,所述处理器在所述至少两个线程中的任一个线程上,执行基于存储地址获取指令的操作,包括:所述处理器在资源空闲时,在所述至少两个线程中的任一个线程上,执行基于存储地址获取指令的操作
。11.
一种指令预测装置,其特征在于,所述装置应用于处理器,所述装置包括:获取模块,用于获取待执行的多个第一指令块
IB
,任一个第一
IB
包括顺序执行的至少一条指令,所述至少一条指令包括一条分支指令;查找模块,用于基于所述多个第一
IB
包括的分支指令,在至少一条候选执行路径中查找与所述多个第一
IB
对应的候选执行路径,任一条候选执行路径指示多个第二
IB
之间的跳转关系,所述与所述多个第一
IB
对应的候选执行路径指示的跳转关系中包括所述多个第一
IB
之间的跳转关系;预测模块,用于基于所述多...

【专利技术属性】
技术研发人员:韩冰陈永瑜李楠田太徐
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1