CN103165193A - 一种探测修正存储器两位错误的低冗余加固方法及电路装置 - Google Patents
一种探测修正存储器两位错误的低冗余加固方法及电路装置 Download PDFInfo
- Publication number
- CN103165193A CN103165193A CN201310065442XA CN201310065442A CN103165193A CN 103165193 A CN103165193 A CN 103165193A CN 201310065442X A CN201310065442X A CN 201310065442XA CN 201310065442 A CN201310065442 A CN 201310065442A CN 103165193 A CN103165193 A CN 103165193A
- Authority
- CN
- China
- Prior art keywords
- bit
- errors
- syndrome
- column vector
- weight
- 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.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
技术领域
本发明属于抗辐射集成电路设计领域的一种低冗余修正两位错误的存储器加固方法和电路装置。
背景技术
存储器通常使用汉明码(Hamming)作为一位错误修正、两位错误探测码,它以较小的硬件冗余来实现一位错误修正和两位错误探测。汉明码是一种最为常见的线性分组码,它的最小距离为3,可以修正一位错误、探测部分两位错误。在构造汉明码时需要对k个数据添加m个冗余位,添加的冗余位插入到数据位的2 k (k = 0,1,2,3,……)处,以满足2 k ≥ k + m+ 1的规则,如表1所示,其中P代表加入的冗余位,D代表数据位。根据汉明码的构造规则,可以得到其系统形式的奇偶校验矩阵H。下表为汉明码的构造规则:
汉明码系统形式的奇偶校验矩阵如下所示:
在编码过程中,冗余位根据错误模式的真值表执行相应的异或操作,例如。在译码过程中,先通过冗余位计算出校正子S,再根据错误模式修正相应的数据位,例如校正子S为000011表示数据位D1出现错误,翻转数据位D1,输出正确结果。
发明内容
本发明的目的在于解决现有技术中的上述不足,提供了一种探测修正存储器两位错误的低冗余加固方法及电路装置。
随着集成电路工艺尺寸的不断降低,存储器中相临单元之间的距离不断缩小。存储器对空间辐射环境和地面噪声环境越发地敏感,一次辐射事件会造成多位翻转。为了解决存储器多位翻转问题,需要对汉明码的结构进行研究,对奇偶校验矩阵的构造进行改进和优化,探索修正能力更强的方法,在不增加冗余位的前提下,实现修正能力的提高。
为了实现上述目的,本发明的技术方案为:一种探测修正存储器两位错误的低冗余加固方法,包含如下步骤:
步骤1:构造线性码的低冗余修正两位错误的奇偶校验矩阵H:
式中,为奇偶校验矩阵H的列向量,为奇偶校验矩阵H的单位阵的列向量,根据码字的长度n和数据宽度k可以确定单位阵的列向量,因此只需要确定k个列向量即可构成奇偶校验矩阵H,奇偶校验矩阵H为阶矩阵,m为生成的校正子S的数据宽度位数。
步骤2:生成各个奇偶校验矩阵H的列向量,只需要确定。
步骤2.2:使低冗余修正两位错误的奇偶校验矩阵H所有的列向量都是唯一的:
步骤2.3:异或运算任意两个列向量得到的向量与校验矩阵中其他的列向量均不同:
;
步骤2.4:使任意相邻两个列向量的异或结果都不同:
步骤2.5:选取重量高的列向量,其中重量表示列向量中1的个数,不相邻两位错误与相邻两位错误共享的校正子S数量最小化:
步骤3:计算校正子S:
在译码过程中,当接收到信道输出端的码字r时,译码器进行如下运算:
式中,为信道输出端的码字,即接收向量,s为r的校正子。由接收向量r计算出的校正子仅由错误模式e决定,而与传输的码字无关,因此可以得到校正子和错误模式之间的关系:
,
步骤4:通过校正子S确定传输数据的错误模式:
当校正子S=0时,传输的数据不发生错误;当校正子S≠0时,传输的数据中出现错误,根据相应的校正子S检测和修正这些错误。
步骤5:通过错误模式修正存储器出现的两位错误:
任意一位错误的校正子与任意相邻两位错误的校正子S(e 1), S(e 2),…, S(e i)互不相同,一位错误和相邻两位错误可以通过错误模式e 1, e 2,…, e i 进行辨别并修正。任意不相邻两位错误的校正子与S(e 1), S(e 2),…, S(e i)有部分重复,修正过程中存在一定的误码率,通过步骤2.6最小化任意不相邻两位错误的误码率。
一种由奇偶校验矩阵构建低冗余修正两位错误的存储器加固电路装置,其特征在于:该装置包括16位的低冗余抗多位翻转编码器和16位的低冗余抗多位翻转译码器,其中所述编码器由6组异或逻辑门构成,编码器的逻辑门的输入端口数为奇偶校验矩阵行向量的重量-1个,译码器电路分为校正子S产生、错误模式判断和错误修正三部分,所述校正子S产生电路由6组异或逻辑门构成,生成6位数据宽度的校正子S,译码器的逻辑门为输入端口数为奇偶校验矩阵行向量的重量个。
进一步的说,错误模式判断电路根据不同的校正子S,对一位错误、两位错误或不发生错误进行判断。如果数据中出现错误,修正电路根据错误模式判断电路给出的结果,翻转相应的错误数据,输出正确的数据。
本发明的有益效果:本发明提出了一种新颖的低冗余修正两位错误的存储器加固方法及电路装置,它可以修正任意相邻两位错误。与传统的修正两位错误的存储器加固方法(BCH码方法)相比,使用提出的方法加固后的存储系统,硬件开销降低了40%。通过降低不相邻两位错误与相邻两位错误共享的校正子S数,降低了不相邻两位错误的误码率。与目前同类方法相比,16位数据宽度时不相邻两位错误的误码率降低了20.3%;32位数据宽度时不相邻两位错误的误码率则分别降低了36.4%,实现了在不增加冗余位的前提下,达到提高纠错能力的目的。
低冗余修正两位错误的存储器加固电路装置加入存储器系统后,实现了以较低的硬件冗余开销达到抗多位翻转的目的。使用错误修正码加固的存储器需要存储单元来存放冗余位,因此冗余位的多少直接决定了整个存储器系统的硬件开销。低冗余修正两位错误的存储器加固电路装置,与相同装置(BCH码)相比,16位和32位数据宽度的冗余位分别降低了40%和41%。
附图说明
图1为本发明的16位数据的编码器电路框图;
图2为本发明的16位数据的译码器电路框图;
图3为本发明的方法流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步的说明。
本发明的实施例1参考图3所示。
一种探测修正存储器两位错误的低冗余加固方法,包含如下步骤:
步骤1:构造线性码的低冗余修正两位错误的奇偶校验矩阵H:
式中,为奇偶校验矩阵H的列向量,为奇偶校验矩阵H的单位阵的列向量,根据码字的长度n和数据宽度k可以确定单位阵的列向量,因此只需要确定k个列向量即可构成奇偶校验矩阵H,奇偶校验矩阵H为阶矩阵,m为生成的校正子S的数据宽度位数。
步骤2:生成各个奇偶校验矩阵H的列向量,只需要确定。
确保出现一位错误时校正子S的值不为零,出现的一位错误可以被探测。
步骤2.2:使低冗余修正两位错误的奇偶校验矩阵H所有的列向量都是唯一的:
;
可以保证所有一位错误对应的校正子S都是唯一的,因此所有的一位错误都可以被修正。
步骤2.3:异或运算任意两个列向量得到的向量与校验矩阵中其他的列向量均不同:
;
对一位错误和两位错误的校正子S进行了约束,可以保证两位错误的校正子S与一位错误的校正子S互不相同,因此出现的两位错误可以被探测。
步骤2.4:使任意相邻两个列向量的异或结果都不同:
步骤2.2步骤2.4可以使所有相邻两位错误的校正子S互不相同,因此所有的相邻两位错误都可以被修正。构建的奇偶校验矩阵用于修正所有相邻的两位错误,但是一些不相邻的两位错误会与相邻的两位错误共享同一校正子S,如果出现不相邻的两位错误时,会将其作为相邻的两位错误进行修正。
步骤2.5:选取重量高的列向量,其中重量表示列向量中1的个数,不相邻两位错误与相邻两位错误共享的校正子S数量最小化:
适当地增加列向量的重量,可以增加错误模式所对应校正子S的多样性,从而降低错误的误修正率。步骤2.5可以确保不相邻两位错误的误修正率最小化。
该奇偶校验矩H可以实现对任意相邻两位错误的修正,且使不相邻的两位错误的误码率最低。
步骤3:计算校正子S:
在译码过程中,当接收到信道输出端的码字r时,译码器进行如下运算:
步骤4:通过校正子S确定传输数据的错误模式:
当校正子S=0时,传输的数据不发生错误;当校正子S≠0时,传输的数据中出现错误,根据相应的校正子S检测和修正这些错误。
步骤5:通过错误模式修正存储器出现的两位错误:
任意一位错误的校正子与任意相邻两位错误的校正子S(e 1), S(e 2),…, S(e i)互不相同,一位错误和相邻两位错误可以通过错误模式e 1, e 2,…, e i 进行辨别并修正。任意不相邻两位错误的校正子与S(e 1), S(e 2),…, S(e i)有部分重复,修正过程中存在一定的误码率,通过步骤2.6最小化任意不相邻两位错误的误码率。
实施例2
如果采用16位数据宽度的编码器,则需要生成6位数据宽度的校正子S,由此确定m=6,n=22,k=16,即构建16位数据的低冗余修正两位错误奇偶校验矩阵,该矩阵的除需要经过实施例1中的步骤2.1-2.5的外,还需要经过以下步骤的具体选取:
步骤2.6:重量为6的列向量和重量为5的列向量无法同时存在;
两者的异或结果与单位阵向量相同;
步骤2.7:只能选取一个重量为5的列向量;
如果存在两个重量为5的列向量,那么他们与重量为1的单位阵的异或结果相同;
步骤2.8:不能选取重量为4的向量;
因为他们与重量为1的向量异或结果会生成重量为3的校正子S,影响列向量的取值空间,无法构成所需长度的奇偶校验矩阵;
步骤2.9:不能选取重量为2的向量;
他们与单位阵的异或结果会出现大量重量为3的校正子S,影响列向量取值空间。
如图1、2所示,该装置包括16位的低冗余抗多位翻转编码器和16位的低冗余抗多位翻转译码器,其中所述编码器由6组异或逻辑门构成,编码器的逻辑门的输入端口数为奇偶校验矩阵行向量的重量-1个,译码器电路分为校正子S产生、错误模式判断和错误修正三部分,所述校正子S产生电路由6组异或逻辑门构成,生成6位数据宽度的校正子S,译码器的逻辑门为输入端口数为奇偶校验矩阵行向量的重量个。
进一步的说,错误模式判断电路根据不同的校正子S,对一位错误、两位错误或不发生错误进行判断。如果数据中出现错误,修正电路根据错误模式判断电路给出的结果,翻转相应的错误数据,输出正确的数据。
低冗余修正两位错误的存储器加固电路装置加入存储器系统后,实现了以较低的硬件冗余开销达到抗多位翻转的目的。使用错误修正码加固的存储器需要存储单元来存放冗余位,因此冗余位的多少直接决定了整个存储器系统的硬件开销。低冗余修正两位错误的存储器加固电路装置,与相同装置(BCH码)相比,16位和32位数据宽度的冗余位分别降低了40%和41%。
实施例3
如果采用32位数据宽度的编码器,则需要生成7位数据宽度的校正子S,由此确定m=7,n=39,k=32,即构建32位数据的低冗余修正两位错误奇偶校验矩阵,该矩阵的除需要经过实施例1中的步骤2.1-2.5的外,还需要经过以下步骤的具体选取:
步骤2.6:重量为7的列向量和重量为6的列向量不能同时存在;
两者的异或结果会与单位阵向量相同;
步骤2.7:不能使重量为6的列向量与重量为5的列向量同时出现;
重量为6的列向量会与重量为5的列向量异或产生重量为1的单位阵;
步骤2.8:不能出现重量为7的列向量;
如果存在重量为7的列向量,那么重量为5的列向量中不能出现连续两个零,因为他们的异或结果会与相邻两位错误共享相同的校正子S;
步骤2.9:不能出现重量为4的列向量;
如果存在重量为4的列向量,那么重量为3的列向量之间的异或结果会与之出现过多的共享校正子S。
以上所述实施方式仅表达了本发明的一种实施方式,但并不能因此而理解为对本发明范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (6)
1.一种探测修正存储器两位错误的低冗余加固方法,其特征在于包括如下步骤:
步骤1:构造线性码的低冗余修正两位错误的奇偶校验矩阵H:
,
式中,为奇偶校验矩阵H的列向量,为奇偶校验矩阵H的单位阵的列向量,根据码字的长度n和数据宽度k可以确定单位阵的列向量,因此只需要确定k个列向量即可构成奇偶校验矩阵H,奇偶校验矩阵H为阶矩阵,m为生成的校正子S的数据宽度位数;
步骤3:计算校正子S:
在译码过程中,当接收到信道输出端的码字r时,译码器进行如下运算:
,
步骤4:通过校正子S确定传输数据的错误模式:
第i和第j位发生错误对应的校正子与奇偶校验矩阵H的第i和第j列的异或结果是相同的,当校正子S=0时,传输的数据不发生错误;当校正子S≠0时,传输的数据中出现错误,根据相应的校正子S检测和修正这些错误;
步骤5:通过错误模式修正存储器出现的两位错误:
任意一位错误的校正子与任意相邻两位错误的校正子S(e 1), S(e 2),…, S(e n-1)互不相同,一位错误和相邻两位错误可以通过错误模式e 1, e 2,…, e n-1进行辨别并修正;任意不相邻两位错误的校正子与S(e 1), S(e 2),…,S(e n-1)有部分重复,表明修正过程中存在一定的误码率,返回步骤2最小化任意不相邻两位错误的误码率。
2.根据权利要求1所述的一种探测修正存储器两位错误的低冗余加固方法,其特征在于所述步骤2具体包括如下步骤:
步骤2.1:使低冗余修正两位错误的奇偶校验矩阵H不存在全0的列向量:;
步骤2.2:使低冗余修正两位错误的奇偶校验矩阵H所有的列向量都是唯一的:
步骤2.3:异或运算任意两个列向量得到的向量与校验矩阵中其他的列向量均不同:
;
步骤2.4:使任意相邻两个列向量的异或结果都不同:
步骤2.5:选取重量高的列向量,其中重量表示列向量中1的个数,不相邻两位错误与相邻两位错误共享的校正子S数量最小化:
3.根据权利要求2所述的一种探测修正存储器两位错误的低冗余加固方法,m=6,n=22,k=16,其特征在于所述步骤2还包括如下步骤:
步骤2.6:重量为6的列向量和重量为5的列向量无法同时存在;
步骤2.7:只能选取一个重量为5的列向量;
步骤2.8:不能选取重量为4的向量;
步骤2.9:不能选取重量为2的向量;
4.根据权利要求4所述的低冗余修正两位错误的存储器加固电路装置,其特征在于错误模式判断电路根据不同的校正子S,对一位错误、两位错误或不发生错误进行判断。
5.如果数据中出现错误,修正电路根据错误模式判断电路给出的结果,翻转相应的错误数据,输出正确的数据。
6.根据权利要求2所述的一种探测修正存储器两位错误的低冗余加固方法,m=7,n=39,k=32,其特征在于所述步骤2还包括如下步骤:
步骤2.6:重量为7的列向量和重量为6的列向量不能同时存在;
步骤2.7:不能使重量为6的列向量与重量为5的列向量同时出现;
步骤2.8:不能出现重量为7的列向量;
步骤2.9:不能出现重量为4的列向量;
步骤2.10:使用伪贪婪算法计算确定奇偶校验矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310065442.XA CN103165193B (zh) | 2013-03-01 | 2013-03-01 | 探测修正存储器两位错误的低冗余加固方法及电路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310065442.XA CN103165193B (zh) | 2013-03-01 | 2013-03-01 | 探测修正存储器两位错误的低冗余加固方法及电路装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103165193A true CN103165193A (zh) | 2013-06-19 |
CN103165193B CN103165193B (zh) | 2016-03-02 |
Family
ID=48588199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310065442.XA Expired - Fee Related CN103165193B (zh) | 2013-03-01 | 2013-03-01 | 探测修正存储器两位错误的低冗余加固方法及电路装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103165193B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106416082A (zh) * | 2014-03-20 | 2017-02-15 | 凯撒斯劳滕工业大学 | 对传输数据进行误差修正的方法和装置 |
CN111722956A (zh) * | 2019-03-19 | 2020-09-29 | 西部数据技术公司 | Ldpc码长度调节 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1300953A1 (fr) * | 2001-10-05 | 2003-04-09 | STMicroelectronics S.A. | Code de détection et/ou de correction d'erreurs à haute efficacité |
CN1558557A (zh) * | 2004-01-30 | 2004-12-29 | 琳 王 | 基于和积算法的汉明码迭代译码方法 |
CN102034555A (zh) * | 2011-01-19 | 2011-04-27 | 哈尔滨工业大学 | 一种利用奇偶校验码进行故障在线纠错装置及方法 |
CN102298973A (zh) * | 2011-06-02 | 2011-12-28 | 哈尔滨工业大学 | 抗辐射故障保护型存储装置及其抗辐射故障保护方法 |
US20120117448A1 (en) * | 2010-11-10 | 2012-05-10 | Infineon Technologies Ag | Apparatus and Method for Correcting at least one Bit Error within a Coded Bit Sequence |
CN102710266A (zh) * | 2012-05-31 | 2012-10-03 | 电子科技大学 | 一种汉明码编码参数盲识别方法 |
-
2013
- 2013-03-01 CN CN201310065442.XA patent/CN103165193B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1300953A1 (fr) * | 2001-10-05 | 2003-04-09 | STMicroelectronics S.A. | Code de détection et/ou de correction d'erreurs à haute efficacité |
CN1558557A (zh) * | 2004-01-30 | 2004-12-29 | 琳 王 | 基于和积算法的汉明码迭代译码方法 |
US20120117448A1 (en) * | 2010-11-10 | 2012-05-10 | Infineon Technologies Ag | Apparatus and Method for Correcting at least one Bit Error within a Coded Bit Sequence |
CN102468855A (zh) * | 2010-11-10 | 2012-05-23 | 英飞凌科技股份有限公司 | 用于纠正在编码比特序列中的至少单比特错误的设备和方法 |
CN102034555A (zh) * | 2011-01-19 | 2011-04-27 | 哈尔滨工业大学 | 一种利用奇偶校验码进行故障在线纠错装置及方法 |
CN102298973A (zh) * | 2011-06-02 | 2011-12-28 | 哈尔滨工业大学 | 抗辐射故障保护型存储装置及其抗辐射故障保护方法 |
CN102710266A (zh) * | 2012-05-31 | 2012-10-03 | 电子科技大学 | 一种汉明码编码参数盲识别方法 |
Non-Patent Citations (2)
Title |
---|
李路路 等: "一种基于编码的存储器加固设计", 《通信技术》 * |
祝名 等: "Multiple bit upsets mitigation in memory by using improved hamming codes and parity codes", 《JOURNAL OF HARBIN INSTITUTE OF TECHNOLOGY》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106416082A (zh) * | 2014-03-20 | 2017-02-15 | 凯撒斯劳滕工业大学 | 对传输数据进行误差修正的方法和装置 |
CN111722956A (zh) * | 2019-03-19 | 2020-09-29 | 西部数据技术公司 | Ldpc码长度调节 |
CN111722956B (zh) * | 2019-03-19 | 2024-04-09 | 西部数据技术公司 | Ldpc码长度调节 |
Also Published As
Publication number | Publication date |
---|---|
CN103165193B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2016266818B2 (en) | Fault tolerant syndrome extraction and decoding in Bacon-Shor quantum error correction | |
CN107086870B (zh) | 修复多节点失效的mds阵列码编码以及解码方法 | |
CN104282340B (zh) | 一种固态盘闪存芯片阈值电压感知方法及系统 | |
US9787329B2 (en) | Efficient coding with single-error correction and double-error detection capabilities | |
CN101099138A (zh) | 限制了错误字节数的字节内多个斑点字节错误纠正/检测方法和装置 | |
KR20080018560A (ko) | 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 | |
WO2014113226A1 (en) | Syndrome of degraded quantum redundancy coded states | |
CN104409103A (zh) | 一种新颖的宇航用存储器二维编码加固方法及电路装置 | |
CN107507648A (zh) | 操作解码器以及操作包括该解码器的数据存储装置的方法 | |
CN101976584A (zh) | 准循环低密度奇偶校验码译码器及译码方法 | |
CN110415753A (zh) | 错误校正电路及操作该错误校正电路的方法 | |
CN103165193A (zh) | 一种探测修正存储器两位错误的低冗余加固方法及电路装置 | |
CN102820892B (zh) | 一种用于并行bch编码的电路、编码器及方法 | |
Wang et al. | Reliable and secure memories based on algebraic manipulation correction codes | |
CN101848001B (zh) | Flash控制器中BCH编译码的数据长度扩展方法 | |
CN101800560A (zh) | Flash控制器中BCH编译码的纠错能力扩展方法 | |
CN105022675B (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 | |
US3891969A (en) | Syndrome logic checker for an error correcting code decoder | |
CN103151078A (zh) | 一种存储器检错纠错码生成方法 | |
CN109450460A (zh) | 一种rs码与卷积码的级联码的参数识别方法 | |
CN105005513A (zh) | 高速缓存多位数据翻转错误的检测及容错装置与方法 | |
CN202838976U (zh) | 基于edac模块的三模冗余对存储器的容错装置 | |
Dugar et al. | A survey on Hamming codes for error detection | |
US10623018B2 (en) | Method of arrangement of an algorithm in cyclic redundancy check | |
Faraj | ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’ |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 Termination date: 20170301 |