CN108334903B - 一种基于支持向量回归的指令sdc脆弱性预测方法 - Google Patents

一种基于支持向量回归的指令sdc脆弱性预测方法 Download PDF

Info

Publication number
CN108334903B
CN108334903B CN201810117534.0A CN201810117534A CN108334903B CN 108334903 B CN108334903 B CN 108334903B CN 201810117534 A CN201810117534 A CN 201810117534A CN 108334903 B CN108334903 B CN 108334903B
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
Application number
CN201810117534.0A
Other languages
English (en)
Other versions
CN108334903A (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201810117534.0A priority Critical patent/CN108334903B/zh
Publication of CN108334903A publication Critical patent/CN108334903A/zh
Application granted granted Critical
Publication of CN108334903B publication Critical patent/CN108334903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于支持向量回归的指令SDC脆弱性预测方法,步骤如下:步骤1,对程序集进行故障注入实验,获取样本数据集;步骤2,提取表征指令本身性质的固有特征;步骤3,遍历样本数据集,为目标指令生成数据传播依赖路径;步骤4,遍历样本数据集,为目标指令计算错误屏蔽因子;步骤5,提取与数据传播依赖相关的指令的依赖特征;步骤6,训练基于支持向量回归的指令SDC脆弱性预测模型;步骤7,提取目标程序指令特征,对指令脆弱性进行预测。该方法预测准确率高,且性能开销低,可以有效应用于程序受到瞬时故障影响后指令SDC脆弱性的预测。

Description

一种基于支持向量回归的指令SDC脆弱性预测方法
技术领域
本发明属于软加固和可信软件领域,具体涉及基于支持向量回归的指令SDC脆弱性预测方法。
背景技术
随着半导体制造技术的不断发展,处理器不断缩减集成电路的尺寸、降低工作的电压。然而,由于器件敏感度的降低,在计算机性能大幅度提升的同时使得芯片更容易受到空间辐射的影响。在恶劣辐射环境中,由高能粒子辐照或电磁干扰等造成的单粒子效应是计算机系统失效的主要原因。单粒子翻转(Single Event Upset,SEU)是单粒子效应最主要的表现形式。SEU是指高能粒子轰击器件使其逻辑状态发生翻转,使得存储值的某一位由1变为0或由0变为1,可以通过重新写入逻辑值恢复其状态。这种由单粒子翻转造成的系统硬件故障称为软错误,是一种瞬时故障。
软错误对系统可靠性的影响在于它会传播到程序中,造成程序的状态异常或功能失效。瞬时故障对程序运行的影响大致可分为3种:1)没有影响程序的正常运行及结果(Benign);2)导致程序崩溃(Crash)或挂起(Hang);3)程序正常运行,但出现了结果错误,称为SDC(Silent Data Corruption)错误。第一类错误不会影响程序的正常运行及结果。第二类错误较易被检测到,已有基于症状的检测方法对其进行检测,并使用检查点机制进行恢复。与这类错误相比,SDC错误是隐蔽传播的。由于隐蔽传播在程序的执行过程中不会有系统错误的提示,因而无法被检测机制捕获,但却会导致程序产生错误的结果。
针对瞬时故障导致的程序SDC错误,传统的基于冗余计算的方法需要对程序中所有的指令进行复制,带来巨大的性能开销。目前对冗余方法研究的重点为如何分析程序中脆弱的部分并对其进行选择性的冗余处理。attabiraman等人利用符号执行抽象程序中变量的错误状态,采用模型检验技术对程序抽象执行,分析错误的传播路径及程序受到的影响,从而识别程序中的SDC脆弱指令。这种基于程序静态分析的技术虽然具有较高的分析精度,但容易导致状态爆炸,因此很难应用于大规模程序的分析。为了平衡故障注入状态空间和分析精度之间的关系,可将静态分析与故障注入技术相结合,马骏驰等人对程序中会发生的错误传播进行分析,从而对SDC脆弱指令进行识别,根据已执行的故障注入的信息动态的推测出SDC脆弱指令,在保证准确率的同时减低了故障注入的开销,但这种方法很难覆盖到所有与地址相关的指令,而且没有考虑指令的操作数发生软错误后导致程序SDC错误的概率性。也有学者将引入机器学习的方法进一步降低时间开销,Lu等人首先在程序编译时提取指令的静态特征,接着采用决策回归树对程序中的存储指令和比较指令进行脆弱性预测,最后通过程序分析的方法得出程序中所有指令的SDC脆弱性。
指令SDC脆弱性分析是设计SDC错误检测方法的关键。在已有的指令SDC脆弱性分析方法中,故障注入方法代价较高,而程序静态分析的方法面临着决策空间代价和准确率之间的权衡问题。如果能在编译中间代码阶段利用机器学习方法实现指令SDC脆弱性的分析与预测,那么这种方法不仅灵活、可配置,还可有效利用编译器对程序指令、基本块、函数等信息进行分析,支持多种硬件平台和高级语言。现有技术中尚无一种利用支持向量回归进行指令SDC脆弱性预测的报道。
发明内容
本发明所解决的技术问题在于提供一种基于支持向量回归的指令SDC脆弱性预测方法,能有效地对恶劣环境下受到瞬时故障影响的程序进行指令SDC脆弱性预测。
实现本发明目的的技术解决方案为:基于支持向量回归的指令SDC脆弱性预测方法,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性预测模型样本数据集;
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,遍历样本数据集提取表征指令本身性质的固有特征向量Finherent
步骤3,遍历样本数据集,为目标指令生成数据传播依赖路径Path(Ii);
步骤4,根据步骤3生成的数据传播依赖路径,遍历样本数据集,为目标指令计算错误屏蔽因子MF(Ii);
步骤5,根据步骤1得到的程序指令样本的SDC脆弱性值,步骤3中的数据传播依赖路径,以及步骤4中的错误屏蔽因子,遍历样本数据集提取与数据传播依赖相关的指令的依赖特征向量Fdependent
步骤6,根据步骤1得到的指令脆弱性值和步骤2以及步骤5得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性预测模型;
步骤7,使用步骤2和步骤5的方法提取待预测目标程序的指令特征向量,根据步骤6中训练得到的指令SDC脆弱性预测模型对目标程序指令脆弱性值进行预测,得到指令脆弱性值的预测结果。
本发明与现有技术相比,其显著优点为:1)本发明使用程序分析的方法分析目标程序,从指令依赖特征和指令固有特征两方面更全面的获得影响指令脆弱性的特征,从而提高指令SDC脆弱性预测的准确性;2)本发明使用支持向量回归模型训练指令SDC脆弱性预测模型,使得预测模型具有较好的泛化能力。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明的一种基于支持向量回归的指令SDC脆弱性预测方法的流程图。
图2为SDC脆弱性预测准确率比较图。
具体实施方式
结合附图,本发明的一种基于支持向量回归的指令SDC脆弱性预测方法,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性预测模型样本数据集;
所述的指令SDC脆弱性值采用下式计算:
Figure BDA0001571039390000031
其中,集合Vstatic是程序的静态指令集合,Ii表示程序中的第i条静态指令,N为程序中所有静态指令的数目;集合Vdynamic是程序运行时的动态指令集合,di为指令Ii的动态执行次数;集合Idynamic(i)代表程序运行时静态指令Ii对应的所有动态执行指令,是Vdynamic的子集,
Figure BDA0001571039390000032
为指令Ii的第q条动态指令,PSDC(Ii)为指令Ii的SDC脆弱性值,
Figure BDA0001571039390000033
为动态指令
Figure BDA0001571039390000034
的SDC脆弱性值,通过故障注入实验结果计算得到。
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,遍历样本数据集提取表征目标指令本身性质的固有特征向量Finherent
所构建的表征指令本身性质的固有特征向量Finherent为下列十元组:
Finherent=<IC,Insttime,BBL,INloop,RINbb,DCratio,Callnum,RINfun,Varglobal,Fanout>
其中,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,遍历样本数据集,为目标指令生成数据传播依赖路径Path(Ii);所述的数据传播依赖路径Path(Ii)采用下式表示:
Figure BDA0001571039390000041
其中,指令
Figure BDA0001571039390000042
是指令Ii的传播路径上的第k条指令;
Figure BDA0001571039390000043
表示指令
Figure BDA0001571039390000044
与指令
Figure BDA0001571039390000045
之间存在数据依赖,即指令
Figure BDA0001571039390000046
中目的寄存器中的数据会在
Figure BDA0001571039390000047
中的源寄存器中使用,Iend(Ii)是指令Ii的数据链末端指令。
步骤4,根据步骤3生成的数据传播依赖路径,遍历样本数据集,为目标指令计算错误屏蔽因子MF(Ii);所述的错误屏蔽因子MF(Ii)采用下式计算:
Figure BDA0001571039390000048
MF(Ii)=FSDC(Iend(Ii))×(1-Pmask(Ii))
其中,Pmask(Ii)为指令Ii发生错误后在其传播路径Path(Ii)上被屏蔽的概率;IMASK表示错误屏蔽指令集合;DO为指令Ii的目的操作数,它的总位数为BITS;Pmask_b(bit,Ii)为指令Ii中的bit位发生错误后会被错误屏蔽指令屏蔽的概率,这个值由错误屏蔽指令的类型及操作数共同决定;Perror(bit)为该位发生瞬时故障的概率,FSDC(Iend(Ii))为根据指令Ii的数据依赖链末端指令Iend(Ii)是否对程序输出产生影响来衡量指令Ii的SDC脆弱性;对于数据依赖链的末端指令Iend,若该指令在程序结果输出指令Io的后向切片中,则FSDC(Iend)为1,若不在则为0。
步骤5,根据步骤1得到的程序指令样本的SDC脆弱性值,步骤3中的数据传播依赖路径,以及步骤4中的错误屏蔽因子,遍历样本数据集提取与数据传播依赖相关的指令的依赖特征向量Fdependent
所构建的与数据传播依赖相关指令依赖特征向量Fdependent为下列四元组:
Fdependent=<END,CMP,Crash,MF>
其中,END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=<Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为步骤5中计算出的错误屏蔽因子。
步骤6,根据步骤1得到的指令脆弱性值和步骤2以及步骤5得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性预测模型;
训练基于支持向量回归的指令SDC脆弱性预测模型时,给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性;根据支持向量回归机结构化风险最小化原则,建立求解的最优化问题,并进行推导,得到指令SDC脆弱性预测函数为:
Figure BDA0001571039390000051
其中,F表示待预测目标指令的特征向量;α和
Figure BDA0001571039390000064
为求解得到的Lagrange乘子;K(Fi,F)表示根据SVR理论引入的核函数;b为求解得到的偏置项。
步骤7,使用步骤2和步骤5的方法提取待预测目标程序的指令特征向量,根据步骤6中训练得到的指令SDC脆弱性预测模型对目标程序指令脆弱性值进行预测,得到指令脆弱性值的预测结果。
本发明给出影响指令脆弱性的指令特征的提取方法;基于支持向量回归构建指令SDC脆弱性预测模型,给出对指令SDC脆弱性进行预测的方法。该方法预测准确率高,且性能开销低,可以有效应用于程序受到瞬时故障影响后指令SDC脆弱性的预测。
下面结合实施例对本发明做进一步详细的描述。
实施例
结合图1,本发明是一种基于支持向量回归的指令SDC脆弱性预测方法。包括如下步骤:
步骤1、对Mibench程序集中的FFT(傅里叶变换)、basicmath(数学计算)、SHA(安全散列算法)、CRC(通信CRC32计算工具)、partricia(网络中用于叶子稀疏的树结构)、sphinx(语音解码)六个程序进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性预测模型样本数据集,包括4365个指令样本。所述的指令的SDC脆弱性值采用如下公式:
Figure BDA0001571039390000061
其中,集合Vstatic是程序的静态指令集合,Ii表示程序中的第i条静态指令,N为程序中所有静态指令的数目;集合Vdynamic时程序运行时的动态指令集合,di为指令Ii的动态执行次数;集合Idynamic(i)代表程序运行时静态指令Ii对应的所有动态执行指令,是Vdynamic的子集,
Figure BDA0001571039390000062
为指令Ii的第q条动态指令。PSDC(Ii)为指令Ii的SDC脆弱性值,
Figure BDA0001571039390000065
为动态指令
Figure BDA0001571039390000063
的SDC脆弱性值,通过故障注入实验结果计算得到。
步骤2、根据步骤1得到的程序指令样本的SDC脆弱性值,遍历样本数据集提取表征指令本身性质的固有特征向量Finherent。所构建的表征指令本身性质的固有特征向量Finherent为下列十元组:
Finherent=<IC,Insttime,BBL,INloop,RINbb,DCratio,Callnum,RINfun,Varglobal,Fanout>
其中,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、遍历样本数据集,为目标指令生成数据传播依赖路径Path(Ii)。传播路径Path(Ii)采用下式表示:
Figure BDA0001571039390000071
其中,指令
Figure BDA0001571039390000072
是指令Ii的传播路径上的第k条指令,
Figure BDA0001571039390000073
表示指令
Figure BDA0001571039390000074
与指令
Figure BDA0001571039390000075
之间存在数据依赖,即指令
Figure BDA0001571039390000076
中目的寄存器中的数据会在
Figure BDA0001571039390000077
中的源寄存器中使用。Iend(Ii)是指令Ii的数据链末端指令。
步骤4、基于步骤3生成的数据传播依赖路径,遍历样本数据集,为目标指令计算其错误屏蔽因子,错误屏蔽因子MF(Ii)的计算采用下式:
Figure BDA0001571039390000078
MF(Ii)=FSDC(Iend(Ii))×(1-Pmask(Ii))
其中,Pmask(Ii)为指令Ii发生错误后在其传播路径Path(Ii)上被屏蔽的概率;IMASK表示错误屏蔽指令集合;DO为指令Ii的目的操作数,它的总位数为BITS;Pmask_b(bit,Ii)为指令Ii中的bit位发生错误后会被错误屏蔽指令屏蔽的概率,这个值由错误屏蔽指令的类型及操作数共同决定;Perror(bit)为该位发生瞬时故障的概率。FSDC(Iend(Ii))为根据指令Ii的数据依赖链末端指令Iend(Ii)是否对程序输出产生影响来衡量指令Ii的SDC脆弱性。对于数据依赖链的末端指令Iend,若该指令在程序结果输出指令Io的后向切片中,则FSDC(Iend)为1,若不在则为0。
步骤5、根据步骤1得到的程序指令样本的SDC脆弱性值,步骤3中的数据传播依赖路径,以及步骤4中的错误屏蔽因子,遍历样本数据集提取与数据传播依赖相关的指令的依赖特征向量Fdependent,表示为下列四元组:
Fdependent=<END,CMP,Crash,MF>
其中,END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=<Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为步骤3.2中计算出的错误屏蔽因子。
步骤6、根据步骤1得到的指令脆弱性值和步骤2以及步骤5得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性预测模型:
给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性。根据支持向量回归机结构化风险最小化原则,建立求解的最优化问题,并进行推导,可得到指令SDC脆弱性预测函数为:
Figure BDA0001571039390000091
其中,F表示待预测目标指令的特征向量;α和
Figure BDA0001571039390000092
为求解得到的Lagrange乘K(Fi,F)表示根据SVR理论引入的核函数;b为求解得到的偏置项。
步骤7、使用步骤2~3的方法提取qsort(快速排序)、dijkstra(最短路径算法)、susan(图像识别)三个目标程序的待预测目标指令特征向量,根据步骤6中训练得到的支持向量回归预测模型对指令脆弱性进行预测。表1给出了本发明的方法和其它方法在相关性和时间代价两个方面的比较,其中SVR-SED是本发明的方法,ePVF是基于崩溃模型对指令脆弱性进行预测的方法,FI是故障注入方法。其中,FI方法得到的SDC脆弱性为准确值,所以其相关性为1。同时,由于FI方法的时间过长,在时间代价的比较中将其忽略。由表1可以看出,本发明的方法可以以较低的时间开销达到较高的预测相关性。
表1
Figure BDA0001571039390000093
图2给出了SDC脆弱性预测准确率的比较图。
由图可知,本发明的方法可以以较低的时间开销获取较高的指令SDC脆弱性预测准确率。

