基于FPGA的TMR方法改进策略

发布者:自由思考最新更新时间:2011-09-15 来源: 现代电子技术关键字:TMR  FPGA 手机看文章 扫描二维码
随时随地手机看文章
   

    基于SRAM的FPGA对于空间粒子辐射非常敏感,很容易产生软故障,所以对基于FPGA的电子系统采取容错措施以防止此类故障的出现是非常重要的。三模冗余(TMR)方法以其实现的简单性和效果的可靠性而被广泛用于对单粒子翻转(SEL7)进行容错处理。但传统TMR方法存在系统硬件资源消耗较多且功耗较大等问题。总结了传统TMR方法存在的问题,分析了一些近年来出现的改进的TMR方法的优劣,针对其存在问题指出了改进策略,并展望了TMR技术的发展趋势。

  引言
 

  软故障是是由粒子和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)上“线或”为一个信号。少数表决器电路负责判断本冗余模块的信号是否是少数

  值,如果是少数值,则相对应的缓冲器输出高阻,如果不是,则使相应的信号正常输出。

  Readback是在Scrubbing的基础上发展起来的。它是指将配置数据回读与最初的配置数据进行比较,发现错误后进行重构。文献中使用了这样的方法,另外它还采用了纠错码来保护配置数据。每一个配置帧的数据被12位的see-dec汉明码保护,而且FPGA中每个基本单元的识别码都不一样,通过ICAP(InternalConfiguration Access Port)回读配置文件后,纠错码可以给出错位的位置。

  Scrubbing可以在不中断电路工作的情况下修复SEU在LUT、布线矩阵和CLB中所造成的功能错误。但是它不能改变LUT中触发器中的内容,所以它也就不能重置寄存器的状态。当存储单元的值发生了翻转,此时只能通过系统复位来得到修复。然而系统复位将使系统功能中断,严重影响系统的性能。

  2.2 小粒度TMR技术

  随着部分动态重构技术的出现,产生了小粒度的TMR方法。可以以较小的粒度为步长,采用合理的布局与布线实现TMR以达到要求的资源开销并得到最大的可靠性。文献中对在出现多个错误的情况下不同粒度TMR的容错性能进行了实验分析,结果表明小粒度TMR比以整个系统为粒度进行TMR的效果好。

  在全局TMR不可行的情况下(例如资源有限),小粒度TMR是一个较好的选择,可以在使用较少资源的情况下提高系统的可靠性。由于不是对所有的模块都采用冗余措施,所以在实现的时候必须着重于对那些可以相对更高地提高系统可靠性的模块应用TMR技术。此时表决器的数量和位置也是一个需要考虑的问题。由于采用三模冗余的模块前后需要额外的布线,而逻辑电路和布线资源都对SEU敏感,所以这样的结果会降低系统可靠性。如图2所示,图中阴影部分是对SEU敏感的,由图可以看出(c)中敏感的部分比(b)中多,这是由于表决器和额外的布线造成的。所以需要限制三模冗余电路和未采用三模冗余的电路的转变,这样可以通过集中使用三模冗余技术而提高系统可靠性。

  

