本发明涉及通讯技术领域,尤其涉及一种检测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的验证效率低下、结果不准确等问题。
本发明针对。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。