指令处理方法、装置、程序产品、计算机设备和介质制造方法及图纸

技术编号:35082315 阅读:31 留言:0更新日期:2022-09-28 11:51
本申请公开了一种指令处理方法、装置、程序产品、计算机设备和介质,该方法包括:对硬件循环指令的循环体进行循环执行;循环体中包含分支指令;当执行至分支指令时,获取分支指令的预测信息,预测信息用于指示预测的分支指令的下一指令;执行分支指令,并按照预测信息的指示执行预测的下一指令;获取分支指令的执行结果,执行结果用于指示确定的分支指令的下一指令;若预测的下一指令与确定的下一指令不匹配,则撤销对预测的下一指令的执行,并对循环体的当前执行参数进行校正处理;当前执行参数用于指示当前对循环体进行循环执行的进度。采用本申请,可提高对硬件循环指令的编译灵活性。性。性。

【技术实现步骤摘要】
指令处理方法、装置、程序产品、计算机设备和介质


[0001]本申请涉及计算机
,尤其涉及一种指令处理方法、装置、程序产品、计算机设备和介质。

技术介绍

[0002]处理器可以在计算机系统中负责控制和运算和工作,处理器是信息处理、程序运行的最终执行单元。
[0003]现有应用,大多数处理器中并没有硬件循环指令,而对于有硬件循环指令的处理器,针对硬件循环指令的编译也会有很多限制,导致对硬件循环指令的编译并不灵活。

技术实现思路

[0004]本申请提供了一种指令处理方法、装置、程序产品、计算机设备和介质,可提高对硬件循环指令的编译灵活性。
[0005]本申请一方面提供了一种指令处理方法,该方法包括:对硬件循环指令的循环体进行循环执行;循环体中包含分支指令;当执行至分支指令时,获取分支指令的预测信息,预测信息用于指示预测的分支指令的下一指令;执行分支指令,并按照预测信息的指示执行预测的下一指令;获取分支指令的执行结果,执行结果用于指示确定的分支指令的下一指令;若预测的下一指令与确定的下一指令不匹配,则撤销对预测的下一指令的执行,并对循环体的当前执行参数进行校正处理;当前执行参数用于指示当前对循环体进行循环执行的进度。
[0006]本申请一方面提供了一种指令处理装置,该装置包括:执行模块,用于对硬件循环指令的循环体进行循环执行;循环体中包含分支指令;获取模块,用于当执行至分支指令时,获取分支指令的预测信息,预测信息用于指示预测的分支指令的下一指令;执行模块,用于执行分支指令,并按照预测信息的指示执行预测的下一指令;获取模块,用于获取分支指令的执行结果,执行结果用于指示确定的分支指令的下一指令;校正模块,用于若预测的下一指令与确定的下一指令不匹配,则撤销对预测的下一指令的执行,并对循环体的当前执行参数进行校正处理;当前执行参数用于指示当前对循环体进行循环执行的进度。
[0007]可选的,执行模块执行分支指令,并按照预测信息的指示执行预测的下一指令的方式,包括:在流水线结构的多个阶段依次执行分支指令;在执行分支指令的过程中和在对分支指令执行完成后,在多个阶段中执行过分支
指令的阶段执行预测的下一指令。
[0008]可选的,预测信息用于指示预测的需要跳转到分支指令的关联指令,或预测的不需要跳转到分支指令的关联指令;若预测信息用于指示预测的需要跳转到分支指令的关联指令,则预测信息用于获取预测的分支指令的关联指令;分支指令的执行结果用于指示确定的需要跳转到分支指令的关联指令,或确定的不需要跳转到分支指令的关联指令;若分支指令的执行结果用于指示确定的需要跳转到分支指令的关联指令,则分支指令的执行结果用于获取确定的分支指令的关联指令。
[0009]可选的,若预测信息包含预测的关联指令,则预测的下一指令是指预测的关联指令;若预测信息不包含预测的关联指令,则预测的下一指令是指循环体中与分支指令相邻的下一指令。
[0010]可选的,若分支指令的执行结果包含确定的关联指令,则确定的下一指令是指确定的关联指令;若分支指令的执行结果不包含确定的关联指令,则确定的下一指令是指循环体中与分支指令相邻的下一指令。
[0011]可选的,上述装置还用于:若预测的下一指令与确定的下一指令不匹配,则在撤销对预测的下一指令的执行后,执行确定的下一指令。
[0012]可选的,分支指令是在对循环体进行第N次循环执行的过程中获取的,N为正整数,N小于或等于循环体总的循环次数;当前执行参数包含循环体在当前的剩余循环次数;上述装置还用于:若预测的下一指令是循环体中的结束指令,则在执行结束指令时,获取循环体在进行第N次循环执行前的剩余循环次数;将循环体在进行第N次循环执行前的剩余循环次数减去单位次数,得到循环体在当前的剩余循环次数;其中,若预测的下一指令不是结束指令,则在执行预测的下一指令时,循环体在当前的剩余循环次数等于循环体在进行第N次循环执行前的剩余循环次数。
[0013]可选的,校正模块对循环体的当前执行参数进行校正处理的方式,包括:获取循环体在进行第N次循环执行前的剩余循环次数;若循环体在进行第N次循环执行前的剩余循环次数与循环体在当前的剩余循环次数不同,则将循环体在当前的剩余循环次数加上单位次数,得到对循环体在当前的剩余循环次数进行校正后的剩余循环次数。
[0014]可选的,分支指令是在对循环体进行第N次循环执行的过程中获取的,N为正整数,N小于或等于循环体总的循环次数;当前执行参数包含当前的提交标识,当前的提交标识用于指示当前已对目标执行结果进行提交或未对目标执行结果进行提交,目标执行结果是指循环体在进行第N次循环执行时对循环体中结束指令的执行结果;当前的提交标识为初始标识或未提交标识;
上述装置还用于:若预测的下一指令是循环体中的结束指令,则在执行结束指令时,将循环体在进行第N次循环执行前的提交标识由初始标识更新为未提交标识,得到当前的提交标识;若对结束指令执行完成,则将当前的提交标识由未提交标识更新为初始标识;其中,若预测的下一指令不是结束指令,则在执行预测的下一指令时,当前的提交标识为初始标识。
[0015]可选的,校正模块对循环体的当前执行参数进行校正处理的方式,包括:若当前的提交标识为未提交标识,则将当前的提交标识由未提交标识重新校正为初始标识。
[0016]可选的,方法具有相互嵌套的K个硬件循环指令,K个硬件循环指令中的第k