[page]

  为了选择需要进行三模冗余的模块并进行合理的布局布线,将系统出现的错误分为持续性错误和非持续性错误。持续性的错误是指由SEU产生的改变了电路内部状态的错误;非持续性错误是指可以通过FPGA重构而消除的错误,而持续性错误在重构后依然存在。

  结合以上的分析,实施部分TMR的优先级别如下:

  第一级是会产生持续性错误的部分。

  第二级是会导致能产生连续性错误电路部分出错的电路,以降低TMR和非TMR之间的转换为准则。

  第三级是会产生持续性错误电路的前向部分,同样以降低TMR和非TMR之间的转换为准则。

  第四级是与会产生持续性错误电路部分独立的部分。

  可以通过静态的分析来对电路进行划分。这里存在的问题是在标准的全局TMR中,所有的输入、输出以及时钟都进行了三模冗余,而使用部分TMR时,对I/O以及时钟的冗余有可能不能被实现。和没有采用TMR的逻辑电路一样,没有进行TMR的时钟和I/O同样可以产生不能被检测的错误。

  由实验结果来看,由于此方法主要着重于能产生持续性错误的电路部分,所以当所使用的冗余资源增多时,持续性的错误出现的几率很快的降低,最终几乎全部被克服掉。所以采用部分TMR可以在资源和可靠性间达到平衡,在最小限度影响可靠性的条件下,最大限度地提高资源利用率。

  另外,一个翻转有可能改变配置存储器中控制布线的配置位,而使得两个不同冗余模块间的连线短路,这样一个翻转影响了TMR中不止一个模块,导致输出错误。而配置资源中的90%都用来控制布线,所以这个问题是需要考虑的。产生这种错误的可能性还依赖于TMR的布局,而TMR的布局直接依赖于多数表决器的数量。当表决器增多时,模块之间需要额外的连接,所以各模块必须靠得很近,这样使得一次翻转导致模块之间短路的可能性增加。为了降低会影响TMR稳健性的产生改变布线的错误的可能性,必须最大可能地减少各个模块之间的连接。如果多数表决器的数量可以被降下来,那么模块之间的连接可以减少。

  解决这个问题的方法是采用较大粒度的TMR以降低它们之间的连接,且表决器只应用在电路输出部分。但同时又出现了一个新的问题,例如为对存储单元的状态进行修复,Xilinx提出了将表决器应用在有寄存器的地方并加入反馈以纠正翻转对寄存器中值的影响的XTMR方法,如果内部的表决器被去掉,那么出错部分存储单元的错误将得不到纠正,所以重构后它与其他模块工作的状态不同步。

  文献中解决这个问题的方法是通过从外部存储器中读取存储的工作状态。但是这个方法需要三个模块离线后才能进行状态的存储和重置进而达到同步。显然可行性不高,尤其是对实时性要求高的电路。

  针对此问题,文献提出了一种同步技术,该技术TMR系统中采用状态寄存器复制机制,并在三个冗余模块之间引入数据通路来传输状态寄存器的数据。当某一个冗余模块发生故障被局部重构后,能够通过接受主控制器的令牌,从正常模块复制状态寄存器的数据来完成同步而及时地恢复工作。该方法缩短了故障模块从修复到重新加入系统工作的时间,从而减小发生故障积累的概率,提高冗余系统的可靠性。

  另一种方法是预测其他模块最快会达到的状态,然后对重构后的模块进行状态的预置。这时只需使要重构的模块停止工作而不影响其他两个模块的工作,当工作模块的状态和预置的状态同步时,三个模块又一起工作。此时状态选择是一个问题,这个状态到达的频率必须很高,而且会在较快时间内到达,另外多个状态可以提高效率但同时会使预置信号宽度增加。

  如果寄存器中状态不可预测,例如寄存器链和加法器,那么不能使用这个方法,所以这种方法需要改进以提高其适应性。在TMR各模块布线时,尽量将它们相隔有一定的距离,这样也可以降低一个模块出现错误后对其他模块造成影响的可能性。2.3 基于对FPGA基本单元结构改进的TMR技术

 

  因为TMR资源消耗较大,一般方法中由于布线以及表决器的实现,当粒度越小耗费的资源更多。文献提出了一种比较新颖的小粒度的方法,它对基于SRAM的FPGA的结构进行了一些改变(LUT及CLB结构),以小粒度来实现TMR但资源消耗却得到降低。

  文中选用Xilinx Virtex-5系列芯片。其基本结构是由两个5输入的LUT实现的一个6输入的LUT。如图3所示。如果低五位输入数据相同那么可以实现两个5输入的LUT。在有些情况下,只需要5输入的LUT,此时另一个LUT没有被使用。如果在布局时使其总满足这种情况,那么可以用留下的资源来实现TMR。

  

 Virtex-5系列LUT结构

 

  一个TMR需要两个LUT,而两个TMR只需要三个LUT,需要在LUT内部实现表决器、报错电路以及其他的一些控制线,这增加了LUT内部的布线和延迟。

  这种方法的优点是粒度减小,可靠性增加,资源消耗少,可通过检错和定位进行有条件的重构,减少了功耗和配置时间。实验结过表明,相比于传统的小粒度的TMR,这种方法额外资源消耗只为76.5%,而传统的则达到242%。

  2.4 基于空间搜索方法的TMR技术

  由于部分以及小粒度TMR的出现,在FPGA和设计约束的情况下,对粒度以及电路模块的选择是一个关键的问题,而往往只知道资源、功耗及可靠性等要求,实际的布局与实现是一个棘手的问题。文献都提出了基于空间搜索的方法。这种方法是提供资源、功耗与可靠性等参数,在各种可能的解决方法中进行搜索而得到最优的结果。

  2.5 基于时间的TMR技术

  基于时间的基本思想是通过多次计算进行故障屏蔽,是对相同的计算重复进行两次或者多次并比较结果以检测和克服错误。当对某一部分的电路得到一个结果后,暂时将其存储起来,延迟一定时间后再进行一次计算并输出存储,若比较结果不一致则出现了错误,此时再延迟相同的时间,将其输出作为正确的结果输出。

  这种方法对于检测瞬时故障很有效,但其容错效果与延迟时间有关系。此方法实际上使用时间的延长换取了资源的节省,对于实时性较高的系统使用性较差。

  2.6 基于软、硬件冗余的TMR技术

  对于在硬件上出现的不可修复的损坏,上面的方法将都会失效。此时对每个模块中采用三个不同的版本的文件(一个使用,两个备份)且每个模块还有1/4的硬件冗余资源。如果出现了硬件故障,则首先用其他版本对其进行重新配置,如果这样问题还得不到解决,那么通过使用额外的冗余资源重新布局以绕过出错的部分。但是由于对冗余资源及存储单元的要求,这种方法进一步增加了资源的消耗。

  3 TMR技术发展展望

  基于以上的分析,用图4所示的框图来描述TMR技术出现的问题与改进方法之间的关系。由于硬件存在故障积累的问题,所以在系统可靠性的要求下产生出了多种新的基于TMR的解决办法,不过这些技术都只是针对某些问题而提出的,它只解决了部分问题同时也带来了一些新的问题,所以基于TMR的容错技术仍然不够成熟。

  

 

  不过其中小粒度的TMR技术是一种灵活性很大的方法,它结合其他的一些方法可以在节约资源的基础上达到较好的性能,基于小粒度的TMR的技术将会是TMR技术的一个主要发展方向,需要进一步解决由于布线资源相对增多而对系统可靠性的影响。另外,由于小粒度TMR的实现需要对系统的各部分电路进行选择并进行布局,所以TMR实现的自动化也是一个需要研究的方向。

  4 结语

  总结了TMR技术存在的突出问题,研究了这些新方法,分析了其优势以及存在的问题并指出了相应的解决办法。TMR技术的发展应该以高效的实现方法及可靠性为方向,以稳健的评估策略为基础,根据所要达到的参数要求,以较高的自动化的方式在不同的粒度和布局上进行权衡而得到最终的TMR解决方案。

