CN108171016A - 一种线性汇编级的可配置容错方法、计算机、计算机程序 - Google Patents

一种线性汇编级的可配置容错方法、计算机、计算机程序 Download PDF

Info

Publication number
CN108171016A
CN108171016A CN201711241004.9A CN201711241004A CN108171016A CN 108171016 A CN108171016 A CN 108171016A CN 201711241004 A CN201711241004 A CN 201711241004A CN 108171016 A CN108171016 A CN 108171016A
Authority
CN
China
Prior art keywords
variable
instruction
updated
variables
configurable
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.)
Granted
Application number
CN201711241004.9A
Other languages
English (en)
Other versions
CN108171016B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201711241004.9A priority Critical patent/CN108171016B/zh
Publication of CN108171016A publication Critical patent/CN108171016A/zh
Application granted granted Critical
Publication of CN108171016B publication Critical patent/CN108171016B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明属于计算机软件加固技术领域,公开了一种线性汇编级的可配置容错方法、计算机、计算机程序,将程序代码划分为若干个基本块;所有变量重命名;计算每个变量的复算效率;计算每个变量的影响因子;对全部变量进行排序并选取部分进行可配置容错。本发明基于寄存器生命周期、进行加固所需添加的指令条数、影响的其他寄存器数量的情况,提出复算效率和影响因子两个评价指标,并提供计算方法与依据其进行可配置加固的方法,对寄存器的重要程度和加固难度进行了全面的考量,提出了更全面、性价比更高的可配置加固方法。

Description

一种线性汇编级的可配置容错方法、计算机、计算机程序
技术领域
本发明属于计算机软件加固技术领域,尤其涉及一种线性汇编级的可配置容错方法、计算机、计算机程序。
背景技术
在软加固技术的应用中,在不同应用、不同场景下对于加固开销以及应用的可靠性可能有不同的要求。程序中对可靠性有关键影响的代码和数据一般只是一小部分,因此在开销受限的情况下,可以优先保护这部分的代码和数据。现有对于可配置加固技术的研究,包括使用指令鲁棒性分析进行部分指令加固的SIRFT技术和使用寄存器优先级分析进行部分寄存器加固的S-SWIFT-R。SIRFT技术通过对指令对错误的容忍能力即指令的鲁棒性进行分析,通过选择性保护鲁棒性较差的指令,在尽量保证可靠性的前提下减少加固时间开销,S-SWIFT-R基于SWIFT-R,通过计算寄存器的泛化生命期来选择性的对某些寄存器进行保护。两种可配置加固方法存在:(1)在SIRFT技术中,是以指令的鲁棒性作为评价标准进行可配置加固,这样的评价方法难以反应程序的数据流和控制流特征,单纯的保护某几条指令而不保护它们的数据来源并不会产生良好效果;该方法只能保证受保护指令不会受到发生在指令执行时的软错误影响,如果软错误发生在其前置指令执行时,依然会导致受保护指令出错。
(2)在S-SWIFT-R中,选取了寄存器的重要性作为评价标准,通过根据不同可靠性要求调整需要加固的寄存器范围来实现可配置加固,以寄存器作为可配置加固的加固单位反映了一部分的程序数据流控制流特征,但只以生命周期作为评价标准并不全面,无法切实反映寄存器的重要程度与对其进行加固的实际成本。以生命周期作为重要性评价标准无法完全反映实际的重要性,从而在资源有限时会在保护中保护一些实际上不那么重要的寄存器,而使一些更重要的寄存器失去保护。
SIRFT技术中以指令的鲁棒性作为评价标准进行可配置加固的加固单位是一条或几条指令,而一条指令的执行结果是否会发生错误,不止取决于该指令执行中是否发生了错误,也取决于与作为该指令数据来源的前置指令是否会发生错误,只对一条指令进行保护而不保护作为其前置指令,当受保护指令的前置指令发生错误时,受保护指令也会发生错误;S-SWIFT-R与本发明一样以寄存器(S-SWIFT-R是在汇编语言级,故使用寄存器作为单位,本发明在xi级,故使用变量作为单位,原理上类似)的重要性作为评价标准,但是在对寄存器的重要性进行评价时只使用了生命周期作为评价标准,生命周期指一个寄存器从赋值到不再使用该寄存器的时间,实际上,寄存器的生命周期长并不一定代表寄存器的重要性高,有些寄存器虽然生命周期很长,但使用次数并不多,单纯使用生命周期作为重要性评价标准不能完全反映实际重要性。
综上所述,现有技术存在的问题是:现有的可配置加固方法存在:难以反应程序的数据流和控制流特征,单纯的保护某几条指令而不保护它们的数据来源并不会产生良好效果;只以生命周期作为评价标准并不全面,无法切实反映寄存器的重要程度与对其进行加固的实际成本。
发明内容
针对现有技术存在的问题,本发明提供了一种线性汇编级的可配置容错方法、计算机、计算机程序。现有技术即SIRFT和S-SWIFT-R。本方案相较于现有技术:(1)考虑了数据流和控制流的错误传播原理,并体现在变量的影响因子计算过程中;(2)将单个基本块中的变量作为加固的最小单位,使得可配置的粒度更细。
本发明是这样实现的,本发明所提出的变量影响因子计算方法综合了本领域现有的一些效果较好的计算思路,并在其基础上进行改进提出。
一种线性汇编级的可配置容错方法,所述线性汇编级的可配置容错方法包括:
步骤一,将程序代码划分为若干个基本块;
步骤二,所有变量重命名,位于不同的基本块内的同名变量重命名进行区分以增加可配置容错的粒度;对于所有的变量,设其原名称为var,所处的基本块编号为b,则将其名称更新为var_b;
步骤三,计算每个变量的复算效率;
步骤四,计算每个变量的影响因子,若变量b是由变量a计算得到的,则变量a影响变量b;若变量a是进入变量b相关计算的基本块的进入条件,则变量a影响变量b;若变量a影响变量b,而变量b影响变量c,则变量a也影响变量c;
步骤五,对全部变量进行排序并选取部分进行可配置容错。
进一步,所述步骤一包括:
(1)初始化,令i=1,j=1,b=1;
(2)判断第i条指令是否为存储或者跳转指令,若是则转(3),否则转(4);
(3)标记第b个基本块开始于第j条指令,结束于第i条指令;将i的值更新为i+1,将j的值更新为i,将b的值更新为b+1,转(2);
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S102,否则转(2)。
进一步,所述步骤三包括:
(1)初始化,令所有变量的生命期及复算次数为0,i=1;
(2)对于第i条指令中进行了读出的每一个变量var,设变量var的生命期为p,变量var的上一次写入位置为w,则将p更新为p+i-w,更新w为i;
(3)对于第i条指令中进行了写入的每一个变量var,设变量var的复算次数为d,变量var的上一次写入位置为w,则将d更新为d+1,更新w为i;
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S104,否则转(2)。
进一步,所述步骤四包括:
(1)构建变量影响关系图,变量影响关系图是指用一张图G(V,E)来表示变量之间的传递关系,点集合V是所有变量的集合,有向边集合E是所有影响关系的集合;
1)初始化,令i=1;
2)若第i条指令是运算指令或读内存指令,则对于所有源变量var1至varn,在图G中添加其到目的变量var0的一条有向边;
3)若第i条指令是跳转指令,则对于所有跳转条件中的变量cond1至condn,建立其至跳转的目的基本块中的所有被写入的变量var1至varn的一条有向边;
4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转(2),否则转2);
(2)根据变量影响关系图,计算所有变量的影响因子;对于某个变量a,所有在图G中通过若干条边可达的变量b均是受变量a影响的;设点集V为(V1,V2,…Vn);
1)初始化,令i=1;
2)对点Vi进行深度优先搜索,对所有搜索到的不重复的点进行计数,将计数和作为点Vi所对应的变量的影响因子;
3)将i的值更新为i+1,判断i是否已大于V的元素个数,若是则转步骤五,否则转2)。
进一步,所述步骤五包括:
(1)对全部变量按照影响因子从大致小排序,对于影响因子相同的变量按照复算效率从大致小排序;排序后得到的变量序列中,靠前的变量具有更强的容错优先级;
(2)根据容错开销或容错率条件,在变量序列中从前往后选取变量进行容错保护。
本发明的另一目的在于提供一种应用所述线性汇编级的可配置容错方法的计算机程序。
本发明的另一目的在于提供一种搭载有所述计算机程序的计算机。
本发明的优点及积极效果为:基于寄存器生命周期、进行加固所需添加的指令条数、影响的其他寄存器数量的情况,提出复算效率和影响因子两个评价指标,并提供计算方法与依据其进行可配置加固的方法,对寄存器的重要程度和加固难度进行了全面的考量,提出了更全面、性价比更高的可配置加固方法。
本发明对全部变量按照影响因子从大致小排序,对于影响因子相同的变量按照复算效率从大致小排序。排序后得到的变量序列中,靠前的变量具有更强的容错优先级;
本发明根据容错开销或容错率条件,在变量序列中从前往后选取变量进行了容错保护。
附图说明
图1是本发明实施例提供的线性汇编级的可配置容错方法流程图。
图2是本发明实施例提供的变量v的一个生命周期是指从一次定值到下一次定值之间的区间图。
图3是本发明实施例提供的基于DSS的故障注入实验流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在软加固技术的应用中,在不同应用、不同场景下对于加固开销以及应用的可靠性可能有不同的要求。程序中对可靠性有关键影响的代码和数据一般只是一小部分,因此在开销受限的情况下,可以优先保护这部分的代码和数据。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的线性汇编级的可配置容错方法包括以下步骤:
S101:将程序代码划分为若干个基本块,基本块是指不包含跳转指令或存储指令的程序段;
S102:将所有变量重命名,位于不同的基本块内的同名变量重命名进行区分以增加可配置容错的粒度;对于所有的变量,设其原名称为var,所处的基本块编号为b,则将其名称更新为var_b;
S103:计算每个变量的复算效率,复算效率是指变量的生命期与复算次数的比值;变量的生命期指的是变量被写入到被读出之间的过程;
S104:计算每个变量的影响因子,若变量b是由变量a计算得到的,则变量a影响变量b;若变量a是进入变量b相关计算的基本块的进入条件,则变量a影响变量b;若变量a影响变量b,而变量b影响变量c,则变量a也影响变量c;
S105:对全部变量进行排序并选取部分进行可配置容错。
在本发明的优选实施例中:步骤S101包括:
(1)初始化,令i=1,j=1,b=1;
(2)判断第i条指令是否为存储或者跳转指令,若是则转(3),否则转(4);
(3)标记第b个基本块开始于第j条指令,结束于第i条指令。将i的值更新为i+1,将j的值更新为i,将b的值更新为b+1,转(2);
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S102,否则转(2)。
在本发明的优选实施例中:步骤S103包括:复算效率是指变量的生命期与复算次数的比值。变量的生命期指的是变量被写入到被读出之间的过程,在这个过程中若变量发生错误则会对计算结果产生影响,反之变量在生命期外发生错误不会对程序结果产生影响。变量的复算次数指的是保护该变量需要添加的复算指令数目,由于变量每次被写入都需要进行复算,因此变量的复算次数即该变量被写入的次数;
其中,变量声明期需要特殊说明一下:
变量生命期(LiveTime):在程序运行过程中,一个变量v可能被多次定值或引用。如图2所示,变量v的一个生命周期是指从一次定值到下一次定值之间的区间。
变量活跃区间(ActiveSpan):变量v从定值到下一次定值之前的最后一次引用之间的区间。
变量死亡区间(DeadSpan):变量v从最后一次引用到下一次定值之间的区间。如图2所示。
具体包括:
(1)初始化,令所有变量的生命期及复算次数为0,i=1;
(2)对于第i条指令中进行了读出的每一个变量var,设变量var的生命期为p,变量var的上一次写入位置为w,则将p更新为p+i-w,更新w为i;
(3)对于第i条指令中进行了写入的每一个变量var,设变量var的复算次数为d,变量var的上一次写入位置为w,则将d更新为d+1,更新w为i;
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S104,否则转(2)。
在本发明的优选实施例中:步骤S104包括:影响因子是指某个变量能够影响到的变量数量。具体地,若变量b是由变量a计算得到的,则变量a影响变量b;若变量a是进入变量b相关计算的基本块的进入条件,则变量a影响变量b;若变量a影响变量b,而变量b影响变量c,则变量a也影响变量c;
变量影响因子也称为变量依赖影响因子,由变量间的相互依赖关系决定。
程序中的变量之间可能由于相互依赖而产生联系,如果被依赖的变量发生错误,很可能会沿着依赖关系发生错误传播,导致一系列的变量发生错误,因此,变量间的数据依赖关系也是变量关键性分析的关键因素之一。对变量的依赖关系的相关定义如下:
直接后继变量(Successor)、直接前驱变量(Precursor):如果变量vi的值被某个含变量vj的语句所更新,则变量vi就是变量vj的后继变量,记为vi∈Successor(vj),同时有vj∈Precursor(vi)。
后代变量(Descendant):包括直接后继与间接后继,定义如下:
依赖影响因子M:变量vj对其后代变量vi的影响因子记为M(vi,vj)。
具体包括:
(1)构建变量影响关系图。变量影响关系图是指用一张图G(V,E)来表示变量之间的传递关系,其中,点集合V是所有变量的集合,有向边集合E是所有影响关系的集合。
1)初始化,令i=1;
2)若第i条指令是运算指令或读内存指令,则对于所有源变量var1至varn,在图G中添加其到目的变量var0的一条有向边;
3)若第i条指令是跳转指令,则对于所有跳转条件中的变量cond1至condn,建立其至跳转的目的基本块中的所有被写入的变量var1至varn的一条有向边;
4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转(2),否则转2);
(2)根据变量影响关系图,计算所有变量的影响因子。对于某个变量a,所有在图G中通过若干条边可达的变量b均是受变量a影响的。设点集V为(V1,V2,…Vn);
1)初始化,令i=1;
2)对点Vi进行深度优先搜索,对所有搜索到的不重复的点进行计数,将计数和作为点Vi所对应的变量的影响因子;
3)将i的值更新为i+1,判断i是否已大于V的元素个数,若是则转S105,否则转2);
在本发明的优选实施例中:步骤S105包括:
(1)对全部变量按照影响因子从大致小排序,对于影响因子相同的变量按照复算效率从大致小排序。排序后得到的变量序列中,靠前的变量具有更强的容错优先级;
(2)根据容错开销或容错率条件,在变量序列中从前往后选取变量进行容错保护。
下面结合实验对本发明的应用效果作详细的描述.
故障注入一种通过人为引入故障,测试目标系统可靠性的仿真技术,通过故障注入,能够增加系统失效频率,快速测试系统的可靠性。调试脚本服务(Debug ScriptServer,DSS)是德州仪器公司的集成开发环境CCS(Code Composer Studio)中提供的用于调试和自动化处理的脚本引擎接口。DSS拥有大量开放的Java API,运行在CCS提供的模拟器环境中,能够通过Jave、JavaScript、Python等语言进行包括运行、停止、恢复系统状态、源码级和汇编级单步执行、读写内存、读写寄存器等操作。基于DSS的故障注入工具能够运行C6678型号DSP的模拟器,并在程序运行时选择时机进行故障注入,并对测试结果进行记录,以便于接下来的分析,故障注入的流程如图3所示。
基于DSS的故障注入工具能够模拟SEU故障模型中的故障类型,即程序每次执行过程只发生一次单粒子翻转错误,满足算法测试的需要。进行实验的条件如下:
1.实验选取的测试程序为JPEG2000应用中的嵌入式块编码(EBC)部分和小波变换部分,对其中的线性汇编模块进行容错转换,并将转换后的程序与其他高级语言模块一起进行编译为JPEG2000加固程序。
2.对数据流算法选择的对比算法为EDDI和SWIFT-R,故障注入部位为通用寄存器。
3.对控制流算法选择的对比算法为CFCSS和ACCE,故障注入部位为控制寄存器。
4.每次实验,循环运行未加固程序或对应算法加固后的程序,程序输入为8MB的样例图像,并在每次执行时EBC和小波模块执行的过程中注入单粒子翻转故障。
根据程序被注入故障的执行状态,可将结果分为5类:
结果正确(Correct):注入的故障没有影响到程序的正确性,程序在规定时间完成且结果正确。
结果错误(Incorrect):注入的故障正常退出,但得到了错误的结果。
异常终止(Exception):注入的故障被运行环境检测出,程序异常终止,例如非法指令。
运行超时(Timeout):注入的故障导致程序陷入死循环,程序不能再规定时间结束。
算法检出(Detected):注入的故障被容错算法检出。
表1给出了故障注入实验的结果。其中第2~6列分别表示的发生次数,第7、8列分别表示失效率(FailRate)和可靠性(Reliability)。每个目标程序中,“O”代表原始程序,“FT”代表加固程序。在程序对故障的5种反应中,Correct不影响输出结果,Exception、Timeout和Detected可以被用户感知,将它们定义为“可靠的”,而Incorrect不能被用户感知,定义为失效。
表1故障注入实验结果
从实验结果可以看出,注入故障后,加固后的程序失效率从11.4%和25.6%下降至1.2%和2.2%,得到了明显的改善,加固后程序的可靠性达到了98.8%和97.8%,由此可见,本发明的加固方法能够有效提高程序的可靠性。本发明由于进行了可配置加固,因此,时空开销都比较小。我们根据加固前和加固后的程序执行时钟周期数,进行了时间和空间开销计算,并与其它典型的加固方法进行了比较,如下表所示。
表2不同算法间的开销比较
表中给出了本发明与其它典型加固方法的开销比较,其中,ThOR[Rebaudengo M,Reorda M S,Violante M,et al.A source-to-source compiler for generatingdependable software[C]//Source Code Analysis and Manipulation,2001.Proceedings.First IEEE International Workshop on.IEEE,2001:33-42]是在源代码级实现的,EDDI+CFCSS[Oh N,Shirvani P P,McCluskey E J.Error detection byduplicated instructions in super-scalar processors[J].IEEE Transactions onReliability,2002,51(1):63-75][N.Oh,P.Mitra,E.J.McCluskey.ED4I:Error Detectionby Diverse Data and Duplicated Instructions.IEEE Transactions onComputer.2002,51(2):180–199]是在指令级实现的。可以看出,本发明的时空开销均小于两种经典算法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种线性汇编级的可配置容错方法,其特征在于,所述线性汇编级的可配置容错方法包括:
步骤一,将程序代码划分为若干个基本块;
步骤二,所有变量重命名,位于不同的基本块内的同名变量重命名进行区分以增加可配置容错的粒度;对于所有的变量,设其原名称为var,所处的基本块编号为b,则将其名称更新为var_b;
步骤三,计算每个变量的复算效率;
步骤四,计算每个变量的影响因子,若变量b是由变量a计算得到的,则变量a影响变量b;若变量a是进入变量b相关计算的基本块的进入条件,则变量a影响变量b;若变量a影响变量b,而变量b影响变量c,则变量a也影响变量c;
步骤五,对全部变量进行排序并选取部分进行可配置容错。
2.如权利要求1所述的线性汇编级的可配置容错方法,其特征在于,所述步骤一包括:
(1)初始化,令i=1,j=1,b=1;
(2)判断第i条指令是否为存储或者跳转指令,若是则转(3),否则转(4);
(3)标记第b个基本块开始于第j条指令,结束于第i条指令;将i的值更新为i+1,将j的值更新为i,将b的值更新为b+1,转(2);
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S102,否则转(2)。
3.如权利要求1所述的线性汇编级的可配置容错方法,其特征在于,所述步骤三包括:
(1)初始化,令所有变量的生命期及复算次数为0,i=1;
(2)对于第i条指令中进行了读出的每一个变量var,设变量var的生命期为p,变量var的上一次写入位置为w,则将p更新为p+i-w,更新w为i;
(3)对于第i条指令中进行了写入的每一个变量var,设变量var的复算次数为d,变量var的上一次写入位置为w,则将d更新为d+1,更新w为i;
(4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转S104,否则转(2)。
4.如权利要求1所述的线性汇编级的可配置容错方法,其特征在于,所述步骤四包括:
(1)构建变量影响关系图,变量影响关系图是指用一张图G(V,E)来表示变量之间的传递关系,点集合V是所有变量的集合,有向边集合E是所有影响关系的集合;
1)初始化,令i=1;
2)若第i条指令是运算指令或读内存指令,则对于所有源变量var1至varn,在图G中添加其到目的变量var0的一条有向边;
3)若第i条指令是跳转指令,则对于所有跳转条件中的变量cond1至condn,建立其至跳转的目的基本块中的所有被写入的变量var1至varn的一条有向边;
4)将i的值更新为i+1,判断i是否已大于程序的总指令数,若是则转(2),否则转2);
(2)根据变量影响关系图,计算所有变量的影响因子;对于某个变量a,所有在图G中通过若干条边可达的变量b均是受变量a影响的;设点集V为(V1,V2,…Vn);
1)初始化,令i=1;
2)对点Vi进行深度优先搜索,对所有搜索到的不重复的点进行计数,将计数和作为点Vi所对应的变量的影响因子;
3)将i的值更新为i+1,判断i是否已大于V的元素个数,若是则转步骤五,否则转2)。
5.如权利要求1所述的线性汇编级的可配置容错方法,其特征在于,所述步骤五包括:
(1)对全部变量按照影响因子从大致小排序,对于影响因子相同的变量按照复算效率从大致小排序;排序后得到的变量序列中,靠前的变量具有更强的容错优先级;
(2)根据容错开销或容错率条件,在变量序列中从前往后选取变量进行容错保护。
6.一种应用权利要求1~5任意一项所述线性汇编级的可配置容错方法的计算机程序。
7.一种搭载有权利要求6所述计算机程序的计算机。
CN201711241004.9A 2017-11-30 2017-11-30 一种线性汇编级的可配置容错方法、计算机、计算机程序 Expired - Fee Related CN108171016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711241004.9A CN108171016B (zh) 2017-11-30 2017-11-30 一种线性汇编级的可配置容错方法、计算机、计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711241004.9A CN108171016B (zh) 2017-11-30 2017-11-30 一种线性汇编级的可配置容错方法、计算机、计算机程序

