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

文档序号:8412414阅读:来源:国知局
]I)处理器通过局部总线对寄存器模块中的各模块监控使能寄存器进行读写,禁止所有模块的监控使能;
[0025]2)处理器通过局部总线对寄存器模块中的故障注入寄存器写入故障注入命令及本次故障注入所对应的局部重加载ID ;
[0026]3)寄存器模块向主状态机发出故障注入命令和本次故障注入所对应的局部重加载ID ;
[0027]4)主状态机在对于所有模块的监控使能都被禁止时,收到故障注入命令,则从【空闲】状态转入【启动故障注入】状态;
[0028]5)在【启动故障注入】状态,主状态机记录本次故障注入所对应的局部重加载ID,然后转入【发起故障注入局部重加载】状态;
[0029]6)在【发起故障注入局部重加载】状态,主状态机向局部重加载控制电路发送局部重加载命令及局部重加载ID,以使其开始更改TMR架构FPGA中某个模块的配置数据,之后,主状态机监控从局部重加载控制电路返回的重加载完成信号,如果收到重加载完成信号,则主状态机进入【故障注入局部重加载完成】状态来进行后续处理,并进行步骤7);如果超过了规定的最大时间仍未收到重加载完成信号,则主状态机进入【故障注入局部重加载失败】状态,并进行步骤10);
[0030]7)在【故障注入局部重加载完成】状态,主状态机通知寄存器模块本次故障注入已完成,然后转入【空闲】状态;寄存器模块的主状态机工作状态寄存器会对故障注入完成的事件进行记录;
[0031]8)处理器通过局部总线对寄存器模块中的主状态机工作状态寄存器进行循环读取,直至发现本次故障注入已完成;
[0032]9)处理器通过局部总线对寄存器模块中的各模块监控使能寄存器进行读写,将被故障注入的模块及其对应的在同一 TMR架构中的另两个冗余模块的工作状态监控设置为使能;然后控制器将监控到被故障注入的模块的故障状态,并且开始如前文所述的故障监控、管理与恢复过程,从而完成整个系统的故障注入与自测试过程。
[0033]10)在【故障注入局部重加载失败】状态,主状态机通知寄存器模块本次故障注入局部重加载失败,然后转入【空闲】状态;寄存器模块的主状态机工作状态寄存器会对故障注入局部重加载失败的事件进行记录。
[0034]11)处理器通过局部总线对寄存器模块中的主状态机工作状态寄存器进行循环读取,直至发现本次故障注入局部重加载失败,系统中局部重加载的功能出现问题,需对其进行排查。
[0035]本发明的优点是:
[0036]I)本控制器及其控制方法可以同时提高系统的可靠性和可用性。在SRAM工艺FPGA发生导致单模块故障的SEU之后,本控制器不仅可以及时监测到故障,同时还能在不影响系统正常工作的情况下自动对该故障模块进行电路恢复来使其重新参与工作,这就在很大程度上避免了 SRAM工艺FPGA中SEU累积造成的系统失效问题,所以,相较于传统的FPGA三模冗余设计方法而言,本控制器及其控制方法通过故障自愈的方式既提高了系统的可靠性,同时又加大了系统在很多故障情况下保持正常工作的可能性,即提高了系统的可用性。
[0037]2)本控制器提供的是一种通用平台式的FPGA三模冗余架构的故障监控、管理与恢复手段。本控制器的实现方式和控制方法与TMR架构的SRAM工艺FPGA中设计的具体功能无关,所以对于在具有局部重加载功能的SRAM工艺FPGA中采用模块级粒度的三模冗余技术进行设计的任何项目,都可以直接使用或者经过简单修改后使用本控制器来对其TMR架构的FPGA进行故障监控、管理与恢复。
[0038]3)本控制器发明具有很好的自动化特性,在工作时无需处理器的干预便可自行完成对于TMR架构FPGA中SEU导致的单模块故障的监控、管理和恢复全过程,而现有的其他故障管理和恢复方法大多都需要处理器进行直接控制,相较而言,本控制器发明节约了系统的计算资源。
[0039]4)本控制器内部集成了一个灵活有效的故障模块ID与重加载命令ID的映射电路。通过该映射电路,用户可以根据自己的应用需要灵活地建立起故障模块ID和对该模块进行电路恢复时所需进行的局部重加载的命令ID之间的对应关系。这也进一步提高了本控制器的通用特性,在很多应用场合都可以为用户带来便利。
[0040]本控制器在硬件上使用Flash工艺或者反熔丝工艺的FPGA作为平台来进行实现。控制器的前端为并行局部总线与中断信号,外部处理器通过局部总线和中断来对控制器进行控制。控制器的后端与TMR架构的SRAM工艺FPGA及其局部重加载控制电路相连,用于监控TMR架构FPGA的工作状态,并在TMR中单个模块发生故障时,利用局部重加载控制电路来对其进行恢复。
【附图说明】
[0041]图1是本发明的控制器硬件组成示意图;
[0042]图2是本发明控制器信号的连接方式示意图;
[0043]图3是本发明主状态机的状态变迀图;
图4是本发明ID映射电路的实现不意图;
【具体实施方式】
[0044]参见图1,控制器由图中左侧部分组成,其与TMR架构的SRAM工艺FPGA—起协同工作,来完成对SRAM工艺FPGA的故障管理与恢复。控制器硬件由六部分组成,分别为:a.寄存器模块;b.中断模块;c.1D映射电路;d.主状态机;f.外部处理器;g.SRAM工艺FPGA局部重加载控制电路。其中寄存器模块通过并行局部总线连接到外部处理器,外部处理器可通过对寄存器模块中各个寄存器进行读写来监控控制器的工作状态,并对其工作模式进行控制,包括读取当前TMR架构FPGA各冗余模块的工作状态,读取控制器主状态机的工作状态,设置对于各冗余模块工作状态的监控使能、设置故障模块ID与重加载ID的映射关系、对控制器进行故障注入测试、对各个中断事件的使能与禁止等。中断模块用于向外部处理器发送需要其知悉或处理的中断事件,例如有冗余模块发生故障、故障模块恢复失败、局部重加载过程失败等等。ID映射电路用于管理故障冗余模块ID和局部重加载命令ID之间的映射关系,该映射关系可由外部处理器通过寄存器模块进行设置和更改,通过这样的映射机制可以增加控制器的灵活性与通用性。主状态机是本控制器的核心部分,该状态机用于监控TMR架构FPGA各冗余模块的工作状态,并在各被监控模块发生故障时,进行故障类型判断,若为单模块故障则启动故障恢复工作,故障恢复工作包括获取局部重加载ID、发起局部重加载、重加载完成后对模块发送复位信号、等待模块恢复等阶段。另外,主状态机也负责进行控制器自测试时的故障注入,故障注入是通过向冗余模块中重加载入错误的配置数据来实现的。主状态机的状态变迀图见附图3,有关该状态机的详细工作流程在后文中会进一步仔细介绍。
[0045]本控制器中的SRAM工艺FPGA局部重加载控制电路是用于对TMR架构FPGA中的单个模块故障进行恢复,控制器向局部重加载控制电路发出重加载命令及ID,来让其开始对TMR架构FPGA中的故障模块进行配置数据的重新加载,待重新加载完成后,局部重加载控制电路向控制器返回重加载完成信号。通过文献资料检索可以知道当前已有多种SRAM工艺FPGA局部重加载控制电路的设计,所以局部重加载控制电路并不是本控制器发明的技术重点,在此就不对其实现方式进行详细描述。
[0046]为使本控制器具有较高的抗辐射特性,本控制器中处理器之外的电路在Flash工艺或者反熔丝工艺的FPGA上进行实现。
[0047]本控制器用于为TMR架构的SRAM工艺FPGA提供故障管理与恢复手段,以提高其工作的可靠性,本控制器与TMR架构FPGA相胶连的信号为各冗余模块工作状态信号和各冗余模块复位信号,以及局部重加载的控制信号,这些信号的连接方式详见附图2。TMR架构FPGA中每个功能逻辑由三个冗余模块构成,并通过表决逻辑来给出判决为多数的输出信号,每个冗余模块的工作状态由表决逻辑给出,若模块输出为表决逻辑中的多数值,则其工作状态判定为正常,若模块输出为表决逻辑中的少数值,则其工作状态判定为故障,若表决逻辑中发现三个冗余模块的输出各不相同,则三个冗余模块的工作状态都判定为故障。各冗余模块复位信号分别连接到每一个冗余模块,每个复位信号均用于在相应模块发生故障并进行局部重加载之后对其进行复位,以使该模块在局部重加载完成后进入稳定的初始状
??τ O
[0048]本发明各功能的工作流程是:
[0049]本控制器可以对TMR架构的SRAM工艺FPGA的工作状态进行监控,并对其各个冗余模块中发生的故障进行分类管理与自动恢复。另外,通过本控制器还可向TMR架构FPGA中注入故障,来测试整个系统的容错特性。本控制器的两个主要功能的工作流程如下:
[0050]一、对TMR架构FPGA的故障监控、管理与恢复过程:
[0051]1.处理器通过局部总线对“寄存器模块”中的各模块监控使能寄存器进行读写,把需要进行故障状态监控的模块设置为监控使能。
[0052]2.控制器自动对TMR架构FPGA中的各冗余模块的工作状态进行监控,直至监测到某个监控使能的模块发生了故障,此时“主状态机”从【空闲】状态转入【监测到故障】状
??τ O
[0053]3.控制器对故障的类型进行判断,如果TMR架
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1