基于edac模块的三模冗余对存储器的容错装置及其方法

文档序号:6739729阅读:374来源:国知局
专利名称:基于edac模块的三模冗余对存储器的容错装置及其方法
技术领域
本发明涉及对存储器抗辐射容错技术领域,主要涉及利用FPGA实现错误检测和纠正编码EDAC模块的三模冗余对存储器粒子翻转的容错方法。
背景技术
空间飞行器在空间工作时,将受到不同能量和不同剂量的多种射线(主要是高能质子和高能重离子)的照射。这些射线照射在元器件上引起单粒子效应(Single EventEffect, SEE)会对空间飞行器性能造成一定的损伤,引起飞行器在轨运行故障和失效。随着电子系统复杂性和可靠性的提高,对系统中存储器的可靠性和性能也提出更高的要求。现有的技术对存储器的抗辐射性的技术除了抗辐射工艺可以增强元器件的抗辐射能力,也可以通过容错设计来提高器件的抗SEE水平。现有方法是对存储器三模冗余(Triple Modular Redundancy, TMR),即对同一个数据存储三份,在读出时通过多数选举·器,得到正确的结果,但这种方法随着存储数据量的增大和读取速率的提高,存储器的容量要3倍地增长,对存储的控制时序复杂度也随之提高。另一种方法是用汉明码、RS码等错误检测和纠正编码(Error Detection and Correction Codes, EDAC)技术,通过增加冗余位解决数据的抗辐射能力,适用于纠正和检出存储器中的位翻转。EDAC的一个应用实例就是汉明码,能检测单位和双位错误并纠正所有的单位错误(single error correct-doubleerror detect, SEC-DED)。这种编码方法可用于单个数据结构中多个错误发生很低的系统(例如一个字节的数据只有一位错误)。汉明码能够防护一些电路结构,例如寄存器和存储器。将受防护的寄存器输入连接到编码块上,输出连接到解码块上。但这种方法中EDAC模块编码、解码电路本身会发生单粒子翻转,导致编码或解码数据的错误,甚至电路的失效。

发明内容
本发明的目的在于避免现有技术的不足提供一种基于EDAC模块的三模冗余对存储器的容错装置及其方法。以解决EDAC模块编码、解码电路本身在受到不同能量和不同剂量的多种射线的照射会发生单粒子翻转的问题。为实现上述目的,本发明采取的技术方案为一种基于EDAC模块的三模冗余对存储器的容错装置,其主要特点是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器。所述的基于EDAC模块的三模冗余对存储器的容错装置,所述的编码EDAC模块中的三个并联的编码器与所述的解码EDAC模块中的三个并联的解码器一一对应。所述的基于EDAC模块的三模冗余对存储器的容错装置,还包括有所述的三个并联的编码器电路完全相同;所述的三个并联的解码器电路完全相同。所述的基于EDAC模块的三模冗余对存储器的容错装置,所述的多数选举器为三个两输入与门和一个三输入或门组成,或由三个两输入或门和一个三输入与门组成。一种基于EDAC模块的三模冗余对存储器的容错方法,其主要特点在于步骤为(I)主控制器写入数据主控器生成的数据分别输入三个EDAC模块的编码器,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中;(2)主控制器读入数据存储控制器从存储器中读出冗余后的编码码字,然后送入EDAC的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。所述的基于EDAC模块的三模冗余对存储器的容错方法,所述的数据为汉明码。本发明的有益效果在于
本发明提出了一种对EDAC电路进行三模冗余设计,提高EDAC电路的抗辐射能力,从而达到对中存储器的容错。EDAC模块在现场可编程门阵列FPGA中实现,能够很方便地应用到对存储器要求抗单粒子翻转(SEU)的系统中。有效解决EDAC技术中编码、解码电路本身会发生单粒子翻转,导致编码或解码数据的错误,这种利用EDAC抵抗存储器SEU的方法,特别对基于 SRAM 的 FPGA 的块 RAM (Block random access memory, BRAM),在不干扰嵌入式存储单元当前的正常工作和设置的情况下增强了存储器的容错能力,是一种极具有吸引力的容错技术。