Claims (4)

1.一种基于支持向量回归的指令SDC脆弱性预测方法,其特征在于,包括如下步骤:
步骤1,对程序集进行故障注入实验,得到指令的SDC脆弱性值,从而构建指令SDC脆弱性预测模型样本数据集;
步骤2,根据步骤1得到的程序指令样本的SDC脆弱性值,遍历样本数据集提取表征目标指令本身性质的固有特征向量Finherent
Finherent=<IC,Insttime,BBL,INloop,RINbb,DCratio,Callnum,RINfun,Varglobal,Fanout>
其中,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,遍历样本数据集,为目标指令生成数据传播依赖路径Path(Ii);
步骤4,根据步骤3生成的数据传播依赖路径,遍历样本数据集,为目标指令计算错误屏蔽因子MF(Ii):
Figure FDA0002978976150000011
MF(Ii)=FSDC(Iend(Ii))×(1-Pmask(Ii))
其中,Pmask(Ii)为指令Ii发生错误后在其传播路径Path(Ii)上被屏蔽的概率;IMASK表示错误屏蔽指令集合;DO为指令Ii的目的操作数,它的总位数为BITS;Pmask_b(bit,Ii)为指令Ii中的bit位发生错误后会被错误屏蔽指令屏蔽的概率,这个值由错误屏蔽指令的类型及操作数共同决定;Perror(bit)为该位发生瞬时故障的概率,FSDC(Iend(Ii))为根据指令Ii的数据依赖链末端指令Iend(Ii)是否对程序输出产生影响来衡量指令Ii的SDC脆弱性;对于数据依赖链的末端指令Iend,若该指令在程序结果输出指令Io的后向切片中,则FSDC(Iend)为1,若不在则为0;
步骤5,根据步骤1得到的程序指令样本的SDC脆弱性值,步骤3中的数据传播依赖路径,以及步骤4中的错误屏蔽因子,遍历样本数据集提取与数据传播依赖相关的指令的依赖特征向量Fdependent
Fdependent=<END,CMP,Crash,MF>
其中,END是一个包含五个字段的特征向量,END=<Estore,Ecaller,Eicmp,Efcmp,Eaddress>,分别表示是否被存储指令、函数调用指令、整型比较指令、浮点型比较指令、地址相关指令引用,若是则将相应位标记为1,否则标记为0;CMP是一个包含两个字段的特征向量,用来表征末端指令为比较指令时相关的指令特征,CMP=<Loopdepth,Pbranch>,Loopdepth为比较指令所在的循环深度,Pbranch为静态分支概率;Crash是一个包含两个字段的特征向量,用来表征与程序崩溃相关的特征;Crash=〈Bytedest,Addrnum>,Bytedest为目的操作位数,Addrnum为前向切片中与地址相关的指令数;MF为步骤5中计算出的错误屏蔽因子;
步骤6,根据步骤1得到的指令脆弱性值和步骤2以及步骤5得到的指令特征向量,训练基于支持向量回归的指令SDC脆弱性预测模型;
步骤7,使用步骤2和步骤5的方法提取待预测目标程序的指令特征向量,根据步骤6中训练得到的指令SDC脆弱性预测模型对目标程序指令脆弱性值进行预测,得到指令脆弱性值的预测结果。
2.根据权利要求1所述的基于支持向量回归的指令SDC脆弱性预测方法,其特征在于,步骤1中所述的指令SDC脆弱性值采用下式计算:
Figure FDA0002978976150000031
其中,集合Vstatic是程序的静态指令集合,Ii表示程序中的第i条静态指令,N为程序中所有静态指令的数目;集合Vdynamic是程序运行时的动态指令集合,di为指令Ii的动态执行次数;集合Idynamic(i)代表程序运行时静态指令Ii对应的所有动态执行指令,是Vdynamic的子集,
Figure FDA0002978976150000032
为指令Ii的第q条动态指令,PSDC(Ii)为指令Ii的SDC脆弱性值,
Figure FDA0002978976150000033
为动态指令
Figure FDA0002978976150000034
的SDC脆弱性值,通过故障注入实验结果计算得到。
3.根据权利要求1所述的基于支持向量回归的指令SDC脆弱性预测方法,其特征在于,步骤3中所述的数据传播依赖路径Path(Ii)采用下式表示:
Figure FDA0002978976150000035
其中,指令
Figure FDA0002978976150000036
是指令Ii的传播路径上的第k条指令;
Figure FDA0002978976150000037
表示指令
Figure FDA0002978976150000038
与指令
Figure FDA0002978976150000039
之间存在数据依赖,即指令
Figure FDA00029789761500000310
中目的寄存器中的数据会在
Figure FDA00029789761500000311
中的源寄存器中使用,Iend(Ii)是指令Ii的数据链末端指令。
4.根据权利要求1所述的基于支持向量回归的指令SDC脆弱性预测方法,其特征在于,步骤6中训练基于支持向量回归的指令SDC脆弱性预测模型时,给定指令样本数据的训练集T={(Fi,pi)},i=1,2,...,l,l为训练集中样本的数量,其中Fi=<Fi.inherent,Fi.dependent>为训练集中的第i个样本的特征向量;pi表示第i个指令样本的SDC脆弱性;根据支持向量回归机结构化风险最小化原则,建立求解的最优化问题,并进行推导,得到指令SDC脆弱性预测函数为:
Figure FDA00029789761500000312
其中,F表示待预测目标指令的特征向量;α和
Figure FDA00029789761500000313
为求解得到的Lagrange乘子;K(Fi,F)表示根据SVR理论引入的核函数;b为求解得到的偏置项。
CN201810117534.0A 2018-02-06 2018-02-06 一种基于支持向量回归的指令sdc脆弱性预测方法 Active CN108334903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810117534.0A CN108334903B (zh) 2018-02-06 2018-02-06 一种基于支持向量回归的指令sdc脆弱性预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810117534.0A CN108334903B (zh) 2018-02-06 2018-02-06 一种基于支持向量回归的指令sdc脆弱性预测方法

