新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的三模冗余容错技术研究

基于FPGA的三模冗余容错技术研究

作者: 时间:2011-04-07 来源:网络 收藏

c.JPG


为了选择需要进行的模块并进行合理的布局布线,将系统出现的错误分为持续性错误和非持续性错误。持续性的错误是指由SEU产生的改变了电路内部状态的错误;非持续性错误是指可以通过重构而消除的错误,而持续性错误在重构后依然存在。
结合以上的分析,实施部分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 基于对基本单元结构改进的TMR技术
因为TMR资源消耗较大,一般方法中由于布线以及表决器的实现,当粒度越小耗费的资源更多。文献提出了一种比较新颖的小粒度的方法,它对基于SRAM的的结构进行了一些改变(LUT及CLB结构),以小粒度来实现TMR但资源消耗却得到降低。



评论


相关推荐

技术专区

关闭