CN103092714A - 用于容错系统的处理器瞬时故障检测方法 - Google Patents
用于容错系统的处理器瞬时故障检测方法 Download PDFInfo
- Publication number
- CN103092714A CN103092714A CN201210591859.5A CN201210591859A CN103092714A CN 103092714 A CN103092714 A CN 103092714A CN 201210591859 A CN201210591859 A CN 201210591859A CN 103092714 A CN103092714 A CN 103092714A
- Authority
- CN
- China
- Prior art keywords
- instruction
- orders
- fault
- shadow
- processor
- 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.)
- Pending
Links
- 230000001052 transient effect Effects 0.000 title claims abstract description 23
- 238000001514 detection method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 6
- 230000015654 memory Effects 0.000 abstract description 15
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000001360 synchronised effect Effects 0.000 abstract 2
- 230000001419 dependent effect Effects 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 22
- 230000007246 mechanism Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003014 reinforcing effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 101150099184 fccA gene Proteins 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000003292 glue Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 240000007643 Phytolacca americana Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000000926 neurological effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
用于容错系统的处理器瞬时故障检测方法,本发明涉及一种容错系统中处理器故障的检测方法。它解决了现有的EDDI技术移植工作量巨大造成所占内存或寄存器大和通用性差的问题。包括下述步骤:对进入处理器算术逻单元的C类计算指令进行复制;对步骤一复制得到的C类计算指令进行选择,并复制选定的计算指令,选定的计算指令叫做影子指令,选择之前的计算指令叫做主指令;所述选择原则为:同步指令不选择,同步指令包括访存指令和跳转指令;按照严格锁步的方式执行影子指令与主指令;在顺序执行完影子指令和主指令后立即比较执行结果,对出现影子指令与主指令运算结果不同的情况,认定为出现了处理器瞬时故障;运算结果相同,认为没有出现故障。
Description
技术领域
本发明涉及一种容错系统中处理器故障的检测方法。
背景技术
瞬时故障,常被称为软故障(Soft error)。该类故障具有随机性,受环境因素影响较大。
EDDI(Error Detection by Duplicated Instructions)技术,针对瞬时故障引发的数据流错误,采用软件手段实现硬件故障容错。该机制在编译支持下采用纯软件的手段实现容错,但它在设计过程中并没有考虑到例如ECC或奇偶校验(parity)等传统硬件保护机制的纠检错能力。更重要的是,不同体系结构下EDDI移植工作量巨大,该问题亟待解决。例如SPARC体系结构下,窗口寄存器使得EDDI的实现与ARM、MIPS等平面寄存器体系结构面临着完全不同的问题与挑战。同时,编译链传参规则的修改、系统库的重新编译等问题,严重影响了该机制的通用性。
发明内容
本发明的目的是提供一种用于容错系统的处理器瞬时故障检测方法,以解决现有的EDDI技术移植工作量巨大造成所占内存或寄存器大和通用性差的问题。本发明包括下述步骤:一、对进入处理器算术逻单元的C类计算指令进行复制;所述C类计算指令是指解码类计算指令;二、对步骤一复制得到的C类计算指令进行选择,并复制选定的计算指令,选定的计算指令叫做影子指令,选择之前的计算指令叫做主指令;所述选择原则为:同步指令不选择,同步指令包括访存指令(M类指令)和跳转指令(B类指令);三、按照严格锁步的方式执行影子指令与主指令,即在影子指令与主指令之间不执行其它指令;四、在顺序执行完影子指令和主指令后立即比较执行结果;五、对出现影子指令与主指令运算结果不同的情况,认定为出现了处理器瞬时故障;运算结果相同,认为没有出现故障。
本发明只对C类计算指令进行复制,而且执行完影子指令和主指令后立即比较执行结果,需要执行的指令少,用于寄存影子指令和主指令的内存或寄存器数量少,解决了现有的EDDI技术移植工作量巨大造成所占内存或寄存器大和通用性差的问题。
附图说明
图1是SPARC V9指令编码结构示意图,图2算数逻辑单元的逻辑图,图3故障注入结果的示意图,图4锁步EDDI与全复制EDDI性能对比示意图。
具体实施方式
具体实施方式一:本实施方式包括下述步骤:一、对进入处理器算术逻单元的C类计算指令进行复制;所述C类计算指令是指解码类计算指令;二、对步骤一复制得到的C类计算指令进行选择,并复制选定的计算指令,选定的计算指令叫做影子指令,选择之前的计算指令叫做主指令;所述选择原则为:同步指令不选择,同步指令包括访存指令(M类指令)和跳转指令(B类指令);三、按照严格锁步的方式执行影子指令与主指令,即在影子指令与主指令之间不执行其它指令;四、在顺序执行完影子指令和主指令后立即比较执行结果;五、对出现影子指令与主指令运算结果不同的情况,认定为出现了处理器瞬时故障;运算结果相同,认为没有出现故障。步骤四中比较执行结果的操作过程为:先将影子指令和主指令运行结束后的结果分别存入两个寄存器中,然后将两个寄存器值相减,如果相减结果为0,认定结果相同;如果相减结果非0,认定结果不同。
(一)故障分类
首先将指令集分为计算指令、访存指令、跳转指令和其他类指令。其中,计算指令包括所有算术、逻辑、关系和赋值运算指令。访存指令包括:取数、存数和内存栅栏指令。跳转指令包括:无条件跳转、有条件跳转和函数调用指令。其他类指令则为除了计算指令、访存指令、跳转指令以外的指令集合;此外,为涵盖故障引发的正常指令转为非法指令的情况,此处将非法指令纳入到其他指令类中。
每种指令发生的故障仅包括两种情况:操作码故障和操作数故障。据此,将故障类型细分为14个子类,基于SPARC V9指令集的指令分类与故障类型的详细描述参见表2-1。
表中各故障类型发生的概率由故障源所在的部件和指令集编码方式决定,例如:解码部件故障涵盖全部类型;但同类型转化(C→C、M→M、B→B和OT→OT)概率明显高于类型间的转化,这一点由图1给出的指令集编码可知。如果故障源自算逻部件,只可能触发C→C一类,发生概率为100%。由此可知,同类型故障能否良好覆盖,对系统纠检错能力的影响至关重要,这在表2-1中重点标示。
表错误!文档中没有指定样式的文字。-1指令分类及故障子类型
(二)故障模型
瞬时故障在组合逻辑诱发后,在多级逻辑门传输路径中蔓延,被微结构级(锁存器、触发器)时间窗口捕获后,通常导致多比特故障。但本文采用微结构级单比特故障模型,主要因为:(1)目前尚无统一的多比特故障模型。因为故障传播特性与设计细节,如结构/微结构级、门级,乃至设备级,耦合紧密;(2)激进地选择多比特模型容易导致可靠性估计过高,保守的抽象能够给出可靠性的下限。出于对用户负责的角度,有理由选择后者。
单比特模型假设系统同一时刻只触发一次瞬时故障,故障经传播到达微结构级、结构级引发单比特翻转。不同部件发生故障的概率依部件复杂度服从均匀分布,即本文假设各部件单比特故障触发概率相同。
(三)部件模型
1、地址生成单元
地址生成部件计算得出当前指令和下条指令地址(PC/NPC),由取指逻辑访存将指令取回。地址生成部件是组合逻辑的代表,故障触发将直接影响PC/NPC,发生概率为100%。
此类故障引发控制流错误,包括C->B、M->B、B->B、OT->B类型。这正是指令复制类容错机制覆盖能力相对薄弱的方面。然而,操作系统对此提供了强大的覆盖能力。地址翻转发生在低位,会导致字未对齐,引发总线故障;发生在高位,通常造成段越界访问,引发段错误。对于后者,具体的故障覆盖能力取决于程序规模。这些现象在故障注入过程中表现十分明显。
2、解码单元
解码部件负责解析存放于指令队列中,等待进入流水的指令操作码。解码完成后负责将生成的控制信号送到相关执行部件,如算逻单元。该部件故障包括全部14种子类型。由计算指令引发的4种类型,发生概率最大的是C→C,该类故障无法由硬件和操作系统覆盖,因此需要在机制中将计算指令复制和锁步比较。
其余10类故障经估计和实验验证,会以较高概率被操作系统捕获。如对剩余部分有覆盖要求,则需复制全部指令,完全拷贝数据段、堆栈段等程序信息。而在程序实际执行过程中相当一部分不会被执行到,却会造成访存次数增多、执行时间增长、内存空间浪费等后果。关于覆盖率与性能折中见数据分析。
3、算逻单元
计算指令经复制、锁步比较,绝大多数会被覆盖。但需要指出,有一类计算指令引入的比较指令无法覆盖,否则会引发循环锁步的情况。
4、寄存器文件
本文假设寄存器文件有ECC或校验和保护,在该部件触发的单比特故障都会被检出,即系统对寄存器文件的故障漏检率为零。因此,有理由在后续实验中省去对该部件的故障注入,直接将其故障漏检率带入统计。
5、其它部件
其他部件,如处理器核外的各级缓存、内存以及这些部件间的关键数据通路、胶合逻辑,它们的物理实现一般配有不同的校验机制。虽然无法保证这些部件的原发性故障都被检出,但对这些部件的瞬时故障易感性与性能、功耗的折中具有显著、积极的作用[20]。由于片外部件故障不属本文的研究范围,因此,本文假设核外的各级缓存、内存与之间的胶合逻辑是无故障的。至于从处理器流出的漏检指令或者数据,可归类到以上几个部件触发的故障类型中。
(四)低代价锁步EDDI机制
本文给出具体的指令复制原则,并以SPARC架构为目标平台提出寄存器预留方法。
指令复制原则
低代价锁步EDDI影子指令生成原则如下:
1)对进入算逻单元的指令,即C类计算指令进行复制;
2)同步指令不复制,同步指令包括访存指令(M类指令)和跳转指令(B类指令);
3)主指令与影子指令按照严格锁步的方式执行,即在主指令与影子指令之间不能有其它指令,且在主指令和影子指令执行之后立即比较其执行结果;
4)影子指令在主指令之前执行。
(五)寄存器预留
基于上述指令复制原则,设计的低代价EDDI只需预留数目确定的少数几个寄存器用于保存影子指令的执行结果和状态寄存器。本文以SPARC架构为目标平台,将寄存器预留方法说明如下:为整型应用预留两个全局寄存器,一个作为影子指令目的寄存器,一个用于保存整型状态寄存器(ICC/XCC)的内容。对于浮点运算,由于可能出现128位的结果,因此需要预留4个32位浮点寄存器。SPARC有4个独立的浮点状态寄存器(FCC),预留其中一个用于保存运算状态。
(六)影子指令生成规则
本文针对整型和浮点运算分别提出了具体的影子指令生成规则,并成功解决了SPARCV9指令集中副作用影子指令的生成问题。
浮点运算
影子指令与主指令状态寄存器相互独立,使得浮点运算影子指令生成不涉及副作用问题,直接按指令复制原则操作即可。
摘自MiBench中FFT典型代码片段如下:
fdivd%f10,%f8,%f28//影子指令
fdivd%f10,%f8,%f10//主指令
fcmpd%fcc3,%f10,%f28//比较指令
fbne,pn%fcc3,.error//错误处理
整型运算
由于SPARC架构对于整型运算没有提供多份状态寄存器,因此算法单独预留一个全局寄存器用于保存或恢复指令状态。整型运算影子指令生成规则如下:
(1)非复制指令
对于副作用指令,必须先保存状态,并在后续其他副作用指令执行之前恢复其状态。
来自spec2000mcf代码片段例子如下:
(2)复制指令
对于副作用指令,需将影子指令放在主指令之前执行,在主指令执行后保存其状态,并在后续使用icc指令之前进行恢复。
来自spec2000gzip代码片段如下:
综上,本节分别针对整型运算与浮点运算,设计了指令复制规则,并成功解决了具有副作用的指令其影子指令生成问题。通过寄存器预留成功实现主指令与影子指令对寄存器的分割,寄存器预留比远小于全复制EDDI寄存器分半的50%。该机制无需传参规则的修改,无需系统库的重新编译,通用性强。
(七)实验评测及结果分析
实验环境
故障注入系统
编译工具链选择GCC4.2.1,通过对体系结构文件的重配置,实现编译器支持的寄存器预留、分配和后端优化。为避免编译器指令调度破坏主、影子指令间严格锁步,在编译、汇编之间插入指令复制规则的具体实现。故障注入通过对结构级全系统模拟器SAM[72]的修改实现,目标架构为UltraSPARC T2,指令集为SPARC V9。
评测环境
本文将低代价锁步EDDI实现代价与全复制EDDI进行比较,后者实现方法为:主指令、影子指令各占用一份寄存器;计算指令复制并在同步指令之前比较,同步指令包括load,store,跳转,函数调用,函数返回;跳转指令不复制;访存执行一次,若是取数指令需将取来的数据写入影子寄存器。
测试基准的选取
故障注入的目的是观察实验平台运行测试基准时,注入故障引发的种种表现。广泛使用的SPEC系列测试基准,主要用于性能测试,运行时间较长(从数分钟到数小时不等,在模拟器上更要高出几个数量级),而且应用个数较多(通常有20个左右)。因此,研究人员通常采用运行指定代码片段、记录踪迹的方式进行试验。然而,这种方式与瞬时故障模型的随机性相悖[74],故本文没有采用SPEC系列测试基准。人们将MiBench与SPEC进行了对比,MiBench的指令类型和吞吐量等方面不逊于SPEC,完全满足故障注入的要求。而且,MiBench输入集较小,运行时间大大缩短,有利于提高故障注入样本空间。因此,本文采用MiBench测试基准,应用包括:FFT、Stringsearch、Dijkstra和Basicmath,
采用标准输入集。
可靠性评测
故障注入方式
在SAM模拟器进行故障注入,分别模拟处理器组合逻辑的代表性部件:解码单元、地址生成单元和算逻单元发生瞬时故障,蔓延至部件输入/输出锁存引发的单比特翻转。每种故障类型每个测试基准注入1000次。
令Tload表示测试基准在SAM上运行时长,在[0,Tload]区间随机生成时刻Tinject。
(1)地址生成单元故障
SPARC处理器除了包含程序计数器PC外,还具有NPC(Next Program Counter),此寄存器包含下一条要执行指令的地址。本文对NPC寄存器注入单比特故障来模拟地址生成单元故障。
(2)解码单元故障
对SAM指令缓存中即将进入执行段的指令注入单比特故障,模拟解码单元瞬时故障经蔓延引发的微结构级单比特翻转。因为指令缓存中的故障指令可能被后续过程中执行到,所以在故障指令执行结束后需恢复。
(3)算逻单元故障
算逻单元的故障模拟与上述两个部件不同。计算指令进入算逻单元后,流经部件均为故障蔓延的潜在路径。如图2所示,可能的故障源有5处,从寄存器文件读取操作数时,经①数据通路读入②输入锁存,经③组合逻辑运算生成结果,通过④输出锁存和⑤数据通路被写回寄存器文件。
据此,可将故障归为三类:①操作数在数据通路引发翻转和输入锁存受辐射翻转,最终都会导致输入锁存单比特翻转;②运算过程中组合逻辑故障,与输入锁存单比特翻转导致的故障表现类似;③同理,输出锁存故障和写回过程中数据通路故障,三者也可用输入锁存单翻转模拟。
上述分析可知,本文在SAM执行过程中随机选择算术指令,并在此算术指令读取源操作数寄存器时注入单比特故障。
故障注入结果与分析
测试基准在SAM注入故障之后,将故障实例的输出与标准输出进行对比。根据故障表现的不同,可将注入结果分为以下五类:
(1)正确结果(Correct result):运行结果的输出和标准输出一致;
(2)EDDI检测(EDDI):故障被EDDI机制检测到;
(3)操作系统检测:包括段错误(Segmentation Fault)、非法指令(Illegal Instruction)、总线错误(Bus Error);
(4)操作系统崩溃(OS Panic、High OS):故障导致操作系统重新启动;
(5)错误结果(Error Result):运行结果和无故障结果不一致。
其中操作系统崩溃(4)和错误结果(5)之和为漏检比例,称为SDC(Silent DataCorruption)。
图3显示原测试基准、全复制EDDI加固、低代价锁步EDDI加固后分别在解码单元、算逻单元和地址生成单元注入故障的结果。与未加固测试基准相比,EDDI机制带来的容错性能提升十分明显,操作系统的故障覆盖能力也相当可观。全复制EDDI整体SDC(漏检率)为2.0%,低代价锁步EDDI为2.8%。
对于解码部件故障,未加固测试基准正确结果为60.2%,操作系统检测比例为24.9%,SDC为14.9%。全复制EDDI加固后SDC平均值为1.9%,经本文锁步EDDI加固后SDC平均值为4.1%。而锁步EDDI的SDC高于全复制EDDI的原因主要是前者没有对测试基准中cmp指令进行加固。在SPARC体系结构中,cmp指令是由目的操作数为g0的subcc指令实现,如果注入的故障修改了目的操作数域,会导致g0以外的寄存器误写入。若该寄存器影响程序数据流,就会引发错误结果。但此种情况对整体检错性能贡献并不明显,而全复制EDDI为覆盖cmp指令,也付出了寄存器分半的代价。由此带来的性能下降十分明显,具体分析见性能评测部分。
对于地址生成部件,没有EDDI加固的测试基准结果SDC平均值为8.6%。全复制EDDI加固后SDC平均值为6.1%。经本文低代价锁步EDDI加固后SDC平均值为6.3%。其中略高于全复制EDDI,主要原因是本机制复制指令原则是影子指令和主指令源操作数都来自同一个寄存器。
而对于算逻单元,经本文低代价锁步EDDI加固后,SDC平均值从无EDDI加固的19.6%降低为0.6%。全复制EDDI为0.1%。
性能评测
本文从静态指令数、动态指令数和执行时间三个方面对比了低代价锁步EDDI与全复制EDDI机制的性能表现。所列数据均为与未加固测试基准规格化的结果,如图4所示。
静态指令代价
全复制EDDI静态指令总数平均值是原测试基准指令总数的4.63倍,而低代价锁步EDDI则是原测试基准指令总数的2.29倍。主要原因是:(1)比较原则。全复制EDDI在同步指令之前比较值和地址,Store带来至少两次的比较(值、地址)和对标志寄存器CCR的保存和恢复,函数调用会带来和参数个数相同数量的比较,跳转指令之前还需比较标志寄存器。而低代价锁步EDDI只比较运算指令结果,对于标志寄存器也只是在修改时保存,使用时恢复,此原则在寄存器有保护的情况下,不会带来容错性能的下降。与低代价锁步EDDI相比,全复制EDDI的比较指令高121.1%。
寄存器压力
全复制EDDI主指令、影子指令各占用一份寄存器,使程序中可分配的通用寄存器变少,这样就增加了程序中访存指令和运算指令的比例。与低代价锁步EDDI相比,全复制EDDI访存指令比例平均增加33.8%,运算指令数平均增加41.3%。其中FFT的访存指令增加比例达到69.1%,可知低代价锁步EDDI对于诸如FFT这类寄存器负载较高的应用,带来的性能提升尤其明显。需要指出的是,访存指令的增多会进一步增加全复制EDDI的比较代价。
动态性能代价
全复制EDDI动态执行指令数是原测试基准的2.37倍,执行时间是原测试基准的1.92倍。与低代价锁步EDDI相比,全复制EDDI平均执行的比较指令增加253.5%,运算指令增加50.1%,访存指令增加8.7%,其中FFT的访存指令增加比例达到18.3%。
总之,由于低代价锁步EDDI复制原则和在编译前端实现的寄存器预留两个,减少了寄存器预留数、有效缓解寄存器压力,降低了访存代价,同时也降低了插入指令总数。与全复制EDDI相比,低代价锁步EDDI在性能上提高显著:平均执行时间缩短35.2%,平均动态执行指令则减少36.1%。这充分证明了本文代价互锁EDDI在性能上的优势。
结论
在设计初期将硬件和系统软件的故障纠检错能力纳入考虑,针对处理器内瞬时故障,设计应用级“低代价锁步EDDI”。主要内容如下:
(1)设计初期将操作系统故障检测能力纳入考虑,依照指令流经的部件将故障划分为不同子类,并通过对故障子类的详细分析,提出基于概率论的故障漏检率量化估计方法,为纠检错与性能折中进行指导。对处理器中代表性组合逻辑部件:算逻单元、解码单元,和地址生成部件进行故障注入,理论估计与实验结果拟合良好,验证了理论估计方法的有效性。
(2)设计低代价锁步EDDI机制,提出低代价锁步的指令复制规则和寄存器预留方式。本机制结合硬件纠检错能力,兼顾处理器内组合逻辑、时序逻辑两类部件。与传统EDDI将寄存器分半不同,通过编译链前端寄存器分配大幅减少了寄存器预留数,有效缓解寄存器压力,降低了访存代价,减少了性能损失。无需修改编译器传参规则,无需重新编译系统库,提高了机制通用性。
(3)选择单比特瞬时故障模型,对机制故障注入实验结果、静态性能代价,与动态性能代价进行详细评测。与全复制EDDI相比,低代价锁步EDDI仅以SDC平均升高0.8%的代价,换取了平均执行时间缩短35.2%,平均动态执行指令则减少36.1%的性能优势。
Claims (4)
1.用于容错系统的处理器瞬时故障检测方法,其特征在于它包括下述步骤:一、对进入处理器算术逻单元的C类计算指令进行复制;所述C类计算指令是指解码类计算指令;二、对步骤一复制得到的C类计算指令进行选择,并复制选定的计算指令,选定的计算指令叫做影子指令,选择之前的计算指令叫做主指令;所述选择原则为:同步指令不选择,同步指令包括访存指令和跳转指令;三、按照严格锁步的方式执行影子指令与主指令,即在影子指令与主指令之间不执行其它指令;四、在顺序执行完影子指令和主指令后立即比较执行结果;五、对出现影子指令与主指令运算结果不同的情况,认定为出现了处理器瞬时故障;运算结果相同,认为没有出现故障。
2.根据权利要求1所述的用于容错系统的处理器瞬时故障检测方法,其特征在于预留数目确定的数个寄存器用于保存影子指令的执行结果和状态寄存器,为整型应用预留两个全局寄存器,一个作为影子指令目的寄存器,另一个用于保存整型状态寄存器(ICC/XCC)的内容。
3.根据权利要求2所述的用于容错系统的处理器瞬时故障检测方法,其特征在于对于浮点运算,由于可能出现128位的结果,预留4个32位浮点寄存器。
4.根据权利要求1所述的用于容错系统的处理器瞬时故障检测方法,其特征在于步骤四中比较执行结果的操作过程为:先将影子指令和主指令运行结束后的结果分别存入两个寄存器中,然后将两个寄存器值相减,如果相减结果为0,认定结果相同;如果相减结果非0,认定结果不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591859.5A CN103092714A (zh) | 2012-12-31 | 2012-12-31 | 用于容错系统的处理器瞬时故障检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210591859.5A CN103092714A (zh) | 2012-12-31 | 2012-12-31 | 用于容错系统的处理器瞬时故障检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103092714A true CN103092714A (zh) | 2013-05-08 |
Family
ID=48205321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210591859.5A Pending CN103092714A (zh) | 2012-12-31 | 2012-12-31 | 用于容错系统的处理器瞬时故障检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092714A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679603A (zh) * | 2015-02-03 | 2015-06-03 | 中国科学院计算技术研究所 | 一种非对称的数据三模冗余方法及系统 |
CN109582512A (zh) * | 2017-09-28 | 2019-04-05 | 通用汽车环球科技运作有限责任公司 | 用于测试并行计算装置的部件的方法和系统 |
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154944A1 (en) * | 2003-12-30 | 2005-07-14 | Reinhardt Steven K. | Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support |
CN101299205A (zh) * | 2008-06-25 | 2008-11-05 | 哈尔滨工业大学 | 基于表决的优先排队仲裁系统总线控制方法 |
CN101833536A (zh) * | 2010-04-16 | 2010-09-15 | 北京航空航天大学 | 一种冗余仲裁机制的可重构星载计算机 |
-
2012
- 2012-12-31 CN CN201210591859.5A patent/CN103092714A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154944A1 (en) * | 2003-12-30 | 2005-07-14 | Reinhardt Steven K. | Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support |
CN101299205A (zh) * | 2008-06-25 | 2008-11-05 | 哈尔滨工业大学 | 基于表决的优先排队仲裁系统总线控制方法 |
CN101833536A (zh) * | 2010-04-16 | 2010-09-15 | 北京航空航天大学 | 一种冗余仲裁机制的可重构星载计算机 |
Non-Patent Citations (1)
Title |
---|
王超等: "低代价锁步EDDI:处理器瞬时故障检测机制", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679603A (zh) * | 2015-02-03 | 2015-06-03 | 中国科学院计算技术研究所 | 一种非对称的数据三模冗余方法及系统 |
CN104679603B (zh) * | 2015-02-03 | 2018-02-06 | 中国科学院计算技术研究所 | 一种非对称的数据三模冗余方法及系统 |
CN109582512A (zh) * | 2017-09-28 | 2019-04-05 | 通用汽车环球科技运作有限责任公司 | 用于测试并行计算装置的部件的方法和系统 |
CN109582512B (zh) * | 2017-09-28 | 2022-06-21 | 通用汽车环球科技运作有限责任公司 | 用于测试并行计算装置的部件的方法和系统 |
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
CN112416665B (zh) * | 2019-08-20 | 2024-05-03 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hari et al. | Low-cost program-level detectors for reducing silent data corruptions | |
Condia et al. | FlexGripPlus: An improved GPGPU model to support reliability analysis | |
Sawada et al. | Processor verification with precise exceptions and speculative execution | |
CN106021040B (zh) | 一种基于线形汇编指令差异性变换的dsp软错误检测方法 | |
Borodin et al. | Protective redundancy overhead reduction using instruction vulnerability factor | |
Nicolescu et al. | Software detection mechanisms providing full coverage against single bit-flip faults | |
Ragel et al. | A hybrid hardware--software technique to improve reliability in embedded processors | |
Condia et al. | Combining architectural simulation and software fault injection for a fast and accurate CNNs reliability evaluation on GPUs | |
Yang et al. | Enabling software resilience in gpgpu applications via partial thread protection | |
Schirmeier | Efficient fault-injection-based assessment of software-implemented hardware fault tolerance | |
Ito et al. | Analyzing DUE errors on GPUs with neutron irradiation test and fault injection to control flow | |
Liu et al. | Identifying SDC-causing Instructions based on Random forests algorithm | |
CN103092714A (zh) | 用于容错系统的处理器瞬时故障检测方法 | |
Chang et al. | Evaluating compiler ir-level selective instruction duplication with realistic hardware errors | |
Ferreira | The transactional HW/SW stack for fault tolerant embedded computing | |
Ritter et al. | Formal verification of designs with complex control by symbolic simulation | |
Kim et al. | A method for evaluating fault coverage using simulated fault injection for digitalized systems in nuclear power plants | |
Reddy et al. | Assertion-based microarchitecture design for improved fault tolerance | |
Maghsoudloo et al. | Soft error detection technique in multi-threaded architectures using control-flow monitoring | |
Condia et al. | Analyzing the sensitivity of gpu pipeline registers to single events upsets | |
Nakajima | Using real-time maude to model check energy consumption behavior | |
Li et al. | Exploiting application-level correctness for low-cost fault tolerance | |
Didehban et al. | Generic Soft Error Data and Control Flow Error Detection by Instruction Duplication | |
Cong et al. | Impact of loop transformations on software reliability | |
Bergaoui et al. | IDSM: an improved disjoint signature monitoring scheme for processor behavioral checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |