CN111274058A - 一种轻量级冗余断言筛选方法 - Google Patents

一种轻量级冗余断言筛选方法 Download PDF

Info

Publication number
CN111274058A
CN111274058A CN202010067792.XA CN202010067792A CN111274058A CN 111274058 A CN111274058 A CN 111274058A CN 202010067792 A CN202010067792 A CN 202010067792A CN 111274058 A CN111274058 A CN 111274058A
Authority
CN
China
Prior art keywords
assertion
assertions
error
program
detection
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
CN202010067792.XA
Other languages
English (en)
Other versions
CN111274058B (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN202010067792.XA priority Critical patent/CN111274058B/zh
Publication of CN111274058A publication Critical patent/CN111274058A/zh
Application granted granted Critical
Publication of CN111274058B publication Critical patent/CN111274058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error 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/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种轻量级冗余断言筛选方法,该方法基于断言检错度和良性后果检出率衡量断言重要性,根据断言重要性筛选同一脆弱点处的断言,筛除重要性低的断言。基于断言间的冗余度筛选不同脆弱点间的断言,筛除冗余断言。本发明降低了断言对SDC(Silent Data Corruption)错误的检测代价,提高了检测效率。此外,本发明在降低断言的良性后果错误检出率,提升检错度方面也有显著效果。

Description

一种轻量级冗余断言筛选方法
技术领域
本发明涉及计算机领域的软错误检测,具体涉及一种轻量级冗余断言筛选方法。
背景技术
空间辐射环境中高能带电粒子或者芯片封装材料中的杂质释放出的alpha粒子撞击设备的逻辑单元导致的比特位翻转现象称为单粒子翻转。单粒子翻转造成的瞬时性故障称为软错误。近年来,随着处理器工艺的发展,处理器的尺寸越来越小,电压越来越小,时钟频率越来越高,使芯片发生单粒子翻转的条件阈值越来越低,增加了单粒子翻转的发生率,导致软错误率急剧增长。
软错误检测是软错误防护的首要阶段。程序级软错误检测方法通常基于程序正常运行时的数值特征或逻辑特征生成检测器。基于数值特征的方法生成变量的合法区间,将合法区间转化为断言,作为检测器。这类方法的形式单一,检测代价低,但是检出率也低。基于机器学习的软错误检测方法,训练表示程序逻辑特征的机器学习模型,将训练的模型转化为检测器。这类方法通常针对特定种类的应用。基于应用逻辑不变量的方法,提取表示程序逻辑特征的应用逻辑不变量,将不变量转化为断言,作为检测器。一般情况下,检测器越多,检出率越高,但检测代价也越高。如何用较低的检测代价检测软错误,实现软错误的轻量级检测十分重要。
程序结果通常由多个输出组成,不同输出表示的意义不同时,它们发生错误后,对程序的影响程度也不同。因此,需要重点检测发生在“用户关心的对程序结果影响较大的变量”中的错误。将检测器检测到的错误对程序结果的影响程度称为检测器的“检错度”。检测器检测到的错误对程序结果的影响越大,检测器的检错度越高。为程序部署检测器时,将检测器的“检错度”考虑在内,部署检错度较高的断言,以便优先检测对程序结果影响较大的错误具有重要意义。
软错误的结果类型可分为良性后果(benign)、崩溃(crash)、挂起(hang)和SDC(SilentDataCorruption)。良性后果指错误被屏蔽,程序输出正确结果。崩溃指软硬件报出异常,程序提前结束。挂起指程序还在运行,没有结束,但是系统资源耗尽。良性后果对程序没有影响。崩溃和挂起为显式错误,可通过简单的检测系统检测这两种错误。发生SDC时,程序在表面上与正常运行时的形态没有区别,只是结果错误。由于多数行业不会怀疑结果的正确性,因此,一旦发生SDC,后果极其严重。SDC被认为是最隐蔽和最严重的错误类型。
基于断言的源码级SDC检测方法在源码级插入断言检测SDC错误。这类方法通常在发生SDC概率较高的位置,即脆弱点处,插入不变量断言检测SDC错误。由于同一脆弱点处满足的不变关系有多种,因此,同一脆弱点处会产生多条不变量断言。另外,不同脆弱点间也可能存在相同或相似断言,这都增加了检测代价。为了降低检测代价,提升SDC错误的检测效率,本发明提出了一种轻量级冗余断言筛选方法。此外,本发明方法还将降低加固程序的良性后果错误的检出率,并重点检测对程序结果影响较大的SDC错误。
发明内容
基于断言的源码级SDC检测方法在检测SDC错误时,同一脆弱点可能存在多条断言,不同脆弱点间也可能存在冗余断言,这增加了检测代价。本发明的目的是提出一种轻量级冗余断言筛选方法,降低检测代价,提升SDC错误的检测效率。此外,还将降低加固程序的良性后果检出率,并重点检测对程序结果影响较大的SDC错误。
为了实现上述发明目的,本发明采用的技术方案为一种轻量级冗余断言筛选方法,其特征在于,包括以下步骤:
第一步:加载使用断言加固的程序,作为本方法的输入;
第二步:筛选同一脆弱点处的断言;具体如下:
基于断言的检错度和良性后果检出率筛选加固程序中同一脆弱点处的断言。断言的检错度指断言检测到的错误对程序结果的影响程度,断言的检错度越大,越能检测到严重的错误。断言的良性后果检出率指断言对良性后果这种错误的检测概率。由于良性后果错误对程度没有影响,因此,良性后果检出率越高,引起的不必要的错误恢复开销越高。断言的检错度越大,良性后果检出率越低,断言越重要。
(a)计算断言的检错度:假设程序运行过程中,最多只发生一次软错误,程序的输出变量集o={o1,o2,…,oj,…,oc},输出变量oj对程序输出结果的影响度为w(oj)。计算ai的检错度时,首先,计算ai中的每个变量错误时对程序结果的影响程度,然后,取平均值作为ai的检错度。假设ai含有变量
Figure BDA0002376471850000021
计算
Figure BDA0002376471850000022
对程序结果的影响程度时,首先,获取
Figure BDA0002376471850000023
的前向切片的所有变量集
Figure BDA0002376471850000024
Figure BDA0002376471850000025
所影响的变量集。然后,将
Figure BDA0002376471850000026
中的所有属于o的变量的影响度的和,作为
Figure BDA0002376471850000027
对程序结果的影响程度,如公式(2)所示。其中
Figure BDA0002376471850000031
表示
Figure BDA0002376471850000032
的大小。
Figure BDA0002376471850000033
表示
Figure BDA0002376471850000034
中的第k个元素是否等于oj,相等时取1,否则取0。最后,断言ai的检错度可表示为公式(3)。
Figure BDA0002376471850000035
Figure BDA0002376471850000036
(b)计算断言的良性后果检出率:首先,获取ai中的变量对应的指令的后向切片指令集合bs_ins(ai),即位于ai语句之前且对ai中的变量有影响的指令集合。然后,对bs_ins(ai)中的指令注入故障。统计故障注入结果,将ai失效且结果为良性后果的故障注入次数记为n1,将结果为良性后果的故障注入次数记为n2。这样,ai的良性后果检出率可用公式(4)表示。
Figure BDA0002376471850000037
(c)计算断言的重要性:断言ai的重要性可用公式(1)表示。从公式(1)可以看出,当断言的检错度较小,良性后果检出率较大时,断言的重要性较小,这时可优先删除该断言。当断言的检错度较大,良性后果检出率较小时,断言的重要性较大,这时可优先保留该断言。
得到每个脆弱点处的断言的重要性后,在每个脆弱点处筛除重要性较低的断言,留下重要性最大的断言。
第三步:筛选不同脆弱点处的断言,具体如下:
对同一脆弱点处的断言筛选后,每个脆弱点处只有一条断言。接下来,将基于断言间的冗余度、删除断言时的收益和损失筛选不同脆弱点处的断言。首先,以函数为单位,按照断言的执行顺序对断言排序。然后,把相邻两个脆弱点处的两条断言看作一个断言对,将程序中的断言划分为两两不相交的断言对。例如,假设程序有s个脆弱点p1、p2、….、ps,这些脆弱点处的断言分别为,a1、a2、….、as。根据相邻关系和执行顺序,这些断言被划分为断言对(a1,a2)、(a3,a4)、…、(ai,ai+1)、...、(as-1,as)。之后,我们分析每个断言对,判断前面断言相对于后面断言的冗余度和可删性,决定是否删除前面断言。
第一个分析过程为冗余性判定:分析断言对中前面断言相对于后面断言的冗余度,即前面断言检测到的SDC错误能被后面断言检测到的概率。当冗余度小于一定程度后,将前面断言判定为非冗余断言。当冗余度大于一定程度后,将前面断言判定为冗余断言。第二个分析过程为可删性判定:非冗余断言为不可删断言。冗余断言的可删性需要根据删除断言时的收益和损失确定。若收益大于损失,则冗余断言可删,这时可删除冗余断言。否则,冗余断言不可删,这时将保留冗余断言。下面以断言对(ai,ai+1)为例,详细介绍这两个判定过程。
(a)冗余性判定:假设断言ai含有变量
Figure BDA0002376471850000041
首先,计算当
Figure BDA0002376471850000042
发生错误且结果为SDC时,ai不满足,ai+1也不满足的概率
Figure BDA0002376471850000043
然后,取ai中所有变量的这一概率的平均值作为ai相对于ai+1的冗余度。这样,ai相对于ai+1的冗余度可表示为公式(5)。计算
Figure BDA0002376471850000044
时,首先生成
Figure BDA0002376471850000045
对应的指令的后向切片指令集合
Figure BDA0002376471850000046
即位于ai之前且对变量
Figure BDA0002376471850000047
有影响的指令集合。然后,选择
Figure BDA0002376471850000048
中的指令注入故障。统计故障注入结果,将结果为SDC且ai不满足的故障注入次数记为t1(ai),结果为SDC且ai和ai+1都不满足的故障注入次数记为t2(ai,ai+1)。这样,
Figure BDA0002376471850000049
可表示为公式(6)。
Figure BDA00023764718500000410
Figure BDA00023764718500000411
根据冗余度的定义可知,r(ai,ai+1)越大,ai检测到的SDC错误能被ai+1检测到的概率越大。特别地,当r(ai,ai+1)=1时,ai检测到的SDC错误都能被ai+1检测到。设置阈值μ(例如,0.9),当r(ai,ai+1)<μ时,认为ai为非冗余断言。当r(ai,ai+1)≥μ时,认为断言ai为冗余断言,之后,再进一步判断ai的可删性。
(b)可删性判定:若ai为非冗余断言,则ai不可删。若ai为冗余断言,则进一步计算删除ai时的收益和损失,确定ai的可删性。删除ai时,原本由ai检测的r%的SDC错误将被延迟到ai+1处检测,这产生了延迟检测代价。原本由ai检测的(1-r)%的SDC错误将不会被ai+1检测到,这影响了程序的SDC检出率。由于(1-r)%的值很小,并且,虽然ai+1没有检测到(1-r)%的SDC错误。但是,这些SDC错误仍有可能被其后的其它断言检测到。因此,我们粗略地认为删除ai只会延迟检测r%的SDC错误。延迟检测会延迟报错。由于检测到错误后需要返回到程序上一个正确状态处继续执行,因此,延迟报错会使ai到ai+1之间的程序段多执行一次。用相对于保留ai,删除ai时检测到SDC错误多执行的指令数称为延迟检测代价,记为D(ai),可用公式(7)所示。其中,n(ai,ai+1)表示ai和ai+1间的总指令数,dn(insk)表示ai和ai+1间的第k条指令的执行次数,sdc_rto(ai)表示ai的SDC检出率。计算sdc_rto(ai)时,从ai中的变量对应的指令的后向切片指令集合bs_ins(ai)中选出部分指令,注入故障。统计故障注入结果,将结果为SDC的总次数记为t(ai),结果为SDC且ai不满足的次数记为t3(ai),这样,sdc_rto(ai)可表示为公式(8)。
Figure BDA0002376471850000051
Figure BDA0002376471850000052
删除ai时,降低了断言检测代价,即少执行了断言ai对应的指令。将降低的断言检测代价记为L(ai),用公式(9)所示。其中,num(ai)为断言ai对应的指令数量,t(insl)为断言ai的第l条指令的执行次数。
Figure BDA0002376471850000053
通过以上分析,删除ai时的收益可用公式(10)所示。当G(ai)大于0时,表明删除ai时,降低的断言检测代价大于产生的延迟检测代价,此时,ai为冗余可删断言,可将ai删除。当G(ai)小于0时,表明删除ai时,降低的断言检测代价小于产生的延迟检测代价,此时应保留ai。另外,若断言本身的SDC检出率很低,断言也将被删除。
G(ai)=L(ai)-D(ai)(10)
通过以上步骤,完成对断言加固程序中的同一脆弱点和不同脆弱点处的断言的筛选。
选择Radish方法作为对比,与Radish方法相比,本发明的有益效果是:(1)检测代价低,选择Mibench中的bitstrng、isqrt和rad2deg等程序进行测试,实验表明,与Radish相比,本发明方法将检测代价下降了34%,下降百分比为62%。其中,下降百分比为检测代价下降量与Radish的检测代价的比值。(2)检测效率高。SDC检测效率是SDC检出率与检测代价的比值。虽然筛除断言会减低加固程序的SDC检出率,但实验表明,与Radish相比,本发明方法将检测效率提升了1.2,提升百分比为81%。(3)良性后果检出率低,检错度高。实验表明,与Radish相比,本发明方法将良性后果检出率下降了10%,下降百分比为25%。检错度增加了0.05,增加百分比为12%。
附图说明
图1为本发明的断言筛选方法流程图;
图2为Mbitstrng_invs程序的代码片段。
具体实施方式
下面结合具体实施例进一步阐明本发明,应理解实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
实施例1:本发明的轻量级冗余断言筛选方法的流程图如图1所示。图1包括3部分。左边部分为断言加固程序,为本发明方法的输入。右上部分为同一脆弱点处断言筛选,右下部分为不同脆弱点处断言筛选。
第一步:加载使用断言加固的程序,作为本方法的输入。以Mibench测试程序集中的bitstrng程序为例,使用Radish方法对bitstrng加固,将加固后的程序命名为Mbitstrng_invs.c。其中,为了评估检错度,我们对bitstrng程序进行了适当修改,其输入为3个数字,分别为要转换为二进制的数字(number)、二进制的显示位数(Rbiz)和二进制格式的总位数(Rstrwid)。另外,isqrt和rad2deg也做了适当修改。
第二步:筛选同一脆弱点处的断言。
图2给出了Mbitstrng_invs.c程序的代码片段。其中,函数bitstring的第1个脆弱点处的断言位于第35行。第2个脆弱点处的断言位于第39和40行。第1个脆弱点只有一条断言,因此不处理脆弱点1。第2个脆弱点处的断言有多条,因此,筛选脆弱点2处的断言。将39行和40行的断言分别称为A39和A40。
(a)计算断言的检错度:程序的输出变量分别为,要转换为二进制的数字、转换为二进制后的形式格式、二进制的显示位数和二进制格式的总位数。例如,输入“16,8,15”,对应的输出为“number=16,format=0001 0000,Rbiz=8,Rstrwid=15”。设置4个输出变量的权重为,w(number)=0.4,w(Rbiz)=0.3,w(Rstrwid)=0.2,w(format)=0.1。对A39和A40分别生成其变量的动态前向切片的所有变量集。由于考虑动态切片,因此变量集中可能存在重复变量。之后,使用公式(2)和公式(3)得到DL(A39)=3,DL(A40)=2。
(b)计算断言的良性后果检出率:首先获取断言A39和A40中的变量对应的指令的后向切片指令集合bs_ins(A39)和bs_ins(A40)。然后,对bs_ins(A39)中的指令注入故障。统计故障注入结果,得到A39失效且结果为良性后果的故障注入次数为2,结果为良性后果的故障注入次数为108,根据公式(4)得到BR(A39)=0.0185。对bs_ins(A40)中的指令注入故障。统计故障注入结果,得到A40失效且结果为良性后果的故障注入次数为0,结果为良性后果的故障注入次数为93,根据公式(4)得到BR(A40)=0。
(c)计算断言的重要性:设置α=0.5,β=0.5,统计得到程序中断言的最大检错度为max(DL)=9,程序中断言的最大良性后果检出率max(BR)=1。由公式(1)可得断言39的重要性
Figure BDA0002376471850000071
断言40的重要性
Figure BDA0002376471850000072
Figure BDA0002376471850000073
由于I(A39)>I(A40),因此,筛除断言40,留下断言39。
第三步:筛选不同脆弱点处的断言。
对同一脆弱点处的断言筛选后,每个脆弱点处只有一条断言,接下来,筛选不同脆弱点处的断言。首先,以函数为单位,按照断言的执行顺序对断言排序,将程序中的断言划分为两两不相交的断言对。之后,分析每个断言对中前面断言相对于后面断言的冗余度和可删性,决定是否删除前面断言。经过第二步的断言筛选,函数bitstring中的第1个脆弱点处的断言A35和第2个脆弱点处的断言A39为一个断言对。下面以该断言对为例,详述不同脆弱点处的断言筛选工作。
(a)冗余性判定:断言A35含有变量byze。对A35中byze的后向切片指令集合bs_ins(byze)注入故障,统计故障注入结果,得到结果为SDC且A35不满足的故障注入次数为35,结果为SDC且A35和A39都不满足的故障注入次数为35。由公式(5)和公式(6)可得,r(A35,A39)=1。设置阈值μ=0.9,由于r(A35,A39)>μ,因此,A35为冗余断言。接下来,进一步判断A35的可删性。
(b)可删性判定:删除A35时,原本被A35检测到的SDC错误将被延迟到A39处才被检测到。延迟检测会延迟报错,由于检测到错误后需要返回到程序上一个正确状态处继续执行,因此,延迟报错使A35到A39之间的程序段多执行一次。用相对于保留A35,删除A35时,检测到SDC错误多执行的指令数作为“延迟检测代价”,记为D(A35)。计算D(A35)时,首先对A35中byze的后向切片指令集合bs_ins(byze)注入故障,得到结果为SDC的故障注入次数为86,结果为SDC且A35不满足的故障注入次数为35。由公式(8)可得,sdc_rto(ai)=0.407。运行程序,统计得到A35到A39之间的指令的总执行次数为13,根据公式(7)可得D(A35)=5.29。删除A35时,降低了断言检测代价,即少执行了断言A35对应的指令。将降低的断言检测代价记为L(A35)。计算L(A35)时,统计程序正常运行时,A35对应的指令数量以及指令的执行次数。运行程序得到,程序正常运行时,将执行A35对应的cmp指令和jg指令,其中,cmp指令执行一次,jg指令执行一次。因此,由公式(9)可得L(A35)=2。
得到删除断言A35时的收益和损失,即L(A35)和D(A35)后,由公式(10)可得删除A35时的收益G(A35)=-3.29。G(A35)小于0表示的含义是,删除A35时的收益小于损失,此时应保留A35。若计算得到的G(A35)>0,则可以删除A35。
需要说明的是上述实施例仅仅是本发明的实施例,并没有用来限定本发明的保护范围,在上述技术方案的基础上做出的等同替换或者替代均属于本发明的保护范围。

Claims (3)

1.一种轻量级冗余断言筛选方法,其特征在于,所述方法包括以下步骤:
第一步:加载使用断言加固的程序,作为本方法的输入;
第二步:筛选同一脆弱点处的断言;
第三步:筛选不同脆弱点处的断言。
2.根据权利要求1所述的轻量级冗余断言筛选方法,其特征在于,第二步:筛选同一脆弱点处的断言;具体如下:
(a)计算断言的检错度:断言的检错度是断言检测到的错误对程序结果的影响程度,检错度越大,越能检测到严重的错误,假设程序运行过程中,最多只发生一次软错误,程序的输出变量集为o,o中的每个输出变量对程序结果的影响度不同,计算断言ai的检错度DL(ai)时,首先计算ai中的每个变量错误时对程序结果的影响程度,然后,取平均值作为ai的检错度,ai中的变量对程序结果的影响程度是其前向切片变量集包含的输出变量的影响度之和;
(b)计算断言的良性后果检出率:首先获取ai中的变量对应的指令的后向切片指令集合bs_ins(ai),即位于ai语句之前且对ai中的变量有影响的指令集合,然后,对bs_ins(ai)中的指令注入故障,统计故障注入结果,将ai失效且结果为良性后果的故障注入次数记为n1,将结果为良性后果的故障注入次数记为n2,这样,ai的良性后果检出率BR(ai)可表示为n1和n2的比值;
(c)计算断言的重要性:设置α为断言检错度的权重因子,β为断言良性后果检出率的权重因子,max(DL)表示程序中断言的最大检错度,max(BR)表示程序中断言的最大良性后果检出率,使用公式(1)计算断言的重要性;
Figure FDA0002376471840000011
在每个脆弱点处筛除重要性较低的断言,留下重要性最大的断言。
3.根据权利要求1所述的轻量级冗余断言筛选方法,其特征在于,第三步:筛选不同脆弱点处的断言,具体如下:
(a)冗余性判断:计算断言ai中的每个变量发生错误且错误结果为SDC时,断言ai和断言ai+1都不满足的概率,然后取ai中所有变量的这一概率的平均值作为断言ai相对于断言ai+1的冗余度,冗余度越大,ai检测到的SDC错误越能被ai+1检测到;设置阈值μ,当冗余度r(ai,ai+1)<μ时,认为ai为非冗余断言,当r(ai,ai+1)≥μ时,认为ai为冗余断言,接下来判断ai的可删性;
(b)可删性判断:若ai为非冗余断言,则ai不可删,若ai为冗余断言,则计算删除ai时的收益和损失,确定ai的可删性,删除ai会延迟检测r%的SDC错误,进而延迟报错,由于检测到错误后需要返回到程序上一个正确状态处继续执行,因此,延迟报错使ai到ai+1间的程序段多执行一次,将相对于保留ai,删除ai时检测到SDC错误多执行的指令数称为延迟检测代价,即删除ai的损失,删除ai会少执行ai对应的指令,将少执行的指令数作为删除ai的收益,若删除ai的收益大于损失则删除ai,否则保留ai,另外,若断言本身的SDC检出率很低,也将被删除。
CN202010067792.XA 2020-01-20 2020-01-20 一种轻量级冗余断言筛选方法 Active CN111274058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010067792.XA CN111274058B (zh) 2020-01-20 2020-01-20 一种轻量级冗余断言筛选方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010067792.XA CN111274058B (zh) 2020-01-20 2020-01-20 一种轻量级冗余断言筛选方法

Publications (2)

Publication Number Publication Date
CN111274058A true CN111274058A (zh) 2020-06-12
CN111274058B CN111274058B (zh) 2024-04-02

Family

ID=71001870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010067792.XA Active CN111274058B (zh) 2020-01-20 2020-01-20 一种轻量级冗余断言筛选方法

Country Status (1)

Country Link
CN (1) CN111274058B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131034A (zh) * 2020-09-22 2020-12-25 东南大学 一种基于检测器位置的检查点软错误恢复方法
CN117472670A (zh) * 2023-11-09 2024-01-30 紫光同芯微电子有限公司 一种芯片验证中断言验证管理的方法、装置、系统和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083203A1 (en) * 2008-10-01 2010-04-01 International Business Machines Corporation Modeling System-Level Effects of Soft Errors
CN103984632A (zh) * 2014-05-29 2014-08-13 东南大学 一种基于错误传播分析的sdc脆弱指令识别方法
CN108491317A (zh) * 2018-02-06 2018-09-04 南京航空航天大学 一种基于指令脆弱性分析的sdc错误检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083203A1 (en) * 2008-10-01 2010-04-01 International Business Machines Corporation Modeling System-Level Effects of Soft Errors
CN103984632A (zh) * 2014-05-29 2014-08-13 东南大学 一种基于错误传播分析的sdc脆弱指令识别方法
CN108491317A (zh) * 2018-02-06 2018-09-04 南京航空航天大学 一种基于指令脆弱性分析的sdc错误检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NA YANG: "Identify Silent Data Corruption Vulnerable Instructions Using SVM" *
马骏驰: "面向软错误的软件检测技术研究", pages 3 - 5 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131034A (zh) * 2020-09-22 2020-12-25 东南大学 一种基于检测器位置的检查点软错误恢复方法
CN112131034B (zh) * 2020-09-22 2023-07-25 东南大学 一种基于检测器位置的检查点软错误恢复方法
CN117472670A (zh) * 2023-11-09 2024-01-30 紫光同芯微电子有限公司 一种芯片验证中断言验证管理的方法、装置、系统和介质

Also Published As

Publication number Publication date
CN111274058B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US7747932B2 (en) Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US8195720B2 (en) Detecting memory leaks
US12019119B2 (en) Methods and systems for fault injection testing of an integrated circuit hardware design
CN108491317B (zh) 一种基于指令脆弱性分析的sdc错误检测方法
CN111274058A (zh) 一种轻量级冗余断言筛选方法
US11526608B2 (en) Method and system for determining affiliation of software to software families
CN109635568B (zh) 一种基于静态分析和模糊测试相结合的并发漏洞检测方法
US10303566B2 (en) Apparatus and method for checking output data during redundant execution of instructions
US9235461B2 (en) Method and apparatus for soft error mitigation in computers
Yang et al. Reliability analysis of ensemble fault tolerance for soft error mitigation against complex radiation effect
US8478575B1 (en) Automatic anomaly detection for HW debug
CN103984632A (zh) 一种基于错误传播分析的sdc脆弱指令识别方法
Tao et al. How do api selections affect the runtime performance of data analytics tasks?
Sadi et al. An efficient approach towards mitigating soft errors risks
Pereira-Santos et al. Exploring redundancy granularities to repair real-time FPGA-based systems
Yan et al. Multi-bit data flow error detection method based on SDC vulnerability analysis
Srisura et al. False test case selection: Improvement of regression testing approach
US20170371651A1 (en) Automatically establishing significance of static analysis results
Hari et al. Estimating silent data corruption rates using a two-level model
Wang et al. FTApprox: A fault-tolerant approximate arithmetic computing data format
CN112131034B (zh) 一种基于检测器位置的检查点软错误恢复方法
Jia et al. Brief Announcement: Automatic Log Enhancement for Fault Diagnosis
US11841788B2 (en) Self-optimizing analysis system for core dumps
Yang et al. F_Radish: Enhancing Silent Data Corruption Detection for Aerospace-Based Computing. Electronics 2021, 10, 61
CN116992453A (zh) 一种基于栈哈希的漏洞根因自动定位方法及系统

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