1个硬件循环指令嵌套在第k个硬件循环指令中,k和K均为正整数,k小于或等于K且k大于1;相互嵌套的K个硬件循环指令根据嵌套的顺序被依次压入栈中,第k

1个硬件循环指令和第k个硬件循环指令在栈中的位置相邻,第k个硬件循环指令先于第k

1个硬件循环指令被压入栈中;K个硬件循环指令根据被压入栈中的反顺序被依次执行。
[0017]可选的,上述装置还用于:当依次对K个硬件循环指令执行完成时,得到第K个硬件循环指令的执行结果,并输出第K个硬件循环指令的执行结果。
[0018]本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
[0019]本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
[0020]根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
[0021]本申请可以对硬件循环指令的循环体进行循环执行;循环体中包含分支指令;当执行至分支指令时,获取分支指令的预测信息,预测信息用于指示预测的分支指令的下一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令处理方法,其特征在于,所述方法包括:对硬件循环指令的循环体进行循环执行;所述循环体中包含分支指令;当执行至所述分支指令时,获取所述分支指令的预测信息,所述预测信息用于指示预测的所述分支指令的下一指令;执行所述分支指令,并按照所述预测信息的指示执行预测的下一指令;获取所述分支指令的执行结果,所述分支指令的执行结果用于指示确定的所述分支指令的下一指令;若所述预测的下一指令与确定的下一指令不匹配,则撤销对所述预测的下一指令的执行,并对所述循环体的当前执行参数进行校正处理;所述当前执行参数用于指示当前对所述循环体进行循环执行的进度。2.根据权利要求1所述的方法,其特征在于,所述执行所述分支指令,并按照所述预测信息的指示执行预测的下一指令,包括:在流水线结构的多个阶段依次执行所述分支指令;在执行所述分支指令的过程中和在对所述分支指令执行完成后,在所述多个阶段中执行过所述分支指令的阶段执行所述预测的下一指令。3.根据权利要求1所述的方法,其特征在于,所述预测信息用于指示预测的需要跳转到所述分支指令的关联指令,或预测的不需要跳转到所述分支指令的关联指令;若所述预测信息用于指示预测的需要跳转到所述分支指令的关联指令,则所述预测信息用于获取预测的所述分支指令的关联指令;所述分支指令的执行结果用于指示确定的需要跳转到所述分支指令的关联指令,或确定的不需要跳转到所述分支指令的关联指令;若所述分支指令的执行结果用于指示确定的需要跳转到所述分支指令的关联指令,则所述分支指令的执行结果用于获取确定的所述分支指令的关联指令。4.根据权利要求3所述的方法,其特征在于,若所述预测信息包含预测的关联指令,则所述预测的下一指令是指预测的关联指令;若所述预测信息不包含所述预测的关联指令,则所述预测的下一指令是指所述循环体中与所述分支指令相邻的下一指令。5.根据权利要求3所述的方法,其特征在于,若所述分支指令的执行结果包含确定的关联指令,则所述确定的下一指令是指确定的关联指令;若所述分支指令的执行结果不包含所述确定的关联指令,则所述确定的下一指令是指所述循环体中与所述分支指令相邻的下一指令。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述预测的下一指令与所述确定的下一指令不匹配,则在撤销对所述预测的下一指令的执行后,执行所述确定的下一指令。7.根据权利要求1所述的方法,其特征在于,所述分支指令是在对所述循环体进行第N次循环执行的过程中获取的,N为正整数,N小于或等于所述循环体总的循环次数;所述当前执行参数包含所述循环体在当前的剩余循环次数;所述方法还包括:若所述预测的下一指令是所述循环体中的结束指令,则在执行所述结束指令时,获取
所述循环体在进行所述第N次循环执行前的剩余循环次数;将所述循环体在进行所述第N次循环执行前的剩余循环次数减去单位次数,得到所述循环体在当前的剩余循环次数;其中,若所述预测的下一指令不是所述结束指令,则在执行所述预测的下一指令时,所述循环体在当前的剩余循环次数等于所述循环体在进行所述第N次循环执行前的剩余循环次数。8.根据权利要求7所述的方法,其特征在于,所述对所述循环体的当前执行参数进行校正处理,包括:获取所述循环体在进行所述第N次循环执行前的剩余循环次数;若所述循环体在进行所述第N次循环执行前的剩余循环次数与所述循环体在当前的剩余循环次数不同,则将所述循环体在当前的剩余循环次数加上所述单位次数,得到对所述循环体在当前的剩余循环次...

【专利技术属性】
技术研发人员:任子木
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1