[发明专利]程序运行方法及装置在审
申请号: | 201911203313.6 | 申请日: | 2019-11-29 |
公开(公告)号: | CN112882753A | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 运行 方法 装置 | ||
本申请实施例提供了一种程序运行方法及装置,该方法可以通过调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令,从而在软件层面上实现了可以运行大于指令存储单元存储空间的程序。
技术领域
本申请涉及处理器技术领域,尤其涉及一种程序运行方法及装置。
背景技术
随着科学技术的发展,终端设备支持的功能越来越强大,终端设备中的处理器处理的程序也越来越复杂。而现有的指令存储单元的存储空间有限,比如,一般的指令存储单元能够存储1024条指令,但对于一些复杂度比较大的功能,其需要运行的指令占用的存储空间通常会大于指令存储单元的存储空间,因此需要一种机制来确保大于指令存储单元大小的程序能够在指令存储单元上正常运行。通常硬件会提供一些机制来保证程序的正常运行,但当硬件不提供相关机制时,大于指令存储单元存储空间的程序则无法运行。
本申请实施例提供了一种程序运行方法及装置,可实现在不具备指令交换机制的硬件上运行大于指令存储单元存储空间的程序。
第一方面,本申请实施例提供一种程序运行方法,所述方法包括:
从存储器中获取指令集,其中,所述指令集包括至少一个指令块,所述指令块包括至少一个指令;
将目标指令块加载至指令存储单元,以执行所述指令存储单元中的目标指令块;
若即将执行的目标指令未在所述目标指令块中时,调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述指令存储单元中以执行所述目标指令。
在一个可能的实施例中,所述目标指令块还包括传参指令,所述传参指令为所述目标指令块的最后一条指令;
所述传参指令用于将所述目标指令的目标地址传送至所述相关指令。
在一个可能的实施例中,所述目标指令块包括所述相关指令,所述相关指令置于所述目标指令块的最后。
在一个可能的实施例中,所述指令存储单元包括第一存储单元和第二存储单元,所述第一存储单元用于存储所述目标指令块;
若即将执行的目标指令未在所述目标指令块中时,所述调用相关指令获得所述目标指令所在的指令块,包括:
若即将执行的目标指令未在所述目标指令块中时,则从所述第二存储单元中调用相关指令获得所述目标指令所在的指令块,将所述目标指令所在的指令块作为目标指令块加载至所述第一存储单元中。
在一个可能的实施例中,在所述将目标指令块加载至指令存储单元之前,当所述指令块中包含长跳转指令时,所述方法还包括:
若所述长跳转指令之后存在空指令,则将所述空指令替换为所述传参指令;
若所述长跳转指令之后不存在空指令,则在所述长跳转指令的前面或后面插入所述传参指令。
在一个可能的实施例中,所述方法还包括:
当所述指令集中插入传参指令或相关指令后,更新所述指令集以及所述指令集中指令的PC值;
根据更新后的所述指令集确定所述指令块的数量。
在一个可能的实施例中,所述调用相关指令获得所述目标指令所在的指令块,包括:
调用所述相关指令,确定所述目标指令的目标地址;
根据所述目标指令的目标地址确定所述目标指令所在的指令块。
进一步地,所述根据所述目标指令的目标地址确定所述目标指令所在的指令块,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911203313.6/2.html,转载请声明来源钻瓜专利网。