单粒子软错误是高辐照空间环境下影响计算可靠性的主要因素.随着芯片晶体管数的快速增长,单粒子软错误的威胁日益严重.结果错误(silent data corruption,SDC)是单粒子软错误造成的一种故障类型.由于SDC是隐蔽传播的,SDC的检测是单粒子软错误防护的难点.寻找SDC脆弱指令是目前检测SDC的重要途径.现有方法需要进行巨量的错误注入,时间代价巨大.首先根据数据关联图建立了指令的数据依赖关系,研究了函数间和函数内部错误传播过程;进而推导出判定SDC脆弱指令的充分条件,提出了SDC脆弱指令识别方法,该方法在错误注入中依据充分条件推测潜在的SDC脆弱指令.实验表明,在保证较高准确率和覆盖率的前提下,时间代价显著减少.
软错误是高辐照空间环境下影响计算可靠性的主要因素,结果错误(silent data corruption,简称SDC)是软错误造成的一种特殊的故障类型.针对SDC难以检测的问题,提出了一种基于不变量的检测方法.不变量是运行时刻保持不变的程序特征.在软错误发生后,由于程序受到影响,不变量一般不再满足.根据该原理,在源代码中插入以不变量为内容的断言,利用发生软错误后断言报错来检测软错误.首先,根据错误传播分析确定了检测位置,提取了检测位置的不变量;定义了表征不变量检测能力的渗透率,在同一检测位置依据渗透率将不变量转化为断言.通过错误注入实验,验证了该检测方法的有效性.实验结果表明:该检测方法具备较高的检出率和较低的检测代价,为星载系统的软错误防护提供了新的解决思路.