CN103187104B - Dram存储器的纠错方法 - Google Patents
Dram存储器的纠错方法 Download PDFInfo
- Publication number
- CN103187104B CN103187104B CN201310088811.7A CN201310088811A CN103187104B CN 103187104 B CN103187104 B CN 103187104B CN 201310088811 A CN201310088811 A CN 201310088811A CN 103187104 B CN103187104 B CN 103187104B
- Authority
- CN
- China
- Prior art keywords
- data
- check bit
- error correction
- characterize
- bit
- 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
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
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- 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
- G06F11/1052—Bypassing or disabling error detection or correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1009—Data masking during input/output
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明提供一种存储器的纠错方法解决了现有ECC编码过程中由于数据屏蔽的存在,导致不能顺利进行编码产生监督位或产生监督位需增加存储阵列面积的问题。该存储器的纠错方法包括以下步骤:1]读入外部数据,根据设定的规则产生监督位,同时产生表征位,将外部数据、表征位、监督位存入存储器;2]读出存储器内的外部数据、表征位、监督位;若表征位表征存在数据屏蔽,表明监督位无效且数据读出时不进行解码和纠错,若表征位表征不存在数据屏蔽,表明监督位有效且数据读出时用监督位进行解码和纠错。本发明提供的存储器的纠错方法可降低DRAM出错的可能性,即使对于有DM使用的系统同样可降低DRAM出错的可能性。
Description
技术领域
本发明涉及一种DRAM存储器的纠错方法。
背景技术
ECC(Error Correction Code纠错码)被用来检测和纠正出错的数据。资料显示有很多种算法可支持ECC,例如最常用的汉明码(Hamming Code),8位(bit)数据需要4位监督位(parity bit),64位数据需要7位监督位。可通过数据长度以及所需要检测和纠正的位数选取合适的算法。
对于不同的DDR结构(DDR1/2/3),典型的streaminandout数据读取预取数据长度有32位、64位以及128位。一种合理的折中解决办法可以对64位数据使用7位或者8位的监督位(根据不同的ECC算法),如图1和图2所示。
但对于DRAM来说要实现检测和纠正的功能并不是那么简单,因为DM数据屏蔽(Data Mask)的存在。也就是说,在把数据从外部写入存储单元的时候,某一个或者多个字节(byte)可能会被屏蔽掉,使之不会改写存储单元里已经存储的数据。这就使得ECC的编码过程不能顺利进行去产生监督位,如图3所示。为了解决这个问题,最简单的方法是把64位数据分成8组,每组8位数据(一个字节),刚好是DM的屏蔽长度,这样就不会受到DM的影响。但是由于每8位数据需要4位的监督位,那就会导致整个存储阵列的面积需要增加50%,使得DRAM的成本极大增加,所以需要解决DM带来的问题。
发明内容
本发明提供一种DRAM存储器的纠错方法,主要解决了现有ECC编码过程中由于数据屏蔽的存在,导致不能顺利进行编码产生监督位或产生监督位需增加存储阵列面积的问题。
本发明的技术解决方案如下:
该DRAM存储器的纠错方法,包括以下步骤:
1]读入外部数据,根据设定的规则产生监督位,同时产生表征位,将外部数据、表征位、监督位存入存储器;其中,监督位用于实现数据读入的检测和纠错,表征位用于表征是否存在数据屏蔽;若存在数据屏蔽,表明监督位无效,若不存在数据屏蔽,表明监督位有效;
2]读出存储器内的外部数据、表征位、监督位;若表征位表征存在数据屏蔽,表明监督位无效且数据读出时不进行解码和纠错,若表征位表征不存在数据屏蔽,表明监督位有效且数据读出时用监督位进行解码和纠错。
上述外部数据为64位汉明码时,监督位为7位,表征位为1位,表证位作为65位数据串中的第65位。
上述步骤2中如果仅存在1位数据错误时,当错误数据为表征位或监督位时,无需纠错;当错误数据不是表征位或监督位,则根据表征位判断是否存在数据屏蔽,若不存在数据屏蔽,用监督位对外部数据进行纠错,若存在数据屏蔽时,不纠错;
上述步骤2中如果存在两位及以上数据错误时,不纠错。
本发明的优点在于:
本发明提供的存储器的纠错方法可降低DRAM出错的可能性,即使对于有DM使用的系统同样可降低DRAM出错的可能性。
本发明提供的存储器的纠错方法适用于只有一位数据出错的情况,并且错误不依赖于DM是否会发生。
附图说明
图1为现有ECC外部数据写入流程图;
图2为现有ECC外部数据读出流程图;
图3为现有带数据屏蔽的ECC外部数据写入流程图;
图4为本发明原理图。
具体实施方式
结合图1,现有ECC编码可按照下面的步骤进行:
首先,64位从外部来的数据被直接写入(图1的A);
其次,ECC编码(encoding)电路用此64位外部数据通过一定的规则产生7位或者8位的监督位(图1的B);
再次,新的64位数据和7/8位监督位被写入存储阵列并完全代替之前存储的信息(图1的C)。
结合图2,现有ECC的解码和纠正按照下面的步骤进行:
首先,64位数据和7/8位监督位从存储阵列读出(图2的C)。
其次,监督位将通过一定的规则去解码(decoding)判断数据是否有错,如果有错是哪位有错并去纠正(correction)错误的数据(图2的B)。
再次,解码后的数据被读出(图2的A)。
结合图3,现有带DM的ECC编码按照下面的步骤进行,但目前在有DM的情况下,ECC的编码不能正常工作:
首先,外部64位数据中有56位需要从外面而来(图3的A),其余8位被DM,不写入存储阵列。
其次,监督位仍由外部的64位数据产生(图3的B)。
再次,在存储阵列中,64位中的56位被写入的外部数据代替,64位中其余的8位仍保留原有信息。此时的监督位相对这64位数据来说是一个完全错误的监督位(图3的C)。
以下结合图4及实施例对本发明进行详述:
该方法的原理是检测是否有DM发生,如果发生,表明监督位无效并且不去进行解码和纠正。
例如,对于汉明码,64位数据需要7位监督位去实现检测和纠正一位错误数据的功能。因此可以用监督位中的第8位(DRAM中每8位构成一个基本单元)作为65位数据串中的一位,这位数据将会表征是否有DM发生。这位数据不受ECC的编解码和纠正,在解码和纠正时需要通过此数据判断是否需要进行解码和纠正,当然这判断和解码可同时进行以提高效率。如果用等于“0”表示没有DM,等于“1”表示有DM,在只有一位错误发生的情况下,以下是可能出现的现象:
判断位出错,但因为只有一位错误,其它位数据都正确,不需纠正。
若判断位为“0”,可进行解码和纠正。若有一位错误,可纠正。
若判断为位“1”,不进行解码和纠正。若有一位错误,不能纠正。
Claims (4)
1.一种DRAM存储器的纠错方法,其特征在于,包括以下步骤:
1]读入外部数据,根据设定的规则产生监督位,同时产生表征位,将外部数据、表征位、监督位存入存储器;其中,监督位用于实现数据读入的检测和纠错,表征位用于表征是否存在数据屏蔽;若存在数据屏蔽,表明监督位无效,若不存在数据屏蔽,表明监督位有效;
2]读出存储器内的外部数据、表征位、监督位;若表征位表征存在数据屏蔽,表明监督位无效且数据读出时不进行解码和纠错,若表征位表征不存在数据屏蔽,表明监督位有效且数据读出时用监督位进行解码和纠错。
2.根据权利要求1所述的DRAM存储器的纠错方法,其特征在于:所述外部数据为64位汉明码时,监督位为7位,表征位为1位,表证位作为65位数据串中的第65位。
3.根据权利要求1或2所述的DRAM存储器的纠错方法,其特征在于:所述步骤2中如果仅存在1位数据错误时,当错误数据为表征位或监督位时,无需纠错;当错误数据不是表征位或监督位,则根据表征位判断是否存在数据屏蔽,若不存在数据屏蔽,用监督位对外部数据进行纠错,若存在数据屏蔽时,不纠错。
4.根据权利要求3所述的DRAM存储器的纠错方法,其特征在于:所述步骤2中如果存在两位及以上数据错误时,不纠错。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310088811.7A CN103187104B (zh) | 2013-03-19 | 2013-03-19 | Dram存储器的纠错方法 |
US14/778,042 US20160124803A1 (en) | 2013-03-19 | 2014-03-19 | Storage Device Data Access Method and Storage Device |
PCT/CN2014/073667 WO2014146574A1 (zh) | 2013-03-19 | 2014-03-19 | 存储器数据存取方法以及存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310088811.7A CN103187104B (zh) | 2013-03-19 | 2013-03-19 | Dram存储器的纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103187104A CN103187104A (zh) | 2013-07-03 |
CN103187104B true CN103187104B (zh) | 2016-11-23 |
Family
ID=48678232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310088811.7A Active CN103187104B (zh) | 2013-03-19 | 2013-03-19 | Dram存储器的纠错方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160124803A1 (zh) |
CN (1) | CN103187104B (zh) |
WO (1) | WO2014146574A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103187104B (zh) * | 2013-03-19 | 2016-11-23 | 西安紫光国芯半导体有限公司 | Dram存储器的纠错方法 |
CN103531246B (zh) * | 2013-10-31 | 2016-10-05 | 西安紫光国芯半导体有限公司 | 快速以读代写的存储器纠错方法 |
CN103594120B (zh) | 2013-10-31 | 2018-08-21 | 西安紫光国芯半导体有限公司 | 以读代写的存储器纠错方法 |
DE102013226407A1 (de) * | 2013-12-18 | 2015-06-18 | Continental Teves Ag & Co. Ohg | Verfahren und Vorrichtung zur Erkennung von fehlerhaften Daten in wenigstens einem Speicherelement |
US9588841B2 (en) * | 2014-09-26 | 2017-03-07 | Intel Corporation | Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units |
US20160378591A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Adaptive error correction in memory devices |
CN108511028B (zh) * | 2015-12-18 | 2022-02-08 | 中国科学院计算技术研究所 | 利用纠错码自动校正访问存储装置数据的装置及方法 |
CN107025948B (zh) * | 2017-05-17 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
CN107039087A (zh) * | 2017-05-17 | 2017-08-11 | 西安紫光国芯半导体有限公司 | 用于dram的ecc编码方法以及dram |
US11269720B2 (en) | 2019-08-11 | 2022-03-08 | Winbond Electronics Corp. | Memory storage apparatus and data access method |
CN110492889B (zh) * | 2019-08-16 | 2023-05-30 | 西安紫光国芯半导体有限公司 | 检测纠正两位错误的编码解码方法、编码解码器及处理器 |
CN115412103B (zh) * | 2022-11-01 | 2023-03-31 | 浙江力积存储科技有限公司 | 一种针对数据屏蔽的纠错方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924820A (zh) * | 2005-08-30 | 2007-03-07 | 奇梦达股份公司 | 用于将数据传送到数据存储器中的数据存储器系统和方法 |
CN101176159A (zh) * | 2005-05-17 | 2008-05-07 | 国际商业机器公司 | 在dram存储器中处理写屏蔽的方法 |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN101609418A (zh) * | 2008-06-18 | 2009-12-23 | 英特尔公司 | 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170474A (en) * | 1986-08-27 | 1992-12-08 | Hitachi, Ltd. | Method of searching a queue in response to a search instruction |
JPS6355636A (ja) * | 1986-08-27 | 1988-03-10 | Hitachi Ltd | デ−タ処理システム |
US5475766A (en) * | 1991-09-05 | 1995-12-12 | Kabushiki Kaisha Toshiba | Pattern inspection apparatus with corner rounding of reference pattern data |
US6122189A (en) * | 1998-10-02 | 2000-09-19 | Rambus Inc. | Data packet with embedded mask |
JP2009139632A (ja) * | 2007-12-06 | 2009-06-25 | Elpida Memory Inc | マスクパターン補正方法及び露光用マスク |
CN101216751B (zh) * | 2008-01-21 | 2010-07-14 | 戴葵 | 基于分布存储结构的具有数据处理能力的动态随机存储器装置 |
US9530515B2 (en) * | 2013-03-13 | 2016-12-27 | Sandisk Technologies Llc | Determining read voltages for reading memory |
CN103187104B (zh) * | 2013-03-19 | 2016-11-23 | 西安紫光国芯半导体有限公司 | Dram存储器的纠错方法 |
-
2013
- 2013-03-19 CN CN201310088811.7A patent/CN103187104B/zh active Active
-
2014
- 2014-03-19 US US14/778,042 patent/US20160124803A1/en not_active Abandoned
- 2014-03-19 WO PCT/CN2014/073667 patent/WO2014146574A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101176159A (zh) * | 2005-05-17 | 2008-05-07 | 国际商业机器公司 | 在dram存储器中处理写屏蔽的方法 |
CN1924820A (zh) * | 2005-08-30 | 2007-03-07 | 奇梦达股份公司 | 用于将数据传送到数据存储器中的数据存储器系统和方法 |
CN101246748A (zh) * | 2007-02-13 | 2008-08-20 | 三星电子株式会社 | 基于字节的掩码操作的设备和产生奇偶校验数据的方法 |
CN101609418A (zh) * | 2008-06-18 | 2009-12-23 | 英特尔公司 | 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统 |
Also Published As
Publication number | Publication date |
---|---|
US20160124803A1 (en) | 2016-05-05 |
CN103187104A (zh) | 2013-07-03 |
WO2014146574A1 (zh) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103187104B (zh) | Dram存储器的纠错方法 | |
CN103594120B (zh) | 以读代写的存储器纠错方法 | |
US9772900B2 (en) | Tiered ECC single-chip and double-chip Chipkill scheme | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
US9979416B2 (en) | Memory controller and method of data bus inversion using an error detection correction code | |
KR100645058B1 (ko) | 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 | |
EP2218003B1 (en) | Correction of errors in a memory array | |
CN111143107B (zh) | 一种fpga单粒子反转校验电路和方法 | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
US10503593B2 (en) | Two layer quad bit error correction | |
CN103531246B (zh) | 快速以读代写的存储器纠错方法 | |
CN101281788A (zh) | 闪存系统及其控制方法 | |
US20170077962A1 (en) | Method and associated decoding circuit for decoding an error correction code | |
JP2008090442A (ja) | メモリ制御装置 | |
US20150143187A1 (en) | Implementing enhanced performance with read before write to phase change memory | |
CN101634938A (zh) | 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘 | |
CN111221746B (zh) | 数据储存系统与其相关方法 | |
EP2965205B1 (en) | Apparatus and method for controlling memory in mobile communication system | |
US20150200686A1 (en) | Encoding device, decoding device, and operating method thereof | |
JP2005011386A (ja) | 誤り訂正装置 | |
CN112306733B (zh) | 存储器装置、存储器控制器及其数据存取方法 | |
US8560912B2 (en) | Method and apparatus for erasure decoding an ECC coded bitstream | |
TWI431631B (zh) | 應用可變動錯誤更正碼容量的快閃記憶體控制方法 | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
CN115987304A (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 | ||
CB02 | Change of applicant information |
Address after: 710055 Shaanxi City, Xi'an province high tech Road No. 38, innovation center, A, block, floor 4 Applicant after: XI'AN UNIIC SEMICONDUCTORS Co.,Ltd. Address before: 710055 Shaanxi City, Xi'an province high tech Road No. 38, innovation center, A, block, floor 4 Applicant before: Xi'an Sinochip Semiconductors Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |