[发明专利]一种基于错误传播分析的SDC脆弱指令识别方法有效
申请号: | 201410234116.1 | 申请日: | 2014-05-29 |
公开(公告)号: | CN103984632A | 公开(公告)日: | 2014-08-13 |
发明(设计)人: | 汪芸;马骏驰;李凯 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏永衡昭辉律师事务所 32250 | 代理人: | 王斌 |
地址: | 210096*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 错误 传播 分析 sdc 脆弱 指令 识别 方法 | ||
技术领域
本发明涉及计算机领域的软错误检测,具体涉及一种基于错误传播分析的SDC脆弱指令识别方法。
背景技术
单粒子翻转(Single Event Upset)造成的软错误,是半导体电路中的一种瞬态故障现象,通常是由外部环境中的高能粒子辐照和电压扰动、电磁干扰等电子噪声诱发。软错误虽然不会损坏内部硬件电路,但是却可以通过改变处理器状态或存储单元值等方式影响程序的正常运行,甚至导致卫星运行异常或者失控。近年来,芯片集成晶体管数呈指数级增长,在性能得到大幅提升的同时,处理器对于单粒子翻转变得更加敏感,系统整体的软错误率快速增加,因此对于单粒子软错误的检测与加固技术的需求变得日益迫切。
单粒子软错误引起的故障类型大致可以分为四种,包括:屏蔽(Benign)、崩溃(Crash)、挂起(Hang)和无异常伴随的结果错误(Silent Data Corruption,后文简称SDC)。其中,屏蔽没有造成可见的异常,并且运行结果正确;崩溃和挂起没有得到运行结果;SDC得到了运行结果,并且结果是错误的。由于导致SDC的运行过程不会抛出异常,因此SDC的发生最为隐蔽。一旦发生SDC,如果不能有效的检测,可能导致严重的后果。
现有的软错误检测方法主要基于现象捕捉(Symptom-based Detector)。现象是指系统的一些异常特征,包括分支预测失效、cache命中率低等。当检测器捕捉到异常特征时,就认为发生了软错误。此方法对软错误的检测率高、代价较低,但是不能检测导致SDC的软错误,因为SDC是隐蔽传播的,不会出现常见的异常特征。
为了弥补基于现象捕捉方法的缺陷,近年来出现了针对导致SDC的软错误检测方法,主要包括指令级冗余和程序级断言。指令级冗余对容易受到软错误干扰的指令进行时间或空间的冗余设计;程序级断言通过对程序正常运行时为真的条件进行判断来检测软错误。两种方法都需要针对选定的指令添加检测代码。执行检测代码会导致额外的时间代价,并且选定的指令越多,代价越高昂。为了减小时间代价,两种方法都重点针对SDC脆弱指令(SDC-causing instruction)进行部署。SDC脆弱指令是指发生软错误后会导致SDC的指令。
SDC脆弱指令可以通过错误注入实验(Fault Injection Campaign)得到。错误注入实验通过随机修改硬件的一个比特位来模拟单粒子翻转。注入错误数是修改比特位的总次数,可以用来衡量错误注入实验的时间代价。假如对每条指令都进行错误注入,即使规模很小的程序都有巨量的注入错误数。例如,对目的操作数(32位)进行错误注入,当程序含有10000条指令时,注入错误数就达到320000。为了减少注入错误数,一般只抽取部分指令样本进行错误注入。随机抽样虽然能够保证样本与原有的指令集合具有近似的SDC比例,但由于样本数量有限,会漏选很多SDC脆弱指令,造成检测的漏洞。
根据是否进行错误注入实验,可将现有工作中识别SDC脆弱指令的方法分为动态方法和静态方法两类,以下分类进行介绍。动态方法进行错误注入实验,通过选择性错误注入缓解了原有错误注入实验代价过高的问题。
Relyzer压缩了导致非SDC故障类型和等价类的错误注入。等价类是指每个基本块(basic block)都相同的控制流实例组成的集合,对等价类的不同实例进行错误注入得到的结果是相似的,因此在等价类中只选择一个代表进行错误注入。
SmartInjector补充了Relyzer的方法,认为具备相同数据传播模式的数据流的注入结果是相似的,将其归为同一个等价类,并只选择一个实例进行错误注入。
CriticalFault通过指令级脆弱性分析来减少注入错误数。指令级脆弱性分析能够找出非敏感位。在非敏感位发生的软错误不会对程序的运行产生影响,也不会产生SDC,因而CriticalFault排除掉了这些非敏感位的错误注入。
静态方法不进行错误注入实验,而是通过直接分析指令特征得到SDC脆弱指令。
Shoestring认为所有影响全局内存或函数参数的指令都是SDC脆弱指令。此判定方法容易实施,但由于判定条件只考虑指令的目的操作数,而不考虑程序逻辑等其他因素,因此准确率较低。
SymPLIFIED通过符号执行模拟错误传播过程来识别SDC脆弱指令。由于符号执行穷举了所有错误传播路径,因此不会出现漏判。但其模拟的某些错误在现实中不会发生,所以准确率较低。并且符号执行导致了状态爆炸,使得时间和空间代价极大。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410234116.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:冷水自循环渔船用制冰机
- 下一篇:农作物秸秆收割台