Publications (2)

Publication Number Publication Date
CN108334903A CN108334903A (zh) 2018-07-27
CN108334903B true CN108334903B (zh) 2021-06-11

Family

ID=62928422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810117534.0A Active CN108334903B (zh) 2018-02-06 2018-02-06 一种基于支持向量回归的指令sdc脆弱性预测方法

Country Status (1)

Country Link
CN (1) CN108334903B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159011B (zh) * 2019-12-09 2022-05-20 南京航空航天大学 基于深度随机森林的指令脆弱性预测方法及系统
CN112765609B (zh) * 2020-12-31 2022-06-07 南京航空航天大学 一种基于单类支持向量机的多位sdc脆弱指令识别方法
CN113610154B (zh) * 2021-08-06 2023-12-29 吉林大学 一种gpgpu程序sdc错误检测方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100500865C (zh) * 2006-04-21 2009-06-17 华东师范大学 一种通过同时识别多个表位来检测CatD蛋白的方法
CN102063406B (zh) * 2010-12-21 2012-07-25 清华大学 用于多核处理器的网络共享Cache及其目录控制方法
CN102819663B (zh) * 2012-07-17 2015-04-08 哈尔滨工程大学 一种基于优化的支持向量回归参数的船舶航迹预测方法
CN103984632B (zh) * 2014-05-29 2016-08-24 东南大学 一种基于错误传播分析的sdc脆弱指令识别方法