Publications (2)

Publication Number Publication Date
CN108171016A true CN108171016A (zh) 2018-06-15
CN108171016B CN108171016B (zh) 2021-04-09

Family

ID=62524823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711241004.9A Expired - Fee Related CN108171016B (zh) 2017-11-30 2017-11-30 一种线性汇编级的可配置容错方法、计算机、计算机程序

Country Status (1)

Country Link
CN (1) CN108171016B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110126049A1 (en) * 2009-11-24 2011-05-26 Honeywell International Inc. Architecture and method for hardware-assisted processor checkpointing and rollback
CN103646194A (zh) * 2013-11-29 2014-03-19 北京广利核系统工程有限公司 一种基于形式化验证的同步数据流程序的可信排序方法
CN104573427A (zh) * 2015-01-06 2015-04-29 北京邮电大学 一种可执行应用的混淆方法和装置
CN106021040A (zh) * 2016-05-04 2016-10-12 中国人民解放军国防科学技术大学 一种基于线形汇编指令差异性变换的dsp软错误检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110126049A1 (en) * 2009-11-24 2011-05-26 Honeywell International Inc. Architecture and method for hardware-assisted processor checkpointing and rollback
CN103646194A (zh) * 2013-11-29 2014-03-19 北京广利核系统工程有限公司 一种基于形式化验证的同步数据流程序的可信排序方法
CN104573427A (zh) * 2015-01-06 2015-04-29 北京邮电大学 一种可执行应用的混淆方法和装置
CN106021040A (zh) * 2016-05-04 2016-10-12 中国人民解放军国防科学技术大学 一种基于线形汇编指令差异性变换的dsp软错误检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
曲越: "关于容错加固计算机软硬件实现的综述", 《全国抗恶劣环境计算机第十九届学术年会论文集》 *
李剑明等: "程序控制流检测算法优化", 《计算机科学》 *
盖璐璐等: "一种低开销的可配置容错技术", 《第十九届计算机工程与工艺年会暨第五届微处理器技术论坛论文集》 *