图I为本发明的系统实现框图示意图;图2多数选举器实现电路I ;图3多数选举器实现电路2。
具体实施例方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。实施例I :见图1,图2,一种基于EDAC模块的三模冗余对存储器的容错装置,包括有主控制器I连接编码EDAC模块2的并联的第一编码器2-1、第二编码器2-2、第三编码器2-3,编码EDAC模块2通过第一多数选举器3连接存储控制器4,由存储控制器4连接存储器5 ;由存储器5通过存储控制器4连接解码EDAC模块6的三个并联的第一解码器6-1、第二解码器6-2、第三解码器6-3,解码EDAC模块6通过第二多数选举器7连接主控制器I。所述的编码EDAC模块2中的三个并联的第一编码器2_1、第二编码器2_2、第三编码器2-3与所述的解码EDAC模块6中的三个并联的第一解码器6-1、第二解码器6_2、第三解码器6-3——对应。所述的三个并联的第一编码器2-1、第二编码器2-2、第三编码器2-3电路完全相同;所述的三个并联的第一解码器6-1、第二解码器6-2、第三解码器6-3电路完全相同。所述的多数选举器为三个两输入与门和一个三输入或门组成。实施例2 :见图1,图3,一种基于EDAC模块的三模冗余对存储器的容错装置,所述的多数选举器为,由三个两输入或门和一个三输入与门组成。其余与实施例I相同。
实施例3 : —种基于EDAC模块的三模冗余对存储器的容错方法,其主要特点在于步骤为(I)主控制器写入数据主控器生成的数据分别输入三个EDAC模块的编码器,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中;(2)主控制器读入数据存储控制器从存储器中读出冗余后的编码码字,然后送入EDAC的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。所述的基于EDAC模块的三模冗余对存储器的容错方法,所述的数据为汉明码。本发明以(22,16)扩展汉明码为EDAC为具体实施方案,可检测和纠正全部单比特错误(single bit error),并可以检测数据中的双比特错误(double bit errors)。也就是说,汉明码的字宽为22位,包括16个数据位和6个校验位。汉明码(Hamming code)是 用于纠错控制(Error Correction Control, ECC)操作的一种简单而高效的代码,并能提供非常高的资源利用。本发明在现场可编程门阵列FPGA中通过元件例化实现三个相同的扩展汉明码模块,每个扩展汉明码模块一个奇偶校验编码器及(parity encoder)奇偶校验解码器单元。编码器执行生成矩阵的功能,产生校验位,而解码器则负责检错和纠错(errordetection and correction)。然后,将编码输出和解码输出分别连接到多数选举器上,得到选举后的结果分别送人主控制器和存储器。具体模块电路实现方法如下编码器编码在k比特信息上附加r比特的校验位,构成n=k+r比特的码字,其中每个校验比特和某几个特定的信息比特构成偶校验的关系。(22,16)扩展汉明码的构建,其中码字长为22比特,信息码为16比特,校验位为6比特。I.从I开始给数字的数据位(从右向左)标上序号,1,2,3,4,5...。2.将这些数据位的位置序号转换为二进制,I, 10, 11,100, 101,等。3.数据位的位置序号中所有为2的幂次方的位(编号1,2,4,8,16等,这些数据位位置序号的二进制表示中只有一个I)是校验位。4.所有其它位置是信息数据位。5.每一位的信息数据包含在特定的两个或两个以上的校验位中,这些校验位取决于这些数据位的位置数值的二进制表示。6.校验位P1覆盖了所有数据位位置序号的二进制表示倒数第一位是I的数据1(校验位自身,这里都是二进制,下同),11,101,111,1001,等。7.校验位p2覆盖了所有数据位位置序号的二进制表示倒数第二位是I的数据。8.校验位p3覆盖了所有数据位位置序号的二进制表示倒数第三位是I的数据。9.校验位p4覆盖了所有数据位位置序号的二进制表示倒数第四位是I的数据。10.校验位p5覆盖了所有数据位位置序号的二进制表示倒数第五位是I的数据。11.校验位P6覆盖了所有数据位。编码器由XOR运行构成。校验位与关联的22位数据一起被写入存储器。存储器读取数据时,会同时读取该数据及校验位。任何在FPGA和存储器之间进行读写的过程中产生的错误都会被检测出来。校验位覆盖数据位置如表I所示,相应校验位的参与位用V表明。本发明实现(22,16)扩展汉明码的码字。其存入存储器中的码字序列如A:A=[p6,d15,di4,d13,d12,dn, P5, d10, d9, d8, d7, d6, d5, d4, p4, d3, d2, (I1, p3, d0, p2, pj表I校验位生成表
权利要求
1.一种基于EDAC模块的三模冗余对存储器的容错装置,其特征是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器。
2.如权利要求I所述的基于EDAC模块的三模冗余对存储器的容错装置,其特征是所述的编码EDAC模块中的三个并联的编码器与所述的解码EDAC模块中的三个并联的解码器--对应。
3.如权利要求I所述的基于EDAC模块的三模冗余对存储器的容错装置,其特征是还包括有所述的三个并联的编码器电路完全相同;所述的三个并联的解码器电路完全相同。
4.如权利要求I所述的基于EDAC模块的三模冗余对存储器的容错装置,其特征是所述的多数选举器为三个两输入与门和一个三输入或门组成,或由三个两输入或门和一个三输入与门组成。
5.一种基于EDAC模块的三模冗余对存储器的容错方法,其特征在于步骤为 (O主控制器写入数据主控器生成的数据分别输入三个EDAC模块的编码器,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中; (2)主控制器读入数据存储控制器从存储器中读出冗余后的编码码字,然后送入EDAC的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。
6.如权利要求5所述的基于EDAC模块的三模冗余对存储器的容错方法,其特征在于所述的数据为汉明码。
全文摘要
本发明涉及对存储器抗辐射容错技术领域,主要涉及利用FPGA实现EDAC模块的三模冗余技术对存储器单粒子翻转的容错装置与方法。一种基于EDAC模块的三模冗余对存储器的容错装置,其特征是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器。整个EDAC模块和多数选举器在FPGA中实现,能够有效地提高系统中存储器的抗单粒子翻转(SEU)水平。
文档编号G11C29/42GK102915768SQ20121037516
公开日2013年2月6日 申请日期2012年10月1日 优先权日2012年10月1日
发明者苏弘, 丁朋程, 孔洁, 王晓辉, 赵红赟, 佘乾顺, 千奕, 马晓莉, 牛晓阳 申请人:中国科学院近代物理研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1