CN102915768B - 基于edac模块的三模冗余对存储器的容错装置及其方法 - Google Patents
基于edac模块的三模冗余对存储器的容错装置及其方法 Download PDFInfo
- Publication number
- CN102915768B CN102915768B CN201210375166.2A CN201210375166A CN102915768B CN 102915768 B CN102915768 B CN 102915768B CN 201210375166 A CN201210375166 A CN 201210375166A CN 102915768 B CN102915768 B CN 102915768B
- Authority
- CN
- China
- Prior art keywords
- memory
- edac module
- edac
- coding
- fault
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及对存储器抗辐射容错技术领域,主要涉及利用FPGA实现EDAC模块的三模冗余技术对存储器单粒子翻转的容错装置与方法。一种基于EDAC模块的三模冗余对存储器的容错装置,其特征是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器。整个EDAC模块和多数选举器在FPGA中实现,能够有效地提高系统中存储器的抗单粒子翻转(SEU)水平。
Description
技术领域
本发明涉及对存储器抗辐射容错技术领域,主要涉及利用FPGA实现错误检测和纠正编码EDAC模块的三模冗余对存储器粒子翻转的容错方法。
背景技术
空间飞行器在空间工作时,将受到不同能量和不同剂量的多种射线(主要是高能质子和高能重离子)的照射。这些射线照射在元器件上引起单粒子效应(SingleEventEffect,SEE)会对空间飞行器性能造成一定的损伤,引起飞行器在轨运行故障和失效。
随着电子系统复杂性和可靠性的提高,对系统中存储器的可靠性和性能也提出更高的要求。现有的技术对存储器的抗辐射性的技术除了抗辐射工艺可以增强元器件的抗辐射能力,也可以通过容错设计来提高器件的抗SEE水平。现有方法是对存储器三模冗余(TripleModularRedundancy,TMR),即对同一个数据存储三份,在读出时通过多数选举器,得到正确的结果,但这种方法随着存储数据量的增大和读取速率的提高,存储器的容量要3倍地增长,对存储的控制时序复杂度也随之提高。另一种方法是用汉明码、RS码等错误检测和纠正编码(ErrorDetectionandCorrectionCodes,EDAC)技术,通过增加冗余位解决数据的抗辐射能力,适用于纠正和检出存储器中的位翻转。EDAC的一个应用实例就是汉明码,能检测单位和双位错误并纠正所有的单位错误(singleerrorcorrect-doubleerrordetect,SEC-DED)。这种编码方法可用于单个数据结构中多个错误发生很低的系统(例如一个字节的数据只有一位错误)。汉明码能够防护一些电路结构,例如寄存器和存储器。将受防护的寄存器输入连接到编码块上,输出连接到解码块上。但这种方法中EDAC模块编码、解码电路本身会发生单粒子翻转,导致编码或解码数据的错误,甚至电路的失效。
发明内容
本发明的目的在于避免现有技术的不足提供一种基于EDAC模块的三模冗余对存储器的容错装置及其方法。以解决EDAC模块编码、解码电路本身在受到不同能量和不同剂量的多种射线的照射会发生单粒子翻转的问题。
为实现上述目的,本发明采取的技术方案为:一种基于EDAC模块的三模冗余对存储器的容错装置,其主要特点是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器。
所述的基于EDAC模块的三模冗余对存储器的容错装置,所述的编码EDAC模块中的三个并联的编码器与所述的解码EDAC模块中的三个并联的解码器一一对应。
所述的基于EDAC模块的三模冗余对存储器的容错装置,还包括有所述的三个并联的编码器电路完全相同;所述的三个并联的解码器电路完全相同。
所述的基于EDAC模块的三模冗余对存储器的容错装置,所述的多数选举器为三个两输入与门和一个三输入或门组成,或由三个两输入或门和一个三输入与门组成。
一种基于EDAC模块的三模冗余对存储器的容错方法,其主要特点在于步骤为:
(1)主控制器写入数据:主控器生成的数据分别输入三个EDAC模块的编码器,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中;
(2)主控制器读入数据:存储控制器从存储器中读出冗余后的编码码字,然后送入EDAC的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。
所述的基于EDAC模块的三模冗余对存储器的容错方法,所述的数据为汉明码。
本发明的有益效果在于:
本发明提出了一种对EDAC电路进行三模冗余设计,提高EDAC电路的抗辐射能力,从而达到对中存储器的容错。EDAC模块在现场可编程门阵列FPGA中实现,能够很方便地应用到对存储器要求抗单粒子翻转(SEU)的系统中。有效解决EDAC技术中编码、解码电路本身会发生单粒子翻转,导致编码或解码数据的错误,这种利用EDAC抵抗存储器SEU的方法,特别对基于SRAM的FPGA的块RAM(Blockrandomaccessmemory,BRAM),在不干扰嵌入式存储单元当前的正常工作和设置的情况下增强了存储器的容错能力,是一种极具有吸引力的容错技术。
附图说明
图1为本发明的系统实现框图示意图;
图2多数选举器实现电路1;
图3多数选举器实现电路2。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1:见图1,图2,一种基于EDAC模块的三模冗余对存储器的容错装置,包括有主控制器1连接编码EDAC模块的并联的第一编码器2-1、第二编码器2-2、第三编码器2-3,编码EDAC模块通过第一多数选举器3连接存储控制器4,由存储控制器4连接存储器5;由存储器5通过存储控制器4连接解码EDAC模块的三个并联的第一解码器6-1、第二解码器6-2、第三解码器6-3,解码EDAC模块通过第二多数选举器7连接主控制器1。
所述的编码EDAC模块中的三个并联的第一编码器2-1、第二编码器2-2、第三编码器2-3与所述的解码EDAC模块中的三个并联的第一解码器6-1、第二解码器6-2、第三解码器6-3一一对应。
所述的三个并联的第一编码器2-1、第二编码器2-2、第三编码器2-3电路完全相同;所述的三个并联的第一解码器6-1、第二解码器6-2、第三解码器6-3电路完全相同。
所述的多数选举器为三个两输入与门和一个三输入或门组成。
实施例2:见图1,图3,一种基于EDAC模块的三模冗余对存储器的容错装置,所述的多数选举器为,由三个两输入或门和一个三输入与门组成。其余与实施例1相同。
实施例3:一种基于EDAC模块的三模冗余对存储器的容错方法,其主要特点在于步骤为:
(1)主控制器写入数据:主控器生成的数据分别输入三个EDAC模块的编码器,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中;
(2)主控制器读入数据:存储控制器从存储器中读出冗余后的编码码字,然后送入EDAC的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。
所述的基于EDAC模块的三模冗余对存储器的容错方法,所述的数据为汉明码。
本发明以(22,16)扩展汉明码为EDAC为具体实施方案,可检测和纠正全部单比特错误(singlebiterror),并可以检测数据中的双比特错误(doublebiterrors)。也就是说,汉明码的字宽为22位,包括16个数据位和6个校验位。汉明码(Hammingcode)是用于纠错控制(ErrorCorrectionControl,ECC)操作的一种简单而高效的代码,并能提供非常高的资源利用。本发明在现场可编程门阵列FPGA中通过元件例化实现三个相同的扩展汉明码模块,每个扩展汉明码模块一个奇偶校验编码器及(parityencoder)奇偶校验解码器单元。编码器执行生成矩阵的功能,产生校验位,而解码器则负责检错和纠错(errordetectionandcorrection)。然后,将编码输出和解码输出分别连接到多数选举器上,得到选举后的结果分别送人主控制器和存储器。
具体模块电路实现方法如下:
编码器
编码:在k比特信息上附加r比特的校验位,构成n=k+r比特的码字,其中每个校验比特和某几个特定的信息比特构成偶校验的关系。(22,16)扩展汉明码的构建,其中码字长为22比特,信息码为16比特,校验位为6比特。
1.从1开始给数字的数据位(从右向左)标上序号,1,2,3,4,5...。
2.将这些数据位的位置序号转换为二进制,1,10,11,100,101,等。
3.数据位的位置序号中所有为2的幂次方的位(编号1,2,4,8,16等,这些数据位位置序号的二进制表示中只有一个1)是校验位。
4.所有其它位置是信息数据位。
5.每一位的信息数据包含在特定的两个或两个以上的校验位中,这些校验位取决于这些数据位的位置数值的二进制表示。
6.校验位p1覆盖了所有数据位位置序号的二进制表示倒数第一位是1的数据:1(校验位自身,这里都是二进制,下同),11,101,111,1001,等。
7.校验位p2覆盖了所有数据位位置序号的二进制表示倒数第二位是1的数据。
8.校验位p3覆盖了所有数据位位置序号的二进制表示倒数第三位是1的数据。
9.校验位p4覆盖了所有数据位位置序号的二进制表示倒数第四位是1的数据。
10.校验位p5覆盖了所有数据位位置序号的二进制表示倒数第五位是1的数据。
11.校验位p6覆盖了所有数据位。
编码器由XOR运行构成。校验位与关联的22位数据一起被写入存储器。存储器读取数据时,会同时读取该数据及校验位。任何在FPGA和存储器之间进行读写的过程中产生的错误都会被检测出来。校验位覆盖数据位置如表1所示,相应校验位的参与位用√表明。本发明实现(22,16)扩展汉明码的码字。其存入存储器中的码字序列如A:
A=[p6,d15,d14,d13,d12,d11,p5,d10,d9,d8,d7,d6,d5,d4,p4,d3,d2,d1,p3,d0,p2,p1]
表1校验位生成表:
解码器
检验:接收端检验r个偶校验关系,即将每个校验比特和与它关联的信息比特异或,相加结果称为校正因子。若r个校正因子全为0,认为没有错误;否则,校正因子指出错误码位置。
解码器单元由三个模块组成:
1.校正子(Syndrome)生成
2.校正子LUT和掩码(Mask)生成
3.数据校正(Datacorrection)
校正子生成
输入的16比特数据与6位奇偶校验位一起经过异或(XOR)运算,生成6比特校正子(s0至s5)。这与校验位生成非常类似。校正子S=[s5,s4,s3,s2,s1,s0],如表2所示:
表2校正子生成表
由校正子可得到码字的误码位置并由此产生相应的掩码,为校正单个码元错误。有用信息码元为16比特,所以本发明中只需16个校正掩码。此掩码的每一位都是基于上一阶段的校正子结果生成的,每个校正掩码为16比特。如果未检测到错误,此掩码的所有位都会变为零。如果检测到单位元错误,则掩码会纠正相应的错误码元。即使用原始数据对此掩码进行异或(XOR)运算,错误码元被翻转(或校正)至正确状态。
由校正子得到误码位置,实现对错误数据校正。
表3(22,16)扩展汉明码校正子与误码位置的关系
s5s4s3s2s1s0 | 误码位置 | s5s4s3s2s1s0 | 误码位置 |
100001 | p1 | 101101 | d8 |
100010 | p2 | 101110 | d9 |
100011 | d0 | 101111 | d10 |
100100 | p4 | 110000 | p4 |
100101 | d1 | 110001 | d11 |
100110 | d2 | 110010 | d12 |
100111 | d3 | 110011 | d13 |
101000 | p8 | 110100 | d14 |
101001 | d4 | 110101 | d15 |
101010 | d5 | 100000 | p5 |
101011 | d6 | 000000 | 无误码 |
101100 | d7 | 其他 |
多数选举器的实现:
多数选举器通常用于TMR数据的输出,即将三路信号变为一路。TMR是指在总体上对所有功能单元采用3个完全相同的模块,互为备份,以达到最佳的抗单粒子翻转效果。如表4多数选举器采用三取二判决算法对运算结果进行TMR处理:
多数选举器的真值表4:
表4
A | B | C | V |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
A、B、C是单比特的数据位宽,如真值表所示V是A、B、C多数选择的结果。真值表如表4,具体实现电路如图2,由三个两输入与门和一个三输入或门,亦可如图3,由三个两输入或门和一个三输入与门,而三模冗余选举电路的个数取决于EDAC输出数据的位宽,即选举电路的个数为输出数据的位宽。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于EDAC模块的三模冗余对存储器的容错装置,其特征是包括有主控制器连接编码EDAC模块的并联的第一编码器、第二编码器、第三编码器,编码EDAC模块通过第一多数选举器连接存储控制器,由存储控制器连接存储器;由存储器通过存储控制器连接解码EDAC模块的三个并联的第一解码器、第二解码器、第三解码器,解码EDAC模块通过第二多数选举器连接主控制器;所述的编码EDAC模块中的三个并联的编码器与所述的解码EDAC模块中的三个并联的解码器一一对应;所述的三个并联的第一编码器、第二编码器、第三编码器完全相同;所述的三个并联的第一解码器、第二解码器、第三解码器完全相同;所述的多数选举器为三个两输入与门和一个三输入或门组成,或由三个两输入或门和一个三输入与门组成。
2.如权利要求1所述的一种基于EDAC模块的三模冗余对存储器的容错装置的容错方法,其特征在于步骤为:
(1)主控制器写入数据:主控制器生成的数据分别输入编码EDAC模块的三个编码器中,三个编码器分别生成编码码字,然后通过第一多数选举器得到冗余后的编码码字,再通过存储控制器把冗余后的编码码字存入存储器中;
(2)主控制器读入数据:存储控制器从存储器中读出冗余后的编码码字,然后送入解码EDAC模块的解码器中,得到的解码码字通过第二多数选举器输出最后的正确码字,再送入主控制器中进行后续的数据处理。
3.如权利要求2所述的容错方法,其特征在于所述的数据为汉明码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210375166.2A CN102915768B (zh) | 2012-10-01 | 2012-10-01 | 基于edac模块的三模冗余对存储器的容错装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210375166.2A CN102915768B (zh) | 2012-10-01 | 2012-10-01 | 基于edac模块的三模冗余对存储器的容错装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102915768A CN102915768A (zh) | 2013-02-06 |
CN102915768B true CN102915768B (zh) | 2016-05-04 |
Family
ID=47614101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210375166.2A Active CN102915768B (zh) | 2012-10-01 | 2012-10-01 | 基于edac模块的三模冗余对存储器的容错装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102915768B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236271A (zh) * | 2013-03-26 | 2013-08-07 | 深圳市国微电子有限公司 | 基于三模冗余加固单粒子翻转的存储器、加固方法 |
CN103605835B (zh) * | 2013-10-31 | 2017-08-29 | 上海卫星工程研究所 | 航天器系统级抗单粒子设计评估方法 |
CN103680639B (zh) * | 2013-11-29 | 2016-08-24 | 西安空间无线电技术研究所 | 一种随机存储器的周期性自检错恢复方法 |
CN104317662B (zh) * | 2014-09-11 | 2018-01-26 | 上海卫星工程研究所 | Sram型fpga在轨单粒子翻转防护量化评估方法 |
CN104268253B (zh) * | 2014-10-09 | 2017-10-27 | 中国科学院自动化研究所 | 一种基于查找表配置位统计的部分三模冗余方法 |
CN104932954B (zh) * | 2015-07-01 | 2017-10-24 | 西北工业大学 | 微小卫星fpga关键数据保护方法 |
CN105406940B (zh) * | 2015-10-22 | 2018-09-28 | 西安电子科技大学 | 一种基于关键变量的冗余纠错码防护方法 |
CN106531224B (zh) * | 2016-10-25 | 2019-07-16 | 哈尔滨工业大学 | 一种基于sram型fpga的ram数据可靠性加固装置及方法 |
CN108122598B (zh) * | 2017-12-18 | 2020-12-08 | 中国电子产品可靠性与环境试验研究所 | 具备edac功能sram的软错误率预计方法与系统 |
CN109741781B (zh) * | 2018-11-23 | 2020-07-28 | 山东航天电子技术研究所 | 一种基于三模冗余的多基片存储器的数据写入读出方法 |
CN109766213B (zh) * | 2018-12-28 | 2022-09-06 | 上海微阱电子科技有限公司 | 一种基于汉明码实现数据纠错的存储器电路 |
CN110795274A (zh) * | 2019-10-23 | 2020-02-14 | 北京电子工程总体研究所 | 一种抗单粒子翻转的遥测数据存取方法及系统 |
CN111651119B (zh) * | 2020-04-27 | 2023-08-08 | 中国科学院微电子研究所 | 获取存储器中目标数据的方法、装置和电路 |
CN111858192A (zh) * | 2020-07-22 | 2020-10-30 | 北京神舟航天软件技术有限公司 | 一种空间单粒子翻转自主容错方法 |
CN113655745B (zh) * | 2021-08-19 | 2023-04-07 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN202838976U (zh) * | 2012-10-01 | 2013-03-27 | 中国科学院近代物理研究所 | 基于edac模块的三模冗余对存储器的容错装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973613B2 (en) * | 2002-06-28 | 2005-12-06 | Sun Microsystems, Inc. | Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure |
-
2012
- 2012-10-01 CN CN201210375166.2A patent/CN102915768B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN202838976U (zh) * | 2012-10-01 | 2013-03-27 | 中国科学院近代物理研究所 | 基于edac模块的三模冗余对存储器的容错装置 |
Non-Patent Citations (1)
Title |
---|
SRAM型FPGA的抗SEU方法研究·;黄影等;《中国空间科学技术》;20070831;第57-65页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102915768A (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915768B (zh) | 基于edac模块的三模冗余对存储器的容错装置及其方法 | |
US20160164543A1 (en) | Turbo product codes for nand flash | |
CN111338840B (zh) | 航天数据保护方法、存储介质、计算机程序、系统、终端 | |
Tambatkar et al. | Error detection and correction in semiconductor memories using 3D parity check code with hamming code | |
US20200104205A1 (en) | Memory error detection and correction | |
TWI714277B (zh) | 記憶體錯誤偵測及校正 | |
CN106874140B (zh) | 数据存储方法及装置 | |
Appathurai et al. | Design for reliablity: A novel counter matrix code for FPGA based quality applications | |
Suma et al. | Simulation and synthesis of efficient majority logic fault detector using EG-LDPC codes to reduce access time for memory applications | |
US9584159B1 (en) | Interleaved encoding | |
CN202838976U (zh) | 基于edac模块的三模冗余对存储器的容错装置 | |
Reviriego et al. | Implementing triple adjacent error correction in double error correction orthogonal Latin squares codes | |
Subhasri et al. | VLSI design of parity check code with hamming code for error detection and correction | |
Kamalakannan et al. | Implementation of error correction technique based on decimal matrix code | |
Zheng et al. | Joint decoding of RAID-ECC solutions for SSDs | |
Erozan et al. | An EG-LDPC based 2-dimensional error correcting code for mitigating MBUs of SRAM memories | |
Jayarani et al. | A novel fault detection and correction technique for memory applications | |
ES2553152A1 (es) | Método para la detección y corrección de errores en memorias volátiles | |
RANI et al. | Multi Bit Errors Detection and Correction using SRAM Based DMC | |
Lavanya et al. | Detection of Multiple Cell Upsets in Memory for Enhanced Protection | |
Lakshmanan et al. | Efficient majority logic fault detection and correction using EG-LDPC codes for memory applications | |
US9577672B2 (en) | Low density parity-check code decoder and decoding method thereof | |
Liu et al. | An Effective Coding Transmission Scheme for Defect-involved TSV Array Transmission | |
Neelima et al. | Proficient Adjacent Error Correcting Codes | |
REDDY et al. | Detecting and Correcting Multiple Bit Upsets using Erasure Codes for Protecting SRAM Based FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |