王 豪 刘 博 张旭光
上海航天电子技术研究所,上海201109
静态存储器(Static Random Access Memory,SRAM)型现场可编程门阵列(Field Programmable Gate Array,FPGA)功能强大,具有可重复编程、开发周期短等显著优势,已越来越多地应用于国内外航天领域。但SRAM型FPGA抗空间辐射能力较弱,容易发生单粒子翻转(Single Event Upset,SEU)[1-2]问题,对卫星功能造成了不同程度的故障,因此必须采取一定的抗辐加固措施以提高其可靠性。
本文研究了一种采用三模冗余(Triple Module Redundancy,TMR)并对FPGA配置区域进行定时刷新的抗辐加固方案,同时对该方案的可靠性和安全性进行了评估,最后给出了评估结果。
SRAM型FPGA内部的配置区——配置存储器、功能区——块存储器、触发器等都是单粒子翻转的敏感区。当一个高能带电粒子穿过灵敏区时,将会使FPGA器件内部导通管截止、截止管导通,引起器件逻辑状态翻转——即单粒子翻转[3]。因此,必须采取一定的抗辐加固措施以应对空间高能粒子对SRAM型FPGA造成的单粒子翻转(SEU)故障。
设计中常采用三模冗余(Triple Module Redundancy,TMR)[4]技术对要在 FPGA内实现的硬件设计进行保护。图1所示为采用三模冗余架构的FPGA系统原理框图,可以看出这种方法通过嵌入冗余处理机制到用户应用来屏蔽故障,从而获得正确的输出,本质上是一种利用硬件冗余或信息冗余进行故障屏蔽的容错方法。
图1 三模冗余原理框图
然而,冗余容错方法无法改变FPGA的配置内容,所以对于发生在配置存储器中的SEU并无纠正能力,若SEU积累将使得TMR失效,最终导致故障发作。
针对三模冗余(TMR)系统无法纠正存储区中发生的SEU故障,本文提出一种三模冗余加回读刷新的解决方案,应对空间FPGA单粒子翻转。
回读刷新通过回读刷新器件实现,有2种工作模式:回读和刷新。回读模式下该器件读取FPGA内配置存储区的数据,并与存储在PROM中的原始配置数据进行比较,发现数据不一致的情况,就意味着配置存储器单元发生了SEU,进而将PROM中存储的原始配置文件重新写入FPGA。刷新模式下不管FPGA有没有发生SEU,均周期对配置存储区进行刷新。采用回读刷新加三模冗余架构的FPGA系统原理如图2所示。其中,PROM芯片内部存储FPGA的配置信息,该器件采用反熔丝工艺不会受空间SEU干扰;回读刷新器件为专用ASIC芯片对空间单粒子干扰免疫,负责读取PROM中数据并对FPGA内部配置区进行定时刷新,如果FPGA内部配置区发生SEU将对翻转的数据进行有效纠正;FPGA内部电路采用TMR设计。
系统可靠性是指系统在规定条件下和规定时间内完成规定功能的能力。可靠性是一个定性的概念,而实际工作中往往需要用可靠度定量地表现可靠性的高低。可靠度是指系统在初始时刻(t=0)时可靠度为1的条件下,在0~t时间内正常工作的概率。由于系统是冗余系统,系统发生故障是余度性能降级的动态过程,利用马尔可夫过程理论能够对余度系统进行精确的可靠性建模分析,较为真实地描述系统的实际工作过程[5-6]。
为方便讨论及建模,将图2所示的回读刷新加TMR的FPGA系统可简化为如图3所示的逻辑框图;回读刷新器件作为SEU故障修复模块,周期地对FPGA内部配置存储区进行刷新。
采用TMR的系统具有23=8种状态,当一个模块发生故障时,不会影响系统的正常工作;而当失效模块数≥2时,系统失效。该状态可视为马尔可夫吸收态。假设每个模块的失效率都相同,均为λ,修复率为μ。
图2 三模冗余与回读刷新架构功能框图
根据可靠性分析理论[7],若某模块在时刻t正常工作,则在t+Δt时刻发生常规故障的概率为p=1-e-λΔt,当 Δt→0 该故障概率可简化为 λΔt。
基于以上假设,对FPGA配置区进行确定周期刷新且考虑共模故障影响下的三模冗余系统的马尔可夫模型状态转移如图4所示,其马尔可夫状态可描述如下:
图3 简化后三冗余及回读刷新FPGA系统框图
1)状态 S1—“111”表示 A,B,C 三个模块均未受到SEU影响、功能均正常;
2)状态S2—“110”表示某时刻C模块受到SEU影响,功能异常且翻转单元暂未得到刷新纠错。A,B模块正常,经三取二表决后系统仍能正常工作。
3)状态S3—“101”表示某时刻B模块受到SEU影响,功能异常且翻转单元暂未得到刷新纠错。A,C模块正常,经三取二表决后系统仍能正常工作。
4)状态 S4—“011”表示某时刻 A模块受到SEU影响,功能异常且翻转单元暂未得到刷新纠错。B,C模块正常,经三取二表决后系统仍能正常工作。
5)状态S5—“100”表示某时刻 B,C模块受到SEU影响,功能异常而且翻转单元暂未得到刷新纠错,经三取二表决后系统功能失效。
6)状态S6—“001”表示某时刻 A,B模块受到SEU影响,功能异常而且翻转单元暂未得到刷新纠错,经三取二表决后系统功能失效。
7)状态S7—“010”表示某时刻 A,C模块受到SEU影响,功能异常而且翻转单元暂未得到刷新纠错,经三取二表决后系统功能失效。
8)状态 S8—“000”表示某时刻 A,B,C 模块均受到SEU影响,功能异常且翻转单元暂未得到刷新纠错,系统功能失效。
图4 采用TMR和回读刷新的FPGA系统的马尔可夫状态转移图
记Pi(t)=P(X(t)=i),表示t时刻系统处于状态 i的概率,i∈ {1,2,3,...,8},令 P(t)=[P1(t),P2(t),...,P8(t)],则 P(t)满足状态方程:P'(t)=AP(t),其中,A为状态转移密度矩阵,由状态转移图可知:
A和P(t)代入方程P'(t)=AP(t)中,并代入初始条件 P(0)= [1,0,0,...,0],可得到 t时刻各个状态的概率,从而求得该系统的可靠度R(t)和安全度S(t):
对于P(t)的状态方程P'(t)=AP(t),可以通过Laplace变换的方法求得其解析解,进而求得系统的可靠度和安全度,但其计算工作量相当庞大,为此,采用Matlab中的求解微分方程的Ode45指令进行仿真计算[8]。其中单粒子翻转故障率λ可参照表1所示Xilinx公司FPGA单粒子翻转率。
由表1可以看出随着FPGA容量的增加,单粒子翻转率也随之增加。系统修复率μ与回读刷新的频率有关,以 5s,10s,15s,1min,3min 的刷新周期为例对采用Virtex2系列XQR2V3000型FPGA系统的可靠度和安全度进行分析。
表1 Xilinx公司单粒子翻转率
表2 λ=1.07 day-1时参数μ对系统可靠性安全性影响
从表2可以看出,随着参数μ的增加,三模冗余系统的可靠度和安全度均有所提高,初始时刻系统完好可靠度和安全度皆为1.000,随着运行时间的增加,系统可靠度和安全度均有所下降。图5所示的仿真波形为t=0~86400h,λ =1.07day-1时,三模冗余与回读刷新系统的可靠度和安全度随修复率μ的变化曲线。
图6所示为 t=0~86400h,μ =0.001,λ =1.07day-1时,采用三模冗余和回读刷新设计的FPGA系统与单模无刷新FPGA系统的可靠度[9]比对。由图中可以看出,随时间的增加,两者的可靠度均有所下降,但采用三模冗余与回读刷新的FPGA系统的可靠度明显优于单模无刷新系统。
图5 不同刷新周期系统可靠度r随时间t变化曲线
图6 三模冗余与回读刷新系统与单模无刷新系统的可靠度比对
SRAM型FPGA由于具有资源丰富、可重复擦写等优点,在宇航领域应用越来越广,但SRAM型FPGA存在单粒子翻转(SEU)风险,所以必须采取措施。本文提出了一种三模冗余与回读刷新功能相结合的抗辐加固设计,并对其可靠性进行了分析和仿真,仿真数据证明该设计架构具有较高的可靠性,对宇航型号FPGA设计具有较好的参考意义。
[1] 邢克飞,杨俊,王跃科,等.Xilinx SRAM型FPGA抗辐射设计技术研究[J].宇航学报,2007,28(1):123-129.(Xing Kefei,Yang Jun,Wang Yueke,et al.Study on the anti-radiation technique for Xilinx SRAM-based FPGA[J].Journal of Astronautics,2007,28(1):123-129.)
[2] Cheatham J A,Emmert J M,Baumgart S.A survey of fault tolerant methodologies for FPGAs[J].ACM Transactions on Design Automation of Electronic Systems,2006,11(2):501-533.
[3] 邱金娟,徐宏杰,潘雄,等.SRAM型FPGA单粒子翻转测试及加固技术研究[J].电光与控制,2011,18(8):84 ~85.(Qiu Jinjuan,Xu Hongjie,Pan Xiong,et al.Study on Testing and Harden Technique of Single Event Upset for SRAM-Based FPGA[J].Electronics Optics &Control,2011,18(8):2011:84-85.)
[4] 顾义坤,倪风雷,刘宏.Xilinx FPGA自主配置管理容错设计研究[J].宇航学报,2012,33(10):1520~1521.(Gu Yikun,Ni Fenglei,Liu Hong.Fault-Tolerance Design of Xilinx FPGA with Self-Hosting Configuration Management[J].Journal of Astronautics,2012,33(10):1520-1521.)
[5] Swift G M,Rezgui S,George J,et al.Dynamic testing of Xilinx Virtex-II field programmable gate array(FPGA)input/output blocks(IOBs)[J].IEEE Transactions on Nuclear Science,2004,51(6):3469-3474.
[6] Graham P,Caffrey M,Johnson D E,et al.SEU mitigation for half-latch in Xilinx Virtex FPGA[J].IEEE Transactions on Nuclear Science,2003,50(6):2139-2146.
[7] 王丽华,徐志根,王长林.可维修三模冗余结构系统的可靠度与安全度分析[J].西南交通大学学报,2002,37(1):103-107.(Wang Lihua,Xu Zhigen,Wang Changlin.Reliability and Security Analysis of 3-Module Redundancy System with One Maintainable Unit[J].Journal of Southwest JiaoTong University,2002,37(1):103-107.)
[8] Dhillon B S,Subramanian P.Reliability analysis of triple modular computer systems with redundant voters and restricted maintenance[J].Journal of Quality in Maintenance Engineering,2001,7(2):151-164.
[9] 邹见效,徐红兵,张正迁.基于三重冗余的ETS控制系统设计及可靠性评估[J].电子科技大学学报.2010,39(5):795 ~ 799.(Zou Jianxiao,Xu Hongbing,Zhang Zhen-qian.Design and Reliability Evaluation of ETS Control System Based on Triple Modular Redundancy[J].Journal of University of Electronic Science and Technology of China,2010,39(5):795-799.)