摘要: 基于SRAM 的FPGA 对于空间粒子辐射非常敏感,很容易产生软故障,所以对基于FPGA的电子系统采取容错措施以防止此类故障的出现非常重要。通过对敏感电路使用三模冗余( TMR) 方法并利用FPGA 的动态可重构特性,可以有效的增强FPGA 的抗单粒子性能,解决FPGA对因空间粒子辐射而形成的软故障。
1 引言随着现场可编程门阵列( Field Programmable Gate Array,FPGA) 技术的不断发展,FPGA 以其研发周期短、研发成本低等优势,极大地提高了电子系统设计的灵活性和通用性,被广泛地应用在航天、通信、医疗、工控等各个领域。
基于SRAM 的现场可编程门阵列( Field Programmable Gate Array,FPGA) 对于带电粒子的辐射特别敏感,尤其是近年来高密度集成芯片的出现,电路容量增大、 *** 作电压降低使得它们在辐射环境下的可靠性降低。其中软故障是主要的故障,它是由粒子和PN 结相互作用引起的一种暂态故障,软故障对在基于SRAM 的FPGA 上实现的电路具有特别严重的影响。
三模冗余( Triple Modular Redundancy,TMR) 技术是一个被广泛使用的针对FPGA 上单粒子翻转( Single - Event Upset,SEU) 的容错技术,可以大幅度提高FPGA 在SEU 影响下的可靠性。但是由于要实现额外的模块与布线,它对硬件资源以及功耗消耗较大,而且工作速度也受到影响,这都限制了传统TMR 的使用。随着电子技术特别是部分可重构技术的发展,出现了多种改进的TMR 技术,它们都有针对性地解决了传统TMR 方法所存在的问题,使得TMR 技术得到发展。
2 常规TMR 方法及存在的问题三重冗余技术的原理可以简单的理解为将同一个电路进行三次复制,然后对这三个电路的输出进行“多数投票”仲裁,将其中至少有两个相同的输出结果作为最终的输出。TMR 是缓减SEU 非常有效的技术,但当单粒子的能量足以引起三个单元中的两个同时发生SEU 时,这种简单的TMR 技术就会失效,但是这种情况发生的概率很低。所以TMR 是现在比较有效且被大量使用的一种容错方法,被广泛用于防止由辐射引起的SEU 对系统的影响。
传统TMR 方法可以有效提高设计的可靠性,但是它也存在很多不足之处:
1) 它不能对出错的单元进行修复。当三个单元中的一个单元出错后,它只是将错误通过多数表
决器屏蔽,但是错误单元模块仍然存在。而且一般的TMR 也不能对错误进行检测和定位,以便系统进行修复。如果出现的错误得不到及时修复,那么当再次出现错误时TMR 将失效。
2) 普通TMR 资源开销大,资源利用率低。普通TMR 是对整个设计或者较大的模块进行三模冗余,粒度比较大,它的资源开销相比原始电路增大300%。对整个电路或者模块实现TMR,会造成资源浪费。
3) 由于电路的倍增使得功耗增大,而且由于表决器的存在以及其他一些额外的布线使得速度降低。
4) 表决器本身也可能出错,而一般的TMR 的表决器没有自检错能力,也不具备抗辐射能力。
5) 当采用三模冗余的电路驱动没有采用冗余电路时,需要一个表决器将三个信号合为一个信号。当没有采用冗余的电路驱动采用三模冗余电路时需要通过额外的布线将一路信号扩展成为三路信号。因为逻辑电路和布线资源都对SEU 敏感,所以这样的结果会降低系统可靠性。
3 改进的TMR 方法
1) 动态可重构技术
由于TMR 本身不具备错误模块修复能力,若仅一个模块出现错误时,系统功能不受影响,但如果在另一个模块出现错误前不能对已出现的错误模块进行修复,那么冗余方法会失效。所以当出现一个错误的时候,必须及时地对出错的模块进行修复。利用FPGA 局部动态可重构技术可以及时的对出错模块进行修复。动态可重构技术就是对基于SRAM 编程技术FPGA 的全部或部分逻辑资源实现在系统运行时的动态功能变换。
系统重构可分为静态系统重构和动态系统重构。前者指目标系统的逻辑功能静态重载,即FPGA芯片功能在外部逻辑的控制下,通过存储于存储器中不同的目标系统数据的重新下载,实现芯片逻辑功能的改变。对一个常规SRAM 编程的FPGA,只能用于实现静态系统重构。后者是指对于时序变化
的数字逻辑系统,其时序逻辑的发生不是通过调用芯片内不同区域、不同逻辑资源来组合而成,而是通过对具有专门缓存逻辑资源的FPGA,进行局部和全局芯片逻辑的动态重构( 或称修改) 而快速实现。动态可重构FPGA 内部逻辑块和内连线的改变,可以通过读取不同的SRAM bit 数据来直接实现这样的逻辑重建,时间往往在纳秒量级,有助于实现FPGA系统逻辑功能的动态重构。
由于对于空间电子系统来说影响最严重的是SEU 等软故障,而软故障可以通过重构来解决,所以周期性地对配置存储器进行刷新可以实现对这类错误的修复。
TMR 电路可以设计出具有检错和定位功能的表决器,当某个模块出错时,表决器的信号直接触发重构功能,动态地只对出错部分的电路进行重构。这样可以解决定时刷新时产生的时间和功耗问题,并为防止错误积累提供了解决途径。
为了防止表决器出错,表决器可以采用对辐射不敏感的器件来实现而替代基于SRAM 的材料,这样提高了表决器的稳健性。改进的表决器不再使用多数表决器对三个冗余模块的输出进行表决,而是将三个冗余模块相应的输出通过三态缓冲器和少数表决器后分别由FPGA 的三个输出管脚输出,最后在印刷电路板( PCB) 上“线或”为一个信号。少数表决器电路负责判断本冗余模块的信号是否是少数值,如果是少数值,则相对应的缓冲器输出高阻,如果不是,则使相应的信号正常输出。
Readback 是在动态可重构的基础上发展起来的,它是指将配置数据回读与最初的配置数据进行比较,发现错误后进行重构,另外还可以采用纠错码来保护配置数据。每一个配置帧的数据被12 位的see - dec 汉明码保护,而且FPGA 中每个基本单元的识别码都不一样,通过ICAP( InternalConfiguraTIon Access Port) 回读配置文件后,纠错码可以给出错位的位置。
动态可重构技术可以在不中断电路工作的情况下修复SEU 在LUT、布线矩阵和CLB 中造成的功能错误,有效的增强FPGA 电路的抗单粒子能力。
2) 局部敏感电路TMR 技术
随着部分动态重构技术的出现,可以使用局部敏感电路TMR 方法。以较小的粒度为步长,采用合理的布局布线实现TMR 以达到要求的资源开销并得到最大的可靠性。由于资源有限,因此在无法实现全局TMR 的情况下,对局部敏感电路进行TMR 是一个较好的选择,可以在使用较少资源的情况下提高系统的可靠性。由于不是对所有的模块都采用冗余措施,所以在实现的时候必须着重于对那些可以相对更高地提高系统可靠性的模块应用TMR 技术。此时表决器的数量和位置也是一个需要考虑的问题。由于采用三模冗余的模块前后需要额外的布线,而逻辑电路和布线资源都对SEU 敏感,所以这样的结果会降低系统可靠性。
为了选择需要进行三模冗余的模块并进行合理的布局布线,将系统出现的错误分为持续性错误和非持续性错误。持续性错误是指由SEU 产生的改变了电路内部状态的错误; 非持续性错误是指可以通过FPGA 重构而消除的错误,而持续性错误在重构后依然存在。
结合以上的分析,实施部分TMR 的优先级别如下:
第一级是会产生持续性错误的部分。
第二级是会导致能产生连续性错误电路部分出错的电路,以降低TMR 和非TMR 之间的转换为准则。
第三级是会产生持续性错误电路的前向部分,同样以降低TMR 和非TMR 之间的转换为准则。
第四级是与会产生持续性错误电路部分独立的部分。
可以通过静态分析来对电路进行划分。这里存在的问题是在标准的全局TMR 中,所有的输入、输出以及时钟都进行了三模冗余,而使用部分TMR时,对I /O 以及时钟的冗余有可能不能被实现。和没有采用TMR 的逻辑电路一样,没有进行TMR 的时钟和I /O 同样可以产生不能被检测的错误。
由实验结果来看,由于此方法主要着重于能产生持续性错误的电路部分,所以当所使用的冗余资源增多时,持续性错误出现的几率很快降低,最终几乎全部被克服掉。所以采用部分TMR 可以在资源和可靠性间达到平衡,在最小限度影响可靠性的条件下,最大限度地提高资源利用率。
4 结束语随着FPGA 突飞猛进的发展,芯片的集成度越来越高,其工作电压不断降低,导致FPGA 在辐射条件下的可靠性下降,特别是以SEU 为代表的软故障的影响不断加大,所以在用基于SRAM 的FPGA 实现系统的时候,必须采取容错措施。
以传统TMR 的可靠性优势为基础,应用局部敏感电路TMR 技术和FPGA 局部动态可重构技术的空间容错措施可以有效的避免由于空间粒子影响的电路软故障发生,基于局部敏感电路的TMR 技术将会是TMR 技术的一个主要发展方向。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)