[发明专利]一种用于指令级随机验证的指令组合过滤方法及系统有效
申请号: | 200910080077.3 | 申请日: | 2009-03-18 |
公开(公告)号: | CN101510234A | 公开(公告)日: | 2009-08-19 |
发明(设计)人: | 沈海华;王朋宇;张珩 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 祁建国;梁 挥 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 指令 随机 验证 组合 过滤 方法 系统 | ||
技术领域
本发明涉及超大规模集成电路(VLSI)设计验证领域,尤其涉及一种用于指令级随机验证的指令组合过滤方法及系统。
背景技术
功能验证被认为是当前硬件设计流程中的瓶颈,实际上,在整个设计流程中,大概有70%的时间和资源耗费在功能验证上,因此如何提高验证效率和质量,以期在尽量少的时间内发现尽量多的错误一直是验证领域关注的重点。
功能验证方法主要分为模拟仿真方法和形式化方法两大类。形式化方法的应用很大程度上受制于设计规模;而模拟仿真方法能处理大规模集成电路设计,特别是当代复杂高性能处理器,是目前处理器功能验证的主要方法。模拟仿真方法运行的大量测试向量主要有三个来源:手写测试向量、实际应用程序改造和测试向量的随机生成。
随机验证技术是当今大规模集成电路仿真验证流程中的重要支撑技术。在集成电路验证领域,特别是微处理器功能验证领域,具有重要地位。人工书写测试向量需要花费大量的时间和人力成本,而局限于原始应用程序的规模,经过改造后的应用程序测试向量仍会占用过多的仿真时间,无法很好地满足各阶段回归测试的要求。这意味着大量的、覆盖范围广泛的测试向量主要来源于随机测试向量生成。随机生成的测试向量有可能覆盖到设计和验证人员完全没有想到的功能角落,且生成的测试向量的规模和长度灵活可控。
指令级随机验证是通用微处理器验证的常用方法。图1中描述了当前指令级随机验证方法的常用框架,通常包括7个部分,指令库101、指令模板102、约束求解器103、指令生成引擎104、指令级模拟器105、指令过滤器106、仿真环境107。指令库101中包含处理器支持的所有有效指令;指令模板102是一系列配置文件,用于进行指令的配置和规范;约束求解器103对指令模板进行求解,指导指令生成引擎104生成相应的指令;指令生成引擎104可以有效支持配置文件约束下的指令生成;指令级模拟器105是待验证的微处理器的最简单参考模型,支持指令级仿真,提供指令的正确执行结果,同时更新指令级处理器模拟器状态;指令过滤器106根据指令级模拟器的执行结果判断是否是非法指令,决定是否要丢弃该指令,及时恢复该指令产生前处理器模拟器的状态;仿真环境107是包裹在待验证处理器外层的一系列逻辑和操作,主要包括初始化、输入/输出和比较逻辑,可以执行初始化、输入/输出和信号比较等一系列操作。
进行指令级随机验证时,约束求解器103对指令模板102提供的约束进行求解,进而指导指令生成引擎104从指令库101中选取符合要求的操作码,加入符合约束的操作数,产生出一条符合约束的指令,提供给指令级处理器模拟器105,指令的模拟结果送入指令过滤器106,如果产生的指令是非法指令则直接抛弃并恢复该条指令产生前的指令级处理器模拟器状态,并重新产生下一条指令,否则提供指令的模拟结果给仿真环境中的比较逻辑,同时将产生的指令也提供给仿真环境,经处理器执行后,将结果也输出到仿真环境中的比较逻辑,通过二者比较可以检测处理器设计中的错误。
如前文所描述的那样,当前指令级随机验证中指令生成通常执行是一个串行的过程-----一条指令要经过生成、模拟、过滤,并根据过滤结果决定这条指令最终是否送入仿真环境中进行仿真。在这一过程中,指令过滤器能够根据一条指令的指令级模拟器的执行结果判断这条指令是否是非法指令,对非法指令进行过滤、抛弃,并将合法指令送入仿真环境中。对于不同的处理器规范,判断指令是否非法的标准各不相同,而不同的指令级随机验证平台中指令过滤器的非法指令判断和过滤标准也不同,例如在单纯用户态的指令级随机验证中指令过滤器会过滤所有会导致系统发生异常的指令,而在支持核心态的指令级随机验证中过滤器会对于平台支持的一些专用的导致系统异常的指令予以放行,只过滤和抛弃那些平台不支持的异常指令和非法指令(参考文献1:在微处理器用户态随机验证中实现核心态程序验证的方法,中国专利号:ZL200610078226.9)。无论采用何种非法指令判断标准和过滤标准,当前的指令级随机验证中指令过滤器通常只判断和过滤当前指令,尽管判断和过滤当前指令时可能会考虑指令上文,特别是紧挨着当前指令的上一条或上两条指令,但最终指令过滤器进行过滤处理的仍然只是当前指令,也就是说常用指令级随机验证中指令过滤器一次只处理一条指令。考虑到设计指令过滤器的初始目标只是用于判断和过滤非法指令或造成系统异常的指令,现有机制可以满足这种需要。
然而,在大规模集成电路验证过程中,我们发现现有指令级随机验证中的指令过滤器设计无法完全满足验证实践的需要。以复杂微处理器的验证为例,在执行指令级随机验证过程中我们常常面临以下两种需求:
1)发现设计错误后的调试需求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910080077.3/2.html,转载请声明来源钻瓜专利网。