列表
00:00
/
00:00
l
r
  中国测试  2018, Vol. 44 Issue (9): 75-79, 95

文章信息

邱根, 毕东杰, 彭礼彪
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寄存器的容错设计
邱根 , 毕东杰 , 彭礼彪     
电子科技大学自动化工程学院,四川 成都 611731
摘要:寄存器作为SRAM型FPGA系统设计中的一个重要组成部分,容易受到太空环境中的高能粒子影响而发生软错误。三模冗余设计方法能够对寄存器进行容错防护,但带来大量的资源和功耗开销;针对此问题该文设计一种基于奇偶校验的双模冗余防护结构,以触发器为单位,利用FPGA查找表结构特点,将两位触发器作为一组进行容错设计,通过奇偶校验选择正确结果输出,能从细粒度方面对寄存器的数据位进行错误屏蔽。该方法于Xilinx Virtex®-6 FPGA中进行设计验证,实验结果表明该方法设计实现的寄存器相对于三模冗余设计方法能减少16.7%的触发器资源和50%的查找表资源。
关键词双模冗余    故障容错    寄存器    软错误    三模冗余    
A fault-tolerant scheme applying to SRAM-based FPGA registers
QIU Gen , BI Dongjie , PENG Libiao     
School of Automation Engineering, University of Electronic Science and Technology of China, Chengdu 611731, China
Abstract: Register is an important part of SRAM-based FPGA system that can be affected by soft errors caused by high energy particles in the space environment. Triple modular redundancy (TMR) can effectively achieve fault-tolerant protection for registers, but it brings a lot of resources and power consumption. A scheme of parity check dual modular redundancy (PC-DMR) is presented for such problems based on the structure of the LUTs in FPGAs with flip-flops as the unit. This scheme designs two flip-flops as a fault-tolerant pair, and it uses parity check to select the correct output and shield errors of register data from a fine-grained aspect.The scheme is designed and verified in Xilinx Virtex®-6 FPGA, and the results show that the proposed scheme can reduce 16.7% flip-flop resources and 50% LUTs resources relative to the triple modular redundancy design scheme.
Key words: DMR     fault-tolerant     registers     soft error     TMR    
0 引 言

基于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输出的逻辑功能。

寄存器的存储电路由触发器构成,一个触发器能存储一位二进制数,所以由 $N$ 个触发器可以构成 $N$ 位寄存器。图1所示为寄存器的三模冗余防护结构,该设计结构将同一个寄存器复制3份,并在输出端口上添加多数表决器对数据输出进行选择,多数表决器输出采用三选二的选择方式,当其中一个寄存器发生错误时多数表决器可以屏蔽该错误输出,以此实现容错的目的。在FPGA电路实现上,每个一位多数表决器需占用一个查找表的3个输入和一个输出端,然而两个多数表决器无法共用一个查找表实现,查找表端口无法得到充分使用。对于一个具有 $2N$ 个数据位的寄存器来说,进行三模冗余设计至少需要 $2N$ 个查找表和 $6N$ 个触发器实现。

图 1 寄存器三模冗余防护结构

1.2 PC-DMR防护结构

针对三模冗余设计结构查找表端口利用率不高、资源开销过多等缺点,本文设计采用一种带奇偶校验位的双模冗余防护结构(parity check dual modular redundancy,PC-DMR)对寄存器进行防护。

图2所示为针对两位触发器的PC-DMR防护结构。该结构利用FPGA查找表的结构特点,将两位触发器作为一组进行容错设计,每组包含两个数据位和一个奇偶校验位,奇偶校验位为两个输入值的异或结果。结构上将每组数据位对应的触发器分别复制一份,同时添加一个触发器用于存储奇偶校验位,奇偶校验位用于检测触发器输出是否出错,而输出选择电路根据输入组合屏蔽错误输出。下面结合图2对具体的单粒子翻转故障进行分析。

图 2 PC-DMR结构单元

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的同时异常。

对于一个具有 $2N$ 个数据位的寄存器进行防护设计,则将寄存器的每两个相邻数据位对应的触发器作为一组进行PC-DMR设计,每组设计为一个PC-DMR结构单元,对于 $2N$ 位的寄存器可以将其划分为 $N$ 组PC-DMR结构单元,如图3所示。系统中常用的寄存器数据位为偶数位,对于奇数位的寄存器可在最高位补一冗余位再进行PC-DMR设计。对于每组数据位来说该防护结构只需额外3个触发器,1个查找表和1个异或门的开销。采用PC-DMR防护结构对一个具有 $2N$ 个数据位的寄存器进行设计,最少需要 $5N$ 个触发器, $N$ 个查找表和 $N$ 个二输入异或门实现。该设计结构中的二输入异或门可由Slice中的二输入异或算数逻辑实现,无需额外占用查找表资源。可见对一个 $2N$ 位的寄存器进行PC-DMR防护设计相对于传统三模冗余设计能减少 $N$ 个查找表和 $N$ 个触发器资源开销。

