CN105068882A - 基于二维检错纠错编码的sram抗辐射加固方法 - Google Patents

基于二维检错纠错编码的sram抗辐射加固方法 Download PDF

Info

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
Application number
CN201510400267.4A
Other languages
English (en)
Other versions
CN105068882B (zh
Inventor
高武
李岩
王佳
魏晓敏
魏廷存
胡永才
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201510400267.4A priority Critical patent/CN105068882B/zh
Publication of CN105068882A publication Critical patent/CN105068882A/zh
Application granted granted Critical
Publication of CN105068882B publication Critical patent/CN105068882B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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抗辐射加固方法。
背景技术
在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]。
R = D [ 8 ] ⊕ D [ 7 ] ⊕ D [ 6 ] ⊕ D [ 5 ] ⊕ D [ 4 ] ⊕ D [ 3 ] ⊕ D [ 2 ] ⊕ D [ 1 ] - - - ( 1 )
纵向海明码由8位信息码D[8]D[7]…D[1]、4位校验码P[4]P[3]…P[1]组成,其中校验码与信息码满足如下公式:
P [ 4 ] = D [ 8 ] ⊕ D [ 7 ] ⊕ D [ 6 ] ⊕ D [ 5 ] - - - ( 2 )
P [ 3 ] = D [ 8 ] ⊕ D [ 4 ] ⊕ D [ 3 ] ⊕ D [ 2 ] - - - ( 3 )
P [ 2 ] = D [ 7 ] ⊕ D [ 6 ] ⊕ D [ 4 ] ⊕ D [ 3 ] ⊕ D [ 1 ] - - - ( 4 )
P [ 1 ] = D [ 7 ] ⊕ D [ 5 ] ⊕ D [ 4 ] ⊕ D [ 2 ] ⊕ D [ 1 ] - - - ( 5 )
(2)当需要读出数据时,按照本发明设计的二维检错纠错算法对SRAM中存储的数据校验纠错,其中横向正反码、纵向海明码的纠错步骤如下。
横向正反码是一种简单的分组码,其监督字段码元数与信息字段码元数相同,监督码是信息码的重复或反码。正反码纠错步骤:
①信息字段D[8]D[7]…D[1]和监督字段Q[8]Q[7]…Q[1]模2相加,得到一个合成码组Z[8]Z[7]…Z[1]:
Z [ 8 ] = D [ 8 ] ⊕ Q [ 8 ] - - - ( 6 )
Z [ 7 ] = D [ 7 ] ⊕ Q [ 7 ] - - - ( 7 )
Z [ 6 ] = D [ 6 ] ⊕ Q [ 6 ] - - - ( 8 )
Z [ 5 ] = D [ 5 ] ⊕ Q [ 5 ] - - - ( 9 )
Z [ 4 ] = D [ 4 ] ⊕ Q [ 4 ] - - - ( 10 )
Z [ 3 ] = D [ 3 ] ⊕ Q [ 3 ] - - - ( 11 )
Z [ 2 ] = D [ 2 ] ⊕ Q [ 2 ] - - - ( 12 )
Z [ 1 ] = D [ 1 ] ⊕ Q [ 1 ] - - - ( 13 )
②然后由合成码组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]。
S [ 4 ] = P [ 4 ] ⊕ D [ 8 ] ⊕ D [ 7 ] ⊕ D [ 6 ] ⊕ D [ 5 ] - - - ( 14 )
S [ 3 ] = P [ 3 ] ⊕ D [ 8 ] ⊕ D [ 4 ] ⊕ D [ 3 ] ⊕ D [ 2 ] - - - ( 15 )
S [ 2 ] = P [ 2 ] ⊕ D [ 7 ] ⊕ D [ 6 ] ⊕ D [ 4 ] ⊕ D [ 3 ] ⊕ D [ 1 ] - - - ( 16 )
S [ 1 ] = P [ 1 ] ⊕ D [ 7 ] ⊕ D [ 5 ] ⊕ D [ 4 ] ⊕ D [ 2 ] ⊕ D [ 1 ] - - - ( 17 )
表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,如果是则转步骤十六,否则转步骤十七;
步骤十六、所有错码纠正,二维检错纠错结束;
步骤十七、存在不可纠正错码,二维检错纠错结束。
CN201510400267.4A 2015-07-09 2015-07-09 基于二维检错纠错编码的sram抗辐射加固方法 Expired - Fee Related CN105068882B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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单粒子翻转的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
肖立伊: "一种新颖的二维纠错码加固存储器设计方法", 《宇航学报》 *
陈楠: "抗单粒子翻转效应的SRAM研究与设计", 《固体电子学研究与进展》 *

Cited By (3)

* Cited by examiner, † Cited by third party
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