CN108694103A - 一种检测cpu的方法及装置 - Google Patents

一种检测cpu的方法及装置 Download PDF

Info

Publication number
CN108694103A
CN108694103A CN201710231449.2A CN201710231449A CN108694103A CN 108694103 A CN108694103 A CN 108694103A CN 201710231449 A CN201710231449 A CN 201710231449A CN 108694103 A CN108694103 A CN 108694103A
Authority
CN
China
Prior art keywords
test
cpu
program
executable program
random
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.)
Pending
Application number
CN201710231449.2A
Other languages
English (en)
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.)
Beijing Ingenic Semiconductor Co Ltd
Original Assignee
Beijing Ingenic Semiconductor Co Ltd
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 Beijing Ingenic Semiconductor Co Ltd filed Critical Beijing Ingenic Semiconductor Co Ltd
Priority to CN201710231449.2A priority Critical patent/CN108694103A/zh
Publication of CN108694103A publication Critical patent/CN108694103A/zh
Pending legal-status Critical Current

Links

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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及通讯技术领域,尤其涉及一种检测CPU的方法及装置,用于解决现有技术中CPU的验证效率低下、结果不准确等问题。该方法包括:自动生成所需的测试程序代码;对所述测试程序进行编译,生成可执行程序;使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。因此,本发明实施例提供的方法可解决现有技术中CPU的验证效率低下、结果不准确等问题。

Description

