CN105068882A - 基于二维检错纠错编码的sram抗辐射加固方法 - Google Patents
基于二维检错纠错编码的sram抗辐射加固方法 Download PDFInfo
- Publication number
- CN105068882A CN105068882A CN201510400267.4A CN201510400267A CN105068882A CN 105068882 A CN105068882 A CN 105068882A CN 201510400267 A CN201510400267 A CN 201510400267A CN 105068882 A CN105068882 A CN 105068882A
- Authority
- CN
- China
- Prior art keywords
- code
- error
- sram
- code number
- rsqb
- 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
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种基于二维检错纠错编码的SRAM抗辐射加固方法,用于解决现有SRAM抗辐射方法SRAM抗单粒子翻转能力差的技术问题。技术方案是首先对写入数据进行横向正反码(16,8)编码,对同列数据进行纵向海明码(12,8)编码,即基于正反码和海明码交叉校验的二维检错纠错编码;然后当发生单粒子效应导致多位翻转问题时,利用二维检错纠错算法,依次对读出数据进行解码运算。本发明充分利用横向正反码、纵向海明码的交叉校验能力,有效地提高了SRAM检错纠错能力,使SRAM能纠正2位以上错码,即处理单粒子效应导致的多位翻转问题,从而进一步提高了SRAM抗单粒子翻转能力。
Description
技术领域
本发明涉及一种SRAM抗辐射方法,特别是涉及一种基于二维检错纠错编码的SRAM抗辐射加固方法。
背景技术
在SRAM系统级抗单粒子翻转效应加固技术中,基于海明码、三模冗余(TMR)错误检测与校正(EDAC)的加固技术被普遍采用。
文献“抗单粒子翻转效应的SRAM研究与设计[J].固体电子学研究与进展,陈楠,魏廷存等.Oct.,2013,Vol.33,No.5.”公开了一种采用海明码校验的EDAC抗单粒子辐射加固方法,该系统结构主要由SRAM、EDAC编码电路、EDAC解码校验电路组成。SRAM的数据写入和读出都经过EDAC模块处理,其中EDAC编码电路给写入数据产生冗余校验位,并将数据位与冗余校验位组合成海明码存储到SRAM,EDAC解码校验电路对读出数据进行“纠一检二”纠错处理。
利用海明码校验的EDAC方法可以对存储数据实现“纠一检二”功能,而且海明码编码效率较高(海明码(12,8)分组,编码效率高达67%),一定程度上可以提高SRAM抗单粒子翻转效应能力。但海明码纠错能力比较低,只能纠正一位错码,单粒子辐射效应导致的多位翻转(MBU)很难处理。同样,如果单独使用三模冗余的编码分组(24,8),也只能纠正一位错码,而且编码效率只有33%,不能处理单粒子辐射效应导致的多位翻转问题。
发明内容
为了克服现有SRAM抗辐射方法SRAM抗单粒子翻转能力差的不足,本发明提供一种基于二维检错纠错编码的SRAM抗辐射加固方法。该方法首先对写入数据进行横向正反码(16,8)编码,对同列数据进行纵向海明码(12,8)编码,即基于正反码和海明码交叉校验的二维检错纠错编码;然后当发生单粒子效应导致多位翻转问题时,利用二维检错纠错算法,依次对读出数据进行解码运算。本发明充分利用横向正反码、纵向海明码的交叉校验能力,能有效提高SRAM检错纠错能力,使SRAM能纠正2位以上错码,即处理单粒子效应导致的多位翻转问题,从而进一步提高SRAM抗单粒子翻转能力。
本发明解决其技术问题所采用的技术方案是:一种基于二维检错纠错编码的SRAM抗辐射加固方法,其特点是采用以下步骤:
步骤一、扫描统计横向最大错码数Ex、纵向最大错码数Ey;
步骤二、判断横向最大错码数Ex和纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤三;
步骤三、判断横向最大错码数Ex是否大于1,如果是转步骤六,否则转步骤四;
步骤四、横向扫描正反码纠单错;
步骤五、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤六、判断纵向最大错码数Ey是否大于1,如果是转步骤九,否则转步骤七;
步骤七、扫描纵向海明码纠单错;
步骤八、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤九、扫描横向正反码纠单错;
步骤十、扫描统计横向最大错码数Ex、纵向最大错码数Ey;
步骤十一、判断横向最大错码数Ex是否大于1,如果是转步骤十三,否则转步骤十二;
步骤十二、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤十三、判断纵向最大错码数Ey是否大于1,如果是转步骤十七,否则转步骤十四;
步骤十四、扫描纵向海明码纠单错;
步骤十五、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤十六、所有错码纠正,二维检错纠错结束;
步骤十七、存在不可纠正错码,二维检错纠错结束。
本发明的有益效果是:该方法首先对写入数据进行横向正反码(16,8)编码,对同列数据进行纵向海明码(12,8)编码,即基于正反码和海明码交叉校验的二维检错纠错编码;然后当发生单粒子效应导致多位翻转问题时,利用二维检错纠错算法,依次对读出数据进行解码运算。本发明充分利用横向正反码、纵向海明码的交叉校验能力,有效地提高了SRAM检错纠错能力,使SRAM能纠正2位以上错码,即处理单粒子效应导致的多位翻转问题,从而进一步提高了SRAM抗单粒子翻转能力。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明方法提出的二维检错纠错编码。
图2是图1中2位错码同行的错误类型图。
图3是图1中2位错码同列的错误类型图。
图4是图1中2位错码既不同行也不同列的错误类型图。
图5是图1中3位错码同行或者同列的错误类型图。
图6是图1中3位错码两两同行或者同列的错误类型图。
图7是图1中3位错码中2位同行或者同列的错误类型图。
图8是图1中3位错码既不同行也不同列的错误类型图。
图9是图1中4位错码两两同行或者同列的错误类型图。
图10是二维检错纠错算法流程图。
图11是本发明基于二维检错纠错编码的SRAM抗辐射加固方法的流程图。
图12是横向正反码编码原理图。
图13是纵向海明码编码原理图。
图14是横向正反码解码原理图。
图15是纵向海明码解码原理图。
具体实施方式
参照图1-15。本发明基于二维检错纠错编码的SRAM抗辐射加固方法具体步骤如下:
本发明二维检错纠错编码方法横向采用正反码编码,纵向对应列采用海明码编码。为适应SRAM存储结构按字节编码,横向正反码8位信息码对应8位监督码,其码距为4,能纠单错检双错,且具有实现简单的特点;纵向采用(12,8)分组的海明码,其码距为4,同样具有纠单错检双错能力,具有编码效率高的特点。
本发明归纳整理了二维检错纠错编码的4位以内所有可能错码类型,针对不同错码类型,基于二维检错纠错编码的交叉校验纠错方法分析如下:
(1)1位错码情况;
无论采用横向或纵向检错纠错算法,1位错码都能纠正。
(2)2位错码情况;
2位错码位置分布可以分为:2位错码在同一行、2位错码在同一列、2位错码既不同行也不同列共三种情况。
(a)在同一行的2位错码可通过纵向检错纠错算法纠正;
(b)在同一列的2位错码可通过横向检错纠错算法纠正;
(c)不同行列的2位错码通过横向正或者纵向检错纠错算法都能纠正;
(3)3位错码情况;
类似步骤(2)中2位错码位置分布,3位错码位置分布可以分为3位错码在同一行或者同一列、3位错码中两两同行或者同列、3位错码中2位同行或者同列、3位错码既不同行也不同列共四种情况;
(a)如果是3位错码在同一行,采用纵向检错纠错算法纠正,如果3位错码在同一列,采用横向检错纠错纠正;
(b)如果3位错码两两同行,先采用一种检错纠错算法纠1位错码,再换另外一种算法依次纠2位错码;
(c)如果3位错码中2位同行或者同列,先采用一种检错纠错算法纠正,再换另外一种算法纠正剩余错码,也有可能前一种算法已经全部纠正;
(d)不同行列的3位错码通过横向或者纵向检错纠错算法都能纠正;
(4)4位错码情况;
类似上述错码类型分析,4位错码中大部分错码类型能通过交叉校验纠正,除过一种特殊错码类型——4位错码两两同行或者同列。
根据上述二维检错纠错编码错误类型分析,结合降低纠错算法复杂程度原则,本发明提出一种能交叉校验全部3位错码以及大部分4位错码的纠错算法,基于二维检错纠错编码的纠错方法设计如下:
(1)扫描统计横向最大错码数Ex、纵向最大错码数Ey;
(2)判断Ex、Ey是否等于0,如果是则转步骤(16),否则转步骤(3);
(3)判断横向最大错码数Ex是否大于1,如果是转步骤(6),否则转步骤(4);
(4)横向扫描正反码纠单错;
(5)判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤(16),否则转步骤(17);
(6)判断纵向最大错码数Ey是否大于1,如果是转步骤(9),否则转步骤(7);
(7)扫描纵向海明码纠单错;
(8)判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤(16),否则转步骤(17);
(9)扫描横向正反码纠单错;
(10)扫描统计横向最大错码数Ex、纵向最大错码数Ey;
(11)判断横向最大错码数Ex是否大于1,如果是转步骤(13),否则转步骤(12);
(12)判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤(16),否则转步骤(17);
(13)判断纵向最大错码数Ey是否大于1,如果是转步骤(17),否则转步骤(14);
(14)扫描纵向海明码纠单错;
(15)判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤(16),否则转步骤(17);
(16)所有错码纠正,二维检错纠错结束;
(17)存在不可纠正错码,二维检错纠错结束。
本发明方法具体实现过程为:
(1)首先对待写入数据按字节编码,分别进行横向正反码(16,8)、纵向海明码(12,8)编码。横向正反码由8位信息码、8位监督码组合生成,其中监督码是信息码的重复或反码,假定信息码依次是D[8]D[7]…D[1],如果信息码中“1”的个数是奇数,即判决信号R等于1,监督码Q[8]Q[7]…Q[1]等于D[8]D[7]…D[1],反之,监督码Q[8]Q[7]…Q[1]等于~D[8]~D[7]…~D[1]。
纵向海明码由8位信息码D[8]D[7]…D[1]、4位校验码P[4]P[3]…P[1]组成,其中校验码与信息码满足如下公式:
(2)当需要读出数据时,按照本发明设计的二维检错纠错算法对SRAM中存储的数据校验纠错,其中横向正反码、纵向海明码的纠错步骤如下。
横向正反码是一种简单的分组码,其监督字段码元数与信息字段码元数相同,监督码是信息码的重复或反码。正反码纠错步骤:
①信息字段D[8]D[7]…D[1]和监督字段Q[8]Q[7]…Q[1]模2相加,得到一个合成码组Z[8]Z[7]…Z[1]:
②然后由合成码组Z[8]Z[7]…Z[1]产生一校验码组W[8]W[7]…W[1]。若接收码组的信息字段中有奇数个“1”,则合成码组就是校验码组,若接收码组的信息字段中有偶数个“1”,则取合成码组的反码作为校验码组。
③根据校验码组W[8]W[7]…W[1]中“1”的个数,校验纠错可能发生的错码,并生成状态向量ES[1]ES[0],状态向量ES[1]ES[0]表示是否有错码以及错码个数等情况,如表1所示。
纵向海明码是一种线性分组码,其信息码与校验码具有特定的编码关系,8位信息码对应4位冗余校验码,具体编码方式如式(2)-(5)所示。其中P[4]-P[1]是校验码,D[8]-D[1]是信息码。海明码解码步骤:
①由海明码组生成判决向量S[4]S[3]S[2]S[1]。
表1正反码解码对照表
表2海明码解码对照表
②根据判决向量S[4]S[3]S[2]S[1],校验纠错可能发生的错码,并生成状态向量ES[1]ES[0],状态向量ES[1]ES[0]表示是否有错码以及错码个数等错码情况,如表2所示。
Claims (1)
1.一种基于二维检错纠错编码的SRAM抗辐射加固方法,其特征在于包括以下步骤:
步骤一、扫描统计横向最大错码数Ex、纵向最大错码数Ey;
步骤二、判断横向最大错码数Ex和纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤三;
步骤三、判断横向最大错码数Ex是否大于1,如果是转步骤六,否则转步骤四;
步骤四、横向扫描正反码纠单错;
步骤五、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤六、判断纵向最大错码数Ey是否大于1,如果是转步骤九,否则转步骤七;
步骤七、扫描纵向海明码纠单错;
步骤八、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤九、扫描横向正反码纠单错;
步骤十、扫描统计横向最大错码数Ex、纵向最大错码数Ey;
步骤十一、判断横向最大错码数Ex是否大于1,如果是转步骤十三,否则转步骤十二;
步骤十二、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤十三、判断纵向最大错码数Ey是否大于1,如果是转步骤十七,否则转步骤十四;
步骤十四、扫描纵向海明码纠单错;
步骤十五、判断横向最大错码数Ex、纵向最大错码数Ey是否等于0,如果是则转步骤十六,否则转步骤十七;
步骤十六、所有错码纠正,二维检错纠错结束;
步骤十七、存在不可纠正错码,二维检错纠错结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400267.4A CN105068882B (zh) | 2015-07-09 | 2015-07-09 | 基于二维检错纠错编码的sram抗辐射加固方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510400267.4A CN105068882B (zh) | 2015-07-09 | 2015-07-09 | 基于二维检错纠错编码的sram抗辐射加固方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105068882A true CN105068882A (zh) | 2015-11-18 |
CN105068882B CN105068882B (zh) | 2017-11-17 |
Family
ID=54498259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510400267.4A Expired - Fee Related CN105068882B (zh) | 2015-07-09 | 2015-07-09 | 基于二维检错纠错编码的sram抗辐射加固方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068882B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708655A (zh) * | 2017-02-16 | 2017-05-24 | 深圳前海生生科技有限公司 | 基于二维纠错码的内存加固方法及电路 |
CN108876701A (zh) * | 2018-06-21 | 2018-11-23 | 西北工业大学 | 一种基于游程的单次扫描通域标记方法及其硬件结构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4277844A (en) * | 1979-07-26 | 1981-07-07 | Storage Technology Corporation | Method of detecting and correcting errors in digital data storage systems |
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US6604222B1 (en) * | 1999-04-30 | 2003-08-05 | Rockwell Collins, Inc. | Block code to efficiently correct adjacent data and/or check bit errors |
CN1559033A (zh) * | 2001-09-25 | 2004-12-29 | ض� | 双重误差校验码系统 |
CN101243515A (zh) * | 2005-08-17 | 2008-08-13 | 国际商业机器公司 | 对纵向位置数据提供纠错能力的方法和装置 |
CN102063343A (zh) * | 2010-12-29 | 2011-05-18 | 北京空间机电研究所 | 一种基于编码方式的防止sram单粒子翻转的方法 |
-
2015
- 2015-07-09 CN CN201510400267.4A patent/CN105068882B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4277844A (en) * | 1979-07-26 | 1981-07-07 | Storage Technology Corporation | Method of detecting and correcting errors in digital data storage systems |
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US6604222B1 (en) * | 1999-04-30 | 2003-08-05 | Rockwell Collins, Inc. | Block code to efficiently correct adjacent data and/or check bit errors |
CN1559033A (zh) * | 2001-09-25 | 2004-12-29 | ض� | 双重误差校验码系统 |
CN101243515A (zh) * | 2005-08-17 | 2008-08-13 | 国际商业机器公司 | 对纵向位置数据提供纠错能力的方法和装置 |
CN102063343A (zh) * | 2010-12-29 | 2011-05-18 | 北京空间机电研究所 | 一种基于编码方式的防止sram单粒子翻转的方法 |
Non-Patent Citations (2)
Title |
---|
肖立伊: "一种新颖的二维纠错码加固存储器设计方法", 《宇航学报》 * |
陈楠: "抗单粒子翻转效应的SRAM研究与设计", 《固体电子学研究与进展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708655A (zh) * | 2017-02-16 | 2017-05-24 | 深圳前海生生科技有限公司 | 基于二维纠错码的内存加固方法及电路 |
CN108876701A (zh) * | 2018-06-21 | 2018-11-23 | 西北工业大学 | 一种基于游程的单次扫描通域标记方法及其硬件结构 |
CN108876701B (zh) * | 2018-06-21 | 2022-08-02 | 西北工业大学 | 一种基于游程的单次扫描连通域标记方法及其硬件结构 |
Also Published As
Publication number | Publication date |
---|---|
CN105068882B (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tuckett et al. | Fault-tolerant thresholds for the surface code in excess of 5% under biased noise | |
US6799287B1 (en) | Method and apparatus for verifying error correcting codes | |
CN104115126A (zh) | 使用代数码的多阶段ecc编码 | |
CN105340022A (zh) | 用于校正数据错误的电路、设备及方法 | |
CN104409103A (zh) | 一种新颖的宇航用存储器二维编码加固方法及电路装置 | |
CN105609141B (zh) | 一种用于自动校正访问存储装置数据的装置及方法 | |
Sridevi et al. | Implementation of error correction techniques in memory applications | |
CN109785895B (zh) | 纠正NAND Flash中多比特错误的ECC装置和方法 | |
CN105068882A (zh) | 基于二维检错纠错编码的sram抗辐射加固方法 | |
KR20220104030A (ko) | 저장 시스템 | |
CN102915769B (zh) | 一种处理器纠错检错edac电路实现优化方法 | |
CN210110352U (zh) | 纠正NAND Flash中多比特错误的ECC装置 | |
CN103346805B (zh) | 一种长bch码的译码系统及方法 | |
CN103151078A (zh) | 一种存储器检错纠错码生成方法 | |
KR102007163B1 (ko) | 인코더, 디코더 및 이를 포함하는 반도체 장치 | |
Ghosh et al. | Selecting error correcting codes to minimize power in memory checker circuits | |
CN102742164A (zh) | 一种译码方法和译码装置 | |
Athira et al. | FPGA implementation of an area efficient matrix code with encoder reuse method | |
CN114765054B (zh) | 纠错系统 | |
CN202838976U (zh) | 基于edac模块的三模冗余对存储器的容错装置 | |
Dugar et al. | A survey on Hamming codes for error detection | |
CN109753369A (zh) | 一种寄存器及内存中顺序数组的数据编码及校验方法 | |
CN102682826A (zh) | 复用编码器的编译码存储装置及方法 | |
WO2022151721A1 (zh) | 纠错系统 | |
Lavanya et al. | Detection of Multiple Cell Upsets in Memory for Enhanced 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171117 Termination date: 20200709 |
|
CF01 | Termination of patent right due to non-payment of annual fee |