[发明专利]一种全覆盖的微处理器测试用例包自动生成方法有效

专利信息
申请号: 200910044525.4 申请日: 2009-10-13
公开(公告)号: CN101673236A 公开(公告)日: 2010-03-17
发明(设计)人: 王锋;杨灿群;易会战;陈娟;黄春;赵克佳;杜云飞 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F11/36 分类号: G06F11/36;G06F11/26
代理公司: 国防科技大学专利服务中心 代理人: 郭 敏
地址: 410073湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 覆盖 微处理器 测试 用例包 自动 生成 方法
【权利要求书】:

1.一种全覆盖的微处理器测试用例包自动生成方法,其特征在于包括以下步骤:

第一步、构建初始化函数Init,Init是测试用例的一部分,负责对指令组合在测试过程中所涉及的测试用例计数器、内存、运算部件和各类寄存器进行初始化,且将Init组织为单独的函数,在指令组合执行之前进行调用,Init的流程是:

1.1设置测试用例计数器,用于标识已运行过的测试用例和定位出错的测试用例,在运行环境构建开始时将测试用例计数器初值设为零;

1.2分配数据内存,包括源操作数和目的操作数使用的内存,根据数据类型分配不同的内存大小,类型包括:单字定点、单字浮点、双字定点和双字浮点;

1.3对于运算部件,通过连续执行空转指令NOP排空流水线;

1.4对于寄存器,依照状态寄存器、源寄存器和目的寄存器分别进行处理:状态寄存器是指表示系统运行状态的寄存器;源寄存器是指在指令组合中用来装载源操作数的寄存器;目的寄存器是指在指令组合中用来放置结果的寄存器,对以上三种寄存器的初始化过程如下:

1.4.1对状态寄存器中会被指令执行影响到的位清零;

1.4.2对源寄存器赋初值,初值的选择要使指令能正常执行;

1.4.3对目的寄存器清零;

第二步、构建状态输出函数Output,Output是测试用例的一部分,负责输出每条指令组合执行时的状态寄存器、目的寄存器和访存指令涉及的内存值;且将Output组织为单独的函数,在指令组合执行之后进行调用;

第三步、建立包含M条指令模板的指令模板库,M是微处理器指令集中指令的条数,测试用例中的每条指令都源自于该指令模板库;每条指令模板由指令ID、指令的汇编名称、源操作数类型和目的操作数类型构成,指令ID为枚举类型常量,指令的汇编名称为字符串常量,对应指令的汇编语法,源操作数和目的操作数类型为常用数据结构;

第四步、根据指令模板库构造大小为MN的指令模板组合集合X,N为用户需测试的指令数,构造方法是:从指令模板库中任取N条指令模板构成一条指令模板组合,共形成MN条指令模板组合,所有指令组合构成大小为MN的指令模板组合集合X;

第五步、判断集合X是否为空,若为空,执行第九步,若不为空,执行第六步;

第六步、从集合X中任选一个待实例化的指令模板组合x,X=X-{x};

第七步、顺序对指令模板组合x中的每一条指令模板i进行实例化,方法是采用静态寄存器映射的方式实现i的源操作数类型和目的操作数类型的实例化,得到实例化后的指令为i’,相应得到x实例化后的指令组合x’,具体过程是: 

7.1如果指令模板i为CALL指令,执行步骤7.6;如果指令模板i为跳转指令,执行步骤7.7;否则,执行步骤7.2;

7.2根据源或目的操作数类型将所有寄存器划分成若干子集;

7.3设指令模板i的目的操作数类型对应的寄存器子集为J,x’中位于i’之前的所有指令的目的操作数所分配的全部寄存器集合为L,J=J-L;

7.4为指令模板i的每个源操作数根据其类型分配对应寄存器集合中的一个寄存器,为指令模板i的每个目的操作数根据其类型分配J集合中的一个寄存器;

7.5如果指令i’中i’的前一条指令之间存在依赖关系,则在它们之间插入空指令,转第九步;

7.6对CALL指令进行实例化,方法是:

7.6.1创建叶子函数,叶子函数除空指令和返回语句外不包含任何其他指令,其地址作为CALL指令的操作数,并在叶子函数入口地址处设置标号_cvt_lp,使函数返回时可继续执行CALL指令的下一条指令;

7.6.2将CALL指令模板中的源操作数实例化为空,目的操作数实例化为7.6.1中定义的标号_cvt_lp,生成带目标地址_cvt_lp的调用函数指令,形式为“call_cvt_lp”;

7.6.3转第八步;

7.7对跳转指令进行实例化,方法是:

7.7.1如果跳转指令为指令组合中的第一条跳转指令,建立该指令组合的跳转表,初始化跳转表,建立第一条表项内容;如果不是第一条跳转指令,则在跳转表中增加一条表项内容;跳转表是记录指令组合中跳转指令信息的表,每一项代表一条跳转指令信息,包括标号、指令和目标地址,标号代表该表项的入口地址,为每条跳转指令跳转的目标地址;指令代表跳转指令;目标地址代表跳转指令结束跳转时返回指令组合下一条指令的地址;填写跳转表表项内容的方法是:标号部分填写表项的入口地址;指令部分填写无条件跳转指令;目标地址部分填写指令组合中跳转指令的下一条指令地址;

7.7.2实例化跳转指令模板,跳转指令模板的源操作数类型实例化为空,目的操作数类型实例化为跳转表表项的标号; 

第八步、将第一步获得的初始化函数Init、第七步获得的指令组合以及第二步获得的状态输出函数Output顺序连接成一条测试用例,返回第五步;

第九步、将全部测试用例打包构成测试用例包,输出该测试用例包。

2.如权利要求1所述的一种全覆盖的微处理器测试用例包自动生成方法,其特征在于在指令个数过多,寄存器无法划分成足够的子集时,采用经典的寄存器分配算法为指令模板i的源操作数和目的操作数进行动态映射分配。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910044525.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top