CN108491317B - 一种基于指令脆弱性分析的sdc错误检测方法 - Google Patents
一种基于指令脆弱性分析的sdc错误检测方法 Download PDFInfo
- Publication number
- CN108491317B CN108491317B CN201810117528.5A CN201810117528A CN108491317B CN 108491317 B CN108491317 B CN 108491317B CN 201810117528 A CN201810117528 A CN 201810117528A CN 108491317 B CN108491317 B CN 108491317B
- Authority
- CN
- China
- Prior art keywords
- instruction
- sdc
- vulnerability
- program
- instructions
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 44
- 238000012038 vulnerability analysis Methods 0.000 title claims abstract description 32
- 239000013598 vector Substances 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012549 training Methods 0.000 claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 238000002474 experimental method Methods 0.000 claims abstract description 13
- 238000002347 injection Methods 0.000 claims abstract description 13
- 239000007924 injection Substances 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 24
- 230000003068 static effect Effects 0.000 claims description 18
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000007667 floating Methods 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000873 masking effect Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 abstract description 8
- 230000000694 effects Effects 0.000 description 3
- 235000019580 granularity Nutrition 0.000 description 3
- 230000005855 radiation Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000168096 Glareolidae Species 0.000 description 1
- 241000252794 Sphinx Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000009528 severe injury Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于指令脆弱性分析的SDC错误检测方法步骤如下:步骤1,对程序集进行故障注入实验,获取样本数据集;步骤2,提取指令SDC脆弱性描述特征;步骤3,训练基于支持向量回归的指令SDC脆弱性分析模型;步骤4,提取目标程序指令特征,对指令脆弱性进行预测分析;步骤5,根据指令脆弱性值对目标程序进行指令冗余处理;步骤6,对冗余处理后的目标程序进行故障注入实验,程序运行时对SDC错误进行检测;步骤7,对冗余处理后的目标程序的SDC错误检测能力进行评估。本发明对SDC错误的检测率高,且性能开销低,可应用于恶劣环境下瞬时故障导致的程序SDC错误的检测。
Description
技术领域
本发明属于软加固和可信软件领域,具体涉及基于指令脆弱性分析的SDC错误检测方法。
背景技术
随着集成电路技术的发展,在计算机性能大幅度提升的同时芯片也更容易受到空间辐射的影响。在太空环境中,由高能粒子辐照或电磁脉冲干扰等因素造成的单粒子效应是计算机系统失效的主要原因之一。单粒子翻转(Single Event Upset,SEU)是单粒子效应最主要的表现形式。由单粒子翻转造成的系统硬件故障称为软错误,是一种瞬时故障。软错误对系统可靠性的影响在于它会传播到程序中,造成程序的状态异常或功能失效。在星载计算机的研究领域中,已出现过多次单粒子翻转事件,造成计算机功能出现严重损伤。
瞬时故障对程序运行的影响有很多种:虽然发生了瞬时故障,但没有影响程序的正常运行及结果;由于访问越界等原因导致的程序崩溃或挂起,已有基于症状的检测方法对其进行检测,并使用检查点机制进行恢复;程序能够正常运行,但出现了结果错误,称为SDC(Silent Data Corruption)错误。SDC错误是隐蔽传播的,由于隐蔽传播在程序的执行过程中不会有系统错误的提示,因而无法被检测机制捕获,但却会导致程序产生错误的结果。
在基于软件的数据流错误检测方法中,目前针对程序SDC错误检测的方法主要有两种:程序冗余和程序断言。马骏驰等人在源代码中插入以不变量为内容的断言,利用发生软错误后断言报错来检测软错误,具有较高的检出率和较低的检测代价。Laguna等人针对瞬时故障下科学计算程序中SOC(Silent Output Corruption)错误,采用支持向量模型对程序中的SOC脆弱指令进行判定,并对其进行冗余保护,他们的方法极大的降低了错误检测的性能开销。但该方法针对的是科学计算程序,普适性不够好。Lu等人基于决策回归树对程序中的存储指令和比较指令进行脆弱性预测,通过程序分析的方法得出程序中所有指令的SDC脆弱性值,并基于此对程序进行冗余保护。基于程序断言的检测方法的检测代价不高,但检测率较低。而基于程序冗余的方法的研究重点在于如何分析程序中脆弱的部分并对其进行选择性的冗余处理。
随着集成电路芯片工艺尺寸的减小,软错误引起的失效问题也越来越多。为了解决空间辐射对软件执行的影响,尤其是在高可靠性的航空航天领域,要使得程序在SDC错误存在的条件下仍然可以正确的运行,首要的是必须及时检测出瞬时故障导致的程序SDC错误。已有研究表明,SDC错误是由相对较小比例的指令中的数据变量错误引起的,因此如可以事先找到软件中的脆弱点并选择性的保护这些变量,则可实现高效费比的SDC错误检测机制以及目标程序加固机制。有技术中尚无一种利用支持向量回归进行指令SDC脆弱性分析并对SDC错误进行检测的报道。
发明内容
本发明所解决的技术问题在于提供一种基于指令脆弱性分析的SDC错误检测方法,可应用于对恶劣环境下受到瞬时故障影响的程序进行SDC错误检测。
实现本发明目的的技术解决方案为:基于指令脆弱性分析的SDC错误检测方法,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性分析模型样本数据集;
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,提取指令SDC脆弱性描述特征向量F;
步骤3,根据步骤1得到的指令脆弱性值和步骤2得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性分析模型;
步骤4,使用步骤2的方法提取目标程序的指令特征向量,根据训练得到的指令SDC脆弱性分析模型对目标程序指令脆弱性值进行预测分析;
步骤5,根据步骤4分析得到的指令脆弱性值,对目标程序进行指令冗余处理;
步骤6,对步骤5得到的冗余处理后的目标程序进行故障注入实验,程序在运行时对SDC错误进行检测;
步骤7,对步骤5得到的冗余处理后的目标程序的SDC错误检测能力进行评估。
本发明与现有技术相比,其显著优点为:1)本发明使用程序分析的方法分析目标程序,能够更全面的获得影响指令脆弱性的特征,从而提高指令SDC脆弱性分析的准确性;2)本发明基于支持向量回归模型分析指令SDC脆弱性,并对程序进行冗余保护,在保证检测率的同时降低了时间开销。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明的一种基于指令脆弱性分析的SDC错误检测方法的流程图。
图2为本发明的一种基于指令脆弱性分析的SDC错误检测方法的框架图。
图3为SDC错误检测率比较图。
图4为性能开销比较图。
具体实施方式
结合附图,本发明的一种基于指令脆弱性分析的SDC错误检测方法,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性分析模型样本数据集;
所述的指令SDC脆弱性值采用下式计算:
其中,集合Vstatic是程序的静态指令集合,Ii表示程序中的第i条静态指令,N为程序中所有静态指令的数目;集合Vdynamic是程序运行时的动态指令集合,di为指令Ii的动态执行次数;集合Idynamic(i)代表程序运行时静态指令Ii对应的所有动态执行指令,是Vdynamic的子集,为指令Ii的第q条动态指令;PSDC(Ii)为指令Ii的SDC脆弱性值,为动态指令的SDC脆弱性值,通过故障注入实验结果计算得到。
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,提取指令SDC脆弱性描述特征向量F;
所构建的指令SDC脆弱性描述特征向量F为下列二元组:
其中,Fdependent为数据传播依赖相关的指令依赖特征向量;END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=<Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为计算出的错误屏蔽因子;Finherent为表征指令自身性质的指令固有特征向量;IC为指令的类型,是一个包含8个字段的特征向量,IC=<Cint,Cfloat,Ccmp,Cbit,Cconv,Cmem,Ccall,Cload>,分别表示是否为整型二元操作、浮点型二元操作、比较指令、逻辑操作、转换操作、地址相关的操作、函数调用指令、内存读指令,若是则将相应字段标记为1,否则标记为0;Insttime为动态指令执行时间与程序总时间占比;BBL为指令所在基本块的大小;INloop表示指令是否在循环中;RINbb表示到基本块结束还需执行的指令数;DCratio表示指令与函数执行时间的比值;Callnum表示指令所在函数被调用的次数;RINfun表示到函数返回还需执行的指令数;Varglobal表示指令中变量是否会影响全局变量,若是则标记为1,否则标记为0;Fanout表示指令目的操作数的扇出值。
步骤3,根据步骤1得到的指令脆弱性值和步骤2得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性分析模型;
训练基于支持向量回归的指令SDC脆弱性分析模型时,给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性;根据支持向量回归机结构化风险最小化原则,建立指令脆弱性分析模型,并进行求解,可得到相应的指令SDC脆弱性预测分析函数为:
步骤4,使用步骤2的方法提取目标程序的指令特征向量,根据步骤3中训练得到的指令SDC脆弱性分析模型对目标程序指令脆弱性值进行预测分析;
步骤5,根据步骤4预测分析得到的指令脆弱性值,对目标程序进行指令冗余处理;所述的指令冗余的方法具体包含三个步骤:
步骤5.1:根据步骤4的指令SDC脆弱性预测分析函数分析得到指令脆弱性值,在程序中采用下式选择待冗余的指令集合:
其中,Isort表示对指令脆弱性按递减顺序进行排序后的指令集合;为指令的SDC脆弱性值,为指令的动态指令数;Iselected表示从排序后指令Isort中选出的前S条指令集合;Z表示对指令的冗余粒度,即对目标程序进行冗余处理的指令比例;D是程序中静态指令的总数目;
步骤5.2:对步骤5.1中的指令集合Iselected进行冗余处理得到集合遍历Idup中所有指令,若指令数据依赖于且i>j,则他们存在定义引用关系;若Idup指令集合中的指令不能和其他的冗余指令构成定义引用关系,则在步骤5.3中为该冗余指令添加单独的比较指令;
步骤5.3:在基本块的最后插入比较指令,比较原始指令的执行结果和插入的冗余指令的执行结果,若结果不一致,则表明出现了瞬时故障,需要采取措施进行恢复;若结果一致,则表明该段基本块代码的执行没有出现错误。
步骤6,对步骤5得到的冗余处理后的目标程序进行故障注入实验,程序在运行时对SDC错误进行检测;
步骤7,对步骤5得到的冗余处理后的目标程序的SDC错误检测能力进行评估。所述的SDC错误检测能力通过下式进行评估:
其中,SDCcoverage表示SDC错误检出率;NSDC表示原目标程序注入故障后发生SDC错误的次数;NDUP表示经过冗余处理后的目标程序注入故障后检测到SDC错误的次数。
本发明给出影响指令脆弱性的指令特征,指令SDC脆弱性分析模型,对脆弱性较高的指令进行冗余处理以及对SDC错误进行检测的方法。该方法对SDC错误的检测率高,且性能开销低,可应用于恶劣环境下瞬时故障导致的程序SDC错误的检测。
下面结合实施例对本发明做进一步详细的描述。
实施例
结合图1和图2,本发明是一种基于指令脆弱性分析的SDC错误检测方法。包括如下步骤:
步骤1、对Mibench程序集中的FFT(傅里叶变换)、basicmath(数学计算)、SHA(安全散列算法)、CRC(通信CRC32计算工具)、partricia(网络中用于叶子稀疏的树结构)、sphinx(语音解码)六个程序进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性预测模型样本数据集,包括4365个指令样本。所述的指令的SDC脆弱性值采用如下公式:
其中,集合Vstatic是程序的静态指令集合,Ii表示程序中的第i条静态指令,N为程序中所有静态指令的数目;集合Vdynamic是程序运行时的动态指令集合,di为指令Ii的动态执行次数;集合Idynamic(i)代表程序运行时静态指令Ii对应的所有动态执行指令,是Vdynamic的子集,为指令Ii的第q条动态指令。PSDC(Ii)为指令Ii的SDC脆弱性值,为动态指令的SDC脆弱性值,通过故障注入实验结果计算得到。
步骤2、根据步骤1得到的程序指令样本的SDC脆弱性值,提取指令SDC脆弱性描述特征向量F。所构建的指令特征向量F为下列二元组:
其中,Fdependent为数据传播依赖相关的指令依赖特征向量;END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=<Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为计算出的错误屏蔽因子。
Finherent为表征指令自身性质的指令固有特征向量;IC为指令的类型,是一个包含8个字段的特征向量,IC=<Cint,Cfloat,Ccmp,Cbit,Cconv,Cmem,Ccall,Cload>,分别表示是否为整型二元操作、浮点型二元操作、比较指令、逻辑操作、转换操作、地址相关的操作、函数调用指令、内存读指令,若是则将相应字段标记为1,否则标记为0;Insttime为动态指令执行时间与程序总时间占比;BBL为指令所在基本块的大小;INloop表示指令是否在循环中;RINbb表示到基本块结束还需执行的指令数;DCratio表示指令与函数执行时间的比值;Callnum表示指令所在函数被调用的次数;RINfun表示到函数返回还需执行的指令数;Varglobal表示指令中变量是否会影响全局变量,若是则标记为1,否则标记为0;Fanout表示指令目的操作数的扇出值。
步骤3、根据步骤1得到的指令脆弱性值和步骤2得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性分析模型:
给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性。根据支持向量回归机结构化风险最小化原则,建立指令脆弱性分析模型,并进行求解,可得到相应的指令SDC脆弱性预测分析函数为:
步骤4、使用步骤2的方法提取qsort(快速排序)、dijkstra(最短路径算法)、susan(图像识别)三个目标程序的待分析目标指令特征向量,根据步骤3中训练得到的指令SDC脆弱性分析模型对指令脆弱性进行预测分析;
步骤5、根据步骤4预测分析得到的指令脆弱性值,对目标程序进行指令冗余。所述的指令冗余的方法具体包含三个步骤:
步骤5.1、根据步骤4预测分析得到指令脆弱性值,在程序中按照如下公式选择待冗余的指令集合:
其中,Isort表示对指令脆弱性按递减顺序进行排序后的指令集合;为指令的SDC脆弱性值,为指令的动态指令数;Iselected表示从排序后指令Isort中选出的前S条指令集合;Z表示对指令的冗余粒度,即对目标程序进行冗余处理的指令比例,取Z的值为分别为0.1、0.2、0.3;D是程序中静态指令的总数目。
步骤5.2、对步骤5.1中的指令集合Iselected进行冗余处理得到集合遍历Idup中所有指令,若指令数据依赖于且i>j,则他们存在定义引用关系;若Idup指令集合中的指令不能和其他的冗余指令构成定义引用关系,则在步骤5.3中为该冗余指令添加单独的比较指令。
步骤5.3、在基本块的最后插入比较指令,比较原始指令的执行结果和插入的冗余指令的执行结果,若结果不一致,则表明出现了瞬时故障,需要采取措施进行恢复;若结果一致,则表明该段基本块代码的执行没有出现错误。
步骤6、对步骤5得到的冗余处理后的目标程序进行故障注入实验,程序在运行时对瞬时故障导致的SDC错误进行检测。
步骤7、对步骤5得到的冗余处理后的目标程序的SDC错误检测能力进行评估。所述的SDC错误检测能力通过下式进行评估:
其中,SDCcoverage表示SDC错误检出率;NSDC表示原目标程序注入故障后发生SDC错误的次数;NDUP表示经过冗余处理后的目标程序注入故障后检测到SDC错误的次数。
图3给出了SDC错误检测率的比较图。其中,ML-SED-10、ML-SED-20、ML-SED-30分别对应本发明的方法中Z取0.1、0.2、0.3时对目标程序进行不同粒度的指令冗余处理。Hotpath是对程序中执行频繁的路径进行冗余。图4给出了性能开销比较图。
由图3和图4可知,本发明的方法可以以较低的时间开销获取较高的SDC错误检出率。
Claims (4)
1.一种基于指令脆弱性分析的SDC错误检测方法,其特征在于,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性分析模型样本数据集;
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,提取指令SDC脆弱性描述特征向量F,具体为:
其中,Fdependent为数据传播依赖相关的指令依赖特征向量;END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=<Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为计算出的错误屏蔽因子;Finherent为表征指令自身性质的指令固有特征向量;IC为指令的类型,是一个包含8个字段的特征向量,IC=<Cint,Cfloat,Ccmp,Cbit,Cconv,Cmem,Ccall,Cload>,分别表示是否为整型二元操作、浮点型二元操作、比较指令、逻辑操作、转换操作、地址相关的操作、函数调用指令、内存读指令,若是则将相应字段标记为1,否则标记为0;Insttime为动态指令执行时间与程序总时间占比;BBL为指令所在基本块的大小;INloop表示指令是否在循环中;RINbb表示到基本块结束还需执行的指令数;DCratio表示指令与函数执行时间的比值;Callnum表示指令所在函数被调用的次数;RINfun表示到函数返回还需执行的指令数;Varglobal表示指令中变量是否会影响全局变量,若是则标记为1,否则标记为0;Fanout表示指令目的操作数的扇出值;
步骤3,根据步骤1得到的指令脆弱性值和步骤2得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性分析模型;
步骤4,使用步骤2的方法提取目标程序的指令特征向量,根据步骤3中训练得到的指令SDC脆弱性分析模型对目标程序指令脆弱性值进行预测分析;
步骤5,根据步骤4预测分析得到的指令脆弱性值,对目标程序进行指令冗余处理,具体包括以下步骤:
步骤5.1:根据步骤4的指令SDC脆弱性预测分析函数分析得到指令脆弱性值,在程序中采用下式选择待冗余的指令集合:
其中,Isort表示对指令脆弱性按递减顺序进行排序后的指令集合;为指令的SDC脆弱性值,为指令的动态指令数;Iselected表示从排序后指令Isort中选出的前S条指令集合;Z表示对指令的冗余粒度,即对目标程序进行冗余处理的指令比例;D是程序中静态指令的总数目;
步骤5.2:对步骤5.1中的指令集合Iselected进行冗余处理得到集合遍历Idup中所有指令,若指令数据依赖于且i>j,则他们存在定义引用关系;若Idup指令集合中的指令不能和其他的冗余指令构成定义引用关系,则在步骤5.3中为该冗余指令添加单独的比较指令;
步骤5.3:在基本块的最后插入比较指令,比较原始指令的执行结果和插入的冗余指令的执行结果,若结果不一致,则表明出现了瞬时故障,需要采取措施进行恢复;若结果一致,则表明该段基本块代码的执行没有出现错误;
步骤6,对步骤5得到的冗余处理后的目标程序进行故障注入实验,程序在运行时对SDC错误进行检测;
步骤7,对步骤5得到的冗余处理后的目标程序的SDC错误检测能力进行评估。
3.根据权利要求1所述的基于指令脆弱性分析的SDC错误检测方法,其特征在于,步骤3中训练基于支持向量回归的指令SDC脆弱性分析模型时,给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性;根据支持向量回归机结构化风险最小化原则,建立指令脆弱性分析模型,并进行求解,可得到相应的指令SDC脆弱性预测分析函数为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810117528.5A CN108491317B (zh) | 2018-02-06 | 2018-02-06 | 一种基于指令脆弱性分析的sdc错误检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810117528.5A CN108491317B (zh) | 2018-02-06 | 2018-02-06 | 一种基于指令脆弱性分析的sdc错误检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491317A CN108491317A (zh) | 2018-09-04 |
CN108491317B true CN108491317B (zh) | 2021-04-16 |
Family
ID=63344453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810117528.5A Active CN108491317B (zh) | 2018-02-06 | 2018-02-06 | 一种基于指令脆弱性分析的sdc错误检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491317B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674028A (zh) * | 2019-08-20 | 2020-01-10 | 华为技术有限公司 | 故障注入方法及其装置、业务服务系统 |
CN111159011B (zh) * | 2019-12-09 | 2022-05-20 | 南京航空航天大学 | 基于深度随机森林的指令脆弱性预测方法及系统 |
CN111274058B (zh) * | 2020-01-20 | 2024-04-02 | 东南大学 | 一种轻量级冗余断言筛选方法 |
CN112765609B (zh) * | 2020-12-31 | 2022-06-07 | 南京航空航天大学 | 一种基于单类支持向量机的多位sdc脆弱指令识别方法 |
CN113032232B (zh) * | 2021-03-09 | 2023-06-20 | 广州虎牙科技有限公司 | 设备的性能检测的相关方法以及相关装置、设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1607493A (zh) * | 2003-09-24 | 2005-04-20 | 王子尧 | 汉字单元全音取码输入法 |
WO2007117444A2 (en) * | 2006-03-31 | 2007-10-18 | Yinghe Hu | Protein detection by aptamers |
CN102063406A (zh) * | 2010-12-21 | 2011-05-18 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
CN103984632A (zh) * | 2014-05-29 | 2014-08-13 | 东南大学 | 一种基于错误传播分析的sdc脆弱指令识别方法 |
CN104008428A (zh) * | 2014-05-19 | 2014-08-27 | 上海交通大学 | 产品服务需求预测和资源优选配置方法 |
CN105279345A (zh) * | 2015-11-19 | 2016-01-27 | 中国空间技术研究院 | 一种航天器用数字软ip核评测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9716884B2 (en) * | 2014-03-20 | 2017-07-25 | Hfi Innovation Inc. | Method of signaling for mode selection in 3D and multi-view video coding |
-
2018
- 2018-02-06 CN CN201810117528.5A patent/CN108491317B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1607493A (zh) * | 2003-09-24 | 2005-04-20 | 王子尧 | 汉字单元全音取码输入法 |
WO2007117444A2 (en) * | 2006-03-31 | 2007-10-18 | Yinghe Hu | Protein detection by aptamers |
CN102063406A (zh) * | 2010-12-21 | 2011-05-18 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
CN104008428A (zh) * | 2014-05-19 | 2014-08-27 | 上海交通大学 | 产品服务需求预测和资源优选配置方法 |
CN103984632A (zh) * | 2014-05-29 | 2014-08-13 | 东南大学 | 一种基于错误传播分析的sdc脆弱指令识别方法 |
CN105279345A (zh) * | 2015-11-19 | 2016-01-27 | 中国空间技术研究院 | 一种航天器用数字软ip核评测方法 |
Non-Patent Citations (3)
Title |
---|
Future water availability in the largest freshwater Mediterranean lake is at great risk as evidenced from simulations with the SWAT model;Bucak等;《Science of the Total Environment》;20171231;第581卷;第413-425页 * |
基于错误传播分析的SDC脆弱指令识别方法;马骏驰 等;《计算机研究与发展》;20160930(第9期);第1943-1952页 * |
自适应离散差分进化算法策略的选择;庄毅 等;《软件学报》;20140531(第5期);第984-996页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108491317A (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491317B (zh) | 一种基于指令脆弱性分析的sdc错误检测方法 | |
US7747932B2 (en) | Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system | |
US7137028B2 (en) | Method and apparatus for improving reliability in microprocessors | |
Chen et al. | Fault tolerant one-sided matrix decompositions on heterogeneous systems with gpus | |
Sullivan et al. | Swapcodes: Error codes for hardware-software cooperative gpu pipeline error detection | |
CN108334903B (zh) | 一种基于支持向量回归的指令sdc脆弱性预测方法 | |
Liu et al. | Identifying SDC-causing Instructions based on Random forests algorithm | |
Fang et al. | Sdc is in the eye of the beholder: A survey and preliminary study | |
Dimitrov et al. | Unified architectural support for soft-error protection or software bug detection | |
Wang et al. | On probability of detection lossless concurrent error detection based on implications | |
CN103984632A (zh) | 一种基于错误传播分析的sdc脆弱指令识别方法 | |
Nikseresht et al. | A selective soft error protection method for cots processor-based systems | |
CN112765609B (zh) | 一种基于单类支持向量机的多位sdc脆弱指令识别方法 | |
Sadi et al. | An efficient approach towards mitigating soft errors risks | |
CN116578978A (zh) | 针对ip软核的多维分层式硬件木马评估方法 | |
CN111274058A (zh) | 一种轻量级冗余断言筛选方法 | |
Nezzari et al. | Modelling processor reliability using LLVM compiler fault injection | |
Almukhaizim et al. | Cost-effective graceful degradation in speculative processor subsystems: The branch prediction case | |
Ferreira et al. | Compiler optimizations impact the reliability of the control-flow of radiation-hardened software | |
Aidemark et al. | Path-based error coverage prediction | |
Nazarian et al. | Bit-flip aware control-flow error detection | |
US8539403B2 (en) | Reducing observability of memory elements in circuits | |
Utrera et al. | Analysis of the impact factors on data error propagation in HPC applications | |
Naveed et al. | Aster: Multi-Bit Soft Error Recovery Using Idempotent Processing | |
CN114510427B (zh) | 一种基于simd向量化的数据流软错误检测方法 |
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 |