程序运行方法及装置制造方法及图纸

技术编号:28672531 阅读:12 留言:0更新日期:2021-06-02 02:48
本申请实施例提供了一种程序运行方法及装置,该方法可以通过调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令,从而在软件层面上实现了可以运行大于指令存储单元存储空间的程序。

【技术实现步骤摘要】
程序运行方法及装置
本申请涉及处理器
,尤其涉及一种程序运行方法及装置。
技术介绍
随着科学技术的发展,终端设备支持的功能越来越强大,终端设备中的处理器处理的程序也越来越复杂。而现有的指令存储单元的存储空间有限,比如,一般的指令存储单元能够存储1024条指令,但对于一些复杂度比较大的功能,其需要运行的指令占用的存储空间通常会大于指令存储单元的存储空间,因此需要一种机制来确保大于指令存储单元大小的程序能够在指令存储单元上正常运行。通常硬件会提供一些机制来保证程序的正常运行,但当硬件不提供相关机制时,大于指令存储单元存储空间的程序则无法运行。申请内容本申请实施例提供了一种程序运行方法及装置,可实现在不具备指令交换机制的硬件上运行大于指令存储单元存储空间的程序。第一方面,本申请实施例提供一种程序运行方法,所述方法包括:从存储器中获取指令集,其中,所述指令集包括至少一个指令块,所述指令块包括至少一个指令;将目标指令块加载至指令存储单元,以执行所述指令存储单元中的目标指令块;若即将执行的目标指令未在所述目标指令块中时,调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令。在一个可能的实施例中,所述目标指令块还包括传参指令,所述传参指令为所述目标指令块的最后一条指令;所述传参指令用于将所述目标指令的目标地址传送至所述相关指令。在一个可能的实施例中,所述目标指令块包括所述相关指令,所述相关指令置于所述目标指令块的最后。在一个可能的实施例中,所述指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述目标指令块;若即将执行的目标指令未在所述目标指令块中时,所述调用相关指令获得所述目标指令所在的指令块,包括:若即将执行的目标指令未在所述目标指令块中时,则从所述第二存储单元中调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述第一存储单元中。在一个可能的实施例中,在所述将目标指令块加载至指令存储单元之前,当所述指令块中包含长跳转指令时,所述方法还包括:若所述长跳转指令之后存在空指令,则将所述空指令替换为所述传参指令;若所述长跳转指令之后不存在空指令,则在所述长跳转指令的前面或后面插入所述传参指令。在一个可能的实施例中,所述方法还包括:当所述指令集中插入传参指令或相关指令后,更新所述指令集以及所述指令集中指令的PC值;根据更新后的所述指令集确定所述指令块的数量。在一个可能的实施例中,所述调用相关指令获得所述目标指令所在的指令块,包括:调用所述相关指令,确定所述目标指令的目标地址;根据所述目标指令的目标地址确定所述目标指令所在的指令块。进一步地,所述根据所述目标指令的目标地址确定所述目标指令所在的指令块,还包括:根据所述目标指令的目标地址,确定所述目标指令所在的指令块的首地址以及所述目标指令块所在的指令块。在一个可能的实施例中,所述将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令,包括:通过所述相关指令确定所述目标指令在所述目标指令块中的当前位置;将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中之后,从所述目标指令的当前位置开始执行所述目标指令块。第二方面,本申请实施例提供一种程序运行装置,所述装置包括:获取模块,用于从存储器中获取指令集,其中,所述指令集包括至少一个指令块,所述指令块包括至少一个指令;加载模块,用于将目标指令块加载至指令存储单元,以执行所述指令存储单元中的目标指令块;调用模块,用于若即将执行的目标指令未在所述目标指令块中时,调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令。在一个可能的实施例中,所述目标指令块还包括传参指令,所述传参指令为所述目标指令块的最后一条指令;所述传参指令用于将所述目标指令的目标地址传送至所述相关指令。在一个可能的实施例中,所述目标指令块包括所述相关指令,所述相关指令置于所述目标指令块的最后。在一个可能的实施例中,所述指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述目标指令块;若即将执行的目标指令未在所述目标指令块中时,所述调用相关指令获得所述目标指令所在的指令块,包括:若即将执行的目标指令未在所述目标指令块中时,则从所述第二存储单元中调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述第一存储单元中。在一个可能的实施例中,在所述将目标指令块加载至指令存储单元之前,当所述指令块中包含长跳转指令时,所述装置还包括:替换模块,用于若所述长跳转指令之后存在空指令,则将所述空指令替换为所述传参指令;插入模块,用于若所述长跳转指令之后不存在空指令,则所述长跳转指令的前面或后面插入所述传参指令。在一个可能的实施例中,所述程序运行装置还包括:更新模块,用于当所述指令集中插入传参指令或相关指令后,更新所述指令集以及所述指令集中指令的PC值;确定模块,用于根据更新后的所述指令集确定所述指令块的数量。在一个可能的实施例中,所述调用模块还用于执行:调用所述相关指令,获得所述目标指令的目标地址;根据所述目标指令的目标地址确定所述目标指令所在的指令块。进一步地,所述调用模块还用于执行:根据所述目标指令的目标地址,确定所述目标指令所在的指令块的首地址以及所述目标指令块所在的指令块。在一个可能的实施例中,所述调用模块还用于执行:通过所述相关指令确定所述目标指令在所述目标指令块中的当前位置;将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中之后,从所述目标指令的当前位置开始执行所述目标指令块。第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本申请实施例第一方面所描述的部分或全部步骤。第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储用于数据交换的计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面所描述的部分或全部步骤。第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。实施本申请实施例,至少具有如下有益效果:本申请实施例提供一种程序运行方法及装置,通过从本文档来自技高网...

【技术保护点】
1.一种程序运行方法,其特征在于,所述方法包括:/n从存储器中获取指令集,其中,所述指令集包括至少一个指令块,所述指令块包括至少一个指令;/n将目标指令块加载至指令存储单元,以执行所述指令存储单元中的目标指令块;/n若即将执行的目标指令未在所述目标指令块中时,调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令。/n

【技术特征摘要】
1.一种程序运行方法,其特征在于,所述方法包括:
从存储器中获取指令集,其中,所述指令集包括至少一个指令块,所述指令块包括至少一个指令;
将目标指令块加载至指令存储单元,以执行所述指令存储单元中的目标指令块;
若即将执行的目标指令未在所述目标指令块中时,调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令。


2.根据权利要求1所述的方法,其特征在于,所述目标指令块包括传参指令,所述传参指令为所述目标指令块的最后一条指令;
所述传参指令用于将所述目标指令的目标地址传送至所述相关指令。


3.根据权利要求2所述的方法,其特征在于,所述目标指令块还包括所述相关指令,所述相关指令置于所述目标指令块的最后。


4.根据权利要求2所述的方法,其特征在于,所述指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述目标指令块;
若即将执行的目标指令未在所述目标指令块中时,所述调用相关指令获得所述目标指令所在的指令块,包括:
若即将执行的目标指令未在所述目标指令块中时,则从所述第二存储单元中调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述第一存储单元中。


5.根据权利要求3或4所述的方法,其特征在于,在所述将目标指令块加载至指令存储单元之前,当所述指令块中包含长跳转指令时,所述方法还包括:
若所述长跳转指令之后存在空指令,则将所述空指令替换为所述传参指令;
若所述长跳转指令之后不存在空指令,则在所述长跳转指令的前面或后面插入所述传参指令。


6.根据权利要求2或3或5所述的方法,其特征在于,所述方法还包括:
当所述指令集中插入传参指令或相关指令后,更新所述指令集以及所述指令集中指令的PC值;
根据更新后的所述指令集确定...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

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

1