一种可重构区域内替代的冷三备份FPGA功能模块自修复方法
2023-01-10黄莉莉张砦王涛袁霄亮
黄莉莉,张砦,王涛,袁霄亮
(南京航空航天大学 自动化学院,江苏 南京 211106)
0 引言
宇宙强辐射环境下大量高能粒子受太阳活动的影响,引发单粒子效应。近几年,商用现货FPGA由于性能高、成本低、开发周期短且不受国外进口限制,被越来越多地应用于航天电子设备中[1],与空间级或军用级的FPGA相比,商用FPGA的抗辐射能力较低,更容易发生瞬时故障和永久故障。瞬时故障由于并未对硬件电路造成损伤,可以通过重新上电或者系统复位等方式修复,因此称为软故障;永久故障则是物理损伤,无法通过重新上电等方法修复,因此又称为硬故障。不同于地面环境,空间航天器在轨运行时远程控制复杂,一旦发生故障,难以及时人工维修,因此研究高可靠的FPGA系统自修复设计方法是提高商用SRAM型FPGA系统可靠性的有效途径和发展方向。
目前,FPGA功能模块故障自修复方法包括冗余技术、可重构技术和纠错码技术[2-3]。动态可重构技术通常只能修复软故障,无法处理硬故障;冗余技术包括热备份冗余和冷备份冗余,热备份具有故障中断时间短、容错速度快的优点,但是由于所有备份模块均需同时工作,运行功耗大;而冷备份的备份模块上电无需立即运行,虽然自修复中断时间较之热备份长,但是随着时钟频率的提高,故障的中断时间会大大减小,同时冷备份冗余能够降低系统运行功耗;纠错码技术只能纠正有限位的错误。因此,考虑资源消耗、运行时的功耗以及修复的可靠性,通常将传统硬件冗余技术和动态部分重构技术相结合[3-5],并且大多采用FPGA底层可重构区域间替代的冗余备份自修复方式[6-8]。这种自修复方式通常存在多个可重构功能模块,当模块间存在信号交互时,自修复系统需要在信号交互的各备份子模块之间增加额外的辅助连线切换逻辑,通过辅助连线切换逻辑对不同的备份模块进行布线的选择。容错系统越复杂,辅助连线切换逻辑就越复杂,占用硬件资源面积也就越大,同时辅助连线切换逻辑也容易受到单粒子效应的影响发生故障,进而导致FPGA故障率增加的同时可靠性降低。
为了提高功能模块的资源利用率和可靠性,在对有信号交互的系统进行容错时,减少或去除自修复结构中的辅助连线切换逻辑,针对两个动态模块中通用的布线逻辑进行缩减并且进行固定,只需生成要进行替换的可重构模块,减少了大量冗余的辅助连线切换逻辑和配置信息的数量,降低了FPGA硬件资源消耗,提高了系统可靠性。
综上,本文面向空间强辐射环境下商用SRAM型FPGA系统可靠性不足的问题,针对可重构区域间替代的冷备份自修复结构导致功能模块硬件资源利用率低的问题,提出了一种可重构区域内替代的冷三备份FPGA功能模块自修复方式,通过使用相同功能的配置信息对功能模块内的不同区域进行重构修复。为了实现可重构区域内替换的自修复方式,设计了一种冷三备份的DPR_O/TMR自修复结构。相比其他现有的自修复结构,DPR_O/TMR自修复结构能够进一步提高硬件利用率;同时为了保障可重构区域内替换的自修复方式的可靠性,利用冷三备份DPR_O/TMR自修复结构对软硬故障的处理进行分析,给出一种软硬故障分类处理的自修复策略,以提高不同软故障比例空间环境下的可重构区域内自修复方式的可靠性。通过理论分析和实验证明该自修复方式可行性和有效性,为SRAM型FPGA芯片的设计开发人员提供了一种通用性的FPGA系统自修复设计方法。
1 自修复方式与结构
1.1 可重构区域内替换的自修复方式
由于SRAM型FPGA的可重构特性,因此在同一个物理区域内通过加载不同的配置信息可以实现不同的功能,所以也将可重构模块称为功能模块。
在对FPGA系统功能模块进行容错时,主流的冷备份自修复方法大多采用FPGA底层可重构区域间替代的自修复结构。这种方法在对有信号交互的功能模块进行容错时,需要在各子模块之间增加额外的辅助连线切换逻辑资源。
如图1(a)所示,系统功能模块由存在信号交互的模块A和模块B共同实现,模块A和模块B通过重布线开关块相互通信。这里的重布线开关块即辅助连线切换逻辑,模块A和模块B分别位于可重构区域RP1和RP2内,可重构区域RP3和RP4分别用于修复模块A和模块B,初始时为空区域;图1(b)中,当模块A发生故障后,重布线开关块迅速断开开关k1,切断模块A和模块B之间的连线;图1(c)中,故障隔离后用模块A的配置信息动态重构区域RP3并在重构完成后闭合开关块k3,建立可重构区域RP2和RP3之间的通信连接;如图1(d)所示,用空配置信息动态重构区域RP1,屏蔽故障区域RP1内的故障影响。
图1 可重构区域间替代的冷备份自修复方法
这种方法的整个修复过程一共分为4步,分别是隔离故障—为替代区域配置功能—重建立区域间通信连接—屏蔽故障区域。在对大规模信号交互的功能模块进行容错时,辅助连线切换逻辑会更加复杂,占用硬件资源面积也更大,进而导致FPGA的故障率增加可靠性降低。
本文针对有信号交互的功能模块,提出了一种可重构区域内替代的冷备份自修复方法。如图2(a)所示,模块A和用于替代修复模块A的区域都位于可重构区域RP1内,模块A处于RP1的上半部分区域,下半部分为空区域,此时“A模块+空模块+连线c1”作为RP1的一套配置信息;模块B同理,可重构区域RP1和RP2之间连线c0固定。如图2(b)所示,模块A发生了故障。图2(c)中通过使用“空模块+A模块+连线c3”配置信息动态重构区域RP1,迅速同时完成功能替代、故障屏蔽和连线切换。本文采用的可重构区域内替代的冷备份自修复方法无需增加额外的重布线开关逻辑块,修复过程只需要1步完成,能够有效降低FPGA硬件资源消耗,提高系统可靠性。
图2 可重构区域内替代的冷备份自修复方法
1.2 DPR_O/TMR冷三备份自修复结构
为了验证可重构区域内替换的自修复方式的可靠性,本文提出一种DPR_O/TMR冷三备份结构。
DPR_O/TMR冷三备份功能模块自修复结构如图3中右侧虚线框内所示。同一功能模块(FCx)中的功能分子(FMx)实现相同逻辑功能但使用不同底层硬件资源,同一时刻每个功能模块(FCx)只有一个功能分子(FMx)工作,即图3中功能分子FM01,其他两个功能分子FM02和FM03采用冷备份的方式,将其配置信息形式保存于外部配置存储器中。
图3 自修复系统功能模块
针对DPR_O/TMR冷三备份的自修复结构,其配置信息替换的方式如图4所示。M0、M1、M2和M3分别为功能模块(FC)的四套配置信息,控制电路会在自修复系统检测出故障信号后,为功能模块(FC)重新加载配置信息完成故障容错。其中M1、M2和M3为实现相同逻辑功能的配置信息,当分别加载M1.bit、M2.bit和M3.bit 3套配置信息时,功能模块中工作的功能分子分别为FM01、FM02和FM03。而M0为黑盒配置信息,当加载M0.bit配置信息时,功能模块中没有工作的功能分子,实现对该功能模块进行逻辑功能屏蔽的效果。在同一时刻只有一套配置信息运行,另外的两份配置信息处于冷备份状态。
图4 功能模块中的配置信息图
根据以上的自修复结构,本文采用软故障修复方法通过使用正在工作的功能分子配置重构功能细胞刷新修复故障。如图5(a)所示,初始功能细胞中工作的功能分子为FM01,在图5(b)中FM01发生了软故障。因此,图5(c)中控制细胞通过使用M1配置信息重构功能细胞刷新修复了该软故障。
硬故障修复方法则通过更换功能分子配置重构功能细胞替代修复故障,当无法再修复时,通过加载黑盒配置屏蔽故障。如图5(d)所示,功能分子FM01发生了硬故障,图5(e)中控制细胞通过使用M2配置信息重构功能细胞替代修复了该硬故障。
图5 软/硬故障修复方法
2 物理实验设计及验证
2.1 物理实验设计
本节以Zynq系列SoC平台为例,采用8位流水线加法器作为功能模块,对本文提出的自修复方式和自修复结构进行实验设计和验证。
图6所示为Xilinx Zynq系列开发板。图中主要使用的硬件包括用于搭载自修复系统的Zynq SoC芯片、用于外部位流存储的DDR3芯片和SD卡(初始位流加载)、用于故障注入和观察各细胞状态的矩阵键盘、用于观察ILA监测信号的JTAG接口和用于位流加载调试的UART接口。物理实验中,自修复系统的重构时钟频率和ILA的工作频率为100 MHz,工作时钟频率和ILA监测时钟频率为50 MHz。
图6 Xilinx Zynq系列SoC开发板
2.2 软故障自修复实验验证
图7为软故障自修复过程,该观测窗口记录了重构修复起点附近的信号变化。
图7 软故障自修复过程实现图
1)在第994个观测点时,注入一个软故障。
2)在第1 000个观测点时功能模块FC3发出自检测信号;第1 024个观测点时,功能模块输出全为0的错误信号。
3)第1 008个观测点时,功能模块检测到发生故障后采用FM01刷新修复该故障。
4)第1 068个观测点时,开始进行传输配置位流,同时开始对重构过程计时。
图8为软故障自修复完成时的监测结果,该观测窗口记录了重构修复终点附近的信号变化。
图8 软故障自修复完成时的监测结果图
①在第1 000个观测点时,ILA捕获到cap_req信号下降沿,标志着重构修复过程完成,通过repair_time信号可以看出整个重构过程为381 μs。
②在第1 019个观测点时,故障被消除,软故障刷新修复完成。
2.3 硬故障自修复实验验证
图9为硬故障自修复过程,该观测窗口记录了重构修复起点附近的信号变化。
图9 硬故障自修复过程实现图
1)在第939个观测点时,系统完成了上一次故障自修复的执行操作。
2)为了使该故障保持为一个硬故障,在第996个观测点时,系统根据检测到上一次自修复的完成信号,随即再次注入一个故障。
3)在第1 020个观测点时FC3检测出该故障。控制电路根据FTEF 4)第1 004个观测点时,功能模块检测到发生故障并准备采用FM02替代修复该故障。 5)第1 062个观测点时,开始传输配置位流,同时开始对重构过程计时。 图10为硬故障自修复完成时的监测结果,该观测窗口记录了重构修复终点附近的信号变化。 图10 硬故障自修复完成时的监测结果图 ①在第1 000个观测点时,ILA捕获到cap_req信号下降沿,标志着重构修复过程完成,整个重构过程为381 μs,传输配置位流75 742个字节。 ②在第1 012个观测点时,故障被消除,硬故障替代修复完成。 本节从系统可靠性、硬件资源消耗、自修复时间消耗三个方面对可重构区域内替换的自修复方式进行性能对比分析。 可靠性是一种评估系统性能好坏的重要指标,是指系统在规定条件和规定时间内完成预定功能的能力[9]。评价系统可靠性的定量测度称为可靠度,可靠度指系统在t0时刻正常工作的条件下,在时间区间[t0,t]内能正常工作的概率,常用R(t)表示。若一个模块在正常生命期内的失效率为常数λ,则它的可靠度为 R(t)=e-λt (1) 假设该模块在t时刻正常工作,则其在(t+Δt)时刻的可靠度为1-e-λt,当Δt取值很小时,该公式可以化简为λΔt[10]。 对于一个可维修的系统,由于其修复时间相对于正常工作时间很短,因此系统的平均寿命可以用平均无故障间隔时间MTBF来表示,即可靠度R(t)的均值,表达式如下: (2) 为了验证本文提出的可重构区域内替换自修复设计方法的可靠性,以不同的自修复结构对其可靠性进行分析。 目前,针对结合动态部分重构的三备份自修复结构包括使用三个工作区域的热三备份自修复结构、使用两个工作区域和一个空闲区域的冷三备份结构,分别记为DPR_TMR、DPR_D/TMR以及本文提出的采用一个工作区域和两个空闲区域结构的DPR_O/TMR。三种自修复结构如图11所示,可以看出DPR_O/TMR可以修复两次故障,系统仍然能正常工作,而DPR_D/TMR和DPR_TMR只能修复一次故障,当第二次故障时系统无法判断出正确的结果。显然,在不考虑容错模块的差异性时,DPR_O/TMR的容错能力更强。 图11 基于动态部分重构的三备份自修复结构图 由于DPR_O/TMR的每一个工作模块相对于DPR_D/TMR和DPR_TMR两种方法需要自身具备故障自检测设计,因此增加了一定的硬件资源,而DPR_D/TMR和DPR_TMR可以通过表决器或比较器实现故障检测,无需在每个工作模块中增加故障自检测设计。 如图12所示,为了能够合理比较三种三备份自修复结构的可靠性,将DPR_D/TMR和DPR_TMR也采用相同的具有自检测设计的模块作为容错对象,同时使用选择器取代两种结构中的表决器和比较器,使三种自修复结构具有相同的硬件资源消耗,并分析其可靠性。 图12 等效后的三备份自修复结构图 考虑到不同的复杂环境下,软故障和硬故障发生概率有很大差别,因此设置软故障比例参数S(指在特定环境下,系统中发生的故障为软故障的比例)。由于DPR刷新方法能够有效胜任全部软故障环境,因此几种自修复结构在全部软故障环境下的可靠性相同。根据软故障比例参数S,可以用λS表示错误率中可以通过重构修复的软故障错误率,λ(1-S)表示失效率中不可以通过重配置修复的硬故障错误率。 基于马尔可夫模型[11],可以分别计算出本文功能模块的DPR_O/TMR结构与DPR_D/TMR、DPR_TMR自修复结构及单模动态部分刷新结构的基于软故障比例参数S的可靠度函数: (3) 根据以上可靠度函数,以失效率λ=1×10-6h、系统运行总时间tmax=107h、软故障比例参数S∈[0,1]为例,绘制如图13所示的可靠度R(t)随软故障比例S变化三维对比曲面图(本刊为黑白印刷,如有疑问请咨询作者)。3种自修复结构的可靠度R(t)都随S增大而提升,且DPR_O/TMR结构的可靠度高于DPR_D/TMR和DPR_TMR,DPR_D/TMR的可靠度略高于DPR_TMR。 图13 R(t)随S变化三维对比曲面图 进一步分析不同软故障比例S对系统可靠性MTBF的影响。由于S=1时,3种自修复结构的可靠性都接近无穷大,因此分别计算出S∈[0,0.95]时3种自修复结构的MTBF。如图14所示,3种自修复结构的MTBF都随S增大而提升。相同S时,DPR_O/TMR的可靠性MTBF始终最高,DPR_D/TMR可靠性MTBF略高于DPR_TMR。当S=0.95时,DPR_O/TMR系统的可靠性是DPR_D/TMR的1.5倍,是DPR_TMR的1.64倍,是动态部分刷新的3倍。 图14 MTBF随S变化曲线图 综上所述,与现有设计方法相比,DPR_O/TMR的结构更好地适应可重构区域内替换的自修复方式,与现有的方法相比,使可重构区域内替换的自修复方式可靠性相对达到最大。 以8位流水线加法器为例,对采用可重构区域内和可重构区域间替代自修复方法的功能模块进行硬件资源消耗对比。 如表1所示,采用可重构区域间替代方法的冷三备份(DPR_O/TMR)功能模块自修复结构资源消耗是原功能模块的6.12倍,而采用可重构区域内替代方法的DPR_O/TMR自修复结构资源消耗是原功能模块的5.82倍,采用可重构区域内替代方法较可重构区域间替代方法的硬件资源减少了7.48%。由此可见采用可重构区域内替换修复的DPR_O/TMR方法较之可重构区域间替换修复的DPR_O/TMR方法能够有效减少硬件资源消耗。 表1 不同冷备份替代修复方法的硬件资源消耗 设系统的工作时钟周期为Tclk,重构时钟周期为Treclk,配置位流的大小为Nbit(字节),则自修复系统功能模块的故障修复时间为5Tclk+58Treclk+(Nbit/200)μs,本文物理实验中取Tclk=50 MHz,Treclk=100 MHz,位流的配置传输时间约为(Nbit/200)μs。若采用可重构区域间替换的自修复方式所需要的部分配置位流大小Nbit=75 742个字节,计算出故障修复时间约为379.39 μs;若采用全局可重构替换的自修复方式所需要的配置位流大小为Nbit=1 049 741个字节,计算出故障修复时间约为5 249.41 μs;而采用本文可重构区域内替换的冷备份自修复方式需要的部分配置位流大小Nbit=37 871个字节,可以计算出故障修复时间约为190.035 μs。因此采用本文方式较可重构区域间替换的自修复方式时间消耗减少了1倍;较全局可重构的自修复方式时间消耗减少了26.6倍。 在空天环境下,一旦系统发生故障,需要及时对系统进行修复,使其恢复正常运行。比如当卫星处于变轨运动时,若系统发生故障不能及时恢复,会对整个系统产生不可预估的后果。综上分析,针对同样大小粒度的功能模块,本文提出的模块自修复方式具有较小的自修复时间消耗,减少系统自修复的时间,提高系统的可靠性,给空天环境下实时运行的航天设备提供自修复设计的通用性参考。 1)提出了一种可重构区域内替换的自修复方式,设计了一种DPR_O/TMR自修复结构,这种自修复结构能够更好地适应可重构区域内替换的自修复方式,并且能够进一步减少资源的消耗; 2)为了保障可重构区域内替换的自修复方式的可靠性,研究了一种软硬故障分类处理的FPGA系统自修复策略,以应对空天环境下不同比例的软硬故障; 3)从系统可靠性、时间消耗、硬件资源消耗三个方面进行了性能分析,说明了本文可重构区域内替代的冷三备份FPGA功能模块自修复方法的可行性与高效性。3 性能分析
3.1 可靠性分析
3.2 硬件消耗分析
3.3 时间消耗分析
4 结语