一种检测CPU的方法及装置
技术领域
本发明涉及通讯技术领域,尤其涉及一种检测CPU的方法及装置。
背景技术
在每一个CPU成型后,都需要对实体的CPU芯片进行验证,以根据验证结果以判断其是否能够正常使用。目前对CPU进行验证方案,普遍采取以下方式:
步骤一,针对每种不同的CPU,由技术人员手写不同的测试程序代码,该测试程序内包括测试参数、运算种类、结果输出等可供进行验证的内容;
步骤二、将这些程序编译生成可在CPU上正常执行的程序;
步骤三、在承载了CPU的开发板上运行这些可执行程序并得到运行结果;
步骤四、检查该运行结果的正确与否。
本发明人发现,在现有验证方法中,由于测试程序代码由人工逐个编写、逐个编译、逐个运行,所以测试效率非常低。而且人工编写时存在惰性,导致所创造出的验证组合比较简单,测试参数比较简单,所以不能充分地检测CPU的运算正确性。运算结果只包括通常的输出结果,不能发现寄存器的错误,并且依靠人工比对,增加了出错的可能性。可见,现有技术中对CPU的验证存在效率低下、结果不准确等问题。
发明内容
本发明实施例提供一种CPU的方法及装置,用于解决现有技术中CPU的验证效率低下、结果不准确等问题。
一种检测CPU的方法,该方法包括:
自动生成所需的测试程序代码;
对所述测试程序进行编译,生成可执行程序;
使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
一种检测CPU的装置,所述装置包括:
生成模块,用于自动生成所需的测试程序代码;
编译模块,用于对所述测试程序进行编译,生成可执行程序;
检测模块,用于使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
本发明实施例提供的方法,对CPU进行测试的程序代码不是人为编程得到的,因此该过程可客服由于人工编写的惰性,而导致的测试参数简单的问题,而自动生成的测试程序无论检测速度还是检测效果都会更好一些,因此,本发明实施例提供的方法可解决现有技术中CPU的验证效率低下、结果不准确等问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种检测CPU的方法的流程图;
图2为本发明实施例提供的详细一种检测CPU的方法的流程图;
图3为本发明实施例提供的一种检测CPU的装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明实施例提供的方法,对CPU进行测试的程序不是人为编程得到的,因此该过程可客服由于人工编写的惰性,而导致的测试参数简单的问题,而自动生成的测试程序无论检测速度还是检测效果都会更好一些,因此,本发明实施例提供的方法可解决现有技术中CPU的验证效率低下、结果不准确等问题。如图1所示,具体步骤如下:
步骤11,自动生成所需的测试程序代码;
步骤12,对所述测试程序进行编译,生成可执行程序;
步骤13,使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
具体的,所述自动生成所需的测试程序代码包括:
判断是否需要进行随机组合测试,如果需要则随机选择多个不同的运算模板;否则选择一个运算模板;
根据选择的一个或多个运算模板生成单项测试程序代码或者随机测试程序代码;
所述测试程序代码为所述单项测试程序代码或者所述随机测试程序代码。
具体的,所述对所述测试程序代码进行编译,生成可执行程序包括:
对所述单项测试程序或者所述随机测试程序进行编译处理,得到单项可执行程序或者随机可执行程序;
所述可执行程序包括单项可执行程序或者随机可执行程序。
具体的,使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果包括:
使用所述单项可执行程序或者所述随机可执行程序对CPU进行测试,并输出测试结果,根据所述测试结果确定所述CPU的检测结果。
具体的,所述测试程序包括参与测试的正常情形参数,和非正常情形参数。
具体的,输出CPU寄存器的检测结果。
以下以具体实施例进行介绍:
如图2所示,本发明实施例提供一种检测CPU的方法,该方法可使用代码生成程序自动生成用于对CPU进行检测的测试程序代码,而代码生成程序中包括运算种类,以及测试程序公共模板;测试程序公共模板,是指所有应用程序的共同部分代码,包括测试参数、结果输出等代码。具体过程如下:
步骤21,判断此时是需要单项测试程序,如果是则进行步骤22;否则进行随机组合测试,执行步骤23;
步骤22,代码生成程序根据输入的一种运算种类生成单项测试程序代码;然后执行步骤24;
步骤23,代码生成程序根据随机输入的一多种运算种类生成随机测试程序代码;然后执行步骤24;
步骤24,对单项测试程序或者随机测试程序进行编译处理,得到单项可执行程序或者随机可执行程序;使得处理后的程序为CPU可执行的程序;
本步骤中的所述可执行程序包括单项可执行程序或者随机可执行程序。
步骤25,使用单项可执行程序或者随机可执行程序对CPU进行测试,并输出相应的测试结果,根据该测试结果确定CPU的检测结果。
在本实施例中,由于测试程序公共模板中包括测试参数,即参与运算的参数,例如:加法运算中的加数,减法中的减数和被减数等。而测试参数定义覆盖了正常情形和非正常情形。代码生成程序会将这些测试参数进行组合,从而达到了全面覆盖的目的。测试参数的正常情形,是指不会导致运算异常的参数。测试参数的非正常情形,是指会导致运算异常的参数,例如:由于数字过大而产生结果溢出等。
可见,本发明实施例提供的方法,通过该操作便可逐个运行所有的可执行的测试程序并得到测试结果输出。并且,由于本发明还在输出结果上添加了CPU寄存器的输出,从而为问题定位提供了更加方便的手段。
如图3所示,本发明实施例提供一种检测CPU的装置,具体如下:
生成模块31,用于自动生成所需的测试程序代码;
编译模块32,用于对所述测试程序进行编译,生成可执行程序;
检测模块33,用于使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
所述生成模块31具体用于:
判断是否需要进行随机组合测试,如果需要则随机选择多个不同的运算模板;否则选择一个运算模板;
根据选择的一个或多个运算模板生成单项测试程序代码或者随机测试程序代码;
所述测试程序代码为所述单项测试程序代码或者所述随机测试程序代码。
所述编译模块32具体用于:
对所述单项测试程序代码或者所述随机测试程序代码进行编译处理,得到单项可执行程序或者随机可执行程序;
所述可执行程序包括单项可执行程序或者随机可执行程序。
所述检测装置33具体用于:
使用所述单项可执行程序或者所述随机可执行程序对CPU进行测试,并输出测试结果,根据所述测试结果确定所述CPU的检测结果。
综上所述,有益效果:
本发明实施例提供的方法,对CPU进行测试的程序不是人为编程得到的,因此该过程可克服由于人工编写的惰性,而导致的测试参数简单、程序出错等问题,而自动生成的测试程序无论检测速度还是检测效果都会更好一些,因此,本发明实施例提供的方法可解决现有技术中CPU的验证效率低下、结果不准确等问题。
本发明针对。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种检测CPU的方法,其特征在于,该方法包括:
自动生成所需的测试程序代码;
对所述测试程序进行编译,生成可执行程序;
使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
2.如权利要求1所述的方法,其特征在于,所述自动生成所需的测试程序包括:
判断是否需要进行随机组合测试,如果需要则随机选择多个不同的运算模板;否则选择一个运算模板;
根据选择的一个或多个运算模板生成单项测试程序代码或者随机测试程序代码;
所述测试程序为所述单项测试程序或者所述随机测试程序。
3.如权利要求2所述的方法,其特征在于,所述对所述测试程序进行编译,生成可执行程序包括:
对所述单项测试程序代码或者所述随机测试程序代码进行编译处理,得到单项可执行程序或者随机可执行程序;
所述可执行程序包括单项可执行程序或者随机可执行程序。
4.如权利要求3所述的方法,其特征在于,使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果包括:
使用所述单项可执行程序或者所述随机可执行程序对CPU进行测试,并输出测试结果,根据所述测试结果确定所述CPU的检测结果。
5.如权利要求1-4任一所述的方法,其特征在于,所述可执行程序包括参与测试的正常情形参数,和非正常情形参数。
6.如权利要求4所述的方法,其特征在于,输出CPU寄存器的检测结果。
7.一种检测CPU的装置,其特征在于,所述装置包括:
生成模块,用于自动生成所需的测试程序代码;
编译模块,用于对所述测试程序进行编译,生成可执行程序;
检测模块,用于使用所述可执行程序对CPU进行测试,并根据测试结果确定所述CPU的检测结果。
8.如权利要求7所述的装置,其特征在于,所述生成模块具体用于:
判断是否需要进行随机组合测试,如果需要则随机选择多个不同的运算模板;否则选择一个运算模板;
根据选择的一个或多个运算模板生成单项测试程序代码或者随机测试程序代码;
所述测试程序为所述单项测试程序代码或者所述随机测试程序代码。
9.如权利要求8所述的装置,其特征在于,所述编译模块具体用于:
对所述单项测试程序或者所述随机测试程序进行编译处理,得到单项可执行程序或者随机可执行程序;
所述可执行程序包括单项可执行程序或者随机可执行程序。
10.如权利要求9所述的方法,其特征在于,所述检测装置具体用于:
使用所述单项可执行程序或者所述随机可执行程序对CPU进行测试,并输出测试结果,根据所述测试结果确定所述CPU的检测结果。
CN201710231449.2A 2017-04-11 2017-04-11 一种检测cpu的方法及装置 Pending CN108694103A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710231449.2A CN108694103A (zh) 2017-04-11 2017-04-11 一种检测cpu的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710231449.2A CN108694103A (zh) 2017-04-11 2017-04-11 一种检测cpu的方法及装置

