【技术实现步骤摘要】
指令预测方法、装置、系统及计算机可读存储介质
[0001]本申请要求于
2022
年5月
10
日提交的申请号为
202210504984.1、
专利技术名称为“数据处理方法
、
装置和网络系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中
。
[0002]本申请涉及计算机
,尤其涉及一种指令预测方法
、
装置
、
系统及计算机可读存储介质
。
技术介绍
[0003]指令流水线是一种将指令的执行过程分解为多个相关联的阶段,各个阶段由专门的电路完成的技术
。
指令流水线至少包括:取指令阶段和执行阶段
。
取指令阶段用于取出要执行的指令,执行阶段用于执行取指令阶段取出的指令,确定所要执行的下一条指令
。
若要执行的指令为条件分支指令,该条件分支指令之后通常具有两路分支,不同分支对应的下一条指令不同
。
由于在执行阶段才能够确定所要执行的是哪个分支对应的下一条指令,因此需要一种指令预测方法,以在确定出所要执行的下一条指令之前,先预测出下一条指令是哪个分支对应的指令,从而能够提前将该分支对应的指令送入取指令阶段,提高指令的执行效率
。
[0004]相关技术中,将条件分支指令的某一路分支对应的指令固定的作为所要执行的下一条指令
。
然而,由于一次仅能预测一条条件分支指令对应的下一条指令,相关
【技术保护点】
【技术特征摘要】
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
之间的跳转关系;预测模块,用于基于所述多...
【专利技术属性】
技术研发人员:韩冰,陈永瑜,李楠,田太徐,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。