Also Published As

Publication number Publication date
CN108171016B (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
Huang et al. Clap: Recording local executions to reproduce concurrency failures
US8769499B2 (en) Universal causality graphs for bug detection in concurrent programs
Lu et al. SDCTune: A model for predicting the SDC proneness of an application for configurable protection
CN106021040B (zh) 一种基于线形汇编指令差异性变换的dsp软错误检测方法
Pattabiraman et al. Application-based metrics for strategic placement of detectors
Donaldson et al. Automatic analysis of scratch-pad memory code for heterogeneous multicore processors
US8065565B2 (en) Statistical debugging using paths and adaptive profiling
CN105260312B (zh) 一种多核实时系统应用数据竞争错误的调试方法
Bergaoui et al. A new critical variable analysis in processor-based systems
Arora et al. A systematic review of approaches for testing concurrent programs
Mammo et al. BugMD: Automatic mismatch diagnosis for bug triaging
Joshi et al. Aloe: verifying reliability of approximate programs in the presence of recovery mechanisms
US7555418B1 (en) Procedure summaries for multithreaded software
Kasap et al. Micro-Architectural features as soft-error markers in embedded safety-critical systems: preliminary study
Gulzar et al. Optdebug: Fault-inducing operation isolation for dataflow applications
CN108171016A (zh) 一种线性汇编级的可配置容错方法、计算机、计算机程序
Sadi et al. Component criticality analysis to minimizing soft errors risk
Cong et al. Impact of loop transformations on software reliability
Aidemark et al. Path-based error coverage prediction
Sun et al. An Interleaving Guided Metamorphic Testing Approach for Concurrent Programs
Bhargava Software reliability in real-time systems
Fang Approaches for building error resilient applications
Yakhchi et al. Silent data corruption estimation and mitigation without fault injection
Tan et al. Detecting Incorrect Behavior of Cloud Databases as an Outsider
Qin et al. Predicting aging-related bugs using network analysis on aging-related dependency networks

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210409

Termination date: 20211130

CF01 Termination of patent right due to non-payment of annual fee