关键字:TMR  FPGA 引用地址:基于FPGA的TMR方法改进策略

上一篇:应用于除颤器的FPGA解决方案
下一篇:基于FPGA的SoC验证平台实现电路仿真侦错

推荐阅读最新更新时间:2024-05-02 21:34

利用FPGA实现摄像机传感器接口
图像传感器可以说是在数字视频或静止相机中视频或静止图像处理流水线的最重要部分。如果没有传感器,就没有图像信号可进行处理。众所周知传感器是非标准化的。在采用的方案中,它们有以下的不同之处: 转换可见光或红外光为电信号的方式;尤其是在该信号离开这块芯片之前,对这个信号采用的编码和压缩(有时)的方式。 对传感器内部的寄存器进行编程的方式,以调整增益、曝光时间、传感器模式(如线性、HDR),传感器图像坐标等。 实现特殊功能的方式,如高(或宽)动态范围(HDR/WDR);例如通过在同一封装中的多个传感器,对于同一图像帧多次曝光等。 这些传感器厂商采用的接口,以使这些电子图像信号离开传感器,并进入下游的处理逻
[嵌入式]
利用<font color='red'>FPGA</font>实现摄像机传感器接口
利用FPGA实现无线分布式采集系统设计
1 引言 近些年来,随着电子技术的发展,无线通信技术、计算机网络的发展,分布式无线数据采集网络技术开始兴起,并迅速的应用到各个领域。在一些地形复杂,不适合人类出现的区域需要进行数据采集的情况下,都可以适当的选择无线分布式采集来进行。现有的无线分布式采集系统中,往往使用单片机、DSP等作为系统的主控控制单元。但是由于其自身工作特点,往往对于精确的定时控制以及并行处理能力上比FPGA弱。随着FPGA等可编程逻辑器件的发展,为无线数据可靠传输提供了很好的实现平台。采用FPGA作为时序控制和信号处理的处理器,将使系统电路设计更加简洁、可靠、灵活,可有效的缩短开发周期,并降低开发成本。 为此,基于CycloneIV+STM32设计了
[单片机]
利用<font color='red'>FPGA</font>实现无线分布式采集系统设计
ADPCM语音编解码电路设计及FPGA实现
  近年来,多媒体技术逐渐深入到人们的生活中。MP3播放器已经成为流行的便携式音频播放设备,由于MP3编码算法非常复杂,目前,一部分MP3播放器的录音功能主要基于ADPCM算法和DSP来实现。本文阐述了ADPCM语音编解码VLSI芯片的设计方法以及利用FPGA的硬件实现。 ADPCM算法及其编解码器原理   ADPCM(Adaptive Differential Pulse Code Modulation,自适应差分脉冲编码调制)综合了APCM的自适应特性和DPCM系统的差分特性,是一种性能较好的波形编码。它的核心思想是:利用自适应改变量化阶的大小,即使用小的量化阶去编码小的差值,使用大的量化阶去编码大的差值;使用过去的样本值