Publications (1)

Publication Number Publication Date
CN108694103A true CN108694103A (zh) 2018-10-23

Family

ID=63843373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710231449.2A Pending CN108694103A (zh) 2017-04-11 2017-04-11 一种检测cpu的方法及装置

Country Status (1)

Country Link
CN (1) CN108694103A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515604A (zh) * 2019-08-09 2019-11-29 北京物芯科技有限责任公司 验证环境的可执行程序文件的获取方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055608A1 (en) * 2003-09-10 2005-03-10 Shidla Dale John Opportunistic CPU functional testing with hardware compare
CN101334744A (zh) * 2007-12-27 2008-12-31 华为技术有限公司 一种检测多处理器系统故障的方法、系统和装置
CN101673236A (zh) * 2009-10-13 2010-03-17 中国人民解放军国防科学技术大学 一种全覆盖的微处理器测试用例包自动生成方法
CN102567164A (zh) * 2011-12-23 2012-07-11 中国科学院自动化研究所 用于处理器的指令集批量测试装置与方法
CN101894063B (zh) * 2010-06-13 2012-09-26 北京北大众志微系统科技有限责任公司 一种用于微处理器功能验证的测试程序生成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055608A1 (en) * 2003-09-10 2005-03-10 Shidla Dale John Opportunistic CPU functional testing with hardware compare
CN101334744A (zh) * 2007-12-27 2008-12-31 华为技术有限公司 一种检测多处理器系统故障的方法、系统和装置
CN101673236A (zh) * 2009-10-13 2010-03-17 中国人民解放军国防科学技术大学 一种全覆盖的微处理器测试用例包自动生成方法
CN101894063B (zh) * 2010-06-13 2012-09-26 北京北大众志微系统科技有限责任公司 一种用于微处理器功能验证的测试程序生成方法及装置
CN102567164A (zh) * 2011-12-23 2012-07-11 中国科学院自动化研究所 用于处理器的指令集批量测试装置与方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘维奇: "微处理器的自测试和容错设计", 《四川建材学院学报》 *
王明文 等: "一种新型的CPU故障检测方法及其应用", 《南京邮电学院学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515604A (zh) * 2019-08-09 2019-11-29 北京物芯科技有限责任公司 验证环境的可执行程序文件的获取方法及装置

Similar Documents

Publication Publication Date Title
CN105589993B (zh) 微处理器功能验证设备及微处理器功能验证方法
CN102169846B (zh) 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法
US8683282B2 (en) Automatic identification of information useful for generation-based functional verification
US11023362B2 (en) Co-verification of hardware and software
CN110532185B (zh) 测试方法、装置、电子设备和计算机可读存储介质
US20070079288A1 (en) System and method for capturing filtered execution history of executable program code
US8990622B2 (en) Post-silicon validation using a partial reference model
CN111983429A (zh) 芯片验证系统、芯片验证方法、终端及存储介质
CN104536885A (zh) 一种生成Soc随机验证平台的方法
CN110941562A (zh) 测试用例的验证方法、装置及电子设备
CN110990295A (zh) 测试用例的验证方法、装置及电子设备
CN106919462A (zh) 一种生成处理器故障记录的方法及装置
CN106021113A (zh) 一种精准测试的实现方法
CN103309807B (zh) 程序测试方法及平台
US10606732B2 (en) Hybrid genetic concolic co-verification of hardware and software
CN105487973B (zh) 连续捕获程序异常的处理器异常测试方法
CN108694103A (zh) 一种检测cpu的方法及装置
US20180217922A1 (en) Application testing
US9372772B1 (en) Co-verification—of hardware and software, a unified approach in verification
CN108108306B (zh) 一种提高报文解析测试覆盖率的方法及系统
CN107783817A (zh) 处理器的模拟方法、功能模拟器、性能模拟器和模拟系统
CN111061258B (zh) 一种基于列车控制系统的功能测试方法及装置
Wahba et al. Expediting Design Bug Discovery in Regressions of x86 Processors Using Machine Learning
CN108073518A (zh) 一种测试用例管理方法及装置
CN110988661B (zh) 一种fpga原型验证开发板时分分析系统、方法、介质及终端

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181023

RJ01 Rejection of invention patent application after publication