CN112416666B - 自检随机测试方法及随机循环测试装置 - Google Patents

自检随机测试方法及随机循环测试装置 Download PDF

Info

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
Application number
CN201910771716.4A
Other languages
English (en)
Other versions
CN112416666A (zh
Inventor
王丽一
李岱峰
谭坚
陈磊
吴臻
蒋昊辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910771716.4A priority Critical patent/CN112416666B/zh
Publication of CN112416666A publication Critical patent/CN112416666A/zh
Application granted granted Critical
Publication of CN112416666B publication Critical patent/CN112416666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test 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、测试完返回控制单元,等待产生新的随机测试程序,进行下一次测试,如此循环往复,直到测试到流片后两周内没有发现新的错误。
CN201910771716.4A 2019-08-21 2019-08-21 自检随机测试方法及随机循环测试装置 Active CN112416666B (zh)

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)

* Cited by examiner, † Cited by third party
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 深圳市中兴微电子技术有限公司 一种随机测试程序生成方法及装置

Also Published As

Publication number Publication date
CN112416666A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN103309804B (zh) 自动化代码规则检查平台
Duraes et al. Emulation of software faults: A field data study and a practical approach
Rothermel et al. Empirical studies of a safe regression test selection technique
US8898647B2 (en) Method and apparatus for test coverage analysis
US9239773B1 (en) Method and system for debugging a program that includes declarative code and procedural code
CN103077111B (zh) 一种持续集成失败用例的定位方法及系统
Kim et al. Performance testing of mobile applications at the unit test level
RU2010114709A (ru) Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа
CN110427275B (zh) 基于轨迹日志学习的微服务潜在错误与故障根源预测方法
US20090248390A1 (en) Trace debugging in a hardware emulation environment
CN110716870A (zh) 服务的自动化测试方法及装置
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
Duraes et al. Emulation of software faults by educated mutations at machine-code level
CN104899369A (zh) 一种利用perl脚本的仿真器多线程运行方法
Machado et al. MZoltar: automatic debugging of Android applications
CN110704315B (zh) 一种嵌入式软件测试的故障注入装置
CN112416666B (zh) 自检随机测试方法及随机循环测试装置
CN110955605A (zh) 一种cpu验证单步动态执行的方法
Lu et al. Implementation of continuous integration and automated testing in software development of smart grid scheduling support system
Chen et al. Instant bug testing service for linux kernel
CN103559134A (zh) 基准测试组件的配置方法和装置
CN111814415A (zh) 用于芯片验证的高效回归测试方法
Saini et al. Software failures and chaos theory
CN113742252A (zh) 一种检测内存乱序的方法及装置

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