文章信息
- 邱根, 毕东杰, 彭礼彪
- QIU Gen, BI Dongjie, PENG Libiao
- 一种应用于SRAM型FPGA寄存器的容错设计
- A fault-tolerant scheme applying to SRAM-based FPGA registers
- 中国测试, 2018, 44(9): 75-79, 95
- CHINA MEASUREMENT & TEST, 2018, 44(9): 75-79, 95
- http://dx.doi.org/10.11857/j.issn.1674-5124.2018.09.014
-
文章历史
- 收稿日期: 2018-05-03
- 收到修改稿日期: 2018-06-27
基于SRAM的现场可编程门阵列(FPGA)具有高性能、高度灵活性、反复可编程和开发周期短等优点,广泛应用于航空航天系统的电子设备中[1]。由于太空环境充满了各种高能粒子,高能粒子撞击工作中的电子器件会引发辐射效应(如单粒子翻转效应),并导致器件发生故障。SRAM型FPGA中包含了大量存储单元,如配置存储器、用户存储器和寄存器,单粒子翻转作用于存储单元会导致其逻辑状态发生翻转;单粒子翻转所造成的器件错误属软错误,通过系统复位、重新加电或重新写入能够恢复到正常状态[2]。
寄存器广泛应用于FPGA系统设计中,作为系统的敏感资源之一,一旦发生故障会产生错误的指令、发送错误的数据,导致系统功能异常。目前,多种容错技术已经广泛应用于太空环境下SRAM 型 FPGA 软错误的防护。文献[3]中采用一种抗辐射增强型的寄存器设计,从电路上对寄存器的构成进行加固以防止软错误发生,但该方法只适用于ASIC电路设计。文献[4]采用一种擦洗技术(scrubbing)定期对配置存储器进行擦除和重写,该方法通过对FPGA的逻辑功能重新配置来消除软错误的影响,虽能修复故障,但并不能屏蔽故障。文献[5]中运用错误校正码(ECC)技术,在数据包的后端添加额外的校验数据位,来实现读取/写入数据的准确性,能在一定程度上对存储器数据位进行检错和纠错。文献[6]中将ECC用于寄存器的错误检测和修复,但这种方法需要对每个寄存器添加ECC编码器和译码器,造成额外的资源开销,同时ECC译码器会对电路引入大量延迟,该方法不适用于高速电路实现。冗余设计是目前采用最为广泛的寄存器容错设计方法,如文献[7-8]中采用三模冗余设计结构对寄存器进行容错设计,文献[9-10]中将三模冗余结构和动态重构技术结合实现对寄存器的错误屏蔽和修复,但是三模冗余设计通常带来两倍以上的额外逻辑资源和功耗开销,难以满足对资源占用率高的复杂电子系统设计要求。
本文针对现有方案的不足,提出了一种基于奇偶校验的双模冗余设计结构对SRAM型FPGA电路中的寄存器进行防护,该设计结构以触发器为单位,从细粒度角度对寄存器的数据位进行错误屏蔽,并将该设计结构在Xilinx Virtex®-6 FPGA上进行了设计验证。
1 寄存器防护设计方法 1.1 三模冗余防护结构SRAM型FPGA主要由可编程逻辑块(CLB)、可编程IO模块和可编程内部连线组成。其中CLB为FPGA电路设计和实现的主要可配置资源,它主要由查找表(LUTs)和触发器(Flip-Flops)构成,用于实现电路的组合逻辑和时序逻辑。以Xilinx Virtex®-6 FPGA为例,每个CLB包含两个Slice,每个Slice又包含4个6输入查找表和8个触发器,每个查找表可以实现一个6输入1输出的逻辑功能或者实现一个5输入2输出的逻辑功能。
寄存器的存储电路由触发器构成,一个触发器能存储一位二进制数,所以由
1.2 PC-DMR防护结构
针对三模冗余设计结构查找表端口利用率不高、资源开销过多等缺点,本文设计采用一种带奇偶校验位的双模冗余防护结构(parity check dual modular redundancy,PC-DMR)对寄存器进行防护。
图2所示为针对两位触发器的PC-DMR防护结构。该结构利用FPGA查找表的结构特点,将两位触发器作为一组进行容错设计,每组包含两个数据位和一个奇偶校验位,奇偶校验位为两个输入值的异或结果。结构上将每组数据位对应的触发器分别复制一份,同时添加一个触发器用于存储奇偶校验位,奇偶校验位用于检测触发器输出是否出错,而输出选择电路根据输入组合屏蔽错误输出。下面结合图2对具体的单粒子翻转故障进行分析。
D0和D1分别为两位数据位的输入,F1和F2为一组具有相同输入的触发器,F4和F5则为另一组,F3用于存储奇偶校验位,输出选择电路用于选择触发器的正确输出。该结构优先选择触发器F2、F4作为输出,当触发器F2、F3、F4输出正确,则三输入异或非门X1输出为1,屏蔽触发器F1、F5的输出,同时输出F2、F4触发器值;当触发器F2、F3、F4其中一个发生单粒子翻转时,即存储的逻辑状态发生翻转,则异或非门X1输出为0,屏蔽F2、F4触发器的错误输出,同时选择F1,F5触发器作为输出。该设计结构能够容忍结构单元中任一触发器的逻辑状态异常,并能容忍触发器F1,F5的同时异常。
对于一个具有
2 可靠性评估
FPGA中各模块的功能由配置存储器的配置所决定,而配置存储器又包含若干个表示配置信息的比特位。在辐射环境中,当FPGA中的电路模块发生单粒子翻转效应时,并不是模块任意比特位发生翻转就会导致模块功能异常,该模块功能往往由一些能够改变模块逻辑状态的关键比特位所决定[11]。设单个触发器的故障率为
$R(t) = {{\rm e}^{ - {\lambda _m}t}}$ | (1) |
对于一个未采取任何防护结构的
${R_N}\left( t \right) = {{\rm e}^{ - {\lambda _m}Nt}}$ | (2) |
对于一个三模冗余系统来说只有当两个或者两个以上的模块发生错误时系统防护功能才会失效,假设三模冗余系统表决逻辑功能正常,那么对于一个包含
$\begin{split} R_N^{\rm TMR}\left( t \right) = &{(C_3^2R_{}^2(t)\left( {1 - R(t)} \right) + C_3^3R_{}^3(t))^N} =\\ & {(3R_{}^2\left( t \right) - 2R_{}^3\left( t \right))^N} \\ \end{split} $ | (3) |
在PC-DMR结构单元中,将寄存器中的触发器两个为一组进行防护,当两个或两个以上触发器发生错误时,防护功能才会失效,如图2中,由于输出逻辑优先选择触发器F2和F4的正确结果输出,所以当F2、F4无错误发生时可以屏蔽F1和F5的错误输出,此时触发器F1和F5同时发生错误不会导致防护结构失效。该结构单元在时间
$\begin{split} {R^{\rm PC - DMR}}\left( t \right) = & C_5^5{R^5}\left( t \right) + C_5^4{R^4}\left( t \right)\left( {1 - R\left( t \right)} \right) +\\ & {R^3}\left( t \right){\left( {1 - R\left( t \right)} \right)^2} =\\ & {R^3}\left( t \right) + 3{R^4}\left( t \right) - 3{R^5}\left( t \right) \\ \end{split} $ | (4) |
对包含
$R_N^{\rm PC - DMR}\left( t \right) = {({R^{\rm PC - DMR}}\left( t \right))^{\frac{N}{2}}}$ | (5) |
用平均无故障时间(mean time to failure,MTTF)来衡量一个模块的可靠性,即相邻两次故障之间的平均工作时间,连续时间马尔科夫模型下的MTTF可以用关于可靠度的函数来表示:
${\rm MTTF} = \int_0^\infty {{R_m}(t)} {\rm d}t$ | (6) |
其中
由图可知,当故障率
本文将PC-DMR设计结构通过ISE14.7设计工具在Xilinx Virtex®-6 FPGA上进行设计和验证。首先对32位寄存器进行PC-DMR设计,并通过仿真验证该设计的容错功能。通过HDL设计语言对寄存器进行RTL级描述设计,将寄存器的32位数据位每相邻两位作为一组,每组设计为一个PC-DMR结构单元,PC-DMR结构单元如图2所述,PC-DMR防护设计下的32位寄存器共包含16组PC-DMR结构单元。
对该设计结构下的32位寄存器进行仿真实验,通过翻转触发器的逻辑状态,模拟对寄存器的注错,实验仿真结果如图5所示。
为了对比验证该设计结构下寄存器的资源开销情况,分别对8位、16位、32位的独立寄存器进行三模冗余设计和PC-DMR设计。综合后的资源开销如表1所示。实验结果可知采用PC-DMR设计的寄存器相对于传统的三模冗余设计的寄存器能有效减少16.7%的触发器资源和50%的查找表资源开销。
寄存器 | 无保护结构 | TMR结构 | PC-DMR结构 | 节省比例/% | |||||||
触发器 | 查找表 | 触发器 | 查找表 | 触发器 | 查找表 | 触发器 | 查找表 | ||||
8位 | 8 | 0 | 24 | 8 | 20 | 4 | 16.7 | 50 | |||
16位 | 16 | 0 | 48 | 16 | 40 | 8 | 16.7 | 50 | |||
32位 | 32 | 0 | 96 | 32 | 80 | 16 | 16.7 | 50 |
PC-DMR设计结构对寄存器的防护是从细粒度的角度对其中的触发器进行防护,该设计结构也可应用于包含大量触发器的时序逻辑电路防护。分别对8位、16位、32位带使能端的计数器进行三模冗余设计和PC-DMR设计。综合后的资源开销如表2所示;实验结果可知采用PC-DMR设计的计数器相对于传统的三模冗余设计的计数器能节省16.7%的触发器资源和28%的查找表资源。由于综合过程中计数器原有的逻辑结构对 PC-DMR设计结构的查找表的影响,查找表占用数量增多,引入的电路延迟也略微增加,但相对于传统三模冗余设计仍能节省可观的资源开销。
计数器 | 无保护结构 | TMR结构 | PC-DMR结构 | ||||||||
触发器 | 查找表 | 延迟/ns | 触发器 | 查找表 | 延迟/ns | 触发器 | 查找表 | 延迟/ns | |||
8位 | 8 | 8 | 1.46 | 24 | 25 | 2.01 | 20 | 19 | 2.28 | ||
16位 | 16 | 16 | 1.52 | 48 | 48 | 2.10 | 40 | 35 | 2.68 | ||
32位 | 32 | 32 | 1.70 | 96 | 97 | 2.28 | 80 | 67 | 2.95 |
4 结束语
针对太空环境中FPGA电路寄存器的容错问题,和现有方案的一些不足,本文提出了一种基于奇偶校验的双模冗余设计结构对SRAM型FPGA电路设计中的寄存器进行防护,该设计结构以触发器为单位,两位为一组从细粒度角度对寄存器的数据位进行错误屏蔽。该设计结构还能对包含大量触发器的电路进行有效防护,并可结合Scrubbing技术实现在容错的同时对故障的积累进行清除。在Xilinx Virtex®-6 FPGA上对该设计结构进行设计实现,实验结果表明本文的设计结构相对于传统的三模冗余设计,可靠度指标略有降低,但却可以带来比较显著的资源节省效果。
[1] |
DONTHI S, HAGGARD R L. A survey of dynamically reconfigurable FPGA devices[C]//Proceedings of the 35th Southeastern Symposium on System Theory. Morgantown: IEEE, 2003: 422-426.
|
[2] |
ASADI H, TAHOORI M B. Analytical techniques for soft error rate modeling and mitigation of FPGA-based designs[J].
IEEE Transactions on VERY LARGE SCALE INTEGRATION (VLSI) Systems, 2007, 15(12): 1320-1331.
DOI:10.1109/TVLSI.2007.909795 |
[3] |
黄正峰, 倪涛, 欧阳一鸣, 等. 容忍单粒子多节点翻转的三模互锁加固锁存器[J].
电子科技大学学报, 2016, 45(5): 750-756.
DOI:10.3969/j.issn.1001-0548.2016.05.007 |
[4] |
STODDARD A, GRUWEEL A, ZABRISKIE P, et al. A hybrid approach to FPGA configuration scrubbing[J].
IEEE Transactions on Nuclear Science, 2017, 64(1): 497-503.
DOI:10.1109/TNS.2016.2636666 |
[5] |
DEMIRCI M, REVIRIEGO P, MAESTRO J A. Implementing double error correction orthogonal Latin Squares Codes in SRAM-based FPGAs[J].
Microelectronics Reliability, 2016, 56: 221-227.
DOI:10.1016/j.microrel.2015.10.016 |
[6] |
REVIRIEGO P, PONTARELLI S, MAESTRO J A, et al. A method to construct low delay single error correction (SEC) codes for protecting data bits only[J].
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2013, 32(3): 479-483.
DOI:10.1109/TCAD.2012.2226585 |
[7] |
STERPONE L, VIOLANTE M, PANARITI A. Layout-aware multi-cell upsets effects analysis on TMR circuits implemented on SRAM-based FPGAs[J].
IEEE Transactions on Nuclear Science, 2011, 58(5): 2325-2332.
DOI:10.1109/TNS.2011.2161887 |
[8] |
GHADERI Z, MIREMADI S G, ASADI H, et al. HAFTA: highly available fault-tolerant architecture to protect SRAM-based reconfigurable devices against multiple bit upsets[J].
IEEE Transactions on Device and Materials Reliability, 2013, 13(1): 203-212.
DOI:10.1109/TDMR.2012.2229710 |
[9] |
SAEN M, TOBA T, KANNO Y. Soft-error-tolerant dual-modular-redundancy architecture with repair and retry scheme for memory-control circuit on FPGA[J].
IEICE Transactions on Electronics, 2017, 100(4): 382-390.
|
[10] |
MARTINS V M G, VILLA P R C, NETO H C C, et al. A TMR strategy with enhanced dependability features based on a partial reconfiguration flow[C]//IEEE-Computer-Society Annual Symposium on VLSI (ISVLSI). Montpellier: IEEE, 2015: 161-166.
|
[11] |
FENG Z, JING N F, CHEN G S, et al. IPF: In-place X-filling to mitigate soft errors in SRAM-based FPGAs[C]//2011 International Conference on Field Programmable Logic and Applications (FPL). IEEE, 2011: 482-485.
|
[12] |
LEE D S, WIRTHLIN M, SWIFT G, et al. Single-Event Characterization of the 28 nm Xilinx Kintex-7 Field-Programmable Gate Array under Heavy Ion Irradiation[C]// Radiation Effects Data Workshop. IEEE, 2014: 1-5.
|
[13] |
SHOOMAN M L. Reliability of computer systems and networks: fault tolerance, analysis and design[M]. New York: John Wiley & Sons, Inc., 2002:158-161
|