CN114121128A - 存储器和存储器的操作方法 - Google Patents
存储器和存储器的操作方法 Download PDFInfo
- Publication number
- CN114121128A CN114121128A CN202110631857.3A CN202110631857A CN114121128A CN 114121128 A CN114121128 A CN 114121128A CN 202110631857 A CN202110631857 A CN 202110631857A CN 114121128 A CN114121128 A CN 114121128A
- Authority
- CN
- China
- Prior art keywords
- data
- error correction
- group
- bit
- correction code
- 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.)
- Withdrawn
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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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
-
- 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
- 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
-
- 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
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开涉及存储器和存储器的操作方法。一种存储器,包括:纠错码生成电路,其适于基于包括N个数据组的消息来生成M比特位纠错码,每个数据组包括K比特位数据,其中,K、N和M为正整数;存储器核心,其包括N+1个单元区域,用于存储N个数据组和纠错码;以及纠错电路,其适于基于从存储器核心读取的纠错码来纠正从存储器核心读取的N个数据组的错误,其中纠错码生成电路基于M×[(K*N)+M]校验矩阵来生成M比特位纠错码,其中校验矩阵的消息部分包括区分N个数据组的N个组标识和N个比特位标识部分,每个比特位标识部分区分N个数据组中的相应的数据组中的K比特位数据,以及其中N个组标识中的分别对应于相邻数据组的组标识之间的汉明距离为1或M/2。
Description
相关申请的交叉引用
本申请要求于2020年6月22日提交的美国临时申请第63/042193号和于2020年10月21日提交的美国临时申请第63/094415号的优先权,它们的整体内容通过引用合并且于此。
技术领域
本发明的各实施方式涉及存储器,更具体地,涉及存储器的纠错。
背景技术
在半导体存储器件工业的早期,晶片上有许多最初良好的裸片,这意味着通过半导体制造工艺生产的存储器芯片没有缺陷存储单元。然而,随着存储器件的容量增加,制造不具有任何缺陷存储单元的存储器件变得困难。当前,可以说,基本上不可能制造没有任何缺陷存储单元的存储器件。为了解决这个问题,正在使用通过冗余存储单元替换缺陷存储单元的修复方法。
作为另一种方法,用于纠正存储系统中的错误的纠错电路(ECC电路)被使用来纠正存储单元中出现的错误以及在存储系统的读取操作和写入操作期间传送数据时出现的错误。
发明内容
本发明的实施方式旨在减少在存储器的纠错中可能出现的错误的数量。
根据本发明的一实施方式,一种存储器包括:纠错码生成电路,其适于基于包括N个数据组的消息来生成M比特位纠错码,每个数据组包括K比特位数据,其中K、N和M为正整数;存储器核心,其包括N+1个单元区域,用于存储N个数据组和纠错码;以及纠错电路,其适于基于从存储器核心读取的纠错码来纠正从存储器核心读取的N个数据组的错误,其中纠错码生成电路基于M×[(K*N)+M]校验矩阵来生成M比特位纠错码,其中校验矩阵的消息部分包括区分N个数据组的N个组标识和N个比特位标识部分,每个比特位标识部分区分N个数据组中的相应的数据组中的K比特位数据,并且其中N个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或M/2。
根据本发明的另一实施方式,一种用于操作存储器的方法包括:接收N个数据组,每个数据组包括K比特位数据,其中,K和N为正整数;通过使用N个数据组作为消息来生成M比特位纠错码,其中,M为正整数;以及将N个数据组和纠错码存储在存储器核心的N+1个单元区域中,其中M比特位纠错码是基于M×[(K*N)+M]校验矩阵生成的,其中校验矩阵的消息部分包括区分N个数据组的N个组标识和N个比特位标识部分,每个比特位标识部分区分N个数据组中的相应的数据组中的K比特位数据,并且其中N个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或M/2。
根据本发明的又一实施方式,一种存储器包括:纠错码生成电路,其适于基于包括8个数据组的消息来生成8比特位纠错码,每个数据组包括16比特位数据;存储器核心,其包括9个单元区域,用于存储8个数据组和纠错码;以及纠错电路,其适于基于从存储器核心读取的纠错码来纠正从存储器核心读取的8个数据组的错误,其中纠错码生成电路基于8×136校验矩阵来生成8比特位纠错码,其中校验矩阵的消息部分包括区分8个数据组的8个组标识和8个比特位标识部分,每个比特位标识部分区分8个数据组中的相应的数据组中的16比特位数据,并且其中8个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或4。
根据本发明的再一实施方式,一种存储器包括:纠错码生成电路,其适于基于包括N个数据组的消息来生成M比特位纠错码,每个数据组包括K比特位数据,其中K、N和M为正整数;存储器核心,其包括N+1个单元区域,用于存储N个数据组和纠错码;以及纠错电路,其适于基于从存储器核心读取的纠错码来纠正从存储器核心读取的N个数据组的错误,其中纠错码生成电路基于M×[(K*N)+M]校验矩阵来生成M比特位纠错码,其中校验矩阵的消息部分包括区分N个数据组的N个组标识和N个比特位标识部分,每个比特位标识部分区分N个数据组中的相应的数据组中的K比特位数据,并且其中N个组标识之中的分别与相邻数据组对应的组标识之和不同于N个组标识中的任意一个。
根据本发明的再一实施方式,一种存储器包括:存储器核心,其包括依次设置的N个数据单元区域和纠错码(ECC)单元区域,分别适于存储N个K比特位数据片段和相应的M比特位ECC;以及纠错电路,其适于通过校验矩阵基于数据片段生成ECC以及基于ECC对数据片段进行纠错,校验矩阵由[M×(K*N)]比特位维度的消息部分和[M×M]比特位维度的ECC部分构成,其中消息部分包括分别与数据片段对应的[M/2×K]比特位维度的N个特征标识组,每个特征标识组包括[M/2×1]比特位维度的K个标识并且具有相同的值,并且其中分别对应于存储在数据单元区域之中的相邻的数据单元区域中的数据片段的标识之间的汉明距离为1或M/2。
附图说明
图1是示出根据本发明的一实施方式的纠错码生成电路110和纠错电路120的框图。
图2示出了由纠错码生成电路110和纠错电路120使用的校验矩阵的示例。
图3示出了纠错码生成电路110如何使用校验矩阵。
图4示出了纠错码生成电路110通过使用图2的校验矩阵为数据DATA(1,1,0,0,1,0,1,0)生成纠错码ECC(0,1,1,0)的结果。
图5示出了纠错电路120基于纠错码ECC来纠错的处理。
图6示出了纠错电路120基于纠错码ECC来纠错的另一处理。
图7示出了纠错电路120基于纠错码ECC来纠错的又一处理。
图8是示出根据本发明的一实施方式的存储器800的框图。
图9示出了由图8所示的ECC块820的纠错码生成电路821和纠错电路822使用的校验矩阵的示例。
图10示出了根据本发明的一实施方式的满足规则(1)和规则(2)的组标识。
图11示出了根据本发明的另一实施方式的满足规则(1)和规则(2)的组标识。
具体实施方式
下面将参考附图更详细地描述本发明的各实施方式。然而,本发明可以以不同的形式实施,并且不应被解释为限于这里阐述的实施方式。相反,提供这些实施方式以使得本公开将是透彻和完整的,并将向本领域技术人员充分传达本发明的范围。在本公开通篇中,在本发明的各个附图和实施方式中,相同的附图标记指代相同的部分。
图1是示出根据本发明的一实施方式的纠错码生成电路(ECC生成电路)110和纠错电路(ECC电路)120的框图。
纠错码生成电路110可以基于在写入操作期间从存储器的外部传送(从存储器控制器传送)的数据DATA来生成纠错码ECC。即,纠错码生成电路110可以生成用于通过对数据DATA进行编码来纠正数据DATA的错误的纠错码ECC。在生成纠错码ECC的处理中,要被编码的数据也可以称为消息。在写入操作期间,生成纠错码ECC,但是不执行纠错操作。因此,输入到纠错码生成电路110的数据DATA和从纠错码生成电路110输出的数据DATA'可以是相同的。
在写入操作期间,数据DATA'和纠错码ECC可存储在存储器核心(未示出)中。而且,在读取操作期间,可以从存储器核心读取数据DATA'和纠错码ECC,并将其传送到纠错电路120。
在读取操作期间,纠错电路120可以基于纠错码ECC来纠正数据DATA'的错误。在此,“纠错”可以表示通过使用纠错码ECC来检测数据DATA'的错误并且在检测到错误时对其进行纠正。错误被纠错电路120纠正的数据DATA可以输出到存储器的外部。即,数据DATA可以被传送到存储器控制器。纠错电路120不仅可以纠正在数据DATA'中出现的错误,而且可以纠正在纠错码ECC中出现的错误。
纠错码生成电路110和纠错电路120可以通过使用校验矩阵(也被称为H矩阵)来生成纠错码ECC,并且基于纠错码ECC来纠正错误。下面将对此进行描述。
图2示出了由纠错码生成电路110和纠错电路120使用的校验矩阵的示例。这里,为了便于描述,数据具有8个比特位D0至D7,并且纠错码ECC具有4个比特位E0至E3。
校验矩阵可以由(纠错码的比特位数)×(纠错码的比特位数+数据的比特位数)的矩阵形成。这里,由于纠错码由4个比特位形成并且数据由8个比特位形成,所以校验矩阵可以是4×12矩阵。校验矩阵的每个元素(component)可以具有1或0的值。
校验矩阵的列向量可以分别对应于数据DATA的比特位D0至D7和纠错码ECC的比特位E0至E3。例如,在12个列向量中,8个列向量可以对应于数据DATA的比特位D0至D7,并且4个列向量可以对应于纠错码ECC的比特位E0至E3。在图2中,可以看到“D1”对应于具有值“1101”的列向量,而“E2”对应于具有值“0010”的列向量。
图3示出了纠错码生成电路110如何使用校验矩阵。
纠错码生成电路110可以以如下方式生成纠错码ECC:将校验矩阵的每个列向量乘以对应的数据比特位或对应的ECC比特位,然后每行的总和变为0(这是偶数)。
也就是说,可以生成纠错码ECC以满足以下四个等式全部。
[等式1]
1*D0+1*D1+1*D2+0*D3+1*D4+1*D5+1*D6+1*D7+1*E0+0*E1+0*E2+0*E3=0
[等式2]
1*D0+1*D1+0*D2+1*D3+1*D4+0*D5+0*D6+1*D7+0*E0+1*E1+0*E2+0*E3=0
[等式3]
1*D0+0*D1+1*D2+1*D3+0*D4+1*D5+0*D6+1*D7+0*E0+0*E1+1*E2+0*E3=0
[等式4]
0*D0+1*D1+1*D2+1*D3+0*D4+0*D5+1*D6+1*D7+0*E0+0*E1+0*E2+1*E3=0
图4示出了纠错码生成电路110通过使用图2的校验矩阵为数据DATA(1,1,0,0,1,0,1,0)生成纠错码ECC(0,1,1,0)的结果。
在将数据DATA(1,1,0,0,1,0,1,0)和纠错码ECC(0,1,1,0)放入上述四个等式时,可以看到它们满足:
1*1+1*1+1*0+0*0+1*1+1*0+1*1+1*0+1*0+0*1+0*1+0*0=0
1*1+1*1+0*0+1*0+1*1+0*0+0*1+1*0+0*0+1*1+0*1+0*0=0
1*1+0*1+1*0+1*0+0*1+1*0+0*1+1*0+0*0+0*1+1*1+0*0=0
0*1+1*1+1*0+1*0+0*1+0*0+1*1+1*0+0*0+0*1+0*1+1*0=0
在纠错电路120基于纠错码ECC来纠正数据DATA的错误和纠错码ECC的错误的处理中,也可以使用等式1至4。当计算以上四个等式的结果是等式1=0,等式2=0,等式3=0以及等式4=0时,可以表示数据DATA内没有错误。当存在表示其他的计算结果时,可以表示在由计算结果表示的位置处存在错误。
图5示出了纠错电路120基于纠错码ECC来纠错的处理。
在图5中,示出了出现错误,其中在数据(1,1,0,0,1,0,1,0)中D6从1变为0(1→0),使得数据DATA变为(1,1,0,0,1,0,0,0)。
通过将具有错误的数据DATA(1,1,0,0,1,0,0,0)和纠错码ECC(0,1,1,0)放入校验矩阵来计算等式1-4给出以下结果。
1*1+1*1+1*0+0*0+1*1+1*0+1*0+1*0+1*0+0*1+0*1+0*0=1
1*1+1*1+0*0+1*0+1*1+0*0+0*0+1*0+0*0+1*1+0*1+0*0=0
1*1+0*1+1*0+1*0+0*1+1*0+0*0+1*0+0*0+0*1+1*1+0*0=0
0*1+1*1+1*0+1*0+0*1+0*0+1*0+1*0+0*0+0*1+0*1+1*0=1
在此结果中,1,0,0,1可以表示错误的位置。在校验矩阵的列向量中,值为1,0,0,1的列向量是与D6对应的列向量。因此,纠错电路120可以确定D6中存在错误,并且可以通过将D6的值从0反转为1(0→1)来纠正该错误。即,错误可以得到纠正。
图6示出了纠错电路120基于纠错码ECC来纠错的另一处理。
在这种情况下,错误出现在数据(1,1,0,0,1,0,1,0)中的D0和D3中,而数据DATA变为(0,1,0,1,1,0,1,0)。
通过将具有错误的数据DATA(0,1,0,1,1,0,1,0)和纠错码ECC(0,1,1,0)放入校验矩阵来计算等式1-4给出以下结果。
1*0+1*1+1*0+0*1+1*1+1*0+1*1+1*0+1*0+0*1+0*1+0*0=1
1*0+1*1+0*0+1*1+1*1+0*0+0*1+1*0+0*0+1*1+0*1+0*0=0
1*0+0*1+1*0+1*1+0*1+1*0+0*1+1*0+0*0+0*1+1*1+0*0=0
0*0+1*1+1*0+1*1+0*1+0*0+1*1+1*0+0*0+0*1+0*1+1*0=1
在此结果中,(1,0,0,1)可以表示错误的位置,并且校验矩阵的列向量中的值为1,0,0,1的列向量是与D6对应的列向量。因此,纠错电路120可以确定D6中存在错误,并且可以通过将D6的值从1反转为0(1→0)来纠正该错误。作为纠错的结果,数据DATA可以变为(0,1,0,1,1,0,0,0)。如上所示,当数据DATA的2个比特位(D0和D3)中存在错误时,纠错电路120无法纠正错误,反而是可能误纠正无错误的D6而将错误数目增加到3个比特位。在这种情况下,纠错电路120不减少存储器中的错误数量,反而是增加错误数量。
图7示出了纠错电路120基于纠错码ECC来纠错的又一处理。
在图7中,错误出现在数据(1,1,0,0,1,0,1,0)中的D2和D7中,并且数据DATA变为(1,1,1,0,1,0,1,0,1,1)。
通过将包括错误的数据DATA(1,1,1,0,1,0,1,1)和纠错码ECC(0,1,1,0)放入校验矩阵来计算等式1-4给出以下结果。
1*1+1*1+1*1+0*0+1*1+1*0+1*1+1*1+1*0+0*1+0*1+0*0=0
1*1+1*1+0*1+1*0+1*1+0*0+0*1+1*1+0*0+1*1+0*1+0*0=1
1*1+0*1+1*1+1*0+0*1+1*0+0*1+1*1+0*0+0*1+1*1+0*0=0
0*1+1*1+1*1+1*0+0*1+0*0+1*1+1*1+0*0+0*1+0*1+1*0=0
在此结果中,(0,1,0,0)可以表示错误的位置,并且校验矩阵的列向量中的值为0,1,0,0的列向量是对应于E1的列向量。因此,纠错电路120可以确定E1中存在错误,并且可以通过将E1的值从1反转为0(1→0)来纠正该错误。作为纠错的结果,数据可以保持为(1,1,1,0,1,0,1,1),而纠错码ECC可以变为(0,0,1,0)。即,数据DATA的两个比特位中的错误可能未被纠正,并且由于误纠正导致一个比特位的错误可能被添加到纠错码ECC。
在这种情况下,误纠正仅出现在纠错码ECC中,而可以不出现在数据DATA中。由于纠错码ECC仅用于纠错操作,而不会输出到存储器的外部,因此它不会影响包括该存储器的系统的可靠性。
尽管在图6和图7两者的纠错处理中由于纠错电路120的误纠正而导致错误的数量增加,但是在图6的情况下,数据中错误增加影响存储器的可靠性,而在图7的情况下,纠错码ECC中错误增加不影响包括存储器的系统的可靠性。简而言之,当不使误纠正发生在数据DATA中而是发生在纠错码ECC中时,可以不降低存储系统100的可靠性。
图8是示出根据本发明的一实施方式的存储器800的框图。
参照图8,存储器800可以包括数据焊盘DQ0至DQ7、数据输入/输出电路811至818、ECC块820和存储器核心830。
数据输入/输出电路811至818可以通过数据焊盘DQ0至DQ7输入/输出数据D0至D127。在写入操作期间,可以通过一个数据焊盘输入16比特位数据,而在读取操作期间,可以通过一个数据焊盘输出16比特位数据。由于存储器800中存在八个数据焊盘DQ0至DQ7,因此在写入操作期间可以将128比特位数据D0至D127输入到存储器800,而可以在读取操作期间从存储器800输出128比特位数据D0至D127。
ECC块820可以包括纠错码生成电路(ECC生成电路)821和纠错电路(ECC电路)822。纠错码生成电路821可以基于在写入操作期间通过数据输入/输出电路811至818接收到的128比特位数据D0至D127来生成8比特位纠错码ECC。即,纠错码生成电路821可以基于在被用作消息的128比特位数据D0至D127来生成8比特位纠错码ECC。由于纠错码生成电路821仅生成纠错码ECC,并且在写入操作期间不执行纠错操作,因此输入到ECC块820的数据D0至D127以及从ECC块820输出的数据D0'至D127'可以相同。
纠错电路822可以基于从存储器核心830传送的纠错码ECC来纠正从存储器核心830传送的数据D0'至D127'中的错误。这里,纠正错误可以意味着基于纠错码ECC检测数据D0'至D127'中的错误、并且当检测到错误时纠正错误。数据输入/输出电路811至818可以将错误被纠错电路822纠正的数据D0至D127输出到存储器800的外部。
存储器核心830可以包括多个单元区域831至839。单元区域831至838和数据输入/输出电路811至818可以1:1对应。例如,单元区域831可以存储通过数据输入/输出电路811接收到的数据D0'至D15',并且单元区域833可以存储通过数据输入/输出电路813接收到的数据D32'至D47'。此外,单元区域839可以存储纠错码ECC。单元区域831至839之间的正方形可以表示子字线驱动器,并且向子字线驱动器的左侧和右侧延伸的线可以表示子字线。实际上,子字线驱动器和子字线的数量要多得多,但是这里仅示出其中一些以简单地示出其结构。由于单元区域831至839之中的相邻单元区域共享子字线驱动器,因此当在子字线驱动器中出现错误时,错误极可能出现在子字线驱动器两侧的单元区域中。例如,由于单元区域833和单元区域834共享子字线驱动器,所以当在由单元区域833和834共享的子字线驱动器中出现错误时,单元区域833和834两者可能同时是错误的。
在图8中,在一次写入和读取操作期间,向存储器800输入/从存储器800输出128比特位数据D0至D127,并且使用8比特位纠错码ECC。然而,这仅是示例,而对于本发明所属领域的技术人员而言显而易见的是,数据的比特位数和纠错码的比特位数可以与图8的示例不同。
图9示出了由图8所示的ECC块820的纠错码生成电路821和纠错电路822使用的校验矩阵的示例。
校验矩阵可以由(纠错码的比特位数)×(纠错码的比特位数+数据的比特位数)的矩阵形成。这里,由于纠错码是8个比特位并且数据是128个比特位,所以校验矩阵可以由8×136矩阵形成。校验矩阵的每个元素可以具有1或0的值。
消息D0至D127可以分为八个数据组DQ0_Group至DQ7_Group。在此,通过相同数据焊盘接收到的数据可以被分组到相同的组中。例如,通过数据焊盘DQ0接收到的16比特位数据D0至D15可以属于数据组DQ0_Group,而通过数据焊盘DQ6接收到的16比特位数据D96至D111可以属于数据组DQ6_Group。
在校验矩阵中,消息部分可以包括8个组标识(indicator)和8个比特位标识部分。在图9中,与数据组DQ0_Group至DQ7_Group中的每个对应的粗线框可以与对应数据组的组标识相对应。8个组标识可以分别对应于8个数据组DQ0_Group至DQ7_Group。8个组标识可以区分8个数据组DQ0_Group至DQ7_Group。在图9中,除组标识之外的其余比特位可以是8个比特位标识部分。这8个部分可以分别对应于数据组DQ0_Group至DQ7_Group。每个比特位标识部分可以区分8个数据组DQ0_Group至DQ7_Group中的相应的数据组内部的16比特位数据。
参照图9,D0至D15和CB0至CB3可以是数据组DQ0_Group的组标识,并且D0至D15和CB4至CB7可以是数据组DQ0_Group的比特位标识。再者,D32至D47和CB0至CB3可以是数据组DQ2_Group的组标识,并且D32至D47和CB4至CB7可以是数据组DQ2_Group的比特位标识。参照图9,从组标识可以看出,在同一组标识中所有列具有相同的值。例如,数据组DQ3_Group的组标识的所有列可以具有“1101”的值,数据组DQ5_Group的组标识的所有列可以具有“0101”的。同样参照图9,可以看出在所有数据组中比特位标识具有相同的值。例如,与数据组DQ0_Group对应的4×16比特位标识可以具有与对应于其他数据组DQ1_Group至DQ7_Group中的每个数据组的4×16比特位标识相同的值。
纠错码生成电路821和纠错电路822可以以与图3至图7中描述的相同的方式基于图9的校验矩阵来生成纠错码ECC,并纠正数据D0'至D127'中的错误。
当多个错误仅在单元区域831至838中的一个单元区域中出现时,即,当多个错误仅在数据组DQ0_Group至DQ7_Group中的一个数据组中出现时,误纠正可以不发生或可以仅发生在该数据组中。例如,当仅在数据组DQ1_Group中出现偶数个错误时,在出现错误的位置处的组标识之和可以是“0000”(例如1001+1001=0000)。由于没有对应于组标识“0000”的数据组,因此不会发生误纠正。再者,当仅在数据组DQ1_Group中出现奇数个错误时,在出现错误的位置处的组标识之和可以变为“1001”(例如1001+1001+1001=1001)。因此,误纠正可以发生在数据组DQ1_Group中。由在其中出现错误的数据组中的误纠正引起的错误数量的增加不会对系统的可靠性造成任何问题。这是因为:由于控制存储器800的存储器控制器将数据组DQ0_Group至DQ7_Group中的每个识别为一个符号并基于符号执行纠错操作,所以即使一个符号中的错误数量增加也可能纠正错误。
由于单元区域831至839在相邻单元区域之间共享子字线驱动器,因此在相邻单元区域中同时出现错误的可能性很高。例如,当在单元区域831中出现错误时,单元区域832也很可能也是错误的。当在与单元区域831对应的数据组DQ0_Group中出现奇数个错误并且在与单元区域832对应的数据组DQ1_Group中出现奇数个错误时,两个组标识之和可以为0011+1001=1010。因此,在与组标识“1010”对应的数据组DQ7_Group中可能发生误纠正。因为由于误纠正而在没有任何错误的数据组DQ7_Group中出现了新的错误,因此这会极大降低包括存储器800的系统的可靠性。
为了增加包括存储器的系统的可靠性,必须实现以下条件(A)和(B)。
条件(A):当一个数据组中出现多个错误时,误纠正不应该发生或者应该仅发生在该数据组中。
条件(B):当奇数个错误同时出现在与两个相邻单元区域对应的两个数据组中的每个数据组中时,误纠正不应发生在其他数据组中。误纠正可以发生在纠错码中。
为了实现上述条件(A)和(B),校验矩阵可以必须满足以下规则(1)和(2)。
规则(1):校验矩阵应具有组标识。如图9所示,条件(A)可以通过用于区分数据组DQ0_Group至DQ7_Group的组标识来实现。由于校验矩阵的组标识,当一个数据组中出现偶数个错误时,不会在该数据组中发生误纠正,而当该数据组中出现奇数个错误时,误纠正仅发生在该数据组中。
规则(2):分别对应于相邻数据组的组标识之间的汉明距离应为1或4(即,纠错码的比特位数的一半)。这里,相邻数据组可以指的是与相邻单元区域对应的数据组。例如,数据组DQ0_Group可以对应于单元区域831,并且数据组DQ1_Group可以对应于单元区域832,但是由于单元区域831和832彼此相邻,所以数据组DQ0_Group和DQ1_Group可以是相邻数据组。然而,数据组DQ3_Group可以对应于单元区域834,数据组DQ4_Group可以对应于单元区域835,而单元区域839存在于单元区域834和单元区域835之间。由于单元区域834和单元区域835彼此不相邻,因此数据组DQ3_Group和DQ4_Group可以不是相邻的数据组。规则(2)可以是用于确保相邻数据组的组标识之和的值不同于任何组标识的值的规则。
图9的校验矩阵可以满足规则(1),但不可以满足规则(2)。
图10示出了根据本发明的一实施方式的满足规则(1)和规则(2)的组标识。校验矩阵中的与纠错码ECC对应的部分和比特位标识可以与图9所示的那些相同。
参照图10,可以看出分别对应于相邻数据组DQ0_Group和DQ1_Group的组标识(0,0,1,1)和(1,0,1,1)之间的汉明距离为1,分别对应于相邻数据组DQ1_Group和DQ2_Group的组标识(1,0,1,1)和(1,0,0,1)之间的汉明距离为1,并且分别对应于相邻数据组DQ2_Group和DQ3_Group的组标识(1,0,0,1)和(1,1,0,1)之间的汉明距离为1。此外,分别对应于相邻数据组DQ4_Group和DQ5_Group的组标识(0,1,1,0)和(0,1,1,1)之间的汉明距离为1,分别对应于相邻数据组DQ5_Group和DQ6_Group的组标识(0,1,1,1)和(0,1,0,1)之间的汉明距离为1,并且分别对应于相邻数据组DQ6_Group和DQ7_Group的组标识(0,1,0,1)和(1,0,1,0)之间的汉明距离是4。
当如图10所示分配了组标识时,即使在相邻数据组中同时出现错误,也不会损害系统的可靠性。
当在每个相邻数据组DQ0_Group和DQ1_Group中出现奇数个错误时,在由数据组DQ0_Group和DQ1_Group的组标识之和表示的位置处可能发生误纠正,即(0,0,1,1)+(1,0,1,1)=(1,0,0,0)。由于(1,0,0,0)是纠错码E0的位置,因此误纠正可能发生在纠错码E0中。由于纠错码E0不输出到存储器的外部,因此纠错码的误纠正可以对包括存储器的系统的可靠性没有影响。
此外,当在相邻数据组DQ6_Group和DQ7_Group中的每个中出现奇数个错误时,在由数据组DQ6_Group和DQ7_Group的组标识之和表示的位置处可能发生误纠正,即(0,1,0,1)+(1,0,1,0)=(1,1,1,1)。但是,由于不存在对应于(1,1,1,1)的组标识,因此最终不会发生误纠正。
如图10所示,在将组标识分配给数据组DQ0_Group至DQ7_Group时,可以极大提高包括存储器800的系统的可靠性。
图11示出了根据本发明的另一实施方式的满足规则(1)和规则(2)的组标识。校验矩阵中与纠错码ECC对应的部分和比特位标识可以与图9中的那些相同。
参照图11,可以看出分别对应于相邻数据组DQ0_Group和DQ1_Group的组标识(0,0,1,1)和(1,0,1,1)之间的汉明距离为1,分别对应于相邻数据组DQ1_Group和DQ2_Group的组标识(1,0,1,1)和(1,0,0,1)之间的汉明距离为1,并且分别对应于相邻数据组DQ2_Group和DQ3_Group的组标识(1,0,0,1)和(0,1,1,0)之间的汉明距离为4。此外,分别对应于相邻数据组DQ4_Group和DQ5_Group的组标识(0,1,1,1)和(0,1,0,1)之间的汉明距离为1,分别对应于相邻数据组DQ5_Group和DQ6_Group的组标识(0,1,0,1)和(1,0,1,0)之间的汉明距离为1,并且分别对应于相邻数据组DQ6_Group和DQ7_Gro的组标识(1,0,1,0)和(1,1,1,0)之间的汉明距离为1。
在图11中,由于数据组DQ0_Group至DQ7_Group的组标识被分配为满足规则(1)和规则(2),因此当组标识如图11所示被分配给数据组DQ0_Group至DQ7_Group时,可以极大地提高包括存储器800的系统的可靠性。
根据本发明的实施方式,可以减少在存储器的纠错中可能出现的错误数量。
尽管已经针对具体实施方式描述了本发明,但是对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种存储器,包括:
纠错码生成电路,其适于基于包括N个数据组的消息来生成M比特位纠错码,每个数据组包括K比特位数据,其中K、N和M为正整数;
存储器核心,其包括N+1个单元区域,所述N+1个单元区域用于存储所述N个数据组和所述纠错码;以及
纠错电路,其适于基于从所述存储器核心读取的所述纠错码来纠正从所述存储器核心读取的所述N个数据组的错误,
其中,所述纠错码生成电路基于M×[(K*N)+M]校验矩阵来生成所述M比特位纠错码,
其中,所述校验矩阵的消息部分包括N个组标识和N个比特位标识部分,所述N个组标识区分所述N个数据组,每个比特位标识部分区分所述N个数据组中的相应的数据组中的K比特位数据,以及
其中,所述N个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或M/2。
2.根据权利要求1所述的存储器,其中,所述相邻数据组是存储在所述单元区域之中的相邻单元区域中的数据组。
3.根据权利要求2所述的存储器,其中,所述相邻单元区域共享至少一个子字线驱动器。
4.根据权利要求1所述的存储器,
其中,所述N个组标识中的每个组标识具有(M/2)×K的尺寸,以及
其中,N个比特位标识部分中的每个比特位标识部分具有(M/2)×K的尺寸。
5.根据权利要求1所述的存储器,其中,所述N个数据组中的每个数据组通过不同的数据焊盘被输入到所述存储器。
6.一种用于操作存储器的方法,包括:
接收N个数据组,每个数据组包括K比特位数据,其中,K和N为正整数;
通过使用所述N个数据组作为消息来生成M比特位纠错码,其中,M为正整数;以及
将所述N个数据组和所述纠错码存储在存储器核心的N+1个单元区域中,
其中,所述M比特位纠错码是基于M×[(K*N)+M]校验矩阵生成的,
其中,所述校验矩阵的消息部分包括N个组标识和N个比特位标识部分,所述N个组标识区分所述N个数据组,每个比特位标识部分区分所述N个数据组中的相应的数据组中的K比特位数据,以及
其中,所述N个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或M/2。
7.根据权利要求6所述的方法,其中,所述相邻数据组是存储在所述单元区域之中的相邻单元区域中的数据组。
8.根据权利要求7所述的方法,其中,所述相邻单元区域共享至少一个子字线驱动器。
9.根据权利要求6所述的方法,
其中,所述N个组标识中的每个组标识具有(M/2)×K的尺寸,以及
其中,所述N个比特位标识部分中的每个比特位标识部分具有(M/2)×K的尺寸。
10.根据权利要求6所述的方法,其中,所述接收包括:通过不同的数据焊盘来接收所述N个数据组中的每个数据组。
11.根据权利要求6所述的方法,还包括:基于从所述存储器核心读取的所述纠错码,对从所述存储器核心读取的所述N个数据组的错误进行纠正。
12.一种存储器,包括:
纠错码生成电路,其适于基于包括8个数据组的消息来生成8比特位纠错码,每个数据组包括16比特位数据;
存储器核心,其包括9个单元区域,所述9个单元区域用于存储所述8个数据组和所述纠错码;以及
纠错电路,其适于基于从所述存储器核心读取的所述纠错码来纠正从所述存储器核心读取的所述8个数据组的错误,
其中,所述纠错码生成电路基于8×136校验矩阵来生成所述8比特位纠错码,
其中,所述校验矩阵的消息部分包括8个组标识和8个比特位标识部分,所述8个组标识区分所述8个数据组,每个比特位标识部分区分所述8个数据组中的相应的数据组中的16比特位数据,以及
其中,所述8个组标识之中的分别与相邻数据组对应的组标识之间的汉明距离为1或4。
13.如权利要求12所述的存储器,其中,所述相邻数据组是存储在所述单元区域之中的相邻单元区域中的数据组。
14.根据权利要求13所述的存储器,其中,所述相邻单元区域共享至少一个子字线驱动器。
15.根据权利要求12所述的存储器,
其中,所述8个组标识中的每个组标识具有4×16的尺寸,以及
其中,所述8个比特位标识部分中的每个比特位标识部分具有4×16的尺寸。
16.根据权利要求12所述的存储器,其中,所述8个数据组中的每个数据组通过不同的数据焊盘被输入到所述存储器。
17.一种存储器,包括:
纠错码生成电路,其适于基于包括N个数据组的消息来生成M比特位纠错码,每个数据组包括K比特位数据,其中K、N和M为正整数;
存储器核心,其包括N+1个单元区域,所述N+1个单元区域用于存储所述N个数据组和所述纠错码;以及
纠错电路,其适于基于从所述存储器核心读取的所述纠错码来纠正从所述存储器核心读取的所述N个数据组的错误,
其中,所述纠错码生成电路基于M×[(K*N)+M]校验矩阵来生成所述M比特位纠错码,
其中,所述校验矩阵的消息部分包括N个组标识和N个比特位标识部分,所述N个组标识区分所述N个数据组,每个比特位标识部分区分所述N个数据组中的相应的数据组中的K比特位数据,以及
其中,所述N个组标识之中的分别与相邻数据组对应的组标识之和不同于所述N个组标识中的任意一个组标识。
18.一种存储器,包括:
存储器核心,其包括分别适于存储N个K比特位数据片段和相应的M比特位纠错码ECC的依次设置的N个数据单元区域和ECC单元区域;以及
纠错电路,其适于:通过校验矩阵,基于所述数据片段生成所述ECC以及基于所述ECC对所述数据片段进行纠错,所述校验矩阵由[M×(K*N)]比特位维度的消息部分和[M×M]比特位维度的ECC部分构成,
其中,所述消息部分包括分别与所述数据片段对应的[M/2×K]比特位维度的N个特征标识组,每个特征标识组包括[M/2×1]比特位维度的K个标识并且具有相同的值,以及
其中,分别对应于存储在所述数据单元区域之中的相邻的数据单元区域中的数据片段的标识之间的汉明距离为1或M/2。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063042193P | 2020-06-22 | 2020-06-22 | |
US63/042,193 | 2020-06-22 | ||
US202063094415P | 2020-10-21 | 2020-10-21 | |
US63/094,415 | 2020-10-21 | ||
KR10-2020-0150006 | 2020-11-11 | ||
KR1020200150006A KR20210157829A (ko) | 2020-06-22 | 2020-11-11 | 메모리 및 메모리의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114121128A true CN114121128A (zh) | 2022-03-01 |
Family
ID=79023525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110631857.3A Withdrawn CN114121128A (zh) | 2020-06-22 | 2021-06-07 | 存储器和存储器的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11442810B2 (zh) |
KR (1) | KR20210157829A (zh) |
CN (1) | CN114121128A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102204391B1 (ko) * | 2014-08-18 | 2021-01-18 | 삼성전자주식회사 | 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치 |
US10949298B2 (en) | 2018-09-21 | 2021-03-16 | Taiwan Semiconductor Manufacturing Company, Limited | System and method of reducing logic for multi-bit error correcting codes |
KR102579014B1 (ko) | 2018-11-06 | 2023-09-15 | 삼성전자주식회사 | 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템 |
-
2020
- 2020-11-11 KR KR1020200150006A patent/KR20210157829A/ko unknown
-
2021
- 2021-05-26 US US17/330,881 patent/US11442810B2/en active Active
- 2021-06-07 CN CN202110631857.3A patent/CN114121128A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11442810B2 (en) | 2022-09-13 |
US20210397516A1 (en) | 2021-12-23 |
KR20210157829A (ko) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385959B2 (en) | Memory repair method and apparatus based on error code tracking | |
US7370264B2 (en) | H-matrix for error correcting circuitry | |
KR100894464B1 (ko) | Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치 | |
US5768294A (en) | Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address | |
US20060136800A1 (en) | Memory system and semiconductor memory device | |
IE71652B1 (en) | Byte write error method and apparatus | |
JPS63115239A (ja) | エラ−検査訂正回路 | |
US10353770B2 (en) | Memory system and error correcting method of the same | |
US5751745A (en) | Memory implemented error detection and correction code with address parity bits | |
EP3503411B1 (en) | Improved single error correction and double error detection | |
US11249844B2 (en) | Memory system and memory module | |
US20230368860A1 (en) | Memory and operation method of memory | |
US6463563B1 (en) | Single symbol correction double symbol detection code employing a modular H-matrix | |
EP0186588A2 (en) | Error - correcting circuit having a reduced syndrome word | |
US6460157B1 (en) | Method system and program products for error correction code conversion | |
US20230103255A1 (en) | Error correction of memory | |
CN114121128A (zh) | 存储器和存储器的操作方法 | |
US20220368351A1 (en) | Memory and operation method of memory | |
US11024402B2 (en) | Memory system and operation method thereof | |
CN109741781B (zh) | 一种基于三模冗余的多基片存储器的数据写入读出方法 | |
KR20070112953A (ko) | Ecc 제어회로, 제어방법 및 반도체 메모리 장치 | |
US20240126646A1 (en) | Error processing circuit, memory and operation method of the memory | |
US20230282302A1 (en) | Memory and memory system inclduing the memory | |
US20210397513A1 (en) | Memory, memory system, and operation method of memory | |
KR20180052154A (ko) | 메모리 시스템 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220301 |