CN112416666B - 自检随机测试方法及随机循环测试装置 - Google Patents
自检随机测试方法及随机循环测试装置 Download PDFInfo
- Publication number
- CN112416666B CN112416666B CN201910771716.4A CN201910771716A CN112416666B CN 112416666 B CN112416666 B CN 112416666B CN 201910771716 A CN201910771716 A CN 201910771716A CN 112416666 B CN112416666 B CN 112416666B
- Authority
- CN
- China
- Prior art keywords
- test
- program
- random
- instruction
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开一种自检随机测试方法及随机循环测试装置,S1、控制单元调用随机指令生成器,并将随机指令生成器生成的运算控制核心的随机指令段和运算核心的随机指令段分别嵌入运算控制核心的程序框架和运算核心的程序框架中,形成汇编程序;S2、控制单元根据程序结构调用编译脚本,将生成的汇编程序编译成可执行的随机测试程序;S3、编译完成后,控制单元调用测试管理系统运行S2中生成的可执行的随机测试程序,并监控测试结果;S4、测试完返回控制单元,等待产生新的随机测试程序,进行下一次测试。本发明通过生成不需要依赖模拟器的随机测试程序,更高效地暴露更多的处理器软硬件设计及环境问题,弥补硅前验证效率低、覆盖不全面的问题。
Description
技术领域
本发明涉及一种自检随机测试方法及随机循环测试装置,属于计算机技术领域。
背景技术
不管是单元层还是系统层验证都需要使用能够灵活地刺激不同设计行为以及推进验证覆盖的随机测试程序,因此随机测试向量和测试程序生成技术是微处理器验证领域必不可少的关键技术之一。随机指令测试能发现微妙的错误,并加强处理器流水线边界条件,擅长发现微代码问题,还能进行高通量的测试,但I/O压力较低,且需要服务器来产生指令种子。自动生成带有约束的伪随机测试程序通常都只有较低的覆盖,而且执行随机程序之后的处理器的状态也是未知的。因此,验证工程师必须采用其它模拟环境计算出处理器的最终状态和实际芯片上的最终状态进行对比。模拟器的计算速度要比实际芯片慢很多,因此计算最终状态是随机测试的瓶颈。
发明内容
本发明的目的是提供一种自检随机测试方法及随机循环测试装置,该自检随机测试方法及随机循环测试装置通过生成不需要依赖模拟器的随机测试程序,更高效地暴露更多的处理器软硬件设计及环境问题,弥补硅前验证效率低、覆盖不全面的问题。
为达到上述目的,本发明采用的技术方案是:一种随机循环测试装置,包括以下组件:
控制单元,用于调用随机指令生成器,并将随机指令生成器生成的汇编指令嵌入到汇编程序框架中,形成汇编程序,还用于调用编译脚本,将生成的汇编程序编译成可执行程序,还用于调用测试管理系统进行测试,测试完后回到控制单元;
程序框架结构,包括C程序框架和汇编程序框架,所述C程序框架与体系结构无关,用于初始化数据和结果校验,其中多核处理器的C程序框架还用于任务分配,此外,众核处理器的C程序框架还用于创建线程和回收线程,所述汇编程序框架的结构由体系结构决定,不同体系结构下的汇编指令格式不同,单核测试程序、多核测试程序和异构众核测试程序各自的汇编程序框架均不相同;
随机指令生成器,用于生成运算控制核心的随机指令段、运算核心的随机指令段;
可逆指令生成器,包括可逆指令块数据库、多级可逆指令段生成模块和指令段链接生成模块,所述可逆指令块数据库用于存放原指令块和相应的逆指令块,所述多级可逆指令段生成模块用于从可逆指令块数据库中随机选择原指令块和相应的逆指令块,生成级数随机的多级可逆指令段,所述指令段链接生成模块用于将生成的所有多级可逆指令段按照随机的顺序进行链接,生成具有随机性的程序;
编译环境,用于编译生成好的汇编程序和C程序,并将汇编程序或C程序链接成可执行程序;
测试管理系统,用于检测测试资源是否可以测试,如果可以则提交测试,并实时监控测试状态,如果发现挂死现象,将终止当前测试,并继续下一个测试,在大型并行系统的测试中,测试管理系统还负责对测试结果进行统计分析,以找出错误的规律。
基于上述随机循环测试装置,本发明还提供了一种自检随机测试方法,包括以下步骤:
S1、控制单元调用随机指令生成器,并将随机指令生成器生成的运算控制核心的随机指令段和运算核心的随机指令段分别嵌入运算控制核心的程序框架和运算核心的程序框架中,形成汇编程序;
S2、控制单元根据程序结构调用编译脚本,将生成的汇编程序编译成可执行的随机测试程序;
S3、编译完成后,控制单元调用测试管理系统运行S2中生成的可执行的随机测试程序,并监控测试结果,如果发生异常或错误,控制单元将出错的随机测试程序源代码保留下来,用于错误分析和根源定位;
S4、测试完返回控制单元,等待产生新的随机测试程序,进行下一次测试,如此循环往复,直到测试到流片后两周内没有发现新的错误。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明自检随机测试方法及随机循环测试装置,具有自检功能,不需要依赖模拟器的运行结果,提高了随机测试的效率;另外,该系统集成了验证测试管理系统,因此不仅能应用于单个处理器芯片的测试,也能应用于大规模并行系统的测试,通过生成不需要依赖模拟器的随机测试程序,更高效地暴露更多的处理器软硬件设计及环境问题,弥补硅前验证效率低、覆盖不全面的问题。
附图说明
附图1为本发明自检随机测试方法及随机循环测试装置原理示意图。
具体实施方式
实施例:一种随机循环测试装置,包括以下组件:
控制单元,用于调用随机指令生成器,并将随机指令生成器生成的汇编指令嵌入到汇编程序框架中,形成汇编程序,还用于调用编译脚本,将生成的汇编程序编译成可执行程序,还用于调用测试管理系统进行测试,测试完后回到控制单元;
程序框架结构,包括C程序框架和汇编程序框架,所述C程序框架与体系结构无关,用于初始化数据和结果校验,其中多核处理器的C程序框架还用于任务分配,此外,众核处理器的C程序框架还用于创建线程和回收线程,所述汇编程序框架的结构由体系结构决定,不同体系结构下的汇编指令格式不同,单核测试程序、多核测试程序和异构众核测试程序各自的汇编程序框架均不相同;
随机指令生成器,用于生成运算控制核心的随机指令段、运算核心的随机指令段;
可逆指令生成器,包括可逆指令块数据库、多级可逆指令段生成模块和指令段链接生成模块,所述可逆指令块数据库用于存放原指令块和相应的逆指令块,所述多级可逆指令段生成模块用于从可逆指令块数据库中随机选择原指令块和相应的逆指令块,生成级数随机的多级可逆指令段,所述指令段链接生成模块用于将生成的所有多级可逆指令段按照随机的顺序进行链接,生成具有随机性的程序;
编译环境,用于编译生成好的汇编程序和C程序,并将汇编程序或C程序链接成可执行程序;
测试管理系统,用于检测测试资源是否可以测试,如果可以则提交测试,并实时监控测试状态,如果发现挂死现象,将终止当前测试,并继续下一个测试,在大型并行系统的测试中,测试管理系统还负责对测试结果进行统计分析,以找出错误的规律。
一种基于上述随机循环测试装置的自检随机测试方法,包括以下步骤:
S1、控制单元调用随机指令生成器,并将随机指令生成器生成的运算控制核心的随机指令段和运算核心的随机指令段分别嵌入运算控制核心的程序框架和运算核心的程序框架中,形成汇编程序;
S2、控制单元根据程序结构调用编译脚本,将生成的汇编程序编译成可执行的随机测试程序;
S3、编译完成后,控制单元调用测试管理系统运行S2中生成的可执行的随机测试程序,并监控测试结果,如果发生异常或错误,控制单元将出错的随机测试程序源代码保留下来,用于错误分析和根源定位;
S4、测试完返回控制单元,等待产生新的随机测试程序,进行下一次测试,如此循环往复,直到测试到流片后两周内没有发现新的错误。
实施例进一步解释如下:
本发明主要由控制中心、程序框架结构、随机指令生成器、编译环境和测试管理系统所组成,如图1所示。
控制中心主要负责调用随机指令生成器,然后将随机指令生成器生成的汇编指令嵌入到程序框架中,嵌好之后再调用编译脚本将生成的汇编程序编译成可执行程序,然后调用测试管理系统来进行一遍或多遍测试,测试完又返回控制中心,等待下一次随机测试,如此循环往复,直到达到一定的测试满意度。当碰到程序出错时,为了错误重现,本系统会将导致出错的汇编程序保存下来,以帮助缩小错误现场和错误定位。
程序框架结构由不同的体系结构所决定,不同体系结构下的汇编指令格式也不同。
可逆指令生成器主要由可逆指令块数据库、多级可逆指令段生成以及指令段链接生成这三个模块组成。可逆指令块数据库里存放原指令块和相应的逆指令块;多级可逆指令段生成模块主要是从可逆指令块数据库中随机选择原指令块和相应的逆指令块,生成级数随机的多级可逆指令段;指令段链接生成模块是将生成的所有多级可逆指令段按照随机的顺序进行链接,以使生成的程序更具随机性。
控制中心将随机指令生成器生成的运算控制核心、运算核心的随机指令段分别嵌入运算控制核心和运算核心的程序框架中,然后根据程序结构,调用不同的编译脚本。编译完之后,控制中心会调用测试管理系统来运行生成的测试程序,并监控测试结果。一旦发生异常或错误,控制中心会将出错的随机程序保留下来,以便错误分析和根源定位。
采用上述自检随机测试方法及随机循环测试装置时,其具有自检功能,不需要依赖模拟器的运行结果,提高了随机测试的效率;另外,该系统集成了验证测试管理系统,因此不仅能应用于单个处理器芯片的测试,也能应用于大规模并行系统的测试,通过生成不需要依赖模拟器的随机测试程序,更高效地暴露更多的处理器软硬件设计及环境问题,弥补硅前验证效率低、覆盖不全面的问题。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种随机循环测试装置,其特征在于:包括以下组件:
控制单元,用于调用随机指令生成器,并将随机指令生成器生成的汇编指令嵌入到汇编程序框架中,形成汇编程序,还用于调用编译脚本,将生成的汇编程序编译成可执行程序,还用于调用测试管理系统进行测试,测试完后回到控制单元;
程序框架结构,包括C程序框架和汇编程序框架,所述C程序框架与体系结构无关,用于初始化数据和结果校验,其中多核处理器的C程序框架还用于任务分配,此外,众核处理器的C程序框架还用于创建线程和回收线程,所述汇编程序框架的结构由体系结构决定,不同体系结构下的汇编指令格式不同,单核测试程序、多核测试程序和异构众核测试程序各自的汇编程序框架均不相同;
随机指令生成器,用于生成运算控制核心的随机指令段、运算核心的随机指令段;
可逆指令生成器,包括可逆指令块数据库、多级可逆指令段生成模块和指令段链接生成模块,所述可逆指令块数据库用于存放原指令块和相应的逆指令块,所述多级可逆指令段生成模块用于从可逆指令块数据库中随机选择原指令块和相应的逆指令块,生成级数随机的多级可逆指令段,所述指令段链接生成模块用于将生成的所有多级可逆指令段按照随机的顺序进行链接,生成具有随机性的程序;
编译环境,用于编译生成好的汇编程序和C程序,并将汇编程序或C程序链接成可执行程序;
测试管理系统,用于检测测试资源是否可以测试,如果可以则提交测试,并实时监控测试状态,如果发现挂死现象,将终止当前测试,并继续下一个测试,在大型并行系统的测试中,测试管理系统还负责对测试结果进行统计分析,以找出错误的规律。
2.一种基于权利要求1所述的随机循环测试装置的自检随机测试方法,其特征在于:包括以下步骤:
S1、控制单元调用随机指令生成器,并将随机指令生成器生成的运算控制核心的随机指令段和运算核心的随机指令段分别嵌入运算控制核心的程序框架和运算核心的程序框架中,形成汇编程序;
S2、控制单元根据程序结构调用编译脚本,将生成的汇编程序编译成可执行的随机测试程序;
S3、编译完成后,控制单元调用测试管理系统运行S2中生成的可执行的随机测试程序,并监控测试结果,如果发生异常或错误,控制单元将出错的随机测试程序源代码保留下来,用于错误分析和根源定位;
S4、测试完返回控制单元,等待产生新的随机测试程序,进行下一次测试,如此循环往复,直到测试到流片后两周内没有发现新的错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771716.4A CN112416666B (zh) | 2019-08-21 | 2019-08-21 | 自检随机测试方法及随机循环测试装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771716.4A CN112416666B (zh) | 2019-08-21 | 2019-08-21 | 自检随机测试方法及随机循环测试装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416666A CN112416666A (zh) | 2021-02-26 |
CN112416666B true CN112416666B (zh) | 2022-07-12 |
Family
ID=74779141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910771716.4A Active CN112416666B (zh) | 2019-08-21 | 2019-08-21 | 自检随机测试方法及随机循环测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416666B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100336032C (zh) * | 2004-12-24 | 2007-09-05 | 清华大学 | 基于边界条件和自检查随机测试的cpu约束生成验证法 |
CN106325827B (zh) * | 2015-06-16 | 2019-07-19 | 深圳市中兴微电子技术有限公司 | 一种随机测试程序生成方法及装置 |
-
2019
- 2019-08-21 CN CN201910771716.4A patent/CN112416666B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112416666A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Duraes et al. | Emulation of software faults: A field data study and a practical approach | |
US8898647B2 (en) | Method and apparatus for test coverage analysis | |
CN110716870B (zh) | 服务的自动化测试方法及装置 | |
US9239773B1 (en) | Method and system for debugging a program that includes declarative code and procedural code | |
CN110427275B (zh) | 基于轨迹日志学习的微服务潜在错误与故障根源预测方法 | |
Kim et al. | Performance testing of mobile applications at the unit test level | |
RU2010114709A (ru) | Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
Lu et al. | Cloudraid: hunting concurrency bugs in the cloud via log-mining | |
Laguna et al. | Probabilistic diagnosis of performance faults in large-scale parallel applications | |
Machado et al. | MZoltar: automatic debugging of Android applications | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
US20150331787A1 (en) | Software verification | |
CN110704315B (zh) | 一种嵌入式软件测试的故障注入装置 | |
CN116501378B (zh) | 一种逆向工程还原源代码的实现方法、装置和电子设备 | |
CN112416666B (zh) | 自检随机测试方法及随机循环测试装置 | |
CN110955605A (zh) | 一种cpu验证单步动态执行的方法 | |
CN113742252B (zh) | 一种检测内存乱序的方法及装置 | |
Lu et al. | Implementation of continuous integration and automated testing in software development of smart grid scheduling support system | |
CN103559134A (zh) | 基准测试组件的配置方法和装置 | |
CN111814415A (zh) | 用于芯片验证的高效回归测试方法 | |
Saini et al. | Software failures and chaos theory | |
CN112527680B (zh) | 一种基于Fitnesse框架的项目API级全链路自动化测试方法及系统 | |
Melone et al. | Verifying functionality and performance of HPC applications with continuous integration | |
Sastry et al. | TESTING DISTRIBUTED EMBEDDED SYSTEMS THROUGH INSTRUCTION SET SIMULATORS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |