基于基于FPGA的三模冗余容错技术研究的三模冗余容错技术研究
摘要:基于SRAM的FPGA对于空间粒子辐射非常敏感,很容易产生软故障,所以对基于FPGA的电子系统采取
容错措施以防止此类故障的出现是非常重要的。三模冗余(TMR)方法以其实现的简单性和效果的可靠性而被广泛
用于对单粒子
摘要:基于SRAM的
关键词:TMR;容错;FPGA;
0 引言
基于SRAM的现场可编程门阵列(Field Programmable Gate Array,FPGA)对于带电粒子的辐射特别敏感,尤其是近年来高
密度集成芯片的出现,电路容量增大、操作电压降低使得它们在辐射环境下的可靠性降低。其中软故障是主要的故障,它是由
粒子和PN结相互作用引起的一种暂态故障,软故障对在基于SRAM的FPGA上实现的电路具有特别严重的影响。由于三模冗余
(Triple Modular Redundancy,TMR)技术简单性以及高可靠性,它是一个被广泛使用的针对于FPGA上的单粒子翻转(Single-
Event Upset,SEU)的容错技术。文献中表明TMR大幅度提高了FP-GA在SEU影响下的可靠性。尽管TMR能有效提高设计的
可靠性,但是由于要实现额外的模块与布线,它对硬件资源以及功耗消耗较大,而且工作速度也受到影响。这都限制了传统
TMR的使用。随着电子技术特别是部分可重构技术发展,出现了多种改进的TMR技术,它们都针对性地解决了传统TMR方法
所存在的问题,使得TMR技术得到发展。本文首先介绍了传统TMR的原理,接着总结了其所存在的问题,然后对改进的TMR
技术的优劣进行了全面的分析,最后对TMR技术发展趋势进行了展望。
1 常规TMR方法及存在的问题
TMR的基本概念是用三个相同的模块分别实现相同的功能,最后在输出口通过一个多数表决器对数据进行选择以实现容错
的目的。TMR的使用是建立在某一个时刻错误只出现在一个模块里的基础上,而实际上,因为在不同的模块里同时出错的概
率是比较低的,而且实现过程直接、简单,所以TMR是现在比较有效且被大量使用的一种容错的方法。TMR主要被广泛用于
防止由辐射引起的SEU对系统的影响,由于它的使用使FPGA在SEU影响下的可靠性得到很大提高。常规TMR方法的基本结
构如图1所示。
尽管TMR可以有效提高设计的可靠性,但是它也存在很多不足之处。主要有以下几点:
(1)它不能对出错的模块进行修复。当一个模块出错后,我们只是将错误通过多数表决器屏蔽,但是错误模块仍然存在。而
且一般的TMR也不能对错误进行检测和定位,以便系统进行修复。如果出现的错误得不到及时修复,那么当再次出现错误时
TMR将失效。
(2)很多研究只是考虑到单个错误的影响,而忽略了多个SEU同时出现的可能,尽管出现这种情况的概率较低,但却是存在
的。实验也表明TMR对减弱单个SEU产生的影响是非常有效的,但SEU在配置存储器中积累会使效果降低。
(3)普通TMR资源开销大,资源利用率低。普通TMR是对整个设计或者较大的模块进行三模冗余,粒度比较大,它的资源开
销相比原始电路增大200%。如果受到FPGA硬件资源和功耗等设计约束的限制不能对整个电路或者模块实现TMR,那么会造
成资源浪费。
(4)由于电路的倍增使得功耗增大,而且由于表决器的存在以及其他一些额外的布线使得速度降低。
(5)表决器本身也可能出错,而一般的TMR的表决器没有自检错能力,也不具备抗辐射能力。
(6)当采用三模冗余的电路驱动没有采用冗余的电路时,需要一个表决器将三个信号合为一个信号。当没有采用冗余的电路
驱动采用三模冗余的电路时需要通过额外的布线将一路信号扩展称为三路信号。因为逻辑电路和布线资源都对SEU敏感,所
以这样的结果会降低系统可靠性。
2 改进的TMR方法
2.1 TMR与Scrubbing结合
由于TMR本身不具备错误模块修复能力,若仅一个模块出现错误时,系统功能不受影响,但如果在另一个模块出现错误前
不能对已出现的错误模块进行修复,那么冗余方法会失效。所以当出现一个错误的时候,必须及时地对出错的模块进行修复。
随着动态可重构技术的发展,出现了Scrubbing这种对FPGA进行配置的方法。由于对于空间电子系统来说影响最严重的是
SEU等软故障,而软故障可以通过重构来解决,所以周期性地对配置存储器进行刷新可以实现对这类错误的修复。
Scrubbing和TMR配合使用对防止SEU的产生可以起到很好的效果。但很多研究同样只考虑到单个错误的影响,而忽略了多
个SEU同时出现的可能性。理论上一个快速的刷新率可以保证某一时间内只有一个错误的存在。然而实际中错误的出现是随
机的,这意味着任何刷新率都不能保证在一个刷新周期内最多只出现一个错误。在实际中使用这种方法时,必须通过复杂的实
验过程对SEU出现的概率进行估计。选取Scru-bbing的刷新率的经验原则是使刷新率比估算的出错率高一个数量级。而现在随
着FPGA的规模越来越大,用来装载整个配置位流的时间会达到几百毫秒,刷新率更得不到保障,且系统功耗增大。
随着部分TMR的实现,可以设计出具有检错和定位功能的表决器,当某个模块出错时,表决器的信号直接触发重构功能,
动态地只对出错部分的电路进行重构。这样可以解决Scrubbing时间和功耗的问题,并为防止错误积累提供了解决途径。
为了防止表决器出错,表决器可以采用对辐射不敏感的器件来实现而替代基于SRAM的材料,这样提高了表决器的稳健性。
文献也提出了一种改进的表决器。它不再使用多数表决器对三个冗余模块的输出进行表决,而是将三个冗余模块相应的输出通
过三态缓冲器和少数表决器后分别由FPGA的三个输出管脚输出,最后在印刷电路板(PCB)上“线或”为一个信号。少数表决器
电路负责判断本冗余模块的信号是否是少数
值,如果是少数值,则相对应的缓冲器输出高阻,如果不是,则使相应的信号正常输出。