[手机便携]
基于ARM和FPGA的开放性计算机数控系统
本文提出了一种基于ARM和FPGA的嵌入式数控系统设计方案。详细介绍了ARM系统的软硬件设计,基于FPGA的硬件精插补实现方法以及数控系统的加减速控制策略。该系统将ARM运行速度快、计算精度高的优点和FPGA内部逻辑的在线可重构性等特点相结合,提高了资源利用率和实时性,增强了数控系统的灵活性。仿真和实践结果表明,整个控制系统具有实时性好、低成本、高性能等优点。 现有的数控系统中多采用工控机加运动控制卡的计算机数控系统方案进行运动控制器的设计。随着工控机整体功能日趋复杂,对运动控制系统的体积、成本、功耗等方面的要求越来越苛刻。现有计算机数控系统在运动控制方面逐渐呈现出资源浪费严重、实时性差的劣势。此外,数控系统的开放性、模块化和
[单片机]
基于ARM和<font color='red'>FPGA</font>的开放性计算机数控系统
FPGA与SRAM相结合完成大容量数据存储
1 引言 随着数字信号处理技术的不断发展,大容量可编程逻辑器件的不断涌现,FPGA技术越来越多地应用在大规模集成电路设计中。在此硬件系统设计中,经常会遇到需要大容量的数据存储的情况,下面我们将针对FPGA中内部Block RAM有限的缺点,提出了将FPGA与外部SRAM相结合来改进设计的方法,并给出了部分VHDL程序。 2 硬件设计 这里将主要讨论以Xilinx公司的 FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)为主要器件来完成大容量数据存储的设计思路。 FPGA即现场可编程门阵列,其结构与传统的门阵列相似,大量的可编程逻辑块(CLB, Configurable L
[缓冲存储]
FPGA灵活性与ASIC性能 Achronix Speedster7t一个都不能少
近年来人工智能技术发展迅速,在金融、交通、制造、安保等众多领域的应用已经让人们见识到人工智能社会到来可能带来的巨大变革。世界各国也高度重视人工智能发展,纷纷出台相关战略和政策,并加大研发投入。根据中国电子学会统计,2018年全年,全球人工智能核心产业市场规模超过555.7亿美元,相较于2017年同比增长50.2%。目前中国人工智能行业的企业总数达到670家,占全球的11.2%。 面对人工智能市场持续升温,人们对于这些系统应如何建构仍十分分歧。随着人工智能与机器学习的应用场景快速发展演进,新的解决方案都要去应对在高性能、灵活和上市时间等方面的不同需求。根据市场调研公司Semico Research的预测,人工智能应用中FPGA的市场
[机器人]
赛灵思宣布Spartan-7 FPGA进入量产阶段
赛灵思(Xilinx)宣布Spartan-7系列FPGA现已开放订购,并可依据标准作业时程安排出货。 作为赛灵思旗下成本优化型产品系列的关键成员,该组件系列旨在通过提供低成本与低功耗的产品,以满足成本敏感型市场的需求,同时以业界领先的效能功耗比,针对I/O互联进行了优化。 采用了小尺寸封装的Spartan-7 FPGA商用组件,能支持更大的运作温度范围(从摄氏零下40度至125度)。 Spartan-7系列以更低的入门价位,提供更高的处理器扩充性,比起前一代采用Xilinx 32位MicroBlaze软件处理器IP的方案, 高出50%的嵌入式处理效能。 此外,Spartan-7组件亦提供支持AES-256比特流解密、SHA-256
[半导体设计/制造]
硅晶片融合技术助力 SoC FPGA设计架构脱颖而出(二)
活用现场可编程门阵列   现场可编程门阵列(FPGA)是系统设计人员的第三种方案(图1)。在很多方法中,FPGA一直是以软体为中心採用CPU架构的方法,与以硬体为中心的ASIC方法之间的一种做法。在FPGA中实现的演算法,并不像软体那么容易进行修改,但是修改FPGA配置要比投入生产新版ASIC容易得多,即使这种修改只是在几个金属层上。      图1 现场可编程门阵列发展蓝图   相反地,与在软体中运行任务相比,在FPGA中运行相同的任务会非常快,而且功率消耗也很低。但是FPGA通常要比相等价格的ASIC速度慢,功能效率也要低一些。   因此,当一种仅採用软体的解决方案无法满足速度和功率消耗要求,无法找到能够突出产品优势
[模拟电子]
硅晶片融合技术助力 SoC <font color='red'>FPGA</font>设计架构脱颖而出(二)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved