[发明专利]一种全覆盖的微处理器测试用例包自动生成方法有效
申请号: | 200910044525.4 | 申请日: | 2009-10-13 |
公开(公告)号: | CN101673236A | 公开(公告)日: | 2010-03-17 |
发明(设计)人: | 王锋;杨灿群;易会战;陈娟;黄春;赵克佳;杜云飞 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/26 |
代理公司: | 国防科技大学专利服务中心 | 代理人: | 郭 敏 |
地址: | 410073湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 覆盖 微处理器 测试 用例包 自动 生成 方法 | ||
技术领域
本发明涉及微处理器的自动测试方法,尤指全覆盖的微处理器测试用例包自动生成方法。
背景技术
在微处理器的开发过程中,对其功能进行准确而严密的测试是十分关键的。功能验证的主要方式是基于指令集的测试验证。由于指令组合数量巨大,测试员手工方式编写测试用例效率低、覆盖率低,一般不作为主要方法。目前,由程序自动生成测试用例是微处理器功能测试的主要形式,可以分为两种:形式化方法和随机方法。
形式化方法是指对待测部件建立抽象状态机模型,根据其状态转换及相应激励,采用约束求解、符号执行等技术自动生成测试用例。形式化方法生成的测试用例覆盖率高,但由于存在状态爆炸问题,其扩展性较差,一般只用来测试处理器中的某个部件,例如流水线或Cache协议。
微处理器整体功能验证目前大部分采用随机方法。随机方法是首先建立指令模板库,然后在满足约束条件下随机抽取其中的指令组成测试用例。目前随机方法研究较多且应用广泛,并且结合专家系统、模型检验、定理证明等其他技术有效提高了测试程序的覆盖率。但是现有的随机方法仍然存在很多问题,如有的系统要求用户根据处理器特性编写大量的配置文件,或者根据微处理器的硬件设计进行详细建模。而芯片的用户由于无法掌握这些信息,从而不能对芯片进行充分测试,只能通过运行大型Benchmark或自己开发用户级测试程序进行验收。
无论是形式化方法还是随机方法,生成的测试用例都无法覆盖到全部的指令组合,无法确保检测到微处理器的所有错误。而对于某些特定领域(例如航空航天领域)的专用芯片,芯片的功能验证要求极为严格,不能遗漏任何的功能验证,一个微小的错误都有可能会造成极为严重的后果。因此,形式化方法和随机方法这些非全覆盖的测试用例生成方法不适合这类特定领域。此外,特定领域的专用芯片涉及的指令数目比一般的通用处理器小,更加适合生成全覆盖的测试用例,不易产生指令组合爆炸问题。
发明内容
本发明要解决的技术问题在于:针对微处理器随机测试方法无法确保覆盖全部指令组合以及用户难以使用的问题,提出一种全覆盖的微处理器测试用例包自动生成方法,使用户在不了解处理器硬件设计细节的情况下,实现对微处理器全部指令组合的自动测试,提高小指令数情况下测试用例的覆盖率,弥补随机测试方法的不足。
为了解决上述技术问题,本发明的技术方案为:根据微处理器指令集,将每条指令的标识ID(identification)、指令的汇编名称、源操作数类型和目的操作数类型构成一条指令模板,M条指令模板构成大小为M的指令模版库。根据用户需测试的指令数N,从指令模板库中任意选出N条指令模板,按顺序排列成长度为N的指令模板组合,共可形成MN个指令模板组合。采用实例化方法将每个指令模板组合实例化成对应的指令组合,MN个指令模板组合实例化成MN个指令组合。初始化函数、指令组合和状态输出代码顺序构成一条测试用例,共有MN条测试用例。将MN条测试用例打包构成测试用例包。
具体技术方案为:
设用户需测试的指令数为N。
第一步、构建初始化函数Init。Init是测试用例的一部分,负责对指令组合在测试过程中所涉及的测试用例计数器、内存、运算部件和各类寄存器进行初始化,以消除任何会导致不确定状态的因素。Init的流程是:
1.1设置测试用例计数器,用于标识已运行过的测试用例和定位出错的测试用例,在运行环境构建开始时将测试用例计数器初值设为零。
1.2分配数据内存,包括源操作数和目的操作数使用的内存,根据数据类型分配不同的内存大小,类型包括:单字定点、单字浮点、双字定点和双字浮点。
1.3对于运算部件,通过连续执行空转指令(NOP)排空流水线。
1.4对于寄存器,依照状态寄存器、源寄存器和目的寄存器分别进行处理。状态寄存器是指诸如处理器状态寄存器(Processor State Register,PSR)、浮点状态寄存器(Floating-Point Status Register,FSR)等表示系统运行状态的寄存器;源寄存器是指在指令组合中用来装载源操作数的寄存器;目的寄存器是指在指令组合中用来放置结果的寄存器。对以上三种寄存器的初始化过程如下:
1.4.1对状态寄存器中会被指令执行影响到的位清零;
1.4.2对源寄存器赋初值。源寄存器作为测试用例自动生成过程的输入,必须赋予初值,初值的选择要使指令能正常执行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910044525.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:配合检测装置、连接器及其连接器组件
- 下一篇:触点