CN101281481B - 一种存储器抗单粒子翻转的纠错检错方法 - Google Patents
一种存储器抗单粒子翻转的纠错检错方法 Download PDFInfo
- Publication number
- CN101281481B CN101281481B CN2008101124218A CN200810112421A CN101281481B CN 101281481 B CN101281481 B CN 101281481B CN 2008101124218 A CN2008101124218 A CN 2008101124218A CN 200810112421 A CN200810112421 A CN 200810112421A CN 101281481 B CN101281481 B CN 101281481B
- Authority
- CN
- China
- Prior art keywords
- data
- information data
- bit
- error
- mistake
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种存储器抗单粒子翻转的纠错检错方法,步骤为:(1)从CPU接收K位信息数据;(2)生成与K位信息数据对应的N位校验数据A;(3)将K位信息数据和N位校验数据A存入存储器;(4)从存储器中读出所述K位信息数据,并采用步骤(2)方法重新生成与K位信息数据对应的N位校验数据B;(5)将校验数据A和校验数据B进行异或运算,得到校正子;(6)通过校正子定位信息数据和校验数据A中的错误,若产生一位或两位数据错误,则纠正数据错误并输出正确的数据;若产生三位或可检测的三位以上的数据错误,则提示产生不可纠正错误。该方法纠错能力强、操作简单,可对单粒子效应引起的存储器一位或两位错误进行有效纠检。
Description
技术领域
本发明涉及一种存储器的纠错检错方法,特别是一种存储器抗单粒子翻转的纠二检多错方法。
背景技术
在各类微处理器中,各种存储单元(数据存储器、程序存储器、寄存器、触发器)占据了芯片面积的30%-70%,是芯片中对瞬时干扰最为敏感的部分。星载微处理器受空间辐射的影响,存储单元会发生单粒子翻转(single effectupset)问题,因而引起程序出错,如果SEU问题不能及时得到解决,可能会引起微处理器工作异常。EDAC(Error Detection And Correction)技术能有效的解决SEU问题,同时不依赖于工艺。随着电子技术的不断发展,以及人们对SEU(Single Effect Upset)认识的不断深入,生产厂商已由生产专门的EDAC芯片发展到带有EDAC功能的微处理芯片。国内外都有过对SEU现象的检测,检测结果表明,SEU产生的时间与物理地址有着很大的离散性,在考察整个存储器芯片的SEU情况时,对于较大工艺尺寸的存储设备,在较短的时间内没有发现字节或字出现多比特翻转。因此,目前在大多存储器编码纠检错技术中多采用纠一检二的纠错方法,如申请号为200510041617.9、名称为空间计算机抗单粒子翻转的存储器纠检错与自动回写方法的专利公开的一种纠检错方法,该方法仅能对存储器的单个数据错误进行纠正,当发生两位及以上错误时便无法确定出错位置。空间高能粒子能够产生足够的电离电荷和LET(LinearEnergy Transfer,线性能量传输密度)值,它们是SEU发生的重要影响因素。随着集成电路工艺的不断提高,一方面,存储电路发生逻辑翻转的临界电荷减小,另一方面,对于相同LET值,电路收集电荷的能力不断增强,当高能带电粒子通过存储器时,在粒子通过的路径上将产生电离电荷,沉积在器件灵敏区中的电荷部分被电极收集,当收集到的电荷超过电路状态的临界电荷时,电路就会出现翻转(即SEU)。因此,在超深亚微米集成电路中,更容易发生SEU问题,同时考虑到空间辐射环境在地域和时间变化的复杂性,会增加单个离子产生的电荷为两个相邻的单元分享的可能,导致存储单元受辐射的影响主要发生一位和两位翻转。这种情况下,目前所采用的纠一检二错方法已无法满足要求。现有的纠二检多错方法,如题名为《一种卫星存储器纠检错系统设计》(淮阳工学院报,2007年第3期)文献报道的一种纠检错方法,该方法在定位错误时,认为当校验位发生一位或两位错误时,错误图样为0,当一位信息数据和一位校验数据同时发生错误时,错误图样同于只有一位信息数据发生错误时的情况,即对校验数据发生的错误并未进行处理。由于存储器中,同一信息数据和校验数据还会被再次使用,如果不对校验数据错误及时进行纠检,在空间辐射的影响下,就可能引起不可纠的多位错,再次读取该数据时可能产生错误的校正子,这样就无法准确的识别错误类型,导致判断错误,从而影响纠检错结果的准确性。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种纠错能力强、操作简单的存储器抗单粒子翻转的纠二检多错方法。
本发明的技术解决方案是:一种存储器抗单粒子翻转的纠错检错方法,其特征在于步骤如下:
(1)从CPU接收K位信息数据;
(2)生成与所述K位信息数据对应的N位校验数据A;
(3)将所述K位信息数据和所述N位校验数据A存入存储器;
(4)从存储器中读出所述K位信息数据,并采用步骤(2)方法重新生成与所述K位信息数据对应的N位校验数据B;
(5)将校验数据A和校验数据B进行异或运算,得到校正子;
(6)通过校正子定位信息数据和校验数据A中的错误,若产生一位或两位数据错误,则纠正数据错误并输出正确的数据;若产生三位或可检测的三位以上的数据错误,则提示产生不可纠正错误。
所述步骤(2)中生成N位校验数据A的方法为:采用公式P=M·G进行计算,其中M为将K位信息数据以8位为单位分组后形成的1×8行向量,G为与8位信息数据对应的生成矩阵,其具体形式根据纠检错能力和信息数据的位数K确定,P为生成的与8位信息数据对应的校验数据,K/8组数据并行处理,即可得到校验数据A。
当所述信息数据的位数K为8、可纠检8位信息数据中的2位错误时,所述的生成矩阵G的形式为:
所述的校验数据A或校验数据B的位数N与信息数据的位数K可以相等,也可以不相等。
所述步骤(6)中通过校正子定位信息数据和校验数据A中错误的方法为:根据校正子与奇偶校验矩阵H中每一列的对应关系进行数据错误定位,若校正子与奇偶校验矩阵H中只有一列对应相同,则可判断信息数据或校验数据A中产生一位数据错误;若校正子与奇偶校验矩阵H中某两列的按位异或运算结果对应相同,则可判断信息数据或校验数据A中产生两位数据错误,奇偶校验矩阵H的形式为:其中I为单位矩阵。
所述步骤(6)中对产生的一位数据错误进行纠正的方法为:将奇偶校验矩阵H中与校正子相同的列的对应位进行取反操作。
所述步骤(6)中对产生的两位数据错误进行纠正的方法为:将奇偶校验矩阵H中按位异或运算的结果与校正子相同的两列的对应位进行取反操作。
本发明与现有技术相比的优点在于:
1)本发明方法能够纠正数据位和校验位总和位中的一位或两位数据错误,纠错能力强;
2)本发明方法可对K/8组数据并行采用生成矩阵G进行纠检错码,最多能够纠正K/4个数据错误,并在实际应用到存储器纠检错时,具有较短的延时,可有效提高存储器抗单粒子翻转的能力;
3)本发明方法同时对信息数据和校验数据进行纠检错,对校验数据发生的错误及时纠正,提高了错误判断的准确性,并可减小实际应用时在回写信息数据和校验数据时的系统功耗;
4)实际应用时,可将校验数据的生成方法形成编码模块,并在解码过程中复用,大大提高系统资源的利用率。由于编码模块是由多个异或门实现的,如果对32位数据编码,要用到的异或门有九十个左右,复用编码模块,可以减少EDAC电路的功耗;同时空间辐射环境可能会对EDAC电路产生影响,如果对EDAC模块进行加固,复用编码模块可以降低加固代价。
附图说明
图1为本发明存储器抗单粒子翻转纠检错方法的流程框图。
具体实施方式
如图1所示,为本发明方法的原理框图,当EDAC电路接收到CPU写信号时,EDAC编码模块接收K位信息数据(根据CPU的处理能力,K可为8、16、32、64等),并对接收到的K位信息数据进行编码,生成N位校验数据A。编码时采用公式P=M·G进行计算,并生成相应的编码模块,其中M为将K位信息数据以8位为单位分组后(分为K/8组)形成的1×8行向量,G为生成矩阵,P为生成的与8位信息数据对应的校验数据,并行采用这种处理过程,即可得到校验数据A。G为生成矩阵,其具体形式根据纠检错能力和信息数据的位数K确定。
生成校验数据A后,将K位信息数据和N位校验数据A存入存储器。根据选取生成矩阵G的不同,校验数据A的位数N与信息数据的位数K可以相等,也可以不相等。当EDAC电路接收到CPU读信号时,从存储器中读出上述存入的K位信息数据和N位校验数据A,并复用编码模块重新生成与K位信息数据对应的N位校验数据B。
将校验数据A和校验数据B进行异或运算,得到校正子,同时生成奇偶校验矩阵H,H的形式为:其中I为单位矩阵。当由G生成的码字能够纠正两个错误时,该码的奇偶校验矩阵的特征为:H中不多于4个列向量之和均不等于0,即该码的最小距离不小于5。根据奇偶校验矩阵H中与校正子相同的列的对应关系,判断数据错误位置,对产生的一位或两位数据错误进行纠正。若校正子与奇偶校验矩阵H中只有一列对应相同,则可判断信息数据或校验数据A中产生一位数据错误;若校正子与奇偶校验矩阵H中某两列的异或运算结果对应相同,则可判断信息数据或校验数据A中产生两位数据错误,将发生错误对应位进行取反操作即可完成错误纠正。
具体可以进行纠错的类型分以下几种:
A.数据位和校验位都没有发生错误,将数据送给CPU;
B.一位错的可能:数据位发生一位错或是校验位发生一位错,对相应位进行取反操作,数据得到纠正;
C.两位错的可能:
数据位中没有发生错误,校验位中发生了两位错误;
这三种情况下,都是对相应位进行取反操作,数据得到纠正。
D.出现不可纠的错误,报告给系统进行处理。
实施例
该例中对8位数据进行编码纠检错,如果需要对16位、32位数据同时进行纠检错,可以使用两个、四个并行编解码模块来实现。
当EDAC电路接收到CPU写信号时,写入数据M=[00010100],利用如下形式的生成矩阵G对其进行编码(选取线性分组码),生成校验数据A=[01101001],
将产生的校验数据A和信息数据生成原始数据C=[0001010001101001]一同存储在相应的存储单元中,存储时信息数据在左,校验数据在右,高位在左,低位在右。假设由于存储器受到空间辐射环境的影响,存储器受到单粒子轰击,其中存储数据C的第14位(即数据位的第6位)和第3位(即校验数据的第3位)存储单元发生逻辑翻转,原始数据C=[0001010001101001]的值变为R=[0101010001100001]。
EDAC接收CPU的读信号时,对要从存储器读出的数据R=[0101010001100001]进行纠检错,先对R的高8位数据重新编码,产生校验数据B=[01000111],B与R的低8位(即校验数据A)异或产生校正子S=[01100001],此时的奇偶校验矩阵H的形式为:
通过奇偶校验矩阵H中与校正子相同的列的对应关系可以判断出在数据位的第6位和校验位的第3位各发生一位错误,通过对相同列的对应位进行取反操作,即可得到正确数据C=[0001010001101001]。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (5)
1.一种存储器抗单粒子翻转的纠错检错方法,其特征在于步骤如下:
(1)从CPU接收K位信息数据;
(2)生成与所述K位信息数据对应的N位校验数据A;采用公式P=M·G进行计算,其中M为将K位信息数据以8位为单位分组后形成的1×8行向量,G为与8位信息数据对应的生成矩阵,其具体形式根据纠检错能力和信息数据的位数K确定,P为生成的与8位信息数据对应的校验数据,K/8组数据并行处理,即可得到校验数据A;
(3)将所述K位信息数据和所述N位校验数据A存入存储器;
(4)从存储器中读出所述K位信息数据,并采用步骤(2)方法重新生成与所述K位信息数据对应的N位校验数据B;
(5)将校验数据A和校验数据B进行异或运算,得到校正子;
2.根据权利要求1所述的一种存储器抗单粒子翻转的纠错检错方法,其特征在于:当所述信息数据的位数K为8、可纠检8位信息数据中的2位错误时,所述的生成矩阵G的形式为:
3.根据权利要求1所述的一种存储器抗单粒子翻转的纠错检错方法,其特征在于:所述的校验数据A或校验数据B的位数N与信息数据的位数K可以相等,也可以不相等。
4.根据权利要求1所述的一种存储器抗单粒子翻转的纠错检错方法,其特征在于:所述步骤(6)中对产生的一位数据错误进行纠正的方法为:将奇偶校验矩阵H中与校正子相同的列的对应位进行取反操作。
5.根据权利要求1所述的一种存储器抗单粒子翻转的纠错检错方法,其特征在于:所述步骤(6)中对产生的两位数据错误进行纠正的方法为:将奇偶校验矩阵H中按位异或运算的结果与校正子相同的两列的对应位进行取反操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101124218A CN101281481B (zh) | 2008-05-23 | 2008-05-23 | 一种存储器抗单粒子翻转的纠错检错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101124218A CN101281481B (zh) | 2008-05-23 | 2008-05-23 | 一种存储器抗单粒子翻转的纠错检错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101281481A CN101281481A (zh) | 2008-10-08 |
CN101281481B true CN101281481B (zh) | 2010-06-16 |
Family
ID=40013966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101124218A Expired - Fee Related CN101281481B (zh) | 2008-05-23 | 2008-05-23 | 一种存储器抗单粒子翻转的纠错检错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101281481B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2816550C1 (ru) * | 2023-05-16 | 2024-04-01 | Александр Алексеевич Павлов | Устройство хранения и считывания информации с коррекцией одиночных ошибок |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011021126A1 (en) * | 2009-08-21 | 2011-02-24 | International Business Machines Corporation | Data storage system and method for operating a data storage system |
CN102110028A (zh) * | 2009-12-25 | 2011-06-29 | 康佳集团股份有限公司 | 一种nand闪存及其数据的校验方法和装置 |
CN101976212B (zh) * | 2010-10-27 | 2012-01-25 | 西安空间无线电技术研究所 | 一种基于少量代码重加载的dsp抗单粒子纠错方法 |
CN102176322B (zh) * | 2011-01-28 | 2012-11-21 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种物理空间交错式抗单粒子临近效应的静态存储单元 |
CN102881334B (zh) * | 2012-09-14 | 2015-02-04 | 东南大学 | 核探测机器人控制系统中数据存储的纠错方法 |
CN102929742B (zh) * | 2012-10-29 | 2015-04-08 | 无锡江南计算技术研究所 | 18颗粒存储接口的单颗粒容错方法 |
CN103269231B (zh) * | 2013-06-05 | 2016-09-21 | 中国科学院上海微系统与信息技术研究所 | Bch码检纠错方法、电路及容错存储器 |
CN103631669B (zh) * | 2013-12-03 | 2016-06-22 | 中国科学院微电子研究所 | 一种纠错sram的回写方法 |
JP6212396B2 (ja) * | 2014-01-08 | 2017-10-11 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
CN104062978B (zh) * | 2014-06-26 | 2016-08-17 | 北京控制工程研究所 | 一种消除空间单粒子打翻cpu寄存器对姿态影响的方法 |
CN104133738B (zh) * | 2014-07-11 | 2017-04-12 | 中国人民解放军信息工程大学 | 基于sec‑ded的星载mimo检测器的抗seu方法 |
CN104484256B (zh) * | 2014-12-05 | 2017-01-11 | 北京时代民芯科技有限公司 | 一种验证sparc v8处理器寄存器堆纠检错功能的方法 |
CN104991833B (zh) * | 2015-06-15 | 2018-03-27 | 联想(北京)有限公司 | 一种错误检测方法及电子设备 |
CN104991859B (zh) * | 2015-06-23 | 2017-08-25 | 北京时代民芯科技有限公司 | 基于测试指令序列的单粒子敏感器件的敏感性预估方法 |
CN105183579B (zh) * | 2015-09-24 | 2019-09-24 | 联想(北京)有限公司 | 一种数据校验方法及装置、电子设备 |
CN105653771B (zh) * | 2015-12-25 | 2018-12-21 | 北京时代民芯科技有限公司 | 一种通过逻辑设计提高芯片抗单粒子翻转能力的方法 |
CN105866653B (zh) * | 2016-03-28 | 2018-05-25 | 工业和信息化部电子第五研究所 | 多灵敏区单粒子效应预计的方法和系统 |
CN108242973B (zh) * | 2016-12-26 | 2020-10-27 | 北京邮电大学 | 一种数据纠错方法及装置 |
CN109412600A (zh) * | 2018-09-03 | 2019-03-01 | 何祥果 | 一种基于磁性特征的标识号编码方法 |
CN111352754B (zh) * | 2018-12-21 | 2023-09-15 | 中国石油天然气集团有限公司 | 一种数据存储检错纠错方法及数据存储装置 |
CN110096909B (zh) * | 2019-04-19 | 2021-04-20 | 深圳忆联信息系统有限公司 | 一种保证efuse秘钥稳定性的方法及其系统 |
CN110209524B (zh) * | 2019-06-18 | 2022-12-06 | 哈尔滨工业大学 | 一种抗单粒子瞬态效应的ecc译码器加固方法 |
CN110531244B (zh) * | 2019-08-01 | 2021-10-01 | 西北核技术研究院 | 一种数字电路单粒子软错误演化过程测试方法 |
CN110931074B (zh) * | 2019-11-25 | 2021-09-28 | 北京时代民芯科技有限公司 | 一种用于抗单粒子翻转存储器的可选位宽纠检错电路 |
CN112309484A (zh) * | 2020-01-09 | 2021-02-02 | 成都华微电子科技有限公司 | 一种存储控制器的设计方法 |
CN111459712B (zh) * | 2020-04-16 | 2021-04-02 | 上海安路信息科技股份有限公司 | Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路 |
EP4258115A4 (en) | 2022-02-24 | 2024-01-03 | Changxin Memory Tech Inc | DATA ERROR CORRECTION CIRCUIT AND DATA TRANSFER CIRCUIT |
CN116701044A (zh) * | 2022-02-24 | 2023-09-05 | 长鑫存储技术有限公司 | 数据传输电路与数据传输方法 |
US11928341B2 (en) | 2022-02-24 | 2024-03-12 | Changxin Memory Technologies, Inc. | Sleep control method and sleep control circuit |
EP4258267A4 (en) | 2022-02-24 | 2024-04-24 | Changxin Memory Tech Inc | DATA TRANSMISSION CIRCUIT, DATA TRANSMISSION METHODS AND STORAGE |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632757A (zh) * | 2005-01-10 | 2005-06-29 | 中国航天时代电子公司第七七一研究所 | 空间计算机抗单粒子翻转的存储器纠检错与自动回写方法 |
-
2008
- 2008-05-23 CN CN2008101124218A patent/CN101281481B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632757A (zh) * | 2005-01-10 | 2005-06-29 | 中国航天时代电子公司第七七一研究所 | 空间计算机抗单粒子翻转的存储器纠检错与自动回写方法 |
Non-Patent Citations (2)
Title |
---|
向春清,谭培勇.一种卫星存储器纠错检错系统设计.淮阴工学院学报16 3.2007,16(3),40-43. |
向春清,谭培勇.一种卫星存储器纠错检错系统设计.淮阴工学院学报16 3.2007,16(3),40-43. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2816550C1 (ru) * | 2023-05-16 | 2024-04-01 | Александр Алексеевич Павлов | Устройство хранения и считывания информации с коррекцией одиночных ошибок |
Also Published As
Publication number | Publication date |
---|---|
CN101281481A (zh) | 2008-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101281481B (zh) | 一种存储器抗单粒子翻转的纠错检错方法 | |
CN104900271B (zh) | 用于通过数据反演来提高数据存储的设备和方法 | |
CN103294049B (zh) | 用于基于签名的冗余比较的系统和方法 | |
Sanchez-Macian et al. | Enhanced detection of double and triple adjacent errors in hamming codes through selective bit placement | |
CN108874576B (zh) | 一种基于纠错编码的数据存储系统 | |
CN104636115A (zh) | 一种真随机数后处理装置及方法 | |
Naeimi et al. | Fault secure encoder and decoder for memory applications | |
CN102298973B (zh) | 抗辐射故障保护型存储装置及其抗辐射故障保护方法 | |
CN105022675B (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 | |
CN106328209A (zh) | 存储器单粒子多位翻转容错方法及电路 | |
US5491702A (en) | Apparatus for detecting any single bit error, detecting any two bit error, and detecting any three or four bit error in a group of four bits for a 25- or 64-bit data word | |
CN105138412B (zh) | 嵌入式微处理器高速缓存的混合纠错装置与方法 | |
CN103151078B (zh) | 一种存储器检错纠错码生成方法 | |
CN107301881A (zh) | 一种基于4位相邻和3位突发纠错码的sram存储器抗辐射加固方法及存储器系统 | |
Song et al. | SEC-BADAEC: An Efficient ECC With No Vacancy for Strong Memory Protection | |
CN105005513A (zh) | 高速缓存多位数据翻转错误的检测及容错装置与方法 | |
Athira et al. | FPGA implementation of an area efficient matrix code with encoder reuse method | |
Hwang et al. | Scrubbing with partial side information for radiation-tolerant memory | |
Mădălin et al. | Unidirectional error detection, localization and correction for DRAMs: Application to on-line DRAM repair strategies | |
CN101178943A (zh) | 存储器及其读取错误检测方法 | |
CN204833243U (zh) | 嵌入式微处理器高速缓存的混合纠错装置 | |
CN202838976U (zh) | 基于edac模块的三模冗余对存储器的容错装置 | |
Faraj | ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’ | |
CN109753369A (zh) | 一种寄存器及内存中顺序数组的数据编码及校验方法 | |
CN204856465U (zh) | 高速缓存多位数据翻转错误的检测及容错装置 |
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: 20100616 Termination date: 20190523 |