Also Published As

Publication number Publication date
CN108334903A (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
CN108491317B (zh) 一种基于指令脆弱性分析的sdc错误检测方法
Zhang et al. DAFT: Decoupled acyclic fault tolerance
US7747932B2 (en) Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
Nicolescu et al. Software detection mechanisms providing full coverage against single bit-flip faults
CN108334903B (zh) 一种基于支持向量回归的指令sdc脆弱性预测方法
US7069545B2 (en) Quantization and compression for computation reuse
Sullivan et al. Swapcodes: Error codes for hardware-software cooperative gpu pipeline error detection
Gu et al. Vulnerability analysis of instructions for SDC-causing error detection
Liu et al. Identifying SDC-causing Instructions based on Random forests algorithm
US9235461B2 (en) Method and apparatus for soft error mitigation in computers
He et al. Understanding and mitigating hardware failures in deep learning training systems
Dimitrov et al. Unified architectural support for soft-error protection or software bug detection
Vijayan et al. Online soft-error vulnerability estimation for memory arrays and logic cores
Deng et al. Computationally-redundant energy-efficient processing for y'all (CREEPY)
CN112765609B (zh) 一种基于单类支持向量机的多位sdc脆弱指令识别方法
Jiao et al. Exploiting component dependency for accurate and efficient soft error analysis via Probabilistic Graphical Models
Sadi et al. An efficient approach towards mitigating soft errors risks
Yan et al. Multi-Bit Data Flow Error Detection Method Based on SDC Vulnerability Analysis
Jian et al. SEU-tolerant restricted Boltzmann machine learning on DSP-based fault detection
Nezzari et al. Modelling processor reliability using LLVM compiler fault injection
Iqbal et al. Concurrent fault detection and location with minimal overhead in Ling parallel prefix adders with a scheme for fault tolerant Ling prefix adders
Aidemark et al. Path-based error coverage prediction
Ferreira et al. Compiler optimizations impact the reliability of the control-flow of radiation-hardened software
Liu et al. Instruction sdc vulnerability prediction using long short-term memory neural network
Rocha da Rosa et al. Extensive Soft Error Evaluation

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