3. 故障与容错基本术语
在星载计算机的容错设计中,术语的精确性直接决定了需求描述、测试用例和故障判据是否一致。工程上最常见的混乱,是把“故障”“错误”“失效”当成同义词使用,结果导致测试记录里写“单粒子翻转导致系统失效”,而实际上系统只是发生了可纠正的数据错误,并未丧失规定功能。本节围绕这组核心术语,建立一条从“原因”到“表现”再到“后果”的因果链,并给出单粒子效应、永久故障、瞬态故障和容错覆盖率在验证工作中的具体含义与量化方式。
故障、错误、失效:一条因果链上的三个层次
按IEEE与航天工程惯例,三者定义如下:
- 故障(Fault):系统内部潜在的、可能引发错误的缺陷或异常状态。它是“原因”,例如某存储单元被高能粒子击中后电荷状态改变、某焊点存在虚焊、某寄存器缺少三模冗余保护。
- 错误(Error):故障在系统状态或数据上的具体表现,是“现象”。例如某位由0变为1、某变量取值越界、某校验和不匹配。错误不一定立即影响对外功能。
- 失效(Failure):系统或部件无法完成规定功能,是“后果”。例如姿态控制输出错误导致卫星失稳、遥测数据持续错误。
这条链的关键在于:故障可能潜伏,错误可能被屏蔽,只有失效才是对外可观测的功能丧失。容错设计的目标,就是在故障演化为失效之前,通过冗余、校验、恢复等手段把错误检测出来并纠正或隔离。验证工作则要分别构造“故障注入”“错误观测”“失效判定”三类判据,不能混为一谈。
单粒子效应:星载环境中最典型的瞬态故障源
单粒子效应(SEE)是空间高能粒子(质子、重离子等)穿过半导体器件时,在敏感节点沉积电荷,导致器件状态异常的一类现象。它与永久故障的最大区别是:器件本身没有物理损坏,异常状态可通过复位、重写或纠错恢复。常见类型包括:
- SEU(单粒子翻转):存储单元或触发器逻辑状态翻转,是最常见的软错误。
- SET(单粒子瞬态):组合逻辑中产生窄脉冲,可能被下游时序单元捕获而变成SEU。
- SEFI(单粒子功能中断):器件控制逻辑被打乱,需复位才能恢复。
- SEL(单粒子锁定):CMOS结构形成可控硅通路,电流骤增,必须断电重启,处理不当会转为永久故障。
在验证中,单粒子效应通常用截面(cross-section,单位cm²/bit或cm²/device)和错误率(如bit-flip率,单位upsets/bit/day)来量化。例如某SRAM器件在轨翻转率约为1×10⁻⁷ upsets/bit/day,若某关键寄存器组有4096 bit且无保护,则平均每天约4.1×10⁻⁴次翻转,即约6.7年一次;若采用SEC-DED纠错,则需两级翻转才可能产生不可纠正错误,等效MTBF显著延长。这些数值属于示例性估算,实际应以器件手册和在轨数据为准。
永久故障与瞬态故障:按持续时间分类
按故障持续时间,可分为永久故障、瞬态故障和间歇故障:
| 类型 | 持续时间 | 典型来源 | 验证关注点 |
|---|---|---|---|
| 永久故障 | 持续存在,不可自恢复 | 器件击穿、焊点开裂、辐照累积损伤 | 冗余切换、降级运行、故障隔离 |
| 瞬态故障 | 短暂,可自恢复或经复位恢复 | SEU、SET、电源毛刺 | 检错纠错、重试、刷新 |
| 间歇故障 | 反复出现,时有时无 | 接触不良、参数漂移、温度敏感 | 边界测试、老化筛选、趋势监控 |
永久故障的验证重点是“故障后系统是否仍能完成规定功能”,例如双机热备中主机永久失效后备机能否在限定时间内接管;瞬态故障的验证重点是“错误是否被及时检测并纠正,且不产生累积效应”。两者在故障注入方式上完全不同:永久故障常用强制置位、断开信号或修改配置模拟;瞬态故障常用单粒子模拟、脉冲注入或位翻转注入。
容错覆盖率:把“容错能力”变成可测量的指标
容错覆盖率(Fault Tolerance Coverage)是衡量容错机制有效性的核心指标,定义为:在给定故障集合中,被容错机制成功检测、纠正或屏蔽,且未导致系统失效的故障比例。其基本计算式为:
容错覆盖率 = (被成功处理的故障数 / 注入故障总数) × 100%
其中“成功处理”需同时满足:
1) 故障被检测到(或虽未检测但被屏蔽);
2) 系统未发生规定功能失效;
3) 处理时间在允许的恢复窗口内。
例如,对某星载计算机的EDAC模块注入1000个单比特翻转故障,其中960个被纠正、30个被检测并触发重试后恢复、10个导致不可纠正错误但被系统降级处理未失效,则容错覆盖率为100%;若其中5个导致输出错误数据且未被发现,则覆盖率为99.5%。工程上通常要求关键功能容错覆盖率达到99%以上,并区分“检测覆盖率”和“恢复覆盖率”分别统计。
需要特别注意的是,覆盖率必须与故障模型绑定。同一套容错机制,对单比特翻转覆盖率可能很高,但对多比特翻转或永久故障覆盖率可能很低。因此验证报告中必须写明:在何种故障模型、何种注入位置、何种工作模式下,覆盖率是多少,否则数字没有意义。
把上述术语串起来看:一个高能粒子击中SRAM某位,造成单粒子翻转(瞬态故障);该位属于关键遥测参数,产生数据错误;若EDAC未覆盖该位且系统未检测到,错误数据被发送,导致地面误判,构成失效。验证时,我们注入该位翻转,观察EDAC是否纠正、系统是否在恢复窗口内恢复正常,并据此统计容错覆盖率。只有把故障模型、错误观测点和失效判据三者对齐,容错验证的结论才可信。