3. 硬件冗余技术(上):静态冗余、动态冗余与混合冗余
各位同学,今天我们来聊聊硬件冗余。这是抗辐照芯片设计里最“硬核”的一招——说白了,就是用更多的硬件,换更高的可靠性。
我刚开始做抗辐照芯片那会儿,总觉得冗余就是“多复制几份”。后来踩过坑才明白,冗余不是简单的堆料,而是一套精密的容错架构设计。你想想看,如果只是复制,那表决器坏了怎么办?冗余模块之间怎么同步?这些都是学问。
3.1 静态冗余:三模冗余(TMR)
静态冗余里最经典的,就是三模冗余(Triple Modular Redundancy, TMR)。它的思路很简单:三个相同的模块同时运行,然后通过一个多数表决器输出结果。
核心思想:三个模块中只要有两个以上输出一致,就认为这个结果是正确的。
我在项目中遇到过这样一个场景:一个关键的控制状态机,单份运行的时候,每1000小时就会因为单粒子翻转(SEU)出一次错。用了TMR之后,这个概率降到了百万分之一以下。代价呢?面积和功耗增加了3倍以上。
TMR的典型结构:
模块A ——\
模块B ——> 多数表决器 ——> 输出
模块C ——/
嗯,这里要注意:TMR并不是万能的。如果两个模块同时出错,表决器就会输出错误结果。这在空间环境中虽然概率低,但并非不可能。所以有些场景下,我们需要更“狠”的方案。
3.2 五模冗余(5MR)
五模冗余,就是五个模块并行,表决器采用“至少三个一致”的规则。它的容错能力更强——可以容忍两个模块同时出错。
我个人习惯在以下场景使用5MR:
- 任务关键度极高(比如卫星的姿控计算机)
- 辐照环境特别恶劣(比如木星轨道)
- 维修成本极高(比如深空探测器)
避坑指南:我曾经在一个项目中,为了追求极致可靠性,把所有模块都做成了5MR。结果芯片面积爆炸,功耗超标,最后不得不降级为TMR+看门狗的组合。所以,冗余度不是越高越好,要权衡面积、功耗和可靠性。
3.3 动态冗余:双机热备与冷备
动态冗余和静态冗余最大的区别在于:静态冗余是“一直冗余”,动态冗余是“出错了才切换”。
双机热备
两个模块同时运行,但只有主模块输出。备用模块实时同步状态。一旦主模块出错,备用模块立即接管。
我建议在以下场景使用热备:
- 切换时间要求极短(微秒级)
- 系统不能中断运行
- 有足够的功耗预算
双机冷备
只有主模块运行,备用模块不上电或处于休眠状态。主模块出错后,备用模块才启动。
冷备的优点是功耗低,缺点是切换时间长(可能需要毫秒甚至秒级)。我在低功耗卫星载荷设计中经常用冷备——毕竟省电就是省钱。
注意:冷备有一个坑——备用模块长期不上电,上电瞬间可能因为老化效应或温度变化导致参数漂移。我曾经遇到过冷备模块启动后直接“死机”的情况,后来加了上电自检流程才解决。
3.4 混合冗余:N模混合冗余
混合冗余就是把静态冗余和动态冗余结合起来。比如:
- 平时用TMR运行,保证高可靠性
- 当检测到某个模块永久失效时,动态切换到双模冗余+备用模块
这种架构的优点是灵活,缺点是控制逻辑复杂。我个人习惯在大型SoC设计中采用混合冗余——关键路径用TMR,非关键路径用双机热备,外围接口用冷备。
3.5 表决器设计
表决器是冗余架构的核心。没有好的表决器,冗余就是摆设。
多数表决
最简单的表决方式:输出多数模块一致的结果。适用于TMR和5MR。
// 三模多数表决器(Verilog示例)
module majority_voter_3(
input [7:0] a, b, c,
output reg [7:0] out
);
always @(*) begin
if (a == b)
out = a;
else if (a == c)
out = a;
else if (b == c)
out = b;
else
out = a; // 默认输出,实际应触发错误标志
end
endmodule
中值表决
适用于模拟信号或连续值。取所有输入的中间值作为输出。我在ADC数据通路中常用中值表决——它能有效滤除单次的大幅度毛刺。
加权表决
给每个模块分配不同的权重。比如,主模块权重0.5,两个备份模块各0.25。适用于模块可靠性不同的场景。
经验之谈:我曾经在一个项目中,三个模块的工艺角不同(TT、SS、FF),直接用多数表决反而容易出错。后来改用加权表决,根据每个模块的工艺角特性分配权重,可靠性提升了30%以上。
3.6 知识体系总览
下面这张图总结了本章的核心内容:
3.7 本章小结
硬件冗余是抗辐照芯片设计的基石。静态冗余(TMR、5MR)适合对切换时间不敏感的场景,动态冗余(热备、冷备)适合对功耗敏感的场景,混合冗余则是两者的折中。表决器设计是重中之重——多数表决简单可靠,中值表决适合模拟信号,加权表决适合模块可靠性不均的场景。
记住一句话:没有最好的冗余架构,只有最适合的冗余架构。下一章我们会深入讨论时间冗余和信息冗余,敬请期待。
公众号:蓝海资料掘金营,微信deep3321