[发明专利]处理器程序的测试方法和装置有效
申请号: | 201610620616.8 | 申请日: | 2016-07-29 |
公开(公告)号: | CN107665169B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 陈博文 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 宋扬;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 程序 测试 方法 装置 | ||
本发明提供一种处理器程序的测试方法和装置,用于获取对处理器程序进行测试的测试指令序列以及测试指令序列的预期结果序列,测试指令序列存储于处理器的内存空间,该方法包括:获取当前指令地址,当前指令地址为内存中的地址;判断当前指令地址是否为已存储任一测试指令的已存储指令地址,测试指令为待测试的处理器程序所支持的指令;若当前指令地址为已存储指令地址,则执行当前指令地址中存储的测试指令,并将当前指令地址中存储的测试指令的执行结果加入预期结果序列。本发明的方法能够使得测试处理器程序的测试指令序列能够重复执行以及包含不确定结果指令时提高测试效率。
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理器程序的测试方法和装置。
背景技术
在处理器的研发中,为了保证处理器程序的功能设计的正确性和可靠性,可采用测试程序对处理器指令级功能进行验证。
测试程序可包括由多条指令组成的指令序列,指令序列中包括的指令的类型和顺序可以由测试程序随机生成,然后在待验证处理器上或通过计算机软件仿真执行指令序列并检查执行结果来验证处理器的功能设计。测试程序将生成的指令不断添加到内存中,并保证新生成的指令不能覆盖已存在的指令和数据。例如,当指令序列中包含跳转指令时,指向下一条待执行指令的跳转地址需要指向内存中未使用的区域。还有一些指令可能具有不确定的结果,例如,除法指令,当除数为0时执行结果可能是不确定的。
上述测试程序生成的指令不能重复执行,或者指令序列包含具有不确定结果的指令时检查结果需要增加检查的分支,导致对处理器程序的测试效率较低。
发明内容
本发明提供一种处理器程序的测试方法和装置,用于解决现有技术中用于测试处理器程序的测试指令序列不能重复执行、包含不确定结果指令检查步骤繁琐导致对处理器程序的测试效率低的问题。
本发明的第一方面提供一种处理器程序的测试方法,用于获取对处理器程序进行测试的测试指令序列以及所述测试指令序列的预期结果序列,所述测试指令序列存储于处理器的内存空间,该方法包括:
获取当前指令地址,所述当前指令地址为所述内存中的地址;
判断所述当前指令地址是否为已存储任一测试指令的已存储指令地址,所述测试指令为待测试的处理器程序所支持的指令;
若所述当前指令地址为所述已存储指令地址,则执行所述当前指令地址中存储的测试指令,并将所述当前指令地址中存储的测试指令的执行结果加入所述预期结果序列。
进一步地,所述方法还包括:
若所述当前指令地址不是所述已存储指令地址,则
随机生成测试指令,并将所述随机生成的测试指令存储在所述当前指令地址指向的内存空间中;
执行所述当前指令地址中存储的测试指令,并将所述当前指令地址中存储的测试指令的执行结果加入所述预期结果序列。
进一步地,所述获取当前指令地址包括:
将随机生成的一个指令地址作为获取的当前指令地址;或者,
获取下一指令地址,将所述下一指令地址作为获取的当前指令地址;或者,
将当前地址递增一个指令长度的地址作为获取的当前指令地址。
进一步地,所述当前指令地址中存储的测试指令为跳转指令;则所述获取下一指令地址包括:
将所述跳转指令指向的下一条待执行指令的地址作为所述下一指令地址。
进一步地,所述方法还包括:
判断所述当前指令地址中存储的测试指令是否会出现不确定结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610620616.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种嵌入式软件GUI自动化测试设备
- 下一篇:一种流程测试方法及装置