Fpga三模冗余架构的故障管理与恢复控制器及其控制方法

文档序号:8412414阅读:669来源:国知局
Fpga三模冗余架构的故障管理与恢复控制器及其控制方法
【技术领域】
[0001]本发明涉及嵌入式计算领域,尤其涉及一种FPGA三模冗余架构的故障管理与恢复控制器及其控制方法。
【背景技术】
[0002]通过提高密度、降低功耗和成本等手段,现场可编程门阵列(FPGA)在嵌入式计算领域的应用变得越来越广泛。根据编程特性和实现工艺,目前市场上的FPGA主要分为三类:反熔丝工艺FPGA、Flash工艺FPGA和SRAM工艺FPGA。这三类FPGA中,反熔丝工艺FPGA仅可进行一次性编程,Flash工艺和SRAM工艺的FPGA可进行重复编程。就运行频率和资源密度而言,SRAM工艺的FPGA要远优于Flash工艺FPGA和反熔丝工艺FPGA,但是基于SRAM工艺的FPGA对于带电粒子的辐射较为敏感,在辐射环境下容易发生单粒子翻转(SEU),从而可能导致其内部电路结构发生变化,这种故障模式严重影响了 SRAM工艺FPGA在高辐射环境下的可靠性。相较SRAM工艺FPGA而言,Flash工艺FPGA和反熔丝工艺FPGA具有良好的抗辐射特性,由于实现工艺的不同,这两种FPGA在辐射环境下并不会发生电路结构的变化(注,这两种FPGA在福射环境下其内部fl ip-f1p和RAM元件中的存储内容也可能发生SEU,但是电路结构本身并不会发生变化)。所以,在高辐射的环境下,Flash工艺FPGA和反熔丝工艺FPGA的可靠性要高于SRAM工艺FPGA。
[0003]太空环境中存在着各种宇宙射线与高能带电粒子辐射,高空大气层中也有很强的高能量中子辐射,所以,航天和航空领域里对可靠性要求较高的电子系统中通常都采用Flash工艺FPGA和反熔丝工艺FPGA。但随着近年来航天和航空技术的不断发展,对其电子系统的计算能力的要求也在不断提升,Flash工艺FPGA和反熔丝工艺FPGA由于其运行频率和资源密度的不足,在某些应用中已逐渐被SRAM工艺FPGA所取代。在这样的发展趋势下,SRAM工艺FPGA的抗辐射技术变得越来越重要。
[0004]三模冗余(TMR)技术是一种可用于处理SRAM工艺FPGA上单粒子翻转问题的容错技术,已得到了较为广泛的应用。其基本原理是使用三个相同的模块分别实现相同的功能,最后在输出口通过表决电路来选择出属于多数的输出信号以实现容错的目的。在采用TMR架构的SRAM FPGA设计中,仅单个模块中发生SEU并不会影响整个功能的正确输出。所以TMR设计技术可以很大程度地提高SRAM工艺FPGA的可靠性。但是如果发生了多次SEU,SEU的累积就可能会造成同一 TMR架构中多个模块均发生故障,从而就会导致TMR输出表决失效,进而造成系统故障。随着局部动态重加载技术的发展,出现了一种TMR技术和局部重加载技术的组合应用技术,两种技术的配合使用可以对SEU做出更好的处理。使用这种组合应用技术,TMR架构的某个模块中发生SEU并导致该模块故障时,表决电路可以判断出发生故障的模块并以某种方式触发该模块的局部重加载,从而对该故障模块的电路进行修复。通过这样的技术手段,可以使SRAM工艺FPGA发生SEU时,其内部的功能仍可正常运行并将SEU自行修复,这就在很大程度上避免了 SEU累积造成的系统故障问题。
[0005]通过文献资料检索可以查到当前国内外一些关于SRAM工艺FPGA的TMR设计技术和局部重加载技术的综述性文章。对于这两种技术的组合应用,主要是一些高校在从事理论方面的研宄,而且这种研宄也大多只是针对具体项目的实现,目前尚缺乏通用化、平台化的TMR架构下FPGA的故障管理与恢复的控制手段。

【发明内容】