图 3 具有2N个数据位的寄存器PC-DMR防护设计

2 可靠性评估

FPGA中各模块的功能由配置存储器的配置所决定,而配置存储器又包含若干个表示配置信息的比特位。在辐射环境中,当FPGA中的电路模块发生单粒子翻转效应时,并不是模块任意比特位发生翻转就会导致模块功能异常,该模块功能往往由一些能够改变模块逻辑状态的关键比特位所决定[11]。设单个触发器的故障率为 ${\lambda _m}$ ,它由单个比特位在单位时间内的翻转速率 ${\lambda _{\rm bit}}$ (单位:次/bit/s)和触发器对应的关键比特位数 $m$ 所决定,通常 ${\lambda _m} = m \times {\lambda _{\rm bit}}$ ,文献[12]中测得在一高辐射环境中Xilinx FPGA的单比特翻转率的典型值为 ${\lambda _{\rm bit}} = 2.7 \times {10^{ - 10}}\left( {{\rm{upsets}}/{\rm{bit}}/{\rm{s}}} \right)$ 。讨论连续时间马尔科夫模型下的系统的可靠性[13],单个触发器在时间 $t$ 内功能正常的可靠度随着时间的推移呈指数递减,其可靠度可以表示为

$R(t) = {{\rm e}^{ - {\lambda _m}t}}$ (1)

对于一个未采取任何防护结构的 $N$ 位寄存器来说它在时间 $t$ 内功能正常,即要满足构成它的所有触发器逻辑状态正常,其可靠度可以表示为

${R_N}\left( t \right) = {{\rm e}^{ - {\lambda _m}Nt}}$ (2)

对于一个三模冗余系统来说只有当两个或者两个以上的模块发生错误时系统防护功能才会失效,假设三模冗余系统表决逻辑功能正常,那么对于一个包含 $N$ 个触发器的 $N$ 位寄存器进行三模冗余防护设计,即对 $N$ 个数据位对应的触发器均进行三模冗余设计,其在时间 $t$ 内逻辑状态正常的可靠度为

$\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同时发生错误不会导致防护结构失效。该结构单元在时间 $t$ 内逻辑状态正常的可靠度可以表示为

$\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)

对包含 $N$ 个触发器的 $N$ 位寄存器进行PC-DMR防护设计,即要满足每组PC-DMR结构单元的触发器均正常,则该寄存器在时间 $t$ 内逻辑状态正常的可靠度可以表示为

$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)

其中 ${R_m}\left( t \right)$ 表示模块对应的可靠度。将无防护的寄存器可靠性分别与三模冗余防护结构和PC-DMR防护结构下的可靠性进行比较。图4(a)图4(b)分别为在故障率 ${\lambda _m} = 1.35 \times {10^{ - 9}}$ 次/s时16位寄存器的可靠度随时间变化示意图和8位、16位、32位寄存器的平均无故障时间示意图。

图 4 无防护寄存器与TMR、PC-DMR防护结构下的可靠性对比

由图可知,当故障率 ${\lambda _m}$ 一定时,随着使用时间的增加,寄存器的可靠度将逐渐降低,而寄存器的位数越高,其占用资源越多,对应的平均无故障时间降低,PC-DMR结构下的寄存器可靠度略低于三模冗余设计下的寄存器的可靠度,但对于无保护措施的寄存器来说可靠度具有可观的提高。

3 实验结果与分析

本文将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所示。 ${t_1}$ 时刻之前,寄存器中各组触发器逻辑状态均正常,寄存器输出DO等于寄存器输入D; ${t_1}$ 时刻第3组结构单元中触发器Q3的逻辑状态发生翻转,但寄存器输出DO仍和寄存器输入D一致; ${t_2}$ 时刻第16组结构单元中触发器Q2的逻辑状态发生翻转, ${t_3}$ 时刻第8组结构单元中触发器Q1和触发器Q5的逻辑状态同时发生异常,但寄存器的输出仍未出现错误,寄存器的容错功能正常。

图 5 32位寄存器的实验仿真示意图

为了对比验证该设计结构下寄存器的资源开销情况,分别对8位、16位、32位的独立寄存器进行三模冗余设计和PC-DMR设计。综合后的资源开销如表1所示。实验结果可知采用PC-DMR设计的寄存器相对于传统的三模冗余设计的寄存器能有效减少16.7%的触发器资源和50%的查找表资源开销。

表 1 寄存器资源开销
寄存器 无保护结构 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设计结构的查找表的影响,查找表占用数量增多,引入的电路延迟也略微增加,但相对于传统三模冗余设计仍能节省可观的资源开销。

表 2 计数器资源和延迟开销
计数器 无保护结构 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