CN102541738B - 加速多核cpu抗软错误测试的方法 - Google Patents
加速多核cpu抗软错误测试的方法 Download PDFInfo
- Publication number
- CN102541738B CN102541738B CN201110448743.1A CN201110448743A CN102541738B CN 102541738 B CN102541738 B CN 102541738B CN 201110448743 A CN201110448743 A CN 201110448743A CN 102541738 B CN102541738 B CN 102541738B
- Authority
- CN
- China
- Prior art keywords
- test
- basic parameter
- case
- core cpu
- soft error
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种加速多核CPU软错误测试过程的方法,包括以下步骤:获取CPU的剖析程序,利用剖析程序分析多核CPU的基准测试用例,以获得基准测试用例的基本参数,分析基本参数,以建立基本参数与多核CPU的体系结构弱点因子之间的对应关系,根据基本参数与多核CPU的体系结构弱点因子之间的对应关系编写代码合成程序,代码合成程序使用基本参数作为输入,运行代码合成程序,并调节基本参数,以获得并行输出程序,并行输出程序作为多核CPU软错误测试中的测试用例。本发明具有测试过程快、测试时间短的特点,从而大大降低了这种测试的成本。
Description
技术领域
本发明涉及一种方法,具体的说,本发明涉及一种加速多核CPU抗软错误测试过程的方法。
背景技术
如今,芯片的集成度越来越高,制造工艺越来越小。这导致了一个越来越突出的问题:空间中存在的高能粒子撞击到处理器时,更加可能导致处理器中某部件的存储电位发生变化,从而加大了处理器运行出错的几率。这种暂时性出现的错误叫做软错误(Soft Error),软错误的出现可能会导致程序运行出错,出错的几率为相应处理器的体系机构弱点因子(Architectural Vulnerability Factor,简称AVF)。在现代多核处理器中,处理器集成度的提高以及部分部件的共享使用,导致软错误出现的几率加大以及危害性提高。要测试多核处理器对抗软错误的能力,需要搭建一个高能粒子数量较多的环境。如果用现有的普通基准测试用例测试,测试时间长。由于此环境搭建困难,长时间的测试会导致测试成本过高。
发明内容
本发明的目的在于提供一种加速多核处理器抗软错误测试过程的方法,其具有测试过程快、测试时间短的特点,从而大大降低了这种测试的成本。
本发明是通过以下技术方案实现的:
一种加速多核CPU软错误测试过程的方法,包括以下步骤:
(1)获取CPU的剖析程序;
(2)利用剖析程序分析多核CPU的基准测试用例,以获得基准测试用例的基本参数;
(3)分析基本参数,以建立基本参数与多核CPU的体系结构弱点因子之间的对应关系;
(4)根据基本参数与多核CPU的体系结构弱点因子之间的对应关系编写代码合成程序,代码合成程序使用基本参数作为输入;
(5)运行代码合成程序,并调节基本参数,以获得并行输出程序,并行输出程序作为多核CPU软错误测试中的测试用例。
基准测试用例的基本参数包括指令类型分布、指令依赖距离、基本块大小、指令执行耗时以及控制流图。
步骤(4)包括以下子步骤:
(4-1)选取二进制指令,将二进制指令以树形结构分类;
(4-2)用结构体描述多核CPU软错误测试中的测试用例的指令;
(4-3)用结构体组建基本块;
(4-4)以基本块为单位组建多核CPU软错误测试中的测试用例的线程的控制流;
(4-5)使用控制流组建线程;
(4-6)利用基准测试用例的基本参数动态生成多核CPU软错误测试中的测试用例的指令以及基本块的描述结构,描述结构组成多核CPU软错误测试中的测试用例的总体控制流图;
(4-7)从树形结构分类中选取二进制指令对总体控制流图中的结构体进行替换。
结构体的属性包括指令类型、所需CPU功能单元、依赖距离、指令序列号、是否访问内存、L1-cache命中率、L2-cache命中率以及运行阶段,依赖距离、L1-cache命中率、L2-cache命中率采用正态分布函数获得,基本块的属性包括指令类型、指令条数、下一基本块地址、末尾跳转地址,指令条数采用正态分布函数获得,线程的结构属性包括线程编号以及访问共享数据的概率,访问共享数据的概率是由泊松过程模拟得到,正态函数的参数是由剖析程序分析统计得出。
基准测试用例为通用型应用测试用例。
本发明具有以下优点:(1)采用合成的方式产生测试程序,将使测试程序的生成变得方便和易操作;(2)允许用户灵活的改变处理器的体系结构,可灵活生成各种结构处理器的测试程序。
附图说明
图1为本发明加速多核CPU软错误测试过程的方法的流程图。
图2为本发明方法中步骤(4)的细化流程图。
具体实施方式
以下首先对本发明的技术术语进行解释和说明:
剖析程序:对可执行程序的基本参数进行分析的程序。
基准测试用例:一组可执行程序,代表着某测试方向通用的应用。
体系结构弱点因子:当处理器中的某一个存储位的值经过某种外因导致值得翻转时,处理器运行出错的概率。
指令运行阶段:指令处在指令流水线中的阶段。
代码合成程序:通过向指令控制流中填入二进制指令的方法获得可执行程序的程序。
如图1所示,本发明方法的步骤为:
(1)获取CPU的剖析程序,在本实施方式中,剖析程序为M5模拟器;
(2)利用剖析程序分析多核CPU的基准测试用例,以获得基准测试用例的基本参数,基准测试用例的基本参数包括指令类型分布、指令依赖距离、基本块大小、指令执行耗时以及控制流图(ControlFlow Graph,简称CFG),在本实施方式中,基准测试用例为通用型应用测试用例,例如splash2和PARSEC程序。
(3)分析基本参数,以建立基本参数与多核CPU的体系结构弱点因子之间的对应关系;
(4)根据基本参数与多核CPU的体系结构弱点因子之间的对应关系编写代码合成程序,代码合成程序使用基本参数作为输入;
(5)运行代码合成程序,并调节基本参数,以获得并行输出程序,并行输出程序作为多核CPU软错误测试中的测试用例。
如图2所示,本发明方法的步骤(4)包括以下子步骤:
(4-1)选取二进制指令,将二进制指令以树形结构分类;
(4-2)用结构体描述多核CPU软错误测试中的测试用例的指令,结构体的属性包括指令类型、所需CPU功能单元、依赖距离、指令序列号、是否访问内存、L1-cache命中率、L2-cache命中率以及运行阶段,依赖距离、L1-cache命中率、L2-cache命中率采用正态分布函数获得;
(4-3)用结构体组建基本块,基本块的属性包括指令类型、指令条数、下一基本块地址、末尾跳转地址,指令条数采用正态分布函数获得;
(4-4)以基本块为单位组建多核CPU软错误测试中的测试用例的线程的控制流;
(4-5)使用控制流组建线程,线程的结构属性包括线程编号以及访问共享数据的概率,访问共享数据的概率是由泊松过程模拟得到;
(4-6)利用基准测试用例的基本参数动态生成多核CPU软错误测试中的测试用例的指令以及基本块的描述结构,描述结构组成多核CPU软错误测试中的测试用例的总体控制流图;
(4-7)从树形结构分类中选取二进制指令对总体控制流图中的结构体进行替换。
在本实施方式中,正态函数的参数是由对Splash2和PARSEC程序分析后由矩估计得出,泊松过程的均值(方差)是按照splash 2和PARSEC作为样本的均值来估计。
实例:
通过对上述方法的实例化,产生了基于Alpha指令集的多核CPU软错误测试中的测试用例,此多核处理器的结构与配置如表1所示。
产生的基于Alpha指令集的多核CPU软错误测试中的测试用例的体系结构弱点因子值与通用多核CPU的基准测试用例比较如表2,合成的多核CPU软错误测试中的测试用例的体系结构弱点因子值是通用的多核CPU的基准测试用例的4倍以上,这将会使多核CPU软错误测试的时间缩短至少四分之三。
处理器各结构 | 配置 |
Width | 4-wide fetch/issue/commit |
IQ | 64 |
ITLB | 128entries,4-way,200cycle miss |
DTLB | 256entries,4-way,200cycles miss |
Branch Predictor | 2K entries Gshare,10-bit global history/thread |
Pipeline Depth | 7 |
BTB | 2K entries,4-way |
Return Addr Stack | 32entries |
ROB | 128entries |
Int ALU | 4I-ALU,2I-MUL/DIV,2Load/Store |
FP ALU | 4FP-ALU,2FP-MUL/DIV/SQRT |
LSQ | 32entries |
L1 cache | 16KB,4-Way 64byte/line,2ports,lcycle access |
L2 cache | Shared 2MB,8-way,128byte/line,12cycle access |
Memory Access | 64bit wide,400cycles access |
表1
表2
Claims (4)
1.一种加速多核CPU软错误测试过程的方法,包括以下步骤:
(1)获取CPU的剖析程序;
(2)利用所述剖析程序分析多核CPU的基准测试用例,以获得所述基准测试用例的基本参数;
(3)分析所述基本参数,以建立所述基本参数与所述多核CPU的体系结构弱点因子之间的对应关系;
(4)根据所述基本参数与所述多核CPU的体系结构弱点因子之间的对应关系编写代码合成程序,所述代码合成程序使用所述基本参数作为输入;所述步骤(4)包括以下子步骤:
(4-1)选取二进制指令,将所述二进制指令以树形结构分类;
(4-2)用结构体描述所述多核CPU软错误测试中的测试用例的指令;
(4-3)用所述结构体组建基本块;
(4-4)以所述基本块为单位组建所述多核CPU软错误测试中的测试用例的线程的控制流;
(4-5)使用所述控制流组建线程;
(4-6)利用所述基准测试用例的基本参数动态生成所述多核CPU软错误测试中的测试用例的指令以及所述基本块的描述结构,所述描述结构组成所述多核CPU软错误测试中的测试用例的总体控制流图;
(4-7)从所述树形结构分类中选取二进制指令对所述总体控制流图中的结构体进行替换;
(5)运行所述代码合成程序,并调节所述基本参数,以获得并行输出程序,所述并行输出程序作为所述多核CPU软错误测试中的测试用例。
2.根据权利要求1所述的方法,其特征在于,所述基准测试用例的基本参数包括指令类型分布、指令依赖距离、基本块大小、指令执行耗时以及控制流图。
3.根据权利要求1所述的方法,其特征在于,
所述结构体的属性包括指令类型、所需CPU功能单元、依赖距离、指令序列号、是否访问内存、L1-cache命中率、L2-cache命中率以及运行阶段;
所述依赖距离、L1-cache命中率、L2-cache命中率采用正态分布函数获得;
所述基本块的属性包括指令类型、指令条数、下一基本块地址、末尾跳转地址;
所述指令条数采用正态分布函数获得;
所述线程的结构属性包括线程编号以及访问共享数据的概率;
所述访问共享数据的概率是由泊松过程模拟得到;
所述正态分布函数的参数是由所述剖析程序分析统计得出。
4.根据权利要求1所述的方法,其特征在于,所述基准测试用例为通用型应用测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110448743.1A CN102541738B (zh) | 2011-12-28 | 2011-12-28 | 加速多核cpu抗软错误测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110448743.1A CN102541738B (zh) | 2011-12-28 | 2011-12-28 | 加速多核cpu抗软错误测试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541738A CN102541738A (zh) | 2012-07-04 |
CN102541738B true CN102541738B (zh) | 2014-06-04 |
Family
ID=46348679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110448743.1A Expired - Fee Related CN102541738B (zh) | 2011-12-28 | 2011-12-28 | 加速多核cpu抗软错误测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541738B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902448A (zh) * | 2012-12-28 | 2014-07-02 | 中国科学院深圳先进技术研究院 | 多核处理器软错误压力测试程序生成系统及方法 |
CN105677521B (zh) * | 2015-12-29 | 2019-06-18 | 东南大学苏州研究院 | 一种面向移动智能终端处理器的基准测试程序合成方法 |
CN112329108B (zh) * | 2020-11-06 | 2023-11-03 | 山东轨道交通勘察设计院有限公司 | 一种地铁车站优化抗浮验算方法及系统 |
CN115562930A (zh) * | 2022-11-24 | 2023-01-03 | 北京紫光芯能科技有限公司 | 用于测试多核芯片的方法及装置、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211310A (zh) * | 2006-12-26 | 2008-07-02 | 中国电信股份有限公司 | 性能测试脚本生成方法 |
CN102135937A (zh) * | 2011-03-15 | 2011-07-27 | 西安邮电学院 | 一种两两覆盖组合软件测试用例集生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110048B (zh) * | 2009-12-28 | 2014-07-09 | 国际商业机器公司 | 用于基于框架的应用程序的回归测试选择方法和装置 |
-
2011
- 2011-12-28 CN CN201110448743.1A patent/CN102541738B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211310A (zh) * | 2006-12-26 | 2008-07-02 | 中国电信股份有限公司 | 性能测试脚本生成方法 |
CN102135937A (zh) * | 2011-03-15 | 2011-07-27 | 西安邮电学院 | 一种两两覆盖组合软件测试用例集生成方法 |
Non-Patent Citations (4)
Title |
---|
CMP中基于目录的协作Cache设计方案;赵小雨等;《计算机工程》;20101130;第36卷(第21期);第284页 * |
成玉等.用于低开销容错设计的存储部件可靠性评估研究.《电子与信息学报》.2011,第33卷(第11期), |
用于低开销容错设计的存储部件可靠性评估研究;成玉等;《电子与信息学报》;20111130;第33卷(第11期);第2753-2754、2756页 * |
赵小雨等.CMP中基于目录的协作Cache设计方案.《计算机工程》.2010,第36卷(第21期), |
Also Published As
Publication number | Publication date |
---|---|
CN102541738A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140380101A1 (en) | Apparatus and method for detecting concurrency error of parallel program for multicore | |
US8972999B2 (en) | Method and system for detecting program deadlock | |
US20170255877A1 (en) | Heterogeneous computing method | |
CN102541738B (zh) | 加速多核cpu抗软错误测试的方法 | |
US20100131744A1 (en) | Method and system of a processor-agnostic encoded debug-architecture in a pipelined environment | |
CN104899369A (zh) | 一种利用perl脚本的仿真器多线程运行方法 | |
CN110399182B (zh) | 一种cuda线程放置优化方法 | |
CN112433762A (zh) | 基于数据相关性约束的随机指令序列生成方法 | |
CN101561833B (zh) | 专用指令集处理器的设计方法 | |
CN107769987B (zh) | 一种报文转发性能评估方法和装置 | |
CN111078295B (zh) | 一种乱序高性能核的混合分支预测装置及方法 | |
CN101727513A (zh) | 一种超长指令字处理器的设计和优化方法 | |
CN103530132A (zh) | 一种cpu串行程序移植到mic平台的方法 | |
CN108469987B (zh) | 一种基于中断控制流图的中断验证系统 | |
Plyaskin et al. | Context-aware compiled simulation of out-of-order processor behavior based on atomic traces | |
CN105067994A (zh) | 定位片上系统时序逻辑错误、错误率计算及其应用方法 | |
Ji et al. | Using the first-level cache stack distance histograms to predict multi-level LRU cache misses | |
Siebra et al. | The software perspective for energy-efficient mobile applications development | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
US20080300845A1 (en) | Monitoring software simulations of hardware systems | |
CN109710419B (zh) | 基于文本分析的mpi代码通信过程解析方法 | |
Tian et al. | The performance model of hyper-threading technology in intel nehalem microarchitecture | |
CN111190644A (zh) | 一种嵌入式Flash片上读指令硬件加速方法和装置 | |
Sun et al. | An aggressive implementation method of branch instruction prefetch | |
Karacı | Performance Comparison of Managed C# and Delphi Prism in Visual Studio and Unmanaged Delphi 2009 and C++ Builder 2009 Languages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20201228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |