CN108733504B - 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 - Google Patents
一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 Download PDFInfo
- Publication number
- CN108733504B CN108733504B CN201810420934.9A CN201810420934A CN108733504B CN 108733504 B CN108733504 B CN 108733504B CN 201810420934 A CN201810420934 A CN 201810420934A CN 108733504 B CN108733504 B CN 108733504B
- Authority
- CN
- China
- Prior art keywords
- data
- check
- bit
- code
- bits
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提出了一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法。该方法将四维奇偶校验码与汉明码相结合,采用双重编码的方式,首先采用四维奇偶校验码对要进行存储的数据进行编码,实现对数据位的3位纠错,然后利用可以对自身产生的校验位自我纠错的汉明码对第一重编码生成的校验码进行2次编码,解决四维奇偶校验码的校验位自我纠错存在很多限制与不足的问题,提高存储器检错纠错的可靠性;同时,本发明还对四维奇偶校验码的编码方式进行了优化设计,其生成的校验位减少到了32位。
Description
技术领域
本发明属于集成电路空间辐射应用领域,涉及一种对存储器所存储的数据进行校验编码及检错纠错处理的方法。
背景技术
太空辐射效应尤其是单粒子效应对集成电路存储器件有着很大的威胁,入射的高能粒子很容易导致存储器中存储的数据位电平翻转,导致数据出错。为保证数据正确性,人们在数据写入存储器时通过编码获得校验码,然后在数据读出时译码来检错纠错。对于1位错误,汉明码有着良好的检错纠错能力,但对于多位翻转,汉明码则无能为力;常规的四维奇偶校验码虽然能够纠正3位错误,但其生成的校验码自我纠错存在很大的问题,具体来说:
在校验位有2位错误时,只能实现数据位的一位纠正,而且在某些情况下完全无法实现数据位的纠错,当校验位有1位错误时,数据位只能实现2位纠正,并且需要的算法非常复杂,需要大量的判断逻辑,硬件实现有一定难度,不适合单独用于存储器的检错纠错。专利文献CN 102034555 A采用了汉明码的编码方法,虽然在一定程度上减少了冗余开销,但无法避免汉明码只能实现2位检错一位纠正的问题。专利文献CN 107886995 A从对电路实现结构改进的出发,虽然通过树形结构、流水线以及交错结构提升了电路性能,实现了一定的多位检错能力,但其对存储单元纠错能力的提升远低于对检错纠错编码方法的改进。
发明内容
本发明提出了一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错的方法,解决了常规四维奇偶校验码的校验位自我纠错存在很多限制与不足的问题,提高了存储器检错纠错的可靠性。
本发明的解决方案如下:
一种四维奇偶校验码与汉明码相结合的存储器校验编码方法,设m×n大小的存储块对应于一个编码单元;该存储器校验编码方法包括:
步骤1)对m×n大小的存储块,采用四维奇偶校验码进行编码,相应生成四种属性(编码对象)的校验位数据,作为第一重编码;
步骤2)将四种属性的校验位数据按照特定的排布方式通过汉明码进行编码组成一个编码单元,作为第二重编码;所述特定的排布方式为:该编码单元的任一存储单元与其周围的8个存储单元(上下左右以及4个相邻对角)所存储的校验位数据的属性均不相同。
基于以上方案,本发明还进一步作了如下重要优化:
以8×8大小的存储块为例,设8行记为A、B、D、E、F、G、H,8列记为0、1、2、3、 4、5、6、7,即左上角第一个数据为A0,第二行第一个数据为B0,以此类推;则步骤1) 生成四种属性的校验位数据具体是:
每行生成行校验位h0~h7;
每列生成列校验位v0~v7;
从左上角到右下角的对角线的数据生成校验位d0~d7,具体是:从左上角到右下角的对角线A0到H7上的8个数据生成校验位d0,对角线A1到G7上以及H0位的共8个数据生成校验位d1,对角线A2到F7上以及G0、H1位的共8个数据生成校验位d2;以此类推,直到A7位以及对角线B0到H6上的共8个数据生成校验位d7;
从右上角到左下角的对角线的数据生成校验位dd0~dd7,具体与以上d0~d7的生成模式相同,只不过对角线方向为右上角到左下角。
需要说明的是,上述以8×8大小的存储块为例的方案只是为了便于说明这一优化编码方式,而并不是强调8×8大小的存储块比其他存储大小更加适用本发明。以下同理。
以8×8大小的存储块为例,步骤2)中,第一重编码生成的32位校验位根据生成方式分为四组,每组8位数据组成一个数据组,对每组数据通过汉明码进行编码。
一种四维奇偶校验码与汉明码相结合的存储器检错纠错方法,对按照上述编码方法得到的编码单元进行解码,包括:
步骤1)运用汉明码的解码方式对第二重编码进行解码,通过汉明码能够检测并纠正 1位错误以及检测出两位错误的能力判断其编码对象,也即第一重编码生成的校验位是否正确;
步骤2)若有两位错误,则返回数据(即第一重编码产生的校验位)的错误信息,舍弃;若只有一位错误,则直接纠正;
步骤3)采用所述四维奇偶校验码的解码方式,对纠正后的第一重校验码进行解码,判断存储器数据是否正确及纠正。
本发明具有以下优点:
本发明通过对编码方式进行改进,首先采用四维奇偶校验码实现对数据的3位检错,然后采用汉明码解决数量远少于数据位的四维奇偶校验位自身发生错误的检错纠错问题,从而解决了四维奇偶校验码的校验位自我纠错存在很多限制与不足的问题,可以在实现对数据位的3位纠错的基础上保证每一维校验位的2位检错与1位纠正,提高了存储器检错纠错的可靠性。
本发明还对四维奇偶校验码的编码方式进行了重要的优化,其生成的校验位减少到了 32位,进一步减少了校验位出错的概率。
附图说明
图1为编解码实施流程。
图2为第一重校验码生成方式。
图3为第一重校验码存储方式。
图4第一重校验码三位翻转的一种情况。
具体实施方式
本发明的编解码总体实施流程如图1所示,分为两重编解,第一重编解采用本发明优化过的四维奇偶校验码进行编码,第二重编码以第一重编码生成的校验码为对象采用汉明码进行第二重编码。
在本发明的两重编码中,首先采用四维奇偶校验码进行第一重编码解决数据位多位翻转的问题,然后采用汉明码对第一重编码生成的校验位进行第二重编码,以此来解决四维奇偶校验码生成的校验位不能自我纠错的问题。汉明码的编码方式与奇偶校验码不同,它不是以块为单位进行编码,而是以n位数据组成的数据组进行编码,将第一重编码生成的校验位根据行、列、对角线以及反向对角线等不同分为四个数据组,每一组通过汉明码的编码方式生成自己的校验位,对其进行检错纠错。汉明码编码后生成的校验位具有自我纠错的能力,不会引起新的问题。虽然汉明码编码只能实现检2纠1,不过第一重编码生成的校验位较少,且单粒子效应引起的多位翻转所翻转的存储位一般相邻,还具有低频率的特点,所以,通过数据交织技术和定时刷新技术令第一重校验位的错误尽量保持在汉明码的检错能力内。
在数据读出进行解码时,首先对汉明码编码的第二重编码进行解码,判断第一重编码生成的校验位是否可靠,然后采用经检错纠错的校验位的第一重编码进行解码操作,判断所存储数据是否发生翻转以及进行检错纠错操作。
下面以8×8大小的存储块为例作详细说明:
本实施例以8×8大小的存储块为一个编码单元进行编码,8行记为A、B、C 、 D、E、F、G、 H,8列记为0、1、2、3、4、5、6、7,左上角第一个数据即为A0,第二行第一个数据即为B0,以此类推。
第一层次的校验码生成如图2所示,重新设计了四维奇偶校验码校验位的生成方法,通过对斜对角线校验位产生方法的改进,将四维奇偶校验码生成的校验位从46个减少到 32个。
首先令各行的8个数据进行模二相加(即8个数据依次进行异或操作),生成每一行对应的校验位,从上到下依次为h0~h7。然后令各列的8个数据模二相加,生成每一列对应的校验位,从左到右依次为v0~v7。
选取从左上A0到到右下角H7对角线上的8个数据进行模二相加生成校验位d0,选取从A1到G7对角线上的数据与H0共8个数据进行模二相加生成校验位d1,以此类推,依次生成d2~d6,直到通过A7与从B0到H6的对角线上的数据共8个生成校验位d7。
从右上角到左下角对角线上校验码的生成方式类似,依次生成校验位dd0~dd7。本发明提出的四维奇偶码产生方法在3位纠错的基础上仅需校验码32个。以上为第一重编码。将第一重编码生成的校验位根据行、列、对角线以及方向对角线等不同分为四个数据组,每一组通过汉明码的编码方式生成自己的校验位。
以如图3所示的存储方式(任一存储单元与其上、下、左、右以及相邻对角这8个存储单元所存储的校验位数据的属性均不相同)对第一重编码生成的校验位进行存储,通过数据交织技术和定时刷新技术令第一重校验位的错误尽量保持在汉明码的检错能力内。如图3所示,校验位数据是按照生成方式(即行、列、两个对角线)分组的,生成的四组数据分开存储(字母相同的为一组,每组标号0~7),每组中的数据并不在一行。所以分组的数量和存储块大小无关,只是每组的数据会增多。
如图4所示,虽然造成了数据的3位翻转,但其分别位于h,v,d三组数据中,每组只有一位数据发生了翻转,所以可以把错误全部纠正出来。
数据读出时,首先运用汉明码的解码方式对第二重的编码进行解码,通过汉明码检2 纠1的能力判断第一重校验码的正确性。有2位错误,则数据出错,舍弃,一位错误,则纠正后对原始数据的第一重编码采用四维奇偶校验码的解码方式进行解码,判断数据是否正确及纠正。
本发明通过经优化的四奇偶校验码与汉明相结合的方式,在保证对数据位3位纠错的同时,实现对每一维校验位的2位检错、1位纠正,最多实现对校验位的8位检错、4位纠正。
Claims (2)
1.一种四维奇偶校验码与汉明码相结合的存储器校验编码方法,设m×n大小的存储块对应于一个编码单元;其特征在于,该存储器校验编码方法包括:
步骤1)对m×n大小的存储块,采用四维奇偶校验码进行编码,相应生成四种属性的校验位数据,作为第一重编码;
步骤2)将四种属性的校验位数据按照特定的排布方式通过汉明码进行编码组成一个编码单元,作为第二重编码;所述特定的排布方式为:该编码单元的任一存储单元与其周围的8个存储单元所存储的校验位数据的属性均不相同;
设存储块为大小为8×8,8行记为A、B、C、D、E、F、G、H,8列记为0、1、2、3、4、5、6、7,即左上角第一个数据为A0,第二行第一个数据为B0,以此类推;则步骤1)生成四种属性的校验位数据具体是:
令各行的8个数据进行模二相加,每行生成行校验位h0~h7;
令各列的8个数据模二相加,每列生成列校验位v0~v7;
从左上角到右下角的对角线的数据生成校验位d0~d7,具体是:从左上角到右下角的对角线A0到H7上的8个数据进行模二相加生成校验位d0,对角线A1到G7上以及H0位的共8个数据进行模二相加生成校验位d1,对角线A2到F7上以及G0、H1位的共8个数据生成校验位d2;以此类推,直到A7位以及对角线B0到H6上的共8个数据生成校验位d7;
从右上角到左下角的对角线的数据生成校验位dd0~dd7,具体与以上d0~d7的生成模式相同,只不过对角线方向为右上角到左下角;设存储块为大小为8×8,步骤2)中,第一重编码生成的32位校验位根据生成方式分为四组,生成的四组数据分开存储,每组中的数据并不在一行;每组8位数据组成一个数据组,对每组数据通过汉明码进行编码。
2.一种四维奇偶校验码与汉明码相结合的存储器检错纠错方法,其特征在于,对按照权利要求1所述四维奇偶校验码与汉明码相结合的存储器校验编码方法得到的编码单元进行解码,包括:
步骤1)运用汉明码的解码方式对第二重编码进行解码,通过汉明码能够检测并纠正1位错误以及检测出两位错误的能力判断其编码对象,也即第一重编码生成的校验位是否正确;
步骤2)若有两位错误,则返回数据的错误信息,舍弃;若只有一位错误,则直接纠正;
步骤3)采用所述四维奇偶校验码的解码方式,对纠正后的第一重校验码进行解码,判断存储器数据是否正确及纠正。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810420934.9A CN108733504B (zh) | 2018-05-04 | 2018-05-04 | 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810420934.9A CN108733504B (zh) | 2018-05-04 | 2018-05-04 | 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733504A CN108733504A (zh) | 2018-11-02 |
CN108733504B true CN108733504B (zh) | 2021-08-13 |
Family
ID=63937097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810420934.9A Active CN108733504B (zh) | 2018-05-04 | 2018-05-04 | 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733504B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489269B (zh) * | 2019-08-16 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 检测纠正三位错误的编码解码方法、编码解码器及处理器 |
CN111078462B (zh) * | 2019-12-26 | 2023-09-22 | 海光信息技术股份有限公司 | 数据校验方法及电路 |
CN114765055B (zh) * | 2021-01-14 | 2024-05-03 | 长鑫存储技术有限公司 | 纠错系统 |
CN113055259B (zh) * | 2021-02-08 | 2022-05-13 | 西安电子科技大学 | 一种基于axi总线协议的功能安全保护方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231602A (zh) * | 2007-01-10 | 2008-07-30 | 国际商业机器公司 | 用于提供增强的数据丢失容限的系统、设备适配器和方法 |
US7539926B1 (en) * | 2006-02-14 | 2009-05-26 | Xilinx, Inc. | Method of correcting errors stored in a memory array |
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
-
2018
- 2018-05-04 CN CN201810420934.9A patent/CN108733504B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
US7539926B1 (en) * | 2006-02-14 | 2009-05-26 | Xilinx, Inc. | Method of correcting errors stored in a memory array |
CN101231602A (zh) * | 2007-01-10 | 2008-07-30 | 国际商业机器公司 | 用于提供增强的数据丢失容限的系统、设备适配器和方法 |
Non-Patent Citations (1)
Title |
---|
"An HVD based error detection and correction of soft errors in semiconductor memories used for space applications";Shalini;《2012 International Conference on Devices, Circuits and Systems (ICDCS)》;20120316;第II至V小节,图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN108733504A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733504B (zh) | 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 | |
US11762732B2 (en) | Memory error detection and correction | |
US8713411B2 (en) | Encoding and/or decoding memory devices and methods thereof | |
US7107507B2 (en) | Magnetoresistive solid-state storage device and data storage methods for use therewith | |
Tshagharyan et al. | Experimental study on Hamming and Hsiao codes in the context of embedded applications | |
CN111628780B (zh) | 数据编码、解码方法及数据处理系统 | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
JPH05108495A (ja) | データ用誤り訂正検出方法及びコンピユータ・メモリ用 誤り検出回路 | |
US8977933B2 (en) | Method for providing data protection for data stored within a memory element and integrated circuit device therefor | |
KR101550762B1 (ko) | 연접 오류 정정 장치 | |
KR20110028228A (ko) | 다중레벨 플래시 메모리의 에러정정 | |
US10056921B2 (en) | Memory system having flexible ECC scheme and method of the same | |
CN110970081A (zh) | 存储器器件、错误校正码系统和校正错误的方法 | |
Liu et al. | Low redundancy matrix-based codes for adjacent error correction with parity sharing | |
Raha et al. | Horizontal-vertical parity and diagonal hamming based soft error detection and correction for memories | |
CN110309014B (zh) | 一种全行编解码sram编码器数据读写结构及数据读写方法 | |
Anne et al. | Three and four-dimensional parity-check codes for correction and detection of multiple errors | |
KR102007163B1 (ko) | 인코더, 디코더 및 이를 포함하는 반도체 장치 | |
CN114880161A (zh) | 用于数据存储校正的基于(23,12)Golay码的双相邻纠错码 | |
CN115408198A (zh) | 数据纠错方法、装置、设备及存储介质 | |
Dugar et al. | A survey on Hamming codes for error detection | |
Faraj | ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’ | |
Abbas et al. | Multiple cell upsets tolerant content-addressable memory | |
KR101206820B1 (ko) | 멀티 레벨 셀 메모리를 위한 양자화기 및 이를 포함하는 메모리 장치 | |
CN117539675A (zh) | 数据的处理方法、存储器控制器以及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |