CN117667499A - 差错校正码解码器、存储器件和存储系统 - Google Patents
差错校正码解码器、存储器件和存储系统 Download PDFInfo
- Publication number
- CN117667499A CN117667499A CN202310771337.1A CN202310771337A CN117667499A CN 117667499 A CN117667499 A CN 117667499A CN 202310771337 A CN202310771337 A CN 202310771337A CN 117667499 A CN117667499 A CN 117667499A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- error
- parity check
- ecc
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 203
- 238000012937 correction Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims abstract description 142
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 85
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims description 5
- 230000009897 systematic effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 32
- 238000003491 array Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 101100291915 Candida albicans (strain SC5314 / ATCC MYA-2876) MP65 gene Proteins 0.000 description 3
- 101100439611 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CTS1 gene Proteins 0.000 description 3
- 101100041915 Schizosaccharomyces pombe (strain 972 / ATCC 24843) scw1 gene Proteins 0.000 description 3
- 102100023513 Flotillin-2 Human genes 0.000 description 2
- 101000828609 Homo sapiens Flotillin-2 Proteins 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 102100031699 Choline transporter-like protein 1 Human genes 0.000 description 1
- 102100035954 Choline transporter-like protein 2 Human genes 0.000 description 1
- 101000940912 Homo sapiens Choline transporter-like protein 1 Proteins 0.000 description 1
- 101000948115 Homo sapiens Choline transporter-like protein 2 Proteins 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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
-
- 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/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/159—Remainder calculation, e.g. for encoding and syndrome calculation
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package 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/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/1032—Simple parity
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/033—Theoretical methods to calculate these checking codes
-
- 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/17—Burst error correction, e.g. error trapping, Fire codes
-
- 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/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- 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)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开涉及差错校正码解码器、存储器件和存储系统。一种差错校正码(ECC)解码器,包括校正子生成器和突发差错校正器。所述校正子生成器使用输入数据和基于常循环码的奇偶校验矩阵来生成全局校正子数据和局部校正子数据。所述突发差错校正器使用所述全局校正子数据和所述局部校正子数据来校正包括在所述输入数据中的能够校正的差错。所述输入数据包括沿着第一方向和第二方向布置的多个数据位。所述ECC解码器同时校正单一突发差错和多位差错。所述单一突发差错发生在所述输入数据中沿所述第一方向布置的两个或更多个符号上,并且每个符号包括两个或更多个数据位。所述多位差错随机地发生在所述输入数据中的两个或更多个数据位上。
Description
相关申请的交叉引用
本申请要求于2022年9月8日在韩国知识产权局(KIPO)提交的第10-2022-0113963号韩国专利申请的优先权,其内容以引用的方式全部并入本文。
技术领域
示例实施例总体上涉及半导体集成电路,尤其涉及使用常循环码(constacycliccode)的差错校正码(error correction code,ECC)解码器以及包括此类ECC解码器的存储器件和存储系统。
背景技术
半导体存储器件可以分类为非易失性存储器件(例如,闪存存储器)以及易失性存储器件(例如,动态随机存取存储器(dynamic random access memories,DRAM))。易失性存储器件的高速操作和成本效率使得易失性存储器件可以用于系统存储器。存储器件的小型化和/或增加的集成度是半导体存储器件制造中的期望目标。由于易失性存储器件的制造设计规则的尺寸的持续减小,易失性存储器件的存储单元中的位差错可能快速增加并且易失性存储器件的产量可能降低。另外,可以以存储模块的形式提供多个易失性存储器件,以便提供相对大的存储容量。因此,正在进行各种研究项目以减少位差错并且改善易失性存储器件和存储模块的可靠性。
发明内容
本公开的至少一个示例实施例提供一种能够通过同时考虑多位差错(multi-biterror)和突发差错(burst error)来高效地执行具有高可靠性的差错校正码(ECC)解码的ECC解码器。
本公开的至少一个示例实施例提供了包括所述ECC解码器的存储器件和存储系统。
根据示例实施例,一种差错校正码(ECC)解码器包括校正子生成器和突发差错校正器。所述校正子生成器使用输入数据和基于常循环码的奇偶校验矩阵来生成全局校正子数据和局部校正子数据。所述突发差错校正器使用所述全局校正子数据和所述局部校正子数据来校正所述输入数据中包括的能够校正的差错。所述输入数据包括沿着第一方向和第二方向布置的多个数据位。所述多个数据位可以包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位。所述输入数据的差错可以包括单一突发差错和多位差错。所述单一突发差错可以发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错可以随机地发生在所述多个数据位的两个或更多个数据位上。所述ECC解码器同时校正所述单一突发差错和所述多位差错。
根据示例实施例,一种存储系统包括存储模块和存储控制器。所述存储模块包括多个存储器件。所述存储控制器包括系统差错校正码(ECC)引擎,并且控制所述存储模块。所述系统ECC引擎包括执行ECC解码的系统ECC解码器。所述系统ECC解码器包括第一校正子生成器和第一突发差错校正器。所述第一校正子生成器使用基于常循环码的第一奇偶校验矩阵以及从所述存储模块提供的码字集来生成第一全局校正子数据和第一局部校正子数据。所述第一突发差错校正器使用所述第一全局校正子数据和所述第一局部校正子数据来校正所述码字集中包括的能够校正的差错。所述码字集包括沿着第一方向和第二方向布置的多个数据位。所述多个数据位可以包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位。所述码字集的差错可以包括单一突发差错和多位差错。所述单一突发差错可以发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错可以随机地发在所述多个数据位中的两个或更多个数据位上。所述系统ECC解码器校正所述单一突发差错或检测所述多位差错。
根据示例实施例,一种存储器件包括存储单元阵列和差错校正码(ECC)解码器。所述ECC解码器对从所述存储单元阵列提供的读取数据执行ECC解码,并且包括校正子生成器和突发差错校正器。所述校正子生成器使用所述读出数据和基于常循环码的奇偶校验矩阵来生成全局校正子数据和局部校正子数据。所述突发差错校正器使用所述全局校正子数据和所述局部校正子数据来校正所述读取数据中包括的能够校正的差错。所述读取数据包括沿着第一方向和第二方向布置的多个数据位。所述多个数据位可以包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位。所述读取数据的差错可以包括单一突发差错和多位差错。所述单一突发差错可以发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错可以随机地发生在所述多个数据位中的两个或更多个数据位上。所述ECC解码器同时检测所述单一突发差错和所述多位差错。
在根据示例实施例的所述ECC解码器、所述存储器件和所述存储系统中,可以使用基于所述常循环码的所述奇偶校验矩阵来执行所述ECC解码,并且可以同时检测和/或校正所述单一突发差错和所述多位差错。因此,即使多位差错方面(过去没有考虑这方面),所述ECC解码器也可以具有相对健壮的结构。因此,可以高效地执行所述ECC解码,同时减少性能损失并且增加可靠性。
附图说明
从以下结合附图的具体实施方式中,将更清楚地理解说明性的非限制性示例实施例。
图1是示出根据示例实施例的差错校正码(ECC)解码器的框图。
图2是用于描述根据示例实施例的提供给图1的ECC解码器的输入数据的图。
图3是示出根据示例实施例的图1的ECC解码器的示例的框图。
图4是用于描述根据示例实施例的包括在图3的ECC解码器中的突发差错校正的操作的图。
图5、图6A、图6B和图6C是用于描述根据示例实施例的基于在图3的ECC解码器中使用的常循环码的奇偶校验矩阵的图。
图7是示出根据示例实施例的存储器件和存储系统的框图。
图8是示出根据示例实施例的包括在图7的存储系统中的存储控制器的示例的框图。
图9A和图9B是示出根据示例实施例的与图7的存储系统中的多个突发长度相对应的数据集的示例的图。
图10是示出根据示例实施例的包括在图8的存储控制器中的系统ECC引擎的示例的框图。
图11是示出根据示例实施例的包括在图7的存储系统中所包括的存储模块中的数据芯片的示例的框图。
图12是示出根据示例实施例的包括在图11的数据芯片中的存储体(bank)阵列的示例的图。
图13是示出根据示例实施例的包括在图7的存储系统中所包括的存储模块中的管芯上ECC引擎的示例的框图。
图14和图15是示出根据示例实施例的存储器件和存储系统的框图。
图16是示出根据示例实施例的执行ECC解码的方法的流程图。
图17是示出根据示例实施例的可以用于存储系统的存储模块的示例的框图。
图18是示出根据示例实施例的存储系统的示例的框图。
图19是示出根据示例实施例的包括存储模块的电子系统的框图。
具体实施方式
将参考附图更全面地描述各种示例实施例,在附图中示出了实施例。然而,本公开可以以许多不同的形式来实施,并且不应被解释为限于本文阐述的实施例。在本申请中,相同的附图标记表示相同的元素。
图1是示出根据示例实施例的差错校正码(ECC)解码器的框图。
参考图1,差错校正码(ECC)解码器50包括校正子生成器(syndrome generator,SG)60以及突发差错校正器(burst error corrector,BEC)70。ECC解码器50可以被称为突发解码器(burst decoder,BD)或低延迟突发解码器。
校正子生成器60使用输入数据rT和基于常循环码的奇偶校验矩阵H来生成全局校正子数据sG和局部校正子数据sL。
在一些示例实施例中,ECC解码器50可以包括在存储器件(或存储芯片)和包括该存储器件的存储系统中。例如,存储系统可以包括存储器件和控制存储器件的存储控制器,并且ECC解码器50可以包括在存储控制器和存储器件中的至少一者中。例如,输入数据rT可以是从存储器件输出(或读取或检索到)并且作为ECC解码的目标对象的码字(codeword)或数据。将参考图2来描述输入数据rT。
在一些示例实施例中,奇偶校验矩阵H可以通过将基于传统循环码(conventionalcyclic code)设计的法尔码(Fire code)变换为常循环码来获得。将参考图5、图6A、图6B和图6C来描述常循环码和奇偶校验矩阵H。
突发差错校正器70使用全局校正子数据sG和局部校正子数据sL来校正输入数据rT中包括的能够校正的差错,并且生成并输出与输入数据rT相对应的输出数据c。例如,在因为当输入数据rT中包括能够校正的差错时而对输入数据rT执行差错校正的情况下,输出数据c可以是经差错校正的数据。在因为输入数据rT中不包括能够校正的差错或者输入数据rT中包括不能够校正的差错而不对输入数据rT执行差错校正的情况下,输出数据c可以是与输入数据rT基本相同的未校正的数据。
将参考图3和图4来描述校正子生成器60和突发差错校正器70的示例配置。
图2是用于描述根据示例实施例的提供给图1的ECC解码器的输入数据的图。
参考图1和图2,示出了输入数据rT的数据模式,并且示出了可能在输入数据rT上发生的差错模式(或差错模型)。
输入数据rT可以包括沿着第一方向DL和第二方向DR布置的多个数据位。在图2中,由实线示出的单个正方形表示一个数据位(或简单地表示一个位)。
例如,对于正整数f、v和u,输入数据rT可以被表示为fv*u二维(2D)逐位(bit-wise)阵列。
在图2中,u可以表示输入数据rT的一行RW中所包括的数据位的数量,并且u可以对应于提供输入数据rT的存储器件(或存储芯片)的数据输入/输出(I/O)引脚的数量。例如,图2示出了u=6的示例。
在图2中,fv可以表示在输入数据rT的一列中包括的数据位的数量,并且fv可以对应于从提供输入数据rT的存储器件(或存储芯片)的一个数据I/O引脚输出的数据位的数量。输入数据rT的列可以被称为通道LN,并且一个通道LN中包括的两个或更多个连续的数据位可以被定义为一个符号SB。另外,f可以表示一个符号SB中包括的数据位的数量,并且v可以表示一个通道LN中包括的符号SB的数量。例如,图2示出了v=3和f=2的示例。
第一方向DL可以表示通道LN的形成或布置方向,并且第二方向DR可以表示行RW的形成或布置方向。第一方向DL可以被称为通道方向,并且第二方向DR可以被称为行方向。输入数据rT可以包括沿着第二方向DR布置的总共u个通道,并且可以包括沿着第一方向DL布置的总共fv个行。
例如,可能在输入数据rT上发生的差错可以包括突发差错和随机位差错。
突发差错可能发生在一个通道LN中的相邻符号SB上,并且通道LN中的突发差错可能独立地发生。换句话说,突发差错可以表示垂直符号级(例如,通道方向上的符号级)中的后续符号差错模式,并且可以主要源自高速互连上的均衡问题。图2示出了在输入数据rT中的两个符号SB上发生单一突发差错SBST_ERR的示例。
随机位差错可能发生在通道LN和行RW中的任何位置或定位上。当随机位差错在两个或更多个数据位上随机发生时,它可以被称为多位差错。换句话说,多位差错可以表示随机化的差错模式,并且可能因存储器件的劣化而变得普遍。图2示出了在输入数据rT上发生多位差错MB_ERR并且在两个数据位上发生差错的示例(例如,两位差错的示例)。
在根据示例实施例的ECC解码器50中,可以使用基于常循环码的奇偶校验矩阵H。因此,可以校正在输入数据rT中沿第一方向DL布置的两个或更多个符号SB上生成的单一突发差错SBST_ERR,并且其中每个符号SB包括两个或更多个数据位。另外,在输入数据rT中的两个或更多个数据位上随机发生的多位差错MB_ERR也可以被校正。换句话说,ECC解码器50可以被实现为同时校正单一突发差错SBST_ERR和多位差错MB_ERR。因此,可以高效地执行ECC解码,同时减少性能损失并且增加可靠性。
然而,示例实施例不限于此,并且ECC解码器50可以被实现为同时检测单一突发差错SBST_ERR和多位差错MB_ERR,并且校正单一突发差错SBST ERR和多位差错MB_ERR中的至少一者。例如,可以检测和校正单一突发差错SBST_ERR,并且可以检测多位差错MB_ERR。
在一些示例实施例中,输入数据rT可以通过突发操作从存储器件(或存储芯片)提供,在该突发操作中,多个数据位基于单一命令通过多个数据I/O引脚而被输出,并且第一方向DL可以对应于表示突发操作的单位的突发长度。将参考图9A和图9B描述来突发操作。
例如,基于输入数据rT生成的输出数据c可以由fuv长度的码字来表示:c=(c1,...,cu)。
图3是示出根据示例实施例的图1的ECC解码器的示例的框图。
参考图3,ECC解码器50a可以包括校正子生成器60a和突发差错校正器70a。
校正子生成器60a可以包括全局校正子计算器61和局部校正子计算器63。全局校正子计算器61可以基于输入数据rT以及奇偶校验矩阵H中包括的全局奇偶校验矩阵HG来生成全局校正子数据sG。局部校正子计算器63可以基于输入数据rT以及奇偶校验矩阵H中包括的局部奇偶校验矩阵HL来生成局部校正子数据sL。例如,全局校正子数据sG和局部校正子数据sL可以基于等式1和等式2获得。在等式1和等式2中,T表示转置矩阵。
[等式1]
sG=HGrT
[等式2]
sL=HLrT
突发差错校正器70a可以包括差错生成器71、差错校验器73和数据校正器75。差错生成器71可以基于局部校正子数据sL来生成差错数据eT。差错校验器73可以基于全局校正子数据sG和差错数据eT来校验是否已经发生差错,并且可以生成表示是否已经发生差错的差错校验信号ECS。数据校正器75可以基于差错校验信号ECS、输入数据rT和差错数据eT来生成经差错校正的数据cc或未校正的数据nc。例如,当基于差错校验信号ECS确定在输入数据rT上已经发生差错时,数据校正器75可以基于输入数据rT和差错数据eT来生成经差错校正的数据cc。当基于差错校验信号ECS确定在输入数据rT上没有发生差错时,数据校正器75可以输出输入数据rT作为未校正的数据nc。
在一些示例实施例中,校正子生成器60a和突发差错校正器70a的至少一部分或全部可以被实现为硬件。例如,校正子生成器60a和突发差错校正器70a的至少一部分或全部可以被包括在基于计算机的电子系统中。在其他示例实施例中,校正子生成器60a和突发差错校正器70a的至少一部分或全部可以被实现为指令代码或程序例程(例如,软件程序)。例如,指令代码或程序例程可以由基于计算机的电子系统执行,并且可以存储在位于基于计算机的电子系统内部或外部的任何存储器件中。
图4是用于描述根据示例实施例的包括在图3的ECC解码器中的突发差错校正器的操作的图。
参考图3和图4,示出了由突发差错校正器70a中包括的差错生成器71a、差错校验器73a和数据校正器75a执行的差错校正操作的示例。
差错生成器71a可以基于局部校正子数据sL和局部奇偶校验矩阵HL来生成包括在差错数据eT中的多个子差错数据e1 T、e2 T、…、eu T。例如,子差错数据ei T可以表示在第i个通道上发生的突发差错,其中i是大于或等于一并且小于或等于u的整数。例如,可以基于等式3获得子差错数据ei T。
[等式3]
在等式3中,HL,i可以表示在局部奇偶校验矩阵HL中包括的多个子局部奇偶校验矩阵当中的第i个子局部奇偶校验矩阵。例如,基于等式3,e1 T=(HL,1)-1(sL)T,e2 T=(HL,2)-1(sL)T并且eu T=(HL,u)-1(sL)T。
差错校验器73a可以通过将全局校正子数据sG与通过将全局奇偶校验矩阵HG和差错数据eT相乘而获得的数据进行比较,来校验是否已经发生差错,并且可以生成差错校验信号ECS。例如,可以将全局校正子数据sG与通过将全局奇偶校验矩阵HG与子差错数据e1 T、e2 T、…、eu T相乘而获得的数据进行比较,并且基于比较结果,可以校验是否发生了差错,并且可以生成多个差错校验信号ECS1、ECS2、…、ECSu。例如,当存在满足等式4的独特i(i∈[u])时,可以校验出已经发生差错,并且可以执行差错校正操作。
[等式4]
在等式4中,HG,i可以表示在全局奇偶校验矩阵HG中包括的多个子全局奇偶校验矩阵当中的第i个子全局奇偶校验矩阵。例如,基于等式4,当sG=HG,1e1 T满足时,可以生成表示在第一通道上已经发生差错的第一差错校验信号ECS1,当sG=HG,2e2 T满足时,可以生成表示在第二通道上已经发生差错的第二差错校验信号ECS2,并且当sG=HG,ueu T满足时,可以生成表示在第u通道上已经发生差错的第u差错校验信号ECSu。
当存在满足等式4的独特i时,数据校正器75a可以基于等式5执行差错校正操作。
[等式5]
图5、图6A、图6B和图6C是用于描述根据示例实施例的在图3的ECC解码器中使用的基于常循环码的奇偶校验矩阵的图。
参考图5,示出了应用于图2的输入数据的2m(l+v)*2muv大小的奇偶校验矩阵H的示例。在图5中,符号大小f=2m,m是正整数,l是偶整数,并且l和m是互质的。奇偶校验矩阵H可以包括2ml*2muv大小的全局奇偶校验矩阵HG和2mv*2muv大小的局部奇偶校验矩阵HL。
参考图6A,全局奇偶校验矩阵HG包括多个子全局奇偶校验矩阵HG,1,HG,2,...,HG,u。子全局奇偶校验矩阵HG,1,HG,2,...,HG,u的数量可以是u,并且一个子全局奇偶校验矩阵的大小可以是2ml*2mv。如将参考图6B所描述的,子全局奇偶校验矩阵HG,1,HG,2,...,HG,u可以以不同的形式实现。
局部奇偶校验矩阵HL可以包括多个子局部奇偶校验矩阵HL,1,HL,2,...,HL,u。与子全局奇偶校验矩阵HG,1,HG,2,...,HG,u一样,子局部奇偶校验矩阵HL,1,HL,2,...,HL,u的数量可以是u,并且一个子局部奇偶校验矩阵的大小可以是2ml*2mv。如将参考图6C所描述的,可以以彼此类似的形式来实现子局部奇偶校验矩阵HL,1,HL,2,...,HL,u。
参考图6B,全局奇偶校验矩阵HG可以具有重复布置2ml*2mu大小的第一子矩阵SM1的结构,并且在全局奇偶校验矩阵HG中重复布置的第一子矩阵SM1的数量可以是v。第一子矩阵SM1可以包括多个第二子矩阵SM2,多个第二子矩阵SM2可以如图6B所示地布置在第一子矩阵SM1中,并且每个第二子矩阵SM2可以包括由实心矩形示出的元素。在全局奇偶校验矩阵HG中,零元素可以被设置在没有设置由实心矩形示出的元素的区域或范围中。稍后将描述获得由实心矩形示出的元素的过程。
在重复布置v个第一子矩阵SM1的全局奇偶校验矩阵HG中,u个子全局奇偶校验矩阵HG,1,HG,2,...,HG,u可以如图6A所示定义,并且每个子全局奇偶校验矩阵的大小可以是2ml*2mv。例如,可以将最前面的第一子矩阵SM1中的最前级处的2ml*2mv大小的矩阵定义为第一子全局奇偶校验矩阵HG,1。例如,虽然没有详细示出,但是可以将与第一子全局奇偶校验矩阵HG,1相邻的2ml*2mv大小的矩阵定义为第二子全局奇偶校验矩阵HG,2。例如,第一子全局奇偶校验矩阵HG,1和第二子全局奇偶校验矩阵HG,2可以具有不同的形式。详细地,例如,第一子全局奇偶校验矩阵HG,1可以包括在单个第一子矩阵SM1中,并且第二子全局奇偶校验矩阵HG,2可以与两个相邻的第一子矩阵SM1交叠,但是示例实施例不限于此。
参考图6C,局部奇偶校验矩阵HL中包括的第一子局部奇偶校验矩阵HL,1可以包括由实心矩形示出的元素,局部奇偶校验矩阵HL中包括的第二子局部奇偶校验矩阵HL,2可以包括由实心矩形示出的元素,并且局部奇偶校验矩阵HL中包括的第u个子局部奇偶校验矩阵HL,u可以包括由实心矩形示出的元素。稍后将描述获得由实心矩形示出的元素的过程。在每个子局部奇偶校验矩阵中,零元素可以被设置在没有设置由实心矩形示出的元素的区域或范围中。例如,子局部奇偶校验矩阵HL,1,HL,2,...,HL,u可以具有彼此相似的形式(例如,对应于对角矩阵的形式)。
在下文中,将详细描述在示例实施例中使用的基于常循环码获得奇偶校验矩阵H的方法或过程。
首先,概述与示例实施例相关联或相关的一些数学表达式。
对于正整数m和偶整数1,码运算基于二进制有限域或其扩展域/> 和之上的a*b矩阵A。此外,设α,β,ξ和γ分别为/> 和/>的基本元素。容易检查是/>的子字段,其中/>也是/>的子字段。然后,对应的基本元素应满足等式6。
[等式6]
设为从/>到/>的线型映射,即,/>i∈[0,2m-2]并且
设B为之上的A的关联矩阵,表示为B=M(A),即,如果ai,j≠0,则bi,j=1,否则bi,j=0,其中ai,j和bi,j分别为A和B的第(i,j)个元素。
此外,设Ti为由等式7表示的伴随矩阵。
[等式7]
在等式7中,[ξi]表示为对于任意整数i,从具有基{1,ξ,...,ξ2m-1}的有限域的相加的2m元组表示导出的2m*1列向量,并且然后,容易检查存在从到/>的场同构映射/>其中O表示全零矩阵。
接下来,将使用上述数学表达式来描述根据示例实施例的基于常循环码的奇偶校验矩阵H。
根据示例实施例的基于常循环码的奇偶校验矩阵H可以通过将传统循环码(例如,法尔码)变换和/或扩展为常循环码来获得。
在介绍常循环码之前,可以提起传统循环码。对于码长为n=2L-1的循环码,编码和解码操作是通过来自主环之上的代数操作的同构映射来定义的,其中<.>是生成器。将/>表示为满足/>的基本元素。对于根指数C=[0,2l-2]的集合,设|Ci|≤l是陪集,C的一部分。设pi(x)是/>之上的αi的最小多项式。然后,可以获得等式8,其中I是满足C=∪i∈ICi的具有最小基数的[0,21-2]的子集。
[等式8]
然后,可以提出一类特殊的非二进制常循环码作为循环码的概括,其定义如下。
<定义:常循环码>对于整数m、l和元素如果对于所有则码长n=21-1的2m进制线性码/>被表示为λ-伪循环。
类似地,通过到主环的同构映射定义了常循环码。注意,这种同构一般适用于任何1和m,并且如果λ=1,则常循环码变为循环码。
此后,可以使用如上定义的常循环码来构造或实现奇偶校验矩阵H。
假设在和/>之上的原根β和ξ满足l<v且/>其中1和m互质。对于主环<xuv+λv>,设b=2m+1和/>是对于u=21-1以及某一整数e的/>内的xu+λ的根。根据(n,k)=(uv,uv-l-v)伪循坏码/>对于符号大小f=2m,具有(n,k)=(fuv,f(uv-l-v))的线性二进制BECC(突发差错控制码)/>具有2m(l+v)*2muv的奇偶校验矩阵其中HG=[HG,1,...,HG,u]和HL=[HL,1,...,HL,u]如下步骤构造。
i)设是具有奇偶校验多项式h(x)的/>之上的常循环码,其被导出为等式9。
[等式9]
例如,作为用于定义常循环码的方法,可以获得作为xu+λ=0的解的中包括的δ,并且然后可以导出等式9的奇偶校验多项式。这里,pi(x)可以是xu+1的最小多项式。
ii)使用奇偶校验多项式h(x)的系数,基于等式10和等式11,可以生成l*uv大小的PG和l*uv大小的P′U。
[等式10]
PG=[P′U,δvP′U,...,δv(u-1)P′U]
[等式11]
例如,对于多项式的每个系数,PG可以被设置为等式10,并且P′U可以使用上面定义的h(x)的系数被构造为等式11。
iii)可以基于等式12和等式13构造v*uv大小的PL。
[等式12]
PL=[PL,1,...,PL,u]
[等式13]
因此,可以根据PG和PL生成(l+v)*uv大小的矩阵然后,P是在/>之上具有生成器多项式g(x)=(δ-υxv+1)p′i(δ-1x)的常循环码/>的奇偶校验矩阵。P的元素可以包括在/>中。
iv)根据常循环码通过两个顺序映射/>将所有元素转换为二进制元素。首先,映射/>将βi转换为ξbi,并且将δi=βei转换为ξbei。然后,例如使用等式7和场同构映射/>将ξi的元素通过/>映射到2m*2m伴随矩阵中。最后,利用与参考图5、图6A、图6B、图6C描述的基于常循环码的奇偶校验矩阵H相对应的2m(l+v)*2muv奇偶校验矩阵/>构成所提出的二进制BECC。
总之,可以基于等式9的奇偶校验多项式H(x)来获得奇偶校验矩阵H,可以基于等式10和等式11来构造包括在奇偶校验矩阵H中的全局奇偶校验矩阵HG,并且可以基于等式12和等式13来构造包括在奇偶校验矩阵H中的局部奇偶校验矩阵HL。特别地,可以通过使用由等式7定义的伴随矩阵将等式10的PG和等式12的PL中的所有元素转换为二进制元素来获得全局奇偶校验矩阵HG和局部奇偶校验矩阵HL。
根据示例实施例的ECC解码器50可以使用基于常循环码的奇偶校验矩阵H来操作,并且可以同时检测和/或校正单一突发差错SBST_ERR和多位差错MB_ERR。因此,ECC解码器50即使在多位差错方面(在过去是未考虑的)也可以具有相对健壮的结构。因此,可以高效地执行ECC解码,同时减少性能损失并增加可靠性。
在一些示例实施例中,ECC解码器50可以以最大似然校正子解码器(maximumlikelihood syndrome decoder,MLSD)的形式实现,但是示例实施例不限于此。
图7是示出根据示例实施例的存储器件和存储系统的框图。
参考图7,存储系统10可以包括存储控制器100和存储模块MM。存储模块MM可以包括多个存储器件200a、…、200k和200p。多个存储器件200a、…、200k和200p可以是多个存储芯片200a、…、200k和200p。多个存储芯片200a至200k可以是多个数据芯片200a至200k,并且存储芯片200p可以是至少一个奇偶校验芯片200p。多个存储芯片200a至200k和200p中的每一个存储芯片可以被称为半导体存储器件。
存储控制器100可以控制存储系统10的整体操作。存储控制器100可以控制外部主机设备与多个存储芯片(或存储器件)200a至200k和200p之间的整体数据交换。例如,存储控制器100可以响应于来自主机的请求,将数据写入多个存储芯片200a至200k和200p中和/或从多个存储芯片200a至200k和200p读取数据。另外地或者作为另一种选择,存储控制器100可以向多个存储芯片200a至200k和200p发出操作命令,以用于控制多个存储芯片200a至200k和200p。
在一些示例实施例中,多个存储芯片200a至200k和200p中的每一个存储芯片可以包括易失性存储器,该易失性存储器包括易失性存储单元,例如动态随机存取存储器(DRAM)。
在一些示例实施例中,多个数据芯片200a至200k的数量可以是八或十六。然而,数据芯片200a至200k的数量不限于此,并且可以大于八或十六,也可以小于八或十六,并且可以是二的幂,也可以不是二的幂。在一些示例实施例中,数据芯片200a至200k中的每一个数据芯片可以被称为数据存储器件,并且至少一个奇偶校验芯片200p可以被称为奇偶存储器件、ECC存储器件或冗余存储器件。
存储控制器100可以将命令CMD和地址ADDR发送到存储模块MM,并且可以与存储模块MM交换码字集SCW。
存储控制器100可以包括系统(SYS)ECC引擎(或第一ECC引擎)130。多个存储芯片200a至200k和200p中的每一个存储芯片可以包括多个管芯上(OD)ECC引擎(或第二ECC引擎)400a至400k和400p中的相应一个管芯上ECC引擎。
系统ECC引擎130可以包括执行ECC解码的系统ECC解码器(或第一ECC解码器)SYS_DEC。管芯上ECC引擎400a至400k和400p中的每一个管芯上ECC引擎可以包括执行ECC解码的管芯上ECC解码器(或第二ECC解码器)OD_DEC。系统ECC解码器SYS_DEC和管芯上ECC解码器OD_DEC中的每一者可以是根据参考图1至图6描述的示例实施例的ECC解码器,可以基于以常循环码为基础的奇偶校验矩阵H来操作,并且因此可以被实现为同时检测和/或校正单一突发差错SBST_ERR和多位差错MB_ERR。
图8是示出根据示例实施例的包括在图7的存储系统中的存储控制器的示例的框图。
参考图8,存储控制器100可以包括处理器110、主机接口120、数据寄存器125、系统ECC引擎130、命令缓冲器190和地址缓冲器195。系统ECC引擎130可以包括ECC编码器140、ECC解码器150和存储器180。
主机接口120可以从外部主机设备接收请求REQ和用户数据集(或主数据)SDQ,可以生成与用户数据集SDQ相关联的元数据MDT,可以将用户数据集SDQ提供给数据寄存器125,并且可以将元数据MDT提供给ECC编码器140。数据寄存器125可以连续地(和/或顺序地和/或串行地)将用户数据集SDQ输出到ECC编码器140。
在写入操作期间,ECC编码器140可以通过使用奇偶校验生成矩阵对用户数据集SDQ和元数据MDT执行ECC编码来生成第一码字集(或简称为码字)SCW1。第一码字集SCW1可以对应于提供给存储模块MM并且存储在存储模块MM中的写入数据。
ECC解码器150可以对应于图7中的系统ECC解码器SYS_DEC。在读取操作期间,ECC解码器150可以通过使用奇偶校验矩阵对第二码字集SCW2执行ECC解码来生成用户数据集SDQ和/或经校正的用户数据集C_SDQ,并且将用户数据集SDQ和/或经校正的用户数据集C_SDQ提供给处理器110。第二码字集SCW2可以对应于从存储模块MM接收或检索到的读取数据,并且可以对应于图1中的输入数据rT。
存储器180可以存储奇偶校验生成矩阵(或生成矩阵)和奇偶校验矩阵。例如,根据示例实施例,奇偶校验矩阵可以是基于常循环码的奇偶校验矩阵H。例如,生成矩阵用于将数据转换为码字集,并且奇偶校验矩阵用于对码字集进行解码以发现在码字集中是否存在差错。
处理器110可以接收用户数据集SDQ和/或经校正的用户数据集C_SDQ,并且可以控制系统ECC引擎130、命令缓冲器190和/或地址缓冲器195。例如,处理器110可以包括中央处理单元(CPU)。
命令缓冲器190可以存储对应于请求REQ的命令CMD,并且可以在处理器110的控制下将命令CMD发送到存储模块MM。地址缓冲器195可以存储地址ADDR,并且可以在处理器110的控制下将地址ADDR发送到存储模块MM。
图9A和图9B是示出根据示例实施例的与图7的存储系统中的多个突发长度相对应的数据集的示例的图。
参考图9A,存储模块MM可以包括多个存储器件(或存储芯片)201a至201k、201pa和201pb。多个存储芯片201a至201k可以是多个数据芯片201a至201k。存储芯片201pa和201pb可以是第一奇偶校验芯片201pa和第二奇偶校验芯片201pb。例如,多个数据芯片201a至201k可以包括第一数据芯片至第N数据芯片,其中N是等于或大于二的自然数。在图9A的示例中,一个存储芯片可以连接到四个数据输入/输出(I/O)引脚,并且四个数据信号DQ1、DQ2、DQ3和DQ4可以输入到一个存储芯片和/或从一个存储芯片输出。图9A的示例可以被称为x4结构。
如图9A所示,数据芯片201a至201k以及奇偶校验芯片201pa和201pb中的每一个可以执行突发操作。
在此,突发操作可以表示通过顺序地增加和/或减少从存储控制器100提供的初始地址来写入和/或读取大量数据的操作。突发操作的基本单位可以被称为突发长度(BL)。
对应于多个突发长度的数据集DQ_BL1、…、和DQ_BLk中的每一个数据集可以被输入到数据芯片201a至201k中的每一个数据芯片和/或从数据芯片201a至201k中的每一个数据芯片输出。数据集DQ_BL1至DQ_BLk中的每一个数据集可以包括与多个突发长度中的每一个突发长度相对应的数据段DQ_BL_SG1、DQ_BL_SG2、DQ_BL_SG3、DQ_BL_SG4、DQ_BL_SG5、DQ_BL_SG6、DQ_BL_SG7和DQ_BL_SG8。数据集DQ_BL1至DQ_BLk可以对应于用户数据集SDQ。例如,图9A示出了突发长度为八的示例,然而,示例实施例不限于此。
当对数据芯片201a至201k中的每一个数据芯片执行突发操作时,可以将与多个突发长度相对应的元数据MDT和第一奇偶校验数据PRTL输入到第一奇偶校验芯片201pa和/或从第一奇偶校验芯片201pa输出,可以将与多个突发长度相对应的第二奇偶校验数据PRTM输入到第二奇偶校验芯片201pb和/或从第二奇偶校验芯片201pb输出。第二奇偶校验数据PRTM可以包括第一子奇偶校验数据PRTM1和第二子奇偶校验数据PRTM2。
第一奇偶校验数据PRTL可以被称为差错定位符奇偶校验数据,并且可以与用户数据集SDQ中的差错位的位置相关联。第二奇偶校验数据PRTM可以被称为差错大小奇偶校验数据,并且可以与用户数据集SDQ中的差错位的大小(或数量或计数)相关联。图9A示出了差错定位符奇偶校验数据和差错大小奇偶校验数据被存储在不同的奇偶校验芯片中的示例。例如,第一奇偶校验数据PRTL(例如,差错定位器奇偶校验数据)可以对应于全局奇偶校验矩阵和基于全局奇偶校验矩阵生成的全局奇偶校验数据,并且第二奇偶校验数据PRTM(例如,差错大小奇偶校验数据)可以对应于局部奇偶校验矩阵和基于局部奇偶校验矩阵生成的局部奇偶校验数据。
参考图9B,存储模块MM可以包括多个存储器件202a、…、和202p。将省略与图9A重复的描述。
存储器件202a可以包括多个存储芯片202a。多个存储芯片202a可以是多个数据芯片202a,例如,第一数据芯片和第二数据芯片。存储器件202p可以包括多个存储芯片202p。多个存储芯片202p可以是多个奇偶校验芯片202p,例如,第一奇偶校验芯片和第二奇偶校验芯片。例如,多个数据芯片202a可以包括第一数据芯片至第M数据芯片,其中M是等于或大于二的自然数。在图9B的示例中,一个存储芯片可以连接到八个数据I/O引脚,并且八个数据信号DQ1、DQ2、DQ3、DQ4、DQ5、DQ6、DQ7和DQ8可以输入到一个存储芯片和/或从一个存储芯片输出。图9B的示例可以被称为x8结构。
输入到图9B中的一个存储芯片和/或从图9B中的一个存储芯片输出的数据集DQ_BL1a和DQ_BL1b的大小可以是输入到图9A中的一个存储芯片和/或从图9A中的一个存储芯片输出的数据集DQ_BL1的大小的两倍。当图9A的存储模块MM和图9B的存储模块MM包括相同数量的数据I/O引脚时,图9B中的数据芯片202a的数量可以是图9A中的数据芯片201a至201k的数量的一半(例如,M=N/2)。例如,N=16并且M=8。另外,图9B示出了差错位置奇偶校验数据和差错大小奇偶校验数据被存储在一个奇偶校验芯片中的示例。
图10是示出根据示例实施例的包括在图8的存储控制器中的系统ECC引擎的示例的框图。
参考图10,系统ECC引擎130可以包括ECC编码器140、ECC解码器150和存储器180。存储器180可以被称为ECC存储器。虽然ECC编码器140和ECC解码器150被示出为单独的部件,但是示例实施例不限于此。
在写入操作期间,ECC编码器140可以使用奇偶校验生成矩阵(或生成器矩阵)PGM对用户数据集SDQ和元数据MBT执行ECC编码,以生成包括第一奇偶校验数据PRTL和第二奇偶校验数据PRTM的奇偶校验数据集SPRT,并且可以输出包括用户数据集SDQ、元数据MBT和奇偶校验数据集SPRT的第一码字集SCW1。用户数据集SDQ可以存储在数据芯片(例如,图9A中的数据芯片201a到201k)中,并且元数据MDT和奇偶校验数据集SPRT可以存储在奇偶校验芯片(例如,图9A中的奇偶校验芯片201pa和201pb)中。
在读取操作期间,ECC解码器150可以使用奇偶校验矩阵PCM对包括用户数据集SDQ、元数据MBT和奇偶校验数据集SPRT的第二码字集SCW2执行ECC解码,以生成校正的用户数据集C_SDQ,并且可以输出用户数据集SDQ和/或校正的用户数据集C_SDQ。根据示例实施例,奇偶校验矩阵PCM可以是基于常循环码的奇偶校验矩阵H,并且可以如参考图5、图6A、图6B和图6C所描述的那样来实现。
图11是示出根据示例实施例的包括在图7的存储系统中所包括的存储模块中的数据芯片的示例的框图。
参考图11,数据芯片200a可以包括控制逻辑电路210、地址寄存器220、存储体控制逻辑电路230、行地址多路复用器240、列地址锁存器250、行解码器260、列解码器270、存储单元阵列300、感测放大器单元285、输入/输出(I/O)门控电路290、数据I/O缓冲器295、管芯上ECC引擎400a和/或刷新计数器245。图11的数据芯片200a可以对应于图7的数据芯片200a、图9A的数据芯片201a或图9B的数据芯片202a。
存储单元阵列300可以包括第一存储体阵列310至第八存储体阵列380(例如,第一存储体阵列至第八存储体阵列310、320、330、340、350、360、370和380)。行解码器260可以包括分别连接到第一存储体阵列310至第八存储体阵列380的第一存储体行解码器260a至第八存储体行解码器260h。列解码器270可以包括分别连接到第一存储体阵列310至第八存储体阵列380的第一存储体列解码器270a至第八存储体列解码器270h。感测放大器单元285可以包括分别连接到第一存储体阵列310至第八存储体阵列380的第一存储体感测放大器285a至第八存储体感测放大器285h。
第一存储体阵列310至第八存储体阵列380、第一存储体行解码器260a至第八存储体行解码器260h、第一存储体列解码器270a至第八存储体列解码器270h以及第一存储体感测放大器285a至第八存储体感测放大器285h可以形成第一存储体至第八存储体。第一存储体阵列310至第八存储体阵列380中的每一个存储体阵列可以包括多条字线WL、多条位线BTL、以及在字线WL与位线BTL的交叉处的多个存储单元MC。
尽管图11示出了包括八个存储体(和八个存储体阵列、八个行解码器等)的数据芯片200a,但是数据芯片200a可以包括任意数量的存储体;例如,一个存储体、两个存储体、四个存储体、八个存储体、十六个存储体或三十二个存储体,或者在一个存储体与三十二个存储体之间的任何数量。
地址寄存器220可以从存储控制器100接收包括存储体地址BANK_ADDR、行地址ROW_ADDR和列地址COL_ADDR的地址ADDR。地址寄存器220可以将接收的存储体地址BANK_ADDR提供给存储体控制逻辑电路230,可以将接收的行地址ROW_ADDR提供给行地址多路复用器240,并且可以将接收的列地址COL_ADDR提供给列地址锁存器250。
存储体控制逻辑电路230可以响应于存储体地址BANK_ADDR而生成存储体控制信号。可以响应于存储体控制信号而激活对应于存储体地址BANK_ADDR的第一存储体行解码器260a至第八存储体行解码器260h中的一个存储体行解码器,并且可以响应于存储体控制信号而激活对应于存储体地址BANK_ADDR的第一存储体列解码器270a至第八存储体列解码器270h中的一个存储体列解码器。
行地址多路复用器240可以从地址寄存器220接收行地址ROW_ADDR,并且可以从刷新计数器245接收刷新行地址REF_ADDR。行地址多路复用器240可以选择性地输出行地址ROW_ADDR或刷新行地址REF_ADDR作为行地址RA。从行地址多路复用器240输出的行地址RA可以被施加到第一存储体行解码器260a至第八存储体行解码器260h。
第一存储体行解码器260a至第八存储体行解码器中260h中被激活的一个存储体行解码器可以对从行地址多路复用器240输出的行地址RA进行解码,并且可以激活与行地址RA相对应的字线WL。例如,被激活的存储体行解码器可以生成字线驱动电压,并且可以将字线驱动电压施加到与行地址RA相对应的字线WL。
列地址锁存器250可以从地址寄存器220接收列地址COL_ADDR,并且可以临时存储接收的列地址COL_ADDR。在一些示例实施例中,在突发模式中,列地址锁存器250可以生成从接收的列地址COL_ADDR递增的列地址COL_ADDR'。列地址锁存器250可以将临时存储或生成的列地址COL_ADDR'施加到第一存储体列解码器270a至第八存储体列解码器270h。
第一存储体列解码器270a至第八存储体列解码器270h中被激活的一个存储体列解码器可以对从列地址锁存器250输出的列地址COL_ADDR进行解码,并且可以控制I/O门控电路290输出与列地址COL_ADDR相对应的数据。
I/O门控电路290可以包括用于门控输入/输出数据的电路系统。I/O门控电路290还可以包括用于存储从第一存储体阵列310至第八存储体阵列380输出的数据的读取数据锁存器,并且还可以包括用于将数据写入到第一存储体阵列310至第八存储体阵列380的写入控制器件。
从第一存储体阵列310至第八存储体阵列380中的一个存储体阵列读取的码字CW可以由连接到要从中读取码字CW的一个存储体阵列的感测放大器来感测,并且可以存储在读取数据锁存器中。在管芯上ECC引擎400a对码字CW执行ECC解码之后,可以经由数据I/O缓冲器295将存储在读取数据锁存器中的码字CW提供给存储控制器100。码字CW可以作为数据集(或用户数据或主数据)DQ_BL提供给存储控制器100。
要写入在第一存储体阵列310至第八存储体阵列380中的一个存储体阵列中的数据集DQ_BL可以从存储控制器100被提供给数据I/O缓冲器295,并且可以从数据I/O缓冲器295被提供给管芯上ECC引擎400a。管芯上ECC引擎400a可以对数据集DQ_BL执行ECC编码以生成奇偶校验数据,管芯上ECC引擎400a可以将包括数据集DQ_BL和奇偶校验数据的码字CW提供给I/O门控电路290,并且I/O门控电路290可以通过写入驱动器将码字CW写入在一个存储体阵列中的目标页的子页中。
数据I/O缓冲器295可以在数据芯片200a的写入操作中将数据集DQ_BL从存储控制器100提供给管芯上ECC引擎400a,并且可以在数据芯片200a的读取操作中将数据集DQ_BL从管芯上ECC引擎400a提供给存储控制器100。
当执行ECC解码并且检测到至少一个差错位时,管芯上ECC引擎400a可以将差错生成信号EGS提供给控制逻辑电路210。另外,管芯上ECC引擎400a可以生成解码状态标志DSF,解码状态标志DSF包括与管芯上ECC引擎400a不能够校正的一个或更多个不能够校正的差错以及管芯上ECC引擎400a能够校正的一个或更多个能够校正的差错相关联的信息。
控制逻辑电路210可以控制数据芯片200a的操作。例如,控制逻辑电路210可以生成用于数据芯片200a执行写入操作和/或读取操作的控制信号。控制逻辑电路210可以包括对从存储控制器100接收的命令CMD进行解码的命令解码器211,以及设置数据芯片200a的操作模式的模式寄存器212。在一些示例实施例中,本文描述为由控制逻辑电路210执行的操作可以由处理电路系统执行。
例如,命令解码器211可以通过对写入使能信号、行地址选通信号、列地址选通信号、芯片选择信号等进行解码来生成对应于命令CMD的控制信号。例如,控制逻辑电路210可以生成用于控制I/O门控电路290的第一控制信号CTL1和用于控制管芯上ECC引擎400a的第二控制信号CTL2。
图7中的奇偶校验芯片200p可以具有与数据芯片200a相同或基本相同的配置。奇偶校验芯片200p可以输入/输出相应的奇偶校验数据。
图12是示出根据示例实施例的包括在图11的数据芯片中的存储体阵列的示例的示图。
参考图12,第一存储体阵列310可以包括多条字线WL1、WL2、…、WL2m-1和WL2m(其中m是大于或等于二的自然数),多条位线BTL1、BTL2、…、BTL2n-1和BTL2n(其中n是可以与m相同或不同的大于或等于二的自然数),以及布置在WL1至WL2m与位线BTL1至BTL2n之间的交叉处或附近的多个存储单元MC。例如,多个存储单元MC中的每一个存储单元可以包括DRAM单元结构。多个存储单元MC连接到的多条字线WL1至WL2m可以被称为第一存储体阵列310的行,并且多个存储单元MC连接到的多条位线BTL1到BTL2n可以被称为第一存储体阵列310的列。
图13是示出根据示例实施例的包括在图7的存储系统中所包括的存储模块中的管芯上ECC引擎的示例的框图。
参考图13,管芯上ECC引擎400a可以包括ECC编码器410、存储器415和ECC解码器430。
存储器415可以存储与执行ECC相关的矩阵420。例如,矩阵420可以包括奇偶校验生成矩阵(或生成器矩阵)和奇偶校验矩阵。
在写入操作期间,ECC编码器410可以使用奇偶校验生成矩阵来生成与要存储在第一存储体阵列310的正常单元阵列NCA中的写入数据WMD相关联的奇偶校验数据PRT。奇偶校验数据PRT可以存储在第一存储体阵列310的冗余单元阵列RCA中。例如,写入数据WMD和与写入数据WMD相关联的奇偶校验数据PRT可以对应于从图11的管芯上ECC引擎400a输出的码字CW。
ECC解码器430可以对应于图7中的管芯上ECC解码器OD_DEC。在读取操作期间,ECC解码器430可以使用奇偶校验矩阵,基于分别从第一存储体阵列310的正常单元阵列NCA和冗余单元阵列RCA读取的读取数据RMD和奇偶校验数据PRT,对读取数据RMD执行ECC解码。例如,从冗余单元阵列RCA读取的读取数据RMD和奇偶校验数据PRT可以对应于输入到图11的管芯上ECC引擎400a的码字CW。当作为ECC解码的结果,读取数据RMD包括至少一个差错位时,ECC解码器430可以校正读取数据RMD中的差错位,并且在读取操作中输出经校正的主数据C_MD。读取数据RMD可以对应于图1中的输入数据rT。例如,奇偶校验矩阵可以是根据示例实施例的基于伪循环编码的奇偶校验矩阵H,并且参考图5、图6A、图6B和图6C所述的那样实现。
图14和图15是示出根据示例实施例的存储器件和存储系统的框图。将省略与图7重复的描述。
参考图14,存储系统10a可以包括存储控制器100和存储模块MM。存储模块MM可以包括多个存储器件(例如,多个存储芯片)205a、…、205k和205p。
除了省略了存储芯片205a至205k和205p中的管芯上ECC引擎之外,存储系统10a可以与图7的存储系统10基本相同。例如,存储系统10a可以仅通过包括在存储控制器100中的系统ECC引擎130来执行系统ECC编码/解码。
参考图15,存储系统10b可以包括存储控制器100a和存储模块MM。
除了省略了存储控制器100a中的系统ECC引擎之外,存储系统10b可以与图7的存储系统10基本相同。例如,存储系统10b可以仅通过分别包括在存储芯片200a至200k和200p中的管芯上ECC引擎400a至400k和400p来执行管芯上ECC编码/解码。
图16是示出根据示例实施例的执行ECC解码的方法的流程图。
参考图1和图16,在根据示例实施例的执行ECC解码的方法中,使用输入数据rT和基于伪循环代码的奇偶校验矩阵H来生成全局校正子数据sG和局部校正子数据sL(步骤S100)。可以使用全局校正子数据sG和局部校正子数据sL来校正输入数据rT中包括的能够校正差错(步骤S200)。因此,可以同时检测和/或校正单一突发差错SBST_ERR和多位差错MB_ERR。例如,步骤S100可以由图1的校正子生成器60执行,并且步骤S200可以由图1的突发差错校正器70执行。
如本领域技术人员将理解的,本发明构思可以被实现为系统、方法、计算机程序产品和/或在其上实现有计算机可读程序代码的一种或更多种计算机可读介质中实现的计算机程序产品。计算机可读程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是任何有形介质,其可以包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序。例如,计算机可读介质可以是非暂时性计算机可读介质。
图17是示出根据示例实施例的可以用于存储系统的存储模块的示例的框图。
参考图17,存储模块500可以包括布置在电路板501中或安装在电路板501上的缓冲器芯片590(例如,寄存时钟驱动器;RCD),多个存储器件601a、601b、601c、601d、601e、602a、602b、602c、602d、602e、603a、603b、603c、603d、604a、604b、604c和604d,模块电阻单元560和570,串行存在检测(SPD)芯片580和/或功率管理集成电路(PMIC)585。存储模块500可以对应于图7、图9A、图9B、图14和图15中的存储模块MM中的一者。
缓冲器芯片590可以在存储控制器100的控制下控制存储器件601a至601e、602a至602e、603a至603d和604a至604d以及PMIC 585。例如,缓冲器芯片590可以从存储控制器100接收地址ADDR、命令CMD、用户数据集SDQ和元数据MDT。
SPD芯片580可以是可编程只读存储器(PROM)(例如,电可擦除PROM(EEPROM))。SPD芯片580可以包括存储模块500的初始信息和/或器件信息DI。在一些示例实施例中,SPD芯片580可以包括初始信息和/或器件信息DI,例如存储模块500的模块形式、模块配置、存储容量、模块类型、执行环境和/或其他信息等。
当包括存储模块500的存储系统被启动时,存储控制器100可以从SPD芯片580读取器件信息DI,并且可以基于器件信息DI识别存储模块500。存储控制器100可以基于来自SPD芯片580的器件信息DI来控制存储模块500。例如,存储控制器100可以基于来自SPD芯片580的器件信息DI识别包括在存储模块500中的存储器件的类型。
这里,电路板501可以是印刷电路板(PCB),电路板501可以在第一边缘部分503与第二边缘部分505之间在与第一方向D1垂直的第二方向D2上延伸。第一边缘部分503和第二边缘部分505可以在第一方向D1上延伸。缓冲器芯片590可以布置在电路板501的中心。多个存储器件601a至601e、602a至602e、603a至603d以及604a至604d可以在缓冲器芯片590与第一边缘部分503之间以及在缓冲器芯片590与第二边缘部分505之间布置在多个行中。在一些示例实施例中,本文描述为由缓冲器芯片590执行的操作可以由处理电路系统来执行。
在该示例中,存储器件601a至601e和602a至602e可以在缓冲器芯片590与第一边缘部分503之间布置在多行中或者沿着多行布置。存储器件603a至603d以及604a至604d可以在缓冲器芯片590与第二边缘部分505之间布置在多行中或者沿着多行布置。存储器件601a至601d、602a至602d、603a至603d以及604a至604d可以被称为数据芯片,并且存储器件601e和602e可以被称为奇偶校验芯片。
缓冲器芯片590可以基于用户数据集SDQ和元数据MDT来生成第一奇偶校验数据和第二奇偶校验数据,可以将用户数据集SDQ和元数据MDT存储在数据芯片中,并且可以将第一奇偶校验数据和第二奇偶校验数据存储在奇偶校验芯片中。
缓冲器芯片590可以通过命令/地址传输线561将命令/地址信号(例如,CA)提供给存储器件601a至601e,并且可以通过命令/地址传输线563将命令/地址信号提供给存储器件602a至602e。另外,缓冲器芯片590可以通过命令/地址传输线571将命令/地址信号提供给存储器件603a至603d,并且可以通过命令/地址传输线573将命令/地址信号提供给存储器件604a至604d。
命令/地址传输线561和563可以共同连接到与第一边缘部分503相邻的模块电阻单元560,并且命令/地址传输线571和573可以共同连接到与第二边缘部分505相邻的模块电阻单元570。模块电阻单元560和570中的每一个模块电阻单元可以包括连接到终端电压Vtt的终端电阻器Rtt/2。
例如,多个存储器件601a至601e、602a至602e、603a至603d以及604a到604d中的每一个存储器件或至少一个存储器件可以是或包括DRAM器件。
SPD芯片580可以被布置为与缓冲器芯片590相邻,并且PMIC 585可以在存储器件603d与第二边缘部分505之间。PMIC 585可以基于输入电压VIN生成电源电压VDD,并且将电源电压VDD提供给存储器件601a至601e、602a至602e、603a至603d以及604a至604d。
图18是示出根据示例实施例的存储系统的示例的框图。
参考图18,存储系统800可以包括存储控制器810和/或存储模块820和存储模块830。例如,存储系统800可以具有四区块(quad-rank)存储模块。虽然在图18中描绘了两个存储模块,但是根据示例实施例,更多或更少的存储模块可以被包括在存储系统800中。
存储控制器810可以控制存储模块820和/或存储模块830,以便执行从处理器和/或主机提供的命令。存储控制器810可以使用处理电路系统(例如,处理器)来实现和/或可以利用主机、应用处理器P(A)或芯片上系统(SoC)来实现。为了信号完整性,可以利用存储控制器810的总线840上的电阻器RTT来实现源端。电阻器RTT可以连接到电源电压VDDQ。存储控制器810可以包括可以向存储模块820和/或存储模块830中的至少一个发送信号的发送器811,以及可以从存储模块820和/或存储模块830中的至少一个接收信号的接收器813。存储控制器810可以包括系统ECC引擎815。
存储模块820和830可以被称为第一存储模块820和第二存储模块830。第一存储模块820和第二存储模块830可以通过总线840连接到存储控制器810。第一存储模块820和第二存储模块830中的每一个存储模块可以对应于图7、图9A、图9B、图14和图15中的存储模块MM中的一个存储模块。第一存储模块820可以包括存储区块RK1和RK2,并且第二存储模块830可以包括存储区块RK3和RK4。
第一存储模块820和第二存储模块830中的每一个存储模块可以包括多个存储芯片,这些存储芯片包括多个数据芯片和至少一个奇偶校验芯片,并且每个存储芯片可以包括管芯上ECC引擎825。
系统ECC引擎815可以对应于图7中的系统ECC引擎130,并且管芯上ECC引擎825可以对应于图7中的管芯上ECC引擎400a至400k和400p。根据示例实施例,系统ECC引擎815和管芯上ECC引擎825可以使用基于常循环码的奇偶校验矩阵H来操作,并且因此可以同时检测和/或校正单一突发差错SBST_ERR和多位差错MB_ERR。在一些示例实施例中,存储系统800可以省略系统ECC引擎815和管芯上ECC引擎825中的一个。
图19是示出根据示例实施例的包括存储模块的电子系统的框图。
参考图19,电子系统900可以包括应用处理器910、连接模块920、用户接口930、非易失性存储器件(NVM)940、存储模块(MM)950(例如,双列直插存储模块(DIMM))和/或电源970。例如,电子系统900可以是移动系统。
应用处理器910可以包括存储控制器911。存储控制器911可以包括系统ECC引擎(例如,图7中的系统ECC引擎130)。
应用处理器910可以执行应用(例如,web浏览器、游戏应用、视频播放器等中的至少一个)。连接模块920可以执行与外部设备的有线和/或无线通信。
存储模块950可以存储由应用处理器910处理的数据和/或作为工作存储器来操作。存储模块950可以包括多个存储器件(MD)951、952、953、…、95q(其中q为大于三的正整数)和/或缓冲器芯片(RCD)961。存储模块950可以是图17的存储模块500。
多个存储器件951至95q可以包括多个存储芯片,每个存储芯片包括管芯上ECC引擎(例如,图7中的管芯上ECC引擎400a至400k和400p中的一个管芯ECC引擎)。
非易失性存储器件40可以存储用于启动电子系统900的启用映像。用户接口930可以包括至少一个输入设备(例如,键盘、触摸屏等)以及至少一个输出设备(例如,扬声器、显示设备等)。电源970可以向电子系统900供应操作电压。
电子系统900或电子系统900的部件可以使用各种类型的封装来安装。
尽管示例实施例关注于存储器件和存储系统来描述,但是示例实施例可以用于校正和/或检测在存储器件和/或存储系统与其他设备之间的数据传输中发生的差错。例如,可以结合通过各种接口和/或互连的数据传输来应用或采用示例实施例,所述各种接口和/或互连例如是高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、串行连接SCSI(SAS)、外围部件互连(PCI)、PCI Express(PCIe)、计算机快速链路(CXL)等。
本发明构思可以应用于包括存储器件和存储系统的各种电子设备和系统。例如,本发明构思可以应用于诸如个人计算机(PC)、服务器计算机、云计算机、数据中心、工作站、移动电话、智能电话、平板计算机、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式游戏控制台、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(IoT)设备、万物联网(IoE)设备、电子书阅读器、虚拟现实(VR)设备、增强现实(AR)设备、机器人设备、无人机、汽车等的系统。
以上是示例实施例的说明,而不应被解释为对其的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易地理解,在不实质上脱离示例实施例的新颖教导和优点的情况下,在示例实施例中可以进行许多修改。因此,应当理解,前述内容是对各种示例实施例的说明,而不应被解释为限于所公开的特定示例实施例,并且对所公开的示例实施例的修改以及其他示例实施例旨在被包括在所附权利要求的范围内。
Claims (20)
1.一种ECC解码器,所述ECC解码器包括:
校正子生成器,所述校正子生成器被配置为使用输入数据和基于常循环码的奇偶校验矩阵来生成全局校正子数据和局部校正子数据;以及
突发差错校正器,所述突发差错校正器被配置为使用所述全局校正子数据和所述局部校正子数据来校正所述输入数据中包括的能够校正的差错,
其中,所述输入数据包括沿着第一方向和第二方向布置的多个数据位,
其中,所述多个数据位包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位,
其中,所述输入数据的差错包括单一突发差错和多位差错,
其中,所述单一突发差错发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错随机发生在所述多个数据位中的两个或更多个数据位上,并且
其中,所述ECC解码器被配置为同时校正所述单一突发差错和所述多位差错,所述ECC即差错校正码。
2.根据权利要求1所述的ECC解码器,其中,所述奇偶校验矩阵是基于如下等式1的奇偶校验多项式h(x)获得的:
[等式1]
3.根据权利要求2所述的ECC解码器,其中,所述奇偶校验矩阵包括全局奇偶校验矩阵和局部奇偶校验矩阵。
4.根据权利要求3所述的ECC解码器,其中,所述全局奇偶校验矩阵是基于如下等式2和等式3构造的:
[等式2]
PG=[P′U,δvP′U,...,δv(u-1)P′U]
[等式3]
5.根据权利要求4所述的ECC解码器,其中,所述局部奇偶校验矩阵是基于如下等式4和等式5构造的:
[等式4]
PL=[PL,1,...,PL,u]
[等式5]
6.根据权利要求5所述的ECC解码器,其中,所述全局奇偶校验矩阵和所述局部奇偶校验矩阵是通过使用由如下等式6定义的伴随矩阵将等式2的PG和等式4的PL中的所有元素转换为二进制元素来获得的:
[等式6]
7.根据权利要求1所述的ECC解码器,其中,所述奇偶校验矩阵包括全局奇偶校验矩阵和局部奇偶校验矩阵,并且
其中,所述校正子生成器包括:
全局校正子计算器,所述全局校正子计算器被配置为基于所述输入数据和所述全局奇偶校验矩阵来生成所述全局校正子数据;以及
局部校正子计算器,所述局部校正子计算器被配置为基于所述输入数据和所述局部奇偶校验矩阵来生成所述局部校正子数据。
8.根据权利要求1所述的ECC解码器,其中,所述突发差错校正器包括:
差错生成器,所述差错生成器被配置为基于所述局部校正子数据来生成差错数据;
差错校验器,所述差错校验器被配置为基于所述全局校正子数据和所述差错数据来校验是否已经发生差错;以及
数据校正器,所述数据校正器被配置为响应于由所述差错校验器确定已经发生差错,基于所述输入数据和所述差错数据来生成经差错校正的数据。
9.根据权利要求8所述的ECC解码器,其中,所述奇偶校验矩阵包括全局奇偶校验矩阵和局部奇偶校验矩阵,并且
其中,所述差错校验器被配置为通过将所述全局校正子数据与通过将所述全局奇偶校验矩阵和所述差错数据相乘而获得的数据进行比较来校验是否已经发生差错。
10.根据权利要求1所述的ECC解码器,其中,所述输入数据是通过突发操作从存储器件提供的,在所述突发操作中,所述多个数据位基于单一命令通过多个数据输入/输出引脚而被输出,并且
其中,所述第一方向对应于表示所述突发操作的单位的突发长度。
11.一种存储系统,所述存储系统包括:
存储模块,所述存储模块包括多个存储器件;以及
存储控制器,所述存储控制器包括系统ECC引擎并且被配置为控制所述存储模块,所述ECC即差错校正码,
其中,所述系统ECC引擎包括被配置为执行ECC解码的系统ECC解码器,
其中,所述系统ECC解码器包括:
第一校正子生成器,所述第一校正子生成器被配置为使用基于常循环码的第一奇偶校验矩阵和从所述存储模块提供的码字集来生成第一全局校正子数据和第一局部校正子数据;以及
第一突发差错校正器,所述第一突发差错校正器被配置为使用所述第一全局校正子数据和所述第一局部校正子数据来校正所述码字集中包括的能够校正的差错,
其中,所述码字集包括沿着第一方向和第二方向布置的多个数据位,
其中,所述多个数据位包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位,
其中,所述码字集的差错包括单一突发差错和多位差错,
其中,所述单一突发差错发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错随机发生在所述多个数据位中的两个或更多个数据位上,并且
其中,所述系统ECC解码器被配置为同时检测所述单一突发差错和所述多位差错。
12.根据权利要求11所述的存储系统,其中,所述码字集是通过突发操作从所述存储模块提供的,在所述突发操作中,所述多个数据位基于从所述存储控制器提供到所述存储模块的单一读取命令通过多个数据输入/输出引脚而被输出,并且
其中,所述第一方向对应于表示所述突发操作的单位的突发长度。
13.根据权利要求11所述的存储系统,其中,所述系统ECC引擎还包括被配置为存储所述第一奇偶校验矩阵的存储器。
14.根据权利要求11所述的存储系统,其中,所述系统ECC引擎还包括被配置为执行ECC编码的系统ECC编码器。
15.根据权利要求11所述的存储系统,
其中,所述多个存储器件中的每个存储器件包括存储单元阵列和管芯上ECC引擎,
其中,所述管芯上ECC引擎包括被配置为执行ECC解码的管芯上ECC解码器,并且
其中,所述管芯上ECC解码器包括:
第二校正子生成器,所述第二校正子生成器被配置为使用基于常循环码的第二奇偶校验矩阵和从所述存储单元阵列提供的读取数据来生成第二全局校正子数据和第二局部校正子数据;以及
第二突发差错校正器,所述第二突发差错校正器被配置为使用所述第二全局校正子数据和所述第二局部校正子数据来校正所述读取数据中包括的能够校正的差错。
16.根据权利要求15所述的存储系统,其中,所述管芯上ECC解码器还包括被配置为存储所述第二奇偶校验矩阵的存储器。
17.根据权利要求15所述的存储系统,其中,所述管芯上ECC解码器还包括被配置为执行ECC编码的管芯上ECC编码器。
18.根据权利要求11所述的存储系统,其中,所述多个存储器件包括多个数据芯片和至少一个奇偶校验芯片。
19.根据权利要求11所述的存储系统,其中,所述多个存储器件中的每一个存储器件包括动态随机存取存储器。
20.一种存储器件,所述存储器件包括:
存储单元阵列,以及
ECC解码器,所述ECC解码器被配置为对从所述存储单元阵列提供的读取数据执行ECC解码,所述ECC即差错校正码,
其中,所述ECC解码器包括:
校正子生成器,所述校正子生成器被配置为使用所述读取数据和基于常循环码的奇偶校验矩阵来生成全局校正子数据和局部校正子数据;以及
突发差错校正器,所述突发差错校正器被配置为使用所述全局校正子数据和所述局部校正子数据来校正所述读取数据中包括的能够校正的差错,
其中,所述读取数据包括沿着第一方向和第二方向布置的多个数据位,
其中,所述多个数据位包括多个符号,每个符号包括沿着所述第一方向的两个或更多个连续数据位,
其中,所述读取数据的差错包括单一突发差错和多位差错,
其中,所述单一突发差错发生在沿着所述第一方向布置的两个或更多个符号上,并且所述多位差错随机发生在所述多个数据位中的两个或更多个数据位上,并且
其中,所述ECC解码器被配置为同时检测所述单一突发差错和所述多位差错。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0113963 | 2022-09-08 | ||
KR1020220113963A KR20240035026A (ko) | 2022-09-08 | 2022-09-08 | 의사순환 코드를 이용한 ecc 디코더, 이를 포함하는 메모리 장치 및 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667499A true CN117667499A (zh) | 2024-03-08 |
Family
ID=90068857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310771337.1A Pending CN117667499A (zh) | 2022-09-08 | 2023-06-27 | 差错校正码解码器、存储器件和存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240097709A1 (zh) |
KR (1) | KR20240035026A (zh) |
CN (1) | CN117667499A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102540772B1 (ko) * | 2018-04-30 | 2023-06-08 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이의 동작 방법 |
US11294766B2 (en) * | 2019-08-13 | 2022-04-05 | Micron Technology, Inc. | Coordinated error correction |
US20210224155A1 (en) * | 2021-04-08 | 2021-07-22 | Intel Corporation | Reduction of latency impact of on-die error checking and correction (ecc) |
-
2022
- 2022-09-08 KR KR1020220113963A patent/KR20240035026A/ko unknown
-
2023
- 2023-04-09 US US18/132,415 patent/US20240097709A1/en active Pending
- 2023-06-27 CN CN202310771337.1A patent/CN117667499A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240097709A1 (en) | 2024-03-21 |
KR20240035026A (ko) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9767920B2 (en) | Semiconductor memory devices and memory systems including the same | |
US10803971B2 (en) | Device for supporting error correction code and test method thereof | |
CN111145827A (zh) | 错误校正码解码器和半导体存储器装置 | |
CN112527549A (zh) | 存储器控制器和包括该存储器控制器的存储器系统 | |
US11463110B2 (en) | Memory controllers and memory systems including the same | |
US10162703B2 (en) | Methods of correcting data errors and semiconductor devices used therein | |
US11068347B2 (en) | Memory controllers, memory systems including the same and memory modules | |
US10579472B2 (en) | Semiconductor devices | |
US12057184B2 (en) | Memory systems having memory devices therein with enhanced error correction capability and methods of operating same | |
TWI805318B (zh) | 操作記憶體控制器的方法、執行該方法的記憶體控制器和包括記憶體控制器的記憶體系統 | |
CN116745849A (zh) | 存储器装置保护 | |
TWI808098B (zh) | 用於支持錯誤更正碼的裝置及其測試方法 | |
US10261860B2 (en) | Semiconductor systems | |
US10917111B2 (en) | Error correction code unit and error correction method | |
CN116168754A (zh) | 纠错码电路、包括纠错码电路的存储设备以及纠错码电路的操作方法 | |
CN117667499A (zh) | 差错校正码解码器、存储器件和存储系统 | |
US20230146904A1 (en) | Error correction circuit, memory system, and error correction method | |
TWI856413B (zh) | 錯誤校正電路、記憶體系統以及錯誤校正方法 | |
CN118113210A (zh) | 存储器控制器和包括存储器控制器的存储器系统 | |
CN115994050A (zh) | 基于错误校正能力的路由分配 | |
KR20240117858A (ko) | 2/3-스포티 심볼 에러 정정이 가능한 ecc 디코더 및 이를 포함하는 메모리 시스템 | |
CN116340049A (zh) | 存储器系统及操作存储器系统的方法 | |
CN118519821A (zh) | 存储器控制器和存储器系统 | |
KR20230068265A (ko) | 에러 정정 회로, 메모리 시스템 및 에러 정정 방법 | |
KR20240062654A (ko) | 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |