减少指令跳转的方法及装置制造方法及图纸

技术编号:30423308 阅读:13 留言:0更新日期:2021-10-24 16:51
本申请实施例提供了一种减少指令跳转的方法及装置,该方法包括:从存储器中获取指令序列,从所述指令序列中获取第一优化循环,在所述第一优化循环中的指令分布于第i个指令块和第i+1个指令块的情况下,将所述第一优化循环转移至所述第i+1个指令块中。该方法可以将第一优化循环中指令的转移到一个指令块中,使得第一优化循环可以一次性加载至指令存储单元,从而可以减少自然循环引起的跳转情况,降低程序的执行时间,提升系统运行效率。提升系统运行效率。提升系统运行效率。

【技术实现步骤摘要】
减少指令跳转的方法及装置


[0001]本申请涉及处理器
,尤其涉及一种减少指令跳转的方法及装置。

技术介绍

[0002]随着科学技术的发展,终端设备支持的功能越来越强大,终端设备中的处理器处理的程序也越来越复杂。处理器通常可以在一个时钟周期内同时发射和执行多条指令,来获得更高的性能。但在处理器的运行过程中,可能会存在大量的自然循环,若自然循环中的一些指令不在当前执行的指令块中时,处理器需要进行指令块的传输来将目标指令块加载至指令存储单元中以执行目标指令,使得处理器的时间代价很高。因此,如何能够减少自然循环引起的跳转情况,降低程序的执行时间,从而提升系统运行效率,是现今急需解决的问题。
[0003]申请内容
[0004]本申请实施例提供了一种减少指令跳转的方法及装置,能够减少自然循环引起的跳转情况,降低程序的执行时间,从而提升系统运行效率。
[0005]第一方面,本申请实施例提供一种减少指令跳转的方法,所述方法包括:
[0006]从存储器中获取指令序列,所述指令序列包括n个指令块,所述指令块包括至少一个指令,所述n为大于1的正整数;
[0007]从所述指令序列中获取第一优化循环,在所述第一优化循环中的循环分布于第i个指令块和第i+1个指令块的情况下,将所述第一优化循环转移至所述第i+1个指令块中,所述第一优化循环为占用存储空间小于或等于所述第i+1个指令块占用存储空间的自然循环,所述i为小于n的正整数。
[0008]在一个可能的实施例中,所述方法还包括:
[0009]在所述第一优化循环中的指令分布于第i个指令块和第i+1个指令块的情况下,在所述第i个指令块的所述第一优化循环的地址上填充空指令。
[0010]在一个可能的实施例中,在将所述第一优化循环转移至所述第i+1个指令块中之后,所述方法还包括:
[0011]更新所述指令序列以及所述指令序列中指令的PC值和地址;根据更新后的所述指令序列确定所述n的大小。
[0012]在一个可能的实施例中,所述方法还包括:
[0013]在所述指令序列中标记待优化循环,所述待优化循环为存储于连续存储空间的自然循环;
[0014]从所述标记的待优化循环中查找所述第一优化循环。
[0015]在一个可能的实施例中,所述方法还包括:
[0016]所述n个指令块中的任一指令块占用的存储空间根据所述指令存储单元的存储空间确定,所述指令存储单元包括第一指令存储单元和/或第二指令存储单元。
[0017]进一步地,在所述指令存储单元包括第二指令存储单元的情况下,所述方法还包
括:
[0018]在所述第i个指令块的最后一条指令后面插入传参指令和相关指令,所述传参指令用于将所述第i+1个指令块的地址传送至所述相关指令,所述相关指令用于将所述第i+1个指令块加载至所述第二指令存储单元;
[0019]所述n个指令块中的任一指令块占用的存储空间根据所述指令存储单元的存储空间确定,包括:
[0020]所述n个指令块中的任一指令块占用的存储空间根据所述第二指令存储单元的存储空间以及所述传参指令和所述相关指令占用的存储空间确定
[0021]在一个可能的实施例中,所述第二指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述n个指令块中的一指令块,所述第二存储单元用于存储所述传参指令和所述相关指令;
[0022]所述n个指令块中的任一指令块占用的存储空间根据所述指令存储单元的存储空间确定,包括:
[0023]所述n个指令块中的任一指令块占用的存储空间根据所述第二指令存储单元中的第一存储单元的存储空间确定。
[0024]第二方面,本申请实施例提供一种减少指令跳转的装置,所述装置包括:
[0025]获取模块,用于从存储器中获取指令序列,所述指令序列包括n个指令块,所述指令块包括至少一个指令,所述n为大于1的正整数;
[0026]所述获取模块,还用于从所述指令序列中获取第一优化循环;
[0027]转移模块,用于在所述第一优化循环中的指令分布于第i个指令块和第i+1个指令块的情况下,将所述第一优化循环转移至所述第i+1个指令块中,所述第一优化循环为占用存储空间小于或等于所述第i+1个指令块占用存储空间的自然循环,所述i为小于n的正整数。
[0028]在一个可能的实施例中,所述装置还包括:
[0029]填充模块,用于在所述第一优化循环中的指令分布于第i个指令块和第i+1个指令块的情况下,在所述第i个指令块的所述第一优化循环的地址上填充空指令。
[0030]在一个可能的实施例中,在将所述第一优化循环转移至所述第i+1个指令块中之后,所述装置还包括:
[0031]更新模块,用于更新所述指令序列以及所述指令序列中指令的PC值和地址;
[0032]确定模块,用于根据更新后的所述指令序列确定所述n的大小。
[0033]在一个可能的实施例中,所述装置还包括:
[0034]标记模块,用于在所述指令序列中标记待优化循环,所述待优化循环为存储于连续存储空间的自然循环;
[0035]查找模块,用于从所述标记的待优化循环中查找所述第一优化循环。
[0036]在一个可能的实施例中,所述确定模块,还用于:
[0037]所述n个指令块中的任一指令块占用的存储空间根据所述指令存储单元的存储空间确定,所述指令存储单元包括第一指令存储单元和/或第二指令存储单元。
[0038]在一个可能的实施例中,在所述指令存储单元包括第二指令存储单元的情况下,所述装置还包括:
[0039]插入模块,用于在所述第i个指令块的最后一条指令后面插入传参指令和相关指令,所述传参指令用于将所述第i+1个指令块的地址传送至所述相关指令,所述相关指令用于将所述第i+1个指令块加载至所述第二指令存储单元;
[0040]所述确定模块,具体用于所述n个指令块中的任一指令块占用的存储空间根据所述第二指令存储单元的存储空间以及所述传参指令和所述相关指令占用的存储空间确定。
[0041]在一个可能的实施例中,所述第二指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述n个指令块中的一指令块,所述第二存储单元用于存储所述传参指令和所述相关指令;
[0042]所述确定模块,具体用于所述n个指令块中的任一指令块占用的存储空间根据所述第二指令存储单元中的第一存储单元的存储空间确定。
[0043]第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本申请实施例第一方面所描述的部分或全部步骤。
[0044]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储用于数据交换的计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种减少指令跳转的方法,其特征在于,所述方法包括:从存储器中获取指令序列,所述指令序列包括n个指令块,所述指令块包括至少一个指令,所述n为大于1的正整数;从所述指令序列中获取第一优化循环,在所述第一优化循环中的指令分布于第i个指令块和第i+1个指令块的情况下,将所述第一优化循环中的指令转移至所述第i+1个指令块中,所述第一优化循环为占用存储空间小于或等于所述第i+1个指令块占用存储空间的自然循环,所述i为小于n的正整数。2.根据权利要求1所述方法,其特征在于,所述方法还包括:在所述第一优化循环中的指令分布于所述第i个指令块和所述第i+1个指令块的情况下,在所述第i个指令块的所述第一优化循环中的地址上填充空指令。3.根据权利要求2所述方法,其特征在于,所述将所述第一优化循环转移至所述第i+1个指令块中之后,所述方法还包括:更新所述指令序列以及所述指令序列中指令的PC值和地址;根据更新后的所述指令序列确定所述n的大小。4.根据权利要求1所述方法,其特征在于,所述方法还包括:在所述指令序列中标记待优化循环,所述待优化循环为存储于连续存储空间的自然循环;从所述标记的待优化循环中查找所述第一优化循环。5.根据权利要求1-4任一项所述方法,其特征在于,所述方法还包括:所述n个指令块中的任一指令块占用的存储空间根据所述指令存储单元的存储空间确定,所述指令存储单元包括第一指令存储单元和/或第二指令存储单元。6.根据权利要求5所述方法,其特征在于,在所述指令存储单元包括第二指令存储单元的情况下,所述方法还包括:在所述第i个指令块的最后一条指令后面插入传参指令和相关指令,所述传参指令用于将所述第i+1个指令块的地址传送至所述相关指令,所述相关指令用于将所述第i+1...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

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

1