[发明专利]一种指令集模拟器利用功能库仿真的方法及装置在审
申请号: | 202011314585.6 | 申请日: | 2020-11-20 |
公开(公告)号: | CN112380133A | 公开(公告)日: | 2021-02-19 |
发明(设计)人: | 崔智超;吴瑾;江云松;陈睿;张静;陈阳 | 申请(专利权)人: | 北京轩宇信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F30/20 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 陈鹏 |
地址: | 100190 北京市海淀区科学院*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 模拟器 利用 功能 仿真 方法 装置 | ||
本发明实施例公开了一种指令集模拟器利用功能库仿真的方法及装置。所述方法包括:获取目标码中需要利用功能库进行仿真的目标码函数名,及所述目标码函数名对应的功能库函数名;调用目标码解析软件对所述目标码进行解析,确定所述目标码函数名对应的目标函数入口地址;根据所述目标码函数名和所述目标函数入口地址,生成函数地址信息对应表,并将所述函数地址信息对应表发送至指令模拟器;通过所述指令模拟器根据所述功能库函数名,利用功能库函数进行仿真,以得到仿真结果。本发明实施例解决了指令集模拟器调试、测试过程中仿真复杂算法效率较低、计算结果精度较差的问题,解决了对于目标码动态调用外部库函数时无法解析的问题。
技术领域
本发明涉及指令集模拟器仿真技术领域,特别是一种指令集模拟器利用功能库仿真的方法及装置。
背景技术
嵌入式指令集模拟器仿真技术,通常用于软件的测试与调试,是保证软件可靠性必不可少的有效手段。使用指令集模拟器进行仿真测试的目的是发现软件存在的错误,软件仿真调试的目的是快速定位错误。所以模拟器仿真结果正确性和仿真运行的速度是十分重要的。
现有的指令集模拟器大多采用逐条指令译码执行的过程。这种仿真的处理方式在进行复杂算法运算时,会按照复杂算法的指令集处理过程,逐条进行译码、仿真。这种仿真模式在面对需要大量高精度指令集仿真的情况下,就会暴露出弊端。复杂算法需要大量指令集的仿真处理,如果每条指令都需要通过译码和仿真的过程,这就会极大的降低模拟器的仿真效率。指令集的仿真可能会由于平台的差异、功能不完善等原因存在计算精度误差。在处理复杂算法时往往使用大量的高精度的浮点指令,但由于计算机仿真浮点指令可能存在精度误差,会导致精度误差不断累计,从而影响计算结果。用于被仿真测试的目标码软件有时会涉及动态调用外部库函数的情况,这使得指令集模拟器无法对目标码的外部库函数进行仿真。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种指令集模拟器利用功能库仿真的方法及装置。
为了解决上述技术问题,本发明实施例提供了一种指令集模拟器利用功能库仿真的方法,包括:
获取目标码中需要利用功能库进行仿真的目标码函数名,及所述目标码函数名对应的功能库函数名;
调用目标码解析软件对所述目标码进行解析,确定所述目标码函数名对应的目标函数入口地址;
根据所述目标码函数名和所述目标函数入口地址,生成函数地址信息对应表,并将所述函数地址信息对应表发送至指令模拟器;
通过所述指令模拟器根据所述功能库函数名,利用功能库函数进行仿真,以得到仿真结果。
可选地,所述调用目标码解析软件对所述目标码进行解析,确定所述目标码函数名对应的目标函数入口地址,包括:
调用所述目标码解析软件对所述目标码进行解析,得到所述目标码对应的全部函数名和函数入口地址;
调用所述目标码解析软件获取所述目标函数名对应的目标函数入口地址。
可选地,所述通过所述指令模拟器根据所述功能库函数名,利用功能库函数进行仿真,以得到仿真结果,包括:
通过所述指令模拟器加载所述功能库函数名对应的功能库函数;
在所述指令模拟器进行译码解析的过程中,判断跳转指令的目的地址是否为所述函数地址信息对应表中的目标函数入口地址;
在所述跳转指令的目的地址为所述目标函数入口地址的情况下,根据所述跳转指令在函数地址信息表中对应的功能库函数,并跳转至所述功能库函数;
读取当前功能库函数执行所需相关寄存器的数据,并将数据传入功能库函数中进行功能仿真,以得到仿真结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京轩宇信息技术有限公司,未经北京轩宇信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011314585.6/2.html,转载请声明来源钻瓜专利网。