通过纯软件方法检测软错误
1. 引言
微电子技术的进步使得现代处理器能够在更小的空间内实现更高的性能。然而,这些技术进步也带来了新的挑战,尤其是在环境影响方面。例如,辐射和电磁兼容性(EMC)对处理器的敏感性增加了。特别是在太空环境中,处理器可能会受到单粒子翻转(SEUs)的影响,这可能会修改存储单元内容,进而导致系统问题。本文将探讨一种通过纯软件方法检测软错误的技术,该方法旨在通过在应用程序中引入冗余和检查机制来提高系统的可靠性。
2. 检测机制
2.1 方法概述
为了检测软错误,提出了一种基于规则的方法,该方法允许将目标应用程序转换为一个新的应用程序,新应用不仅能保持原有功能,还能识别内存区域或处理器内部寄存器中的比特翻转错误。这种方法的核心是在应用程序中引入一系列转换规则,这些规则可以在不影响程序功能的前提下,检测和报告错误。
2.2 规则分类
2.2.1 影响数据的错误
为了检测那些影响数据的错误,方法采用了变量复制和一致性检查的策略。具体步骤如下:
- 识别变量之间的关系 :确定程序中所有变量之间的相互依赖关系。
- 分类变量 :将变量分为两类——中间变量和最终变量。中间变量用于计算其他变量,而最终变量不参与任何其他变量的计算。
- 复制变量 :每个变量
x
必须被复制为两个副本x1
和x2
。