纯软件方法检测软错误:方法、工具与实验结果
1. 引言
微电子技术的进步使电子设备对环境影响(如辐射、电磁兼容性)愈发敏感。特别是在太空环境中运行的处理器,会受到各种辐射现象的影响,这些影响可能是永久性的,也可能是暂时性的。本文主要关注单粒子翻转(SEU)这种暂时影响,它是由带电粒子撞击集成电路敏感区域引起的。SEU 会改变存储单元的内容,导致从错误结果到系统控制问题等一系列后果,其影响取决于受干扰信息的性质和位翻转发生的时刻。
对于复杂的处理器架构,对 SEU 的敏感性与内部存储单元(寄存器、内部存储器)的数量密切相关。此外,未来在极高频率下运行的深亚微米电路,由于带电粒子的撞击,其组合部分也可能出现暂时错误,即单粒子瞬态(SET)。SET 不仅会影响太空电路,还会影响高海拔地区(航空电子设备)甚至地面的数字设备。
在引入基于计算机的可靠系统的新领域中,成本(以及设计和开发时间)通常是主要考虑因素,采用标准组件(商用现货或 COTS 产品)是常见做法。因此,软件容错成为极具吸引力的解决方案,它能在不产生定制硬件设计或硬件冗余的高成本情况下实现可靠系统。不过,依靠软件技术实现可靠性往往意味着要接受代码大小增加和性能降低的开销。但在许多应用中,内存和性能约束相对宽松,牺牲一定速度换取可靠性是可以接受的。
过去提出了多种仅通过修改软件来实现容错(或安全)的方法,主要可分为两类:一类是复制程序执行并检查结果(如恢复块和 N 版本编程);另一类是在程序中引入控制代码(如基于算法的容错、断言、代码流检查、过程复制)。然而,这些方法都不具备通用性(可用于任何故障类型和应用)和自动性(不依赖程序员技能实现),因此都不足以用于实现低成本、安全关键的微处理器系统。
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