[0006]为了解决【背景技术】中所存在的技术问题,本发明提出了一种FPGA三模冗余架构的故障管理与恢复控制器,利用该控制器可以对TMR架构的SRAM工艺FPGA中发生的电路故障进行监控、分析与管理,并根据故障分析结果自动对发生故障的冗余模块进行局部重加载来对故障模块的电路进行修复。
[0007]本发明的技术解决方案是:FPGA三模冗余架构的故障管理与恢复控制器,其特征在于:所述控制器包括寄存器模块、中断模块、ID映射电路、主状态机以及外部处理器;所述寄存器模块、中断模块、ID映射电路分别连接主状态机;所述寄存器模块通过并行局部总线连接到外部处理器;所述外部处理器通过对寄存器模块中各个寄存器进行读写来监控控制器的工作状态,并对控制器工作模式进行控制;所述中断模块向外部处理器发送需要其知悉或处理的中断事件;所述ID映射电路用于管理故障冗余模块ID和局部重加载命令ID之间的映射关系,该映射关系由外部处理器通过寄存器模块进行设置和更改。
[0008]上述控制器还包括SRAM工艺FPGA局部重加载控制电路,所述SRAM工艺FPGA局部重加载控制电路与主状态机连接。
[0009]FPGA三模冗余架构的故障管理与恢复控制方法,其特征在于:所述方法包括以下步骤:
[0010]I)处理器通过局部总线对寄存器模块中的各模块监控使能寄存器进行读写,把需要进行故障状态监控的模块设置为监控使能;
[0011]2)控制器自动对TMR架构FPGA中的各冗余模块的工作状态进行监控,直至监测到某个监控使能的模块发生了故障,此时主状态机从【空闲】状态转入【监测到故障】状态;
[0012]3)控制器对故障的类型进行判断,如果TMR架构FPGA中的同一功能逻辑中的三个冗余模块中,仅一个模块为故障状态,则该功能逻辑由于仍可进行正确的TMR多数表决,功能逻辑仍可正常工作,并且可以进行不打断正常工作的单模块故障恢复,此时主状态机进入【同一 TMR中单模块故障】状态来进行后续处理,并进行步骤4);如果TMR架构FPGA中的同一功能逻辑中的三个冗余模块均为故障状态,则该功能逻辑已无法进行正确的TMR多数表决,也无法进行不打断正常工作的模块故障恢复,需要将此功能级错误汇报给处理器并进行故障隔离,此时“主状态机”进入【同一 TMR中多模块故障】状态,并进行步骤12);
[0013]4)在【同一 TMR中单模块故障】状态,主状态机记录发生故障的单模块ID,并向中断模块通知发生了同一 TMR中单模块故障的中断事件,再由中断模块进一步向外部处理器发出中断信号,然后主状态机转入【启动单模块故障恢复】状态,开始后续的故障恢复过程;
[0014]5)在【启动单模块故障恢复】状态,主状态机向ID映射电路发送故障模块的ID,然后转入【获取局部重加载ID】状态;
[0015]6)在【获取局部重加载ID】状态,主状态机从ID映射电路获得故障模块进行电路恢复所对应的重加载ID,然后转入【发起局部重加载】状态;
[0016]7)在【发起局部重加载】状态,主状态机向局部重加载控制电路发送重加载命令及其ID,以使其开始对TMR架构FPGA中的故障模块进行配置数据的重新加载,之后,主状态机监控从局部重加载控制电路返回的重加载完成信号,如果收到重加载完成信号,则主状态机进入【局部重加载完成】状态来进行后续处理,并进行步骤8);如果超过了规定的最大时间仍未收到重加载完成信号,则主状态机进入【局部重加载失败】状态,并进行步骤12)。
[0017]8)在【局部重加载完成】状态,主状态机记录前次局部重加载过程的状态信息,然后转入【发送模块复位信号】状态;
[0018]9)在【发送模块复位信号】状态,主状态机向进行过局部重加载的故障模块发送足够宽度的复位脉冲信号,以使该模块在局部重加载完成后进入稳定的初始状态,然后主状态机转入【等待模块故障恢复】状态;
[0019]10)在【等待模块故障恢复】状态,TMR架构FPGA中进行过局部重加载的故障模块需要从复位后的初始状态恢复至与三模冗余另外两个模块同步的工作状态中去,并重新参与表决,若该恢复过程成功,则模块状态会恢复正常;主状态机对该模块的状态保持监控,若该模块状态恢复正常,则主状态机进入【模块恢复成功】状态,并进行步骤11);若监控超过最大时间后该模块状态仍为故障,则判断该模块无法恢复正常,主状态机进入【模块恢复失败】状态,并进行步骤12)。
[0020]11)在【模块恢复成功】状态,主状态机向中断模块通知发生了故障模块恢复正常的中断事件,再由中断模块进一步向外部处理器发出中断信号,完成了单模块故障的全部处理与恢复过程,然后主状态机回到【空闲】状态;
[0021]12)在【同一 TMR中多模块故障】状态、【局部重加载失败】状态、或者【模块恢复失败】状态,均表示发生了无法恢复的模块故障;在这些状态下,主状态机记录发生故障的模块ID,并向中断模块通知相应的故障中断事件,再由中断模块进一步向外部处理器发出中断信号;然后主状态机进入【不可恢复故障】状态,等待处理器对于这些故障中断事件的后续处理;
[0022]13)在【不可恢复故障】状态,外部处理器收到中断后,获知TMR架构FPGA中发生了无法恢复的模块故障,处理器需要禁止相应的故障模块的工作状态监控使能,并根据情况决定是否进行进一步的功能级故障处理,在无法恢复的故障模块的状态监控使能被禁止后,主状态机回到【空闲】状态。
[0023]上述方法还包括故障注入与自测试:
[0024
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1