CN112306735A - 错误校正电路、具有其的存储器控制器以及具有存储器控制器的存储器系统 - Google Patents
错误校正电路、具有其的存储器控制器以及具有存储器控制器的存储器系统 Download PDFInfo
- Publication number
- CN112306735A CN112306735A CN201911295983.5A CN201911295983A CN112306735A CN 112306735 A CN112306735 A CN 112306735A CN 201911295983 A CN201911295983 A CN 201911295983A CN 112306735 A CN112306735 A CN 112306735A
- Authority
- CN
- China
- Prior art keywords
- error correction
- codeword
- syndrome
- sub
- 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/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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] 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/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/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请涉及一种使用BCH码的错误校正电路。该错误校正电路可以包括:解码器,执行使用第一错误校正能力的第一错误校正解码或使用第二错误校正能力的第二错误校正解码中的至少一个;以及编码器,基于消息和与第一错误校正能力相对应的生成矩阵来生成码字,并基于该码字和与第二错误校正能力相对应的奇偶校验矩阵的一行或多行来生成附加奇偶校验码,其中在第一错误校正解码期间使用基于与码字相对应的读取矢量生成的校验子矢量,并且在第二错误校正解码期间使用基于附加奇偶校验码生成的附加校验子,并且其中从与第一错误校正能力相对应的奇偶校验矩阵扩展一行或多行。
Description
相关申请的交叉引用
本申请要求于2019年7月31日的申请号为10-2019-0093392的韩国专利申请的优先权,其全部公开内容通过引用整体并入本文。
技术领域
本申请所公开技术总体涉及错误校正电路、具有该错误校正电路的存储器控制器以及具有该存储器控制器的存储器系统。
背景技术
存储器系统可以包括在其中临时或永久地存储数据的存储介质。在诸如写入、读取、传输或处理的各种操作期间,可能发生数据错误或数据损坏。
为了确保数据可靠性,存储器系统使用诸如错误校正编码和错误校正解码的错误校正技术。
发明内容
各个实施例涉及一种能够改变错误校正能力的错误校正电路。本公开技术的一些实现方式提供了一种采用该错误校正电路的存储器控制器和存储器系统。
根据实施例,一种使用博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,即BCH)码的错误校正电路可以包括:解码器,执行使用第一错误校正能力的第一错误校正解码或使用第二错误校正能力的第二错误校正解码中的至少一个;以及编码器,基于消息和对应于第一错误校正能力的第一生成矩阵来生成码字,并基于该码字和对应于第二错误校正能力的第二奇偶校验矩阵的一行或多行来生成第一附加奇偶校验码;其中在第一错误校正解码期间使用基于与码字相对应的读取矢量生成的第一校验子矢量并且在第二错误校正解码期间使用基于第一附加奇偶校验码生成的附加校验子,并且其中从与第一错误校正能力相对应的奇偶校验矩阵扩展一行或多行。
根据实施例,一种使用博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码的存储器控制器可以包括:解码器,执行使用第一错误校正能力的第一错误校正解码或使用第二错误校正能力的第二错误校正解码中的至少一个;以及编码器,基于消息和第一生成矩阵来生成码字并基于该码字和第二奇偶校验矩阵的一行或多行来生成第一附加奇偶校验码,第一生成矩阵和第二奇偶校验矩阵分别与第一错误校正能力和第二错误校正能力相关;其中在第一错误校正解码期间使用基于与码字相对应的读取矢量生成的第一校验子矢量,并且在第二错误校正解码期间使用基于第一附加奇偶校验码生成的附加校验子;以及其中从与第一错误校正能力相对应的第一奇偶校验矩阵扩展一行或多行。
根据实施例,一种使用博斯-查德胡里-霍昆格姆码(BCH)码的存储器系统可以包括:存储器控制器,通过使用消息和与第一奇偶校验矩阵相对应的第一生成矩阵来生成码字,基于该码字和第二奇偶校验矩阵的一行或多行生成第一附加奇偶校验码,并且通过使用该第一附加奇偶校验码和第三生成矩阵来生成子码字,第一生成矩阵和第二奇偶校验矩阵分别对应于第一错误校正能力和第二错误校正能力;以及存储器装置,与存储器控制器通信,并且从存储器控制器接收码字和子码字且将码字和子码字分别存储在第一存储区域和第二存储区域中,其中从第一奇偶校验矩阵扩展一行或多行。
附图说明
图1是示出根据所公开技术的实施例的BCH码的奇偶校验矩阵的示例的示图。
图2是示出根据所公开技术的实施例的错误校正编码的示例的示图。
图3是示出第二错误校正编码的另一示例的示图。
图4是示出根据所公开技术的实施例的第一错误校正解码的示例的示图。
图5是示出根据所公开技术的实施例的第二错误校正解码的示例的示图。
图6是示出根据所公开技术的实施例的错误校正电路的示例的示图。
图7是示出由图6所示的错误校正电路执行的错误校正编码的流程图。
图8是示出由图6所示的错误校正电路执行的错误校正解码的流程图。
图9是示出根据所公开技术的实施例的存储器系统的示图。
图10是示出根据所公开技术的实施例的码字表的示图。
图11是示出根据所公开技术的实施例的存储器装置的示图。
图12是示出存储块的示例的示图。
图13是示出包括图9的存储器控制器的存储器系统的另一实施例的示图。
图14是示出包括图9的存储器控制器的存储器系统的另一实施例的示图。
具体实施方式
出于说明实施例的目的,本文中公开的特定结构或功能仅是说明性的。根据本公开的概念的实施例可以以各种形式实现,并且不能解释为限于在本文所阐述的实施例。
博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码具有预定的错误校正能力。使用校验子矢量执行BCH码的错误校正解码。校验子矢量的长度决定BCH码的错误校正能力。校验子矢量可以作为奇偶校验矩阵和与码字相对应的读取矢量的乘积而生成。校验子矢量的长度可以由奇偶校验矩阵的大小决定。因此,当确定奇偶校验矩阵时,校验子矢量的长度是固定的。
当在BCH码的错误校正解码期间使用附加校验子时,可以提高错误校正电路的错误校正能力。
在所公开技术的一些实施例中,BCH码的奇偶校验矩阵可以扩展为具有附加行,并且可以基于扩展行来生成附加奇偶校验码。可以使用附加奇偶校验码生成附加校验子。附加校验子允许错误校正电路以更高的错误校正能力执行错误校正解码。
在所公开技术的一些实施例中,在错误校正解码期间错误校正电路可以根据附加校验子的使用来改变错误校正能力。例如,错误校正电路可以不使用附加校验子而以第一错误校正能力来执行错误校正解码,或者可以通过使用附加校验子而以第二错误校正能力来执行错误校正解码。第二校正能力大于第一错误校正能力。
图1是示出根据所公开技术的实施例的博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码的奇偶校验矩阵的示例的示图。
当设置了BCH码的长度并且确定了错误校正电路的错误校正能力时,可以确定BCH码的奇偶校验矩阵的大小。
当将BCH码的长度设置为“n”并且将错误校正电路的错误校正能力确定为“t”(这里“t”是自然数)时,与错误校正能力“t”相对应的奇偶校验矩阵的大小可以为“2t×n”。在下文中,错误校正能力“t”称为“第一错误校正能力”,并且与第一错误校正能力相对应的奇偶校验矩阵可以称为“第一奇偶校验矩阵H1”。
可以根据预定规则来生成或扩展BCH码的奇偶校验矩阵。通过将第一奇偶校验矩阵“H1”扩展为具有额外的行,可以生成第二奇偶校验矩阵“H2”。第二奇偶校验矩阵“H2”可以具有大于第一错误校正能力的第二错误校正能力。当存在“β”个扩展行时,第二奇偶校验矩阵“H2”的大小为“(2t+β)×n”。“β”是自然数并根据第二错误校正能力确定。
图2是示出根据所公开技术的实施例的错误校正编码的示例的示图。
根据所公开技术的实施例的错误校正编码可以包括第一错误校正编码,生成第一附加奇偶校验码和第二错误校正编码。
在第一错误校正编码期间,可以基于消息M和与第一奇偶校验矩阵“H1”相对应的第一生成矩阵“G1”来生成码字“C”。例如,当使用由k个位组成的消息M和大小为“k×n”的第一生成矩阵“G1”时,可以生成由n位组成的码字“C”。
在生成第一附加奇偶校验码期间,可以基于第二奇偶校验矩阵“H2”的某些行和在第一错误校正编码期间生成的码字“C”来生成第一附加奇偶校验码“P'”。例如,可以基于从第一奇偶校验矩阵“H1”扩展的扩展行“Hext”来生成第一附加奇偶校验码“P'”。例如,当使用大小为“β×n”的扩展行“Hext”和由n位组成的码字“C”时,可以生成由“β”个元素组成的第一附加奇偶校验码“P'”。由于用于生成第一附加奇偶校验码“P'”的扩展行“Hext”与用于生成码字“C”的第一生成矩阵“G1”不对应,因此第一附加奇偶校验码“P'”可以包括不为零的元素。在错误校正解码期间,包括不为零的元素的第一附加奇偶校验码“P'”可以用于生成附加校验子。
在第二错误校正编码期间,可以基于第一附加奇偶校验码“P'”和第三生成矩阵“G3”来生成子码字“Csub”。由于第一附加奇偶校验码“P”由属于GF(2m)的元素组成,因此包括在第一附加奇偶校验码“P'”中的元素需要转换为二进制元素以生成子码字“Csub”。当GF(2m)的元素转换为二进制元素时,转换后的二进制元素可以具有m个位的长度。因此,可以将由GF(2m)的β个元素组成的第一附加奇偶校验码“P'”转换为由βm个二进制元素组成的第一附加奇偶校验码“P””。第三生成矩阵“G3”的大小可以为βm×j,其中j是等于或大于βm的自然数。另外,可以考虑与子码字“Csub”相关的错误校正能力来确定“j”。
当错误校正电路应用于存储器系统时,码字“C”和与码字“C”相对应的子码字“Csub”可以存储在不同的存储区域中。例如,存储区域可以是存储块、页面或组块。码字“C”和子码字“Csub”可以存储在不同的存储块、同一存储块的不同页面或同一页面的不同组块中。图2示出了码字“C”存储在第一存储块“BLK 1”中并且与与码字“C”相对应的子码字“Csub”可以存储在第二存储块“BLK 2”中的示例。
下面将要说明的部分编程方法可以用于存储子码字“Csub”。
通过部分编程方法,可以将数据存储在一个页面(或组块)的一部分中。例如,存储器系统可以基于预定数量的部分编程(NOP)将页面划分为多个编程单元。例如,当页面具有n位的长度时,存储器系统可以预先将NOP设置为n/βm。因此,存储器系统可以将βm个位设置为编程单元。
当使用部分编程方法时,每当生成与一个码字“C”相对应的子码字“Csub”时,存储器系统可以将子码字“Csub”存储在一个编程单元中。
图3是示出第二错误校正编码的另一示例的示图。
在参照图2描述的示例中,子码字“Csub”可以基于与码字“C”相对应的一个第一附加奇偶校验码“P”来生成。
根据实施例,可以基于与多个码字“C”相对应的多个第一附加奇偶校验码“P”来生成子码字“CSsub”。例如,可以基于与u个码字相对应的u个第一附加奇偶校验码“P”和大小为“uβm×w”的第四生成矩阵“G4”来执行第二错误校正编码,使得生成长度为“w”位的子码字“CSsub”。在此,“u”可以是2以上的自然数,“w”可以是2到n之间的自然数。
图3示出了其中“w”为“n”的示例。在图3中,基于与u个码字相对应的u个第一附加奇偶校验码“P”和大小为“uβm×w”的第四生成矩阵“G4”来执行第二错误校正编码,从而生成具有n位长度的子码字“CSsub”。子码字“CSsub”可以包括u个第一附加奇偶校验码“P"”和与u个第一附加奇偶校验码“P"”相对应的奇偶校验码“PP"”。
以与参照图2描述的相同的方式,多个码字“C”和与多个码字“C”相对应的子码字“CSsub”可以存储在不同的存储区域中。
图4是示出根据所公开技术的实施例的第一错误校正解码的示例的示图。
可以使用第一错误校正能力来执行第一错误校正解码。
当错误校正电路应用于存储器系统时,可以访问存储码字“C”的存储区域,并且可以获得与码字“C”相对应的读取矢量“R”。图4示出了访问存储块“BLK 1”的页面并且获取与码字“C”相对应的读取矢量“R”的示例。
可以基于与第一错误校正能力相对应的第一奇偶校验矩阵“H1”和与码字“C”相对应的读取矢量“R”来执行第一错误校正解码。可以通过校验子检查、错误位置多项式生成、错误位置搜索和错误校正来执行第一错误校正解码。校验子检查可以包括第一校验子检查和第二校验子检查。可以基于读取矢量“R”和第一奇偶校验矩阵“H1”来执行第一校验子检查。当第一校验子检查失败时,可以基于在第一校验子检查期间生成的第一校验子矢量“S1”来执行错误位置多项式生成、错误位置搜索和错误校正,并且可以基于错误校正后的读取矢量“R'”和第一奇偶校验矩阵“H1”执行第二校验子检查。当第一错误校验解码成功并通过时,例如,当第一校验子检查或第二校验子检查成功并通过时,可以输出经解码的码字。当第二校验子检查失败时,可意味着第一错误校正解码失败。当第一错误校正解码失败时,可以使用第二错误校正能力执行第二错误校正解码。在第一校验子检查期间生成的第一校验子矢量“S1”可以用于在第二错误校正解码期间生成附加校验子,这将在下面结合附图进行描述。
图5是示出根据所公开技术的实施例的第二错误校正解码的示例的示图。
当第一错误校正解码失败时,可以使用第二错误校正能力执行第二错误校正解码。
当错误校正电路应用于存储器系统时,可以另外访问码字“C”对应于子码字“Csub”或“CSsub”的存储区域并且获取对应于子码字“Csub”或“CSsub”的读取矢量“Rsub”。
图5示出了其中除存储码字“C”的存储块“BLK 1”以外还访问了存储块“BLK 2”的页面,并且获得了与子码字“Csub”对应的读取矢量“Rsub”的示例。
第二错误校正解码可以包括第一子错误校正解码;生成第二附加奇偶校验码;生成扩展校验子矢量以及第二子错误校正解码。
在第一子错误校正解码期间,可以使用与第三生成矩阵“G3”相对应的第三奇偶校验矩阵“H3”和与子码字“Csub”相对应的读取矢量“Rsub”。可以通过校验子检查、错误位置多项式生成、错误位置搜索和错误校正来执行第一子错误校正解码。校验子检查可以包括第三校验子检查和第四校验子检查。可以基于读取矢量“Rsub”和第三奇偶校验矩阵“H3”来执行第三校验子检查。当第三校验子检查失败时,可以基于在第三校验子检查期间生成的第三校验子矢量“S3”来执行错误位置多项式生成、错误位置搜索和错误校正,并且可以基于错误校正后的读取矢量“Rsub”和第三奇偶校验矩阵“H3”执行第四校验子检查。当第一子错误校正解码通过时,例如,当第三校验子检查或第四校验子检查通过时,可以提取(或恢复)由βm个二进制元素组成的第一附加奇偶校验码“P"”。由βm个二进制元素组成的第一附加奇偶校验码“P"”可以转换为由GF(2m)的β个元素组成的第一附加奇偶校验码“P'”。当第四校验子检查失败时,可意味着第一子错误校正解码失败。当第一子错误校正解码失败时,第二错误校正解码可以结束,并且可以输出指示第二错误校正解码失败的失败信号。
在生成第二附加奇偶校验码期间,可以基于从第一奇偶校验矩阵“H1”扩展的扩展行“Hext”和与码字“C”相对应的读取矢量“R”来生成第二附加奇偶校验码“Q'”。例如,当使用大小为“β×n”的扩展行“Hext”和由n位组成的读取矢量“R”时,可以生成由GF(2m)的β个元素组成的第二附加奇偶校验码“Q'”。
可以通过合并附加校验子“Sa”和参照图4所述的在第一错误校正解码期间生成的第一校验子矢量“S1”来生成扩展校验子矢量“Sext”。附加校验子“Sa”可以是对包含GF(2m)元素的第一附加奇偶校验码“P'”和包含GF(2m)元素的第二附加奇偶校验码Q'执行异或(XOR)运算的结果。
在第二子错误校正解码期间,可以基于扩展的校验子矢量“Sext”来执行错误位置多项式生成,错误位置搜索和错误校正。读取矢量“R”可以是码字“C”和错误矢量“E”的合并并且可以从错误矢量“E”导出扩展校验子矢量Sext。因此,当使用扩展校验子矢量“Sext”时,可以执行错误矢量E的估计和错误校正。此后,可以基于错误校正的读取矢量“R"”和第二奇偶校验矩阵“H2”来执行第五校验子检查。当第五校验子检查通过时,可以输出经解码的码字。当第五校验子检查失败时,可以输出指示第二错误校正解码失败的失败信号。由于扩展校验子矢量“Sext”的长度对应于第二奇偶校验矩阵“H2”的大小,因此可以认为第二子错误校正解码是利用第二错误校正能力来执行的。
图6是示出根据所公开技术的实施例的错误校正电路10的示例的示图。
参照图6,根据所公开技术的实施例,错误校正电路10可以包括编码器100和解码器200。
编码器100可以对原始消息执行错误校正编码,并且将码字或子码字中的至少一个输出到通道。编码器100可以包括错误校正编码器110和第一附加奇偶校验码生成器120。
错误校正编码器110可以基于第一生成矩阵“G1”和原始消息来执行第一错误校正编码,以生成码字“C”。例如,错误校正编码器110可以通过基于大小为“k×n”的第一生成矩阵“G1”和具有k个位的原始消息执行第一错误校正编码来生成具有n位的码字“C”。
第一附加奇偶校验码生成器120可以基于码字“C”和从与第一生成矩阵“G1”相对应的第一奇偶校验矩阵“H1”扩展的扩展行“Hext”来生成第一附加奇偶校验码P'。例如,第一附加奇偶校验码生成器120可以通过执行大小为“β×n”的扩展行“Hext”与包括n个位的码字“C”的乘积来生成包括β个GF(2m)的元素的第一附加奇偶校验码“P'”。
错误校正编码器110可以将包括GF(2m)的元素的第一附加奇偶校验码“P'”转换为包括二进制元素的第一附加奇偶校验码“P"”,并基于第一附加奇偶校验码“P"”和第三生成矩阵“G3”生成子码字“Csub”。例如,错误校正编码器110可以通过基于包括二进制元素并且长度为“βm”第一附加奇偶校验码“P"”和大小为“βm×j”的第三生成矩阵“G3”执行第二错误校正编码来生成具有j个位的子码字“Csub”。在实施例中,错误校正编码器110可以通过基于与u个码字相对应的u个第一附加奇偶校验码“P"”和第四生成矩阵“G4”执行第二错误校正编码来生成子码字“CSsub”。此处,“u”可以是2以上的自然数。当第四生成矩阵“G4”的大小为“uβm×n”时,可以生成包括n个位的子码字“CSsub”。
错误校正编码器110可以将所生成的码字“C”以及子码字“Csub”或“CSsub”输出到通道。
解码器200可以从通道接收读取矢量。错误校正解码器210可以使用第一错误校正能力或第二错误校正能力中的至少一个来执行错误校正解码。例如,解码器200可以通过使用与码字“C”相对应的读取矢量“R”利用第一错误校正能力执行第一错误校正解码,或者可以通过进一步使用与子码字“Csub”或“CSsub”相对应的读取向量“Rsub”利用第二错误校正能力执行第二错误校正解码。根据实施例,当第一错误校正解码失败时,解码器200可以进一步接收与子码字“Csub”或“CSsub”相对应的读取矢量“Rsub”,并通过进一步使用读取的矢量“Rsub”来执行第二错误校正解码。
解码器200可以包括错误校正解码器210和扩展校验子矢量生成器220。
错误校正解码器210可以包括第一校验子检查器210a、密钥方程计算器210b、错误位置搜索器210c、错误校正器210d和第二校验子检查器210e。扩展校验子矢量生成器220可以包括第二附加奇偶校验码器生成器220a、附加校验子生成器220b和校验子合并器220c。
<利用第一错误校正能力执行第一错误校正解码的实施例>
第一校验子检查器210a可以基于与第一错误校正能力相对应的第一奇偶校验矩阵H1和与码字“C”相对应的读取矢量“R”来执行第一校验子检查。例如,第一校验子检查器210a可以基于第一奇偶校验矩阵H1和读取矢量“R”来生成第一校验子矢量“S1”,并且检查第一校验子矢量“S1”中包括的所有元素是否均为零(0)。当第一校验子矢量“S1”的所有元素均为零时,可以确定第一校验子检查已成功并因此通过。当第一校验子矢量的元素中的至少一个元素不为零时,可以确定第一校验子检查失败。
当第一校验子检查通过时,第一校验子检查器210a可以输出经解码的码字。
当第一校验子检查失败时,第一校验子检查器210a可以将第一校验子矢量“S1”提供给密钥方程式计算器210b。第一校验子检查器210a还可以向扩展校验子矢量生成器220提供第一校验子矢量“S1”。当第一错误校正解码失败时,提供给扩展校验子矢量生成器220的第一校验子矢量“S1”可以在第二错误校正解码期间使用。这将在下面详细描述。
密钥方程式计算器210b可以基于从第一校验子检查器210a接收的第一校验子矢量“S1”来生成错误位置多项式。当生成错误位置多项式时,可以使用伯利坎普-梅西(Berlekamp-Massey,BM)算法或欧几里得(Euclidian)算法。然而,所公开技术的实施例不限于此。密钥方程式计算器210b可以向错误位置搜索器210c提供所生成的错误位置多项式。
错误位置搜索器210c可以基于从密钥方程式计算器210b接收到的错误位置多项式来计算错误位置。当计算错误位置时,可以使用钱氏(Chien)搜索算法。然而,所公开技术的实施例不限于此。错误位置搜索器210c可以将计算出的错误位置提供给错误校正器210d。
错误校正器210d可以基于从错误位置搜索器210c接收的关于错误位置的信息来执行错误校正。例如,当使用二进制BCH码时,错误校正器210d可以基于所接收的关于错误位置的信息来反转对应错误的位。例如,当使用非二进制BCH码时,可以根据福尼(Forney)算法来执行错误校正。
错误校正器210d可以将错误校正后的读取矢量“R'”提供给第二校验子检查器210e。
第二校验子检查器210e可以基于第一奇偶校验矩阵H1和错误校正后的读取矢量“R'”来执行第二校验子检查,例如,第二校验子检查器210e可以基于第一奇偶校验矩阵“H1”和错误校正后的读取矢量“R'”来生成第二校验子矢量,并检查第二校验子矢量中包括的所有元素是否均为零。当第二校验子矢量的所有元素均为零时,可以确定第二校验子检查通过。当第二校验子矢量的元素中的至少一个元素不为零时,可以确定第二校验子检查失败。
当第二校验子检查通过时,第二校验子检查器210e可以输出经解码的码字。
当第二校验子检查失败时,可以利用第二错误校正能力来执行第二错误校正解码。
<利用第二错误校正能力执行第二错误校正解码的实施例>
当第一错误校正解码失败时,错误校正解码器210可以进一步从通道接收与子码字“Csub”或“CSsub”相对应的读取矢量“Rsub”。
错误校正解码器210可以基于第三奇偶校验矩阵“H3”和与子码字“Csub”相对应的读取矢量“Rsub”,或者基于与子码字“CSsub”相对应的读取矢量“Rsub”和与第四生成矩阵“G4”相对应的第四奇偶校验矩阵“'H4”来执行第一子错误校正解码。在第一子错误校正解码期间,可以执行第三校验子检查和第四校验子检查。
例如,第一校验子检查器210a可以基于第三奇偶校验矩阵“H3”和与子码字“Csub”相对应的读取矢量“Rsub”,或者基于第四奇偶校验矩阵“H4”和与子码字“CSsub”相对应的读取矢量“Rsub”来执行第三校验子检查。
当第三校验子检查失败时,第一校验子检查器210a可以将在第三校验子检查期间生成的第三校验子矢量“S3”提供给密钥方程式计算器210b。
密钥方程式计算器210b可以基于从第一校验子检查器210a接收的第三校验子矢量来生成错误位置多项式。密钥方程式计算器210b可以将所生成的错误位置多项式提供给错误位置搜索器210c。
错误位置搜索器210c可基于从密钥方程式计算器210b接收到的错误位置多项式来计算错误位置。错误位置搜索器210c可以将计算出的错误位置提供给错误校正器210d。
错误校正器210d可以基于从错误位置搜索器210c接收的关于错误位置的信息来执行错误校正。错误校正器210d可以将错误校正后的读取矢量“Rsub'”提供给第二校验子210e。
第二校验子检查器210e可以基于第三奇偶校验矩阵H3和错误校正后的读取矢量“Rsub'”,或者基于第四奇偶校验矩阵H4和错误校正后的读取矢量“Rsub'”来执行第四校验子检查。
当第三校验子检查或第四校验子检查通过时,可认定第一子错误校正解码通过。当第三校验子检查和第四校验子检查失败时,可认定第一子错误校正解码失败。
当第一子错误校正解码失败时,第二错误校正解码器210可以输出指示第二错误校正解码失败的失败信号。
当第一子错误校正解码通过时,错误校正解码器210可以从解码的子码字“'Csub”或“CSsub”中提取(或恢复)与码字“C”对应的第一附加奇偶校验码“'P””,并将所提取的(或恢复的)第一附加奇偶校验码“P"”提供给附加校验子生成器220b。
第二附加奇偶校验码生成器220a可以基于从第一奇偶校验矩阵“H1”扩展的扩展行“Hext”和与码字“C”相对应的读取矢量“R”来生成第二附加奇偶校验码“Q”。第二附加奇偶校验码生成器220a可以将所生成的第二附加奇偶校验码“Q”提供给附加校验子生成器220b。
附加校验子生成器220b可以将从第一校验子检查器210a接收的由二进制元素组成的第一附加奇偶校验码“P””转换为由GF(2m)的元素组成的第一附加奇偶校验码“P'”。附加校验子生成器220b可以基于包括GF(2m)的元素的第一附加奇偶校验码“P'”和从第二附加奇偶校验码生成器220a接收的第二附加奇偶校验码“Q'”来生成附加校验子“Sa”。例如,附加校验子生成器220b可以通过对第一附加奇偶校验码“P'”和第二附加奇偶校验码“Q'”执行XOR运算来生成附加校验子“Sa”。附加校验子生成器220b可以将所生成的附加校验子“Sa”提供给校验子合并器220c。
校验子合并器220c可以通过合并从第一校验子检查器210a接收的第一校验子矢量“Sl”和从扩展校验子矢量生成器220接收的附加校验子“Sa”来生成扩展校验子矢量“Sext”。扩展校验子矢量生成器220可以将扩展校验子矢量“Sext”提供给密钥方程式计算器210b。
密钥方程式计算器210b可以基于从扩展校验子矢量生成器220接收的扩展校验子矢量“Sext”来生成错误位置多项式。密钥方程式计算器210b可以将计算出的错误位置多项式提供给错误位置搜索器210c。
错误位置搜索器210c可基于从密钥方程式计算器210b接收的错误位置多项式来计算错误位置。错误位置搜索器210c可以将计算出的错误位置提供给错误校正器210d。
错误校正器210d可以基于从错误位置搜索器210c接收的关于错误位置的信息来执行错误校正。错误校正器210d可以将错误校正后的读取矢量“R"”提供给第二校验子检查器210e。
第二校验子检查器210e可以基于错误校正后的读取矢量“R"”和第二奇偶校验矩阵“H2”来执行第五校验子检查。当第五校验子检查通过时,可以输出经解码的码字。当第五校验子检查失败时,可以输出指示第二错误校正解码失败的失败信号。
图7是示出由图6所示的错误校正电路10执行的错误校正编码的流程图。
在步骤701中,错误校正电路10可以从外部装置接收经过错误校正编码的原始消息。
在步骤703中,错误校正电路10可以基于第一生成矩阵“G1”和原始消息来生成码字“C”。例如,错误校正电路10可以通过基于大小为“k×n”的第一生成矩阵“G1”和具有k个位的原始消息执行第一错误校正编码来生成具有n个位的码字“C”。
在步骤705中,错误校正电路10可以基于码字“C”和第二奇偶校验矩阵“H2”的一些行,例如第一奇偶校验矩阵“H1”的扩展行来生成由GF(2m)的元素组成的第一附加奇偶校验码“P'”。例如,错误校正电路10可以通过执行大小为β×n的扩展行“Hext”和包括n个位的码字“C”的乘积来生成包括β个GF(2m)的元素的第一附加奇偶校验码“P'”。
在步骤707中,错误校正电路10可以基于第三生成矩阵“G3”和由二进制元素组成的第一附加奇偶校验码“P"”来生成子码字“Csub”。错误校正电路10可以将由β个GF(2m)的元素组成的第一附加奇偶校验码“P'”转换成由βm个位的二进制元素组成的第一附加奇偶校验码“P"”。根据实施例,每当生成与一个码字“C”相对应的一个第一附加奇偶校验码“P"”时,错误校正电路10可以基于第三生成矩阵“G3”和一个第一附加奇偶校验码“P"”生成子码字“Csub”。根据实施例,每当生成与多个码字“C”相对应的多个第一附加奇偶校验码“P"”时,错误校正电路10可以基于第四生成矩阵“G4”和多个第一附加奇偶校验码“P"”生成子码字“CSsub”。
在步骤709中,错误校正电路10可以将码字“C”以及子码字“Csub”或“CSsub”输出到通道。
图8是示出由图6所示的错误校正电路10执行的错误校正解码的流程图。
在步骤801中,错误校正电路10可以接收与码字“C”相对应的读取矢量“R”。
在步骤803中,错误校正电路10可以基于读取矢量“R”和与第一错误校正能力相对应的第一奇偶校验矩阵H1来执行第一错误校正解码。例如,错误校正电路10可以基于第一奇偶校验矩阵H1和读取矢量“R”来执行第一校验子检查。当第一校验子检查失败时,错误校正电路10可以执行错误位置多项式生成、错误位置搜索和错误校正。错误校正电路10可以基于第一奇偶校验矩阵“H1”和错误校正后的读取矢量“R'”来执行第二校验子检查。
在步骤805中,错误校正电路10可以确定第一错误校正解码是否通过。当在第一校验子检查期间生成的第一校验子矢量“S1”的所有元素均为“零(0)”时,或当在第二校验子检查期间生成的第二校验子矢量的所有元素均为“0”时,可以确定第一错误校正解码通过。当在第二校验子检查期间生成的第二校验子矢量的至少一个元素不为“0”时,可以确定第一错误校正解码失败。
当第一错误校正解码通过(是)时,可以在步骤807输出经解码的码字。
当第一错误校正解码失败(否)时,可以在步骤811至825执行第二错误校正解码。
在步骤811中,错误校正电路10可以接收与子码字“Csub”或“CSsub”相对应的读取矢量“Rsub”。
在步骤813中,错误校正电路10可以基于第三奇偶校验矩阵“H3”和与子码字“Csub”相对应的读取矢量“Rsub”,或者基于第四奇偶校验矩阵“H4”和与子码字“CSsub”相对应的读取矢量“Rsub”来执行第一子错误校正解码。例如,错误校正电路10可以基于第三奇偶校验矩阵“H3”和与子码字“Csub”相对应的读取矢量“Rsub”,或基于第四奇偶校验矩阵“H4”和与子码字“CSsub”相对应的读取矢量“Rsub”来执行第三校验子检查。当第三校验子检查失败时,错误校正电路10可以执行错误位置多项式生成、错误位置搜索和错误校正。错误校正电路10可以基于第三奇偶校验矩阵“H3”或第四奇偶校验矩阵“H4”和错误校正后的读取矢量“Rsub'”来执行第四校验子检查。
在步骤815中,错误校正电路10可以确定第一子错误校正解码是否通过。当在第三校验子检查期间生成的第三校验子矢量的所有元素均为“零(0)”时,或当在第四校验子检查期间生成的第四校验子矢量的所有元素均为“0”时,可以确定第一子错误校正解码通过。当在第四校验子检查期间生成的第四校验子矢量的元素中的至少一个元素不为“0”时,可以确定第一子错误校正解码失败。
当第一子错误校正解码通过时,可以执行步骤817。
当第一子错误校正解码失败(N)时,可以在步骤831输出指示第二错误校正解码失败的失败信号。
在步骤817中,错误校正电路10可以从解码的子码字“Csub”或“CSsub”中提取(或恢复)由二进制元素组成的第一附加奇偶校验码“P"”。
在步骤819中,错误校正电路10可以基于从第一奇偶校验矩阵“H1”扩展的扩展行“Hext”和与码字“C”相对应的读取矢量“R”来生成第二附加奇偶校验码“Q'”。
在步骤821中,错误校正电路10可以基于由GF(2m)的元素组成的第一附加奇偶校验码“P'”、第二附加奇偶校验码“Q'”、以及第以校验子矢量“S1”来生成扩展校验子矢量“Sext”。错误校正电路10可以将由二进制元素组成的第一附加奇偶校验码“P"”转换成由GF(2m)的元素组成的第一附加奇偶校验码“P'”,并对转换后的第一附加奇偶校验码“P'”和第二附加奇偶校验码“Q'”进行XOR运算以产生附加校验子“Sa”。此外,错误校正电路10可以将第一校验子矢量“S1”和附加校验子“Sa”合并以生成扩展校验子矢量“Sext”。
在步骤823中,错误校正电路10可以基于扩展校验子矢量“Sext”执行第二子错误校正解码。例如,错误校正电路10可以基于扩展校验子矢量“Sext”执行错误位置多项式生成、错误位置搜索和错误校正。错误校正电路10可以基于第二奇偶校验矩阵“H2”和错误校正后的读取矢量“R"”来执行第五校验子检查。
在步骤825中,错误校正电路10可以确定第二子错误校正解码是否通过。当在第五校验子检查期间生成的第五校验子矢量的所有元素都为“零(0)”时,可以确定第二子错误校正解码通过。当在第五校验子检查期间生成的第五校验子矢量的元素中的至少一个元素不为“0”时,可以确定第二子错误校正解码失败。
当第二子错误校正解码通过(是)时,可以在步骤807输出经解码的码字。
当第二子错误校正解码失败(否)时,可以在步骤831输出指示第二错误校正解码失败的失败信号。
图9是示出根据所公开技术的实施例的存储器系统2000的示图。
参照图9,存储器系统2000可以包括被配置为存储数据的存储器装置2200和被配置为响应于来自主机1000的请求而控制存储器装置2200的存储器控制器2100。
主机1000可以是被配置为将数据存储在存储器系统2000中或从存储器系统2000检索数据的装置或系统。作为示例而非限制,主机1000可以包括以下中的至少一种:计算机、便携式数字装置、平板电脑、数字相机、数字音频播放器、电视、无线通信装置或移动电话。
存储器控制器2100可以控制存储器系统2000的全部操作。存储器控制器2100可以响应于来自主机1000的请求而执行各种操作。例如,存储器控制器2100可以对存储器装置2200执行编程操作、读取操作以及擦除操作。在编程操作中,存储器控制器2100可以将编程命令、地址、码字等发送到存储器装置2200。在读取操作中,存储器控制器2100可以将读取命令、地址等发送到存储器装置2200,并且从存储器装置2200接收与码字相对应的读取数据。在擦除操作中,存储器控制器2100可以将擦除命令、地址等发送到存储器装置2200。
存储器控制器2100可以包括主机接口2110、中央处理单元(CPU)2120、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。CPU 2120可以控制主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。
主机接口2110可以通过使用接口协议来执行与主机1000通信。例如,主机接口2110可以通过使用以下协议之中的至少一种来与主机1000通信:高速非易失性存储器(NVMe)、高速外围组件互连(PCI-E)、先进技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行总线(USB)、多媒体卡(MMC)、增强型小磁盘接口(ESDI)、电子集成驱动器(IDE)、移动行业处理器接口(MIPI)、通用闪速存储(UFS)、小型计算机系统接口(SCSI)或串列SCSI(SAS)。然而,所公开技术的实施例不限于此。
CPU 2120可以执行各种计算或生成命令和地址以控制存储器装置2200。例如,响应于从主机接口2110传送的请求,CPU 2120可以为编程操作、读取操作、擦除操作等生成所需的各种命令和地址。
当主机1000请求对消息进行编程时,CPU 2120可以控制错误校正电路2150对消息执行错误校正编码。CPU 2120可以确定用于存储码字“C”以及子码字“Csub”或“CSsub”中的每一个的物理地址,并且生成到存储器装置2200的命令和地址,使得码字“C”以及子码字“Csub”或“CSsub”中的每一个可以存储在与所确定的物理地址相对应的每个存储区域中。
当使用部分编程方法时,每当生成由与一个码字“C”相对应的由二进制元素组成的第一附加奇偶校验码“P"”时,CPU2120可以控制错误校正电路2150生成与第一附加奇偶校验码“P"”相对应的子码字“Csub”,并且可以生成存储子码字“Csub”的命令和地址并将该命令和地址输出到存储器装置2200。
当不使用部分编程方法时,每当生成由与预定数量的码字“C”相对应的由二进制元素组成的多个第一附加奇偶校验码“P"”时,CPU 2120可以控制错误校正电路2150生成与多个第一附加奇偶校验码“P"”相对应的子码字“CSsub”,并且可以存储子码字“CSsub”的命令和地址并将该命令和地址输出到存储器装置2200。
CPU 2120可以确定物理地址,使得码字“C”和子码字“Csub”或“CSsub”可以存储在不同的存储区域中。例如,CPU 2120可以确定将码字“C”存储在第一存储块的第一页面中,并将子码字“Csub”或“CSsub”存储在第一存储块的第二页面中。根据实施例,CPU 2120可以确定物理地址,使得码字“C”和子码字“Csub”或“CSsub”可以存储在不同的存储块中。
CPU 2120可以管理逻辑-物理(L2P)表,在该表中映射存储有码字“C”的物理地址和从主机1000接收的逻辑地址。CPU 2120可以根据所存储的码字“C”的物理地址来更新L2P表。
CPU 2120可以管理码字表,该码字表是关于存储码字“C”的物理地址和存储与码字“C”相对应的子码字“Csub”或“CSsub”的物理地址之间的映射的映射信息。CPU 2120可以根据存储有与码字“C”相对应的子码字“Csub”或“CSsub”的物理地址来更新码字表。
当CPU 2120从主机1000接收到与预定逻辑地址相对应的读取请求时,CPU 2120可以响应于该读取请求参照L2P表来检查与预定逻辑地址相对应的物理地址,并且生成从对应于所检查的物理地址的存储区域中读取码字“C”的命令和地址并将该命令和地址输出到存储器装置2200。
当错误校正电路2150通知第一错误校正解码失败时,CPU 2120可以生成读取与码字“C”相对应的子码字“Csub”或“CSsub”的命令和地址并将该命令和地址输出到存储器装置2200。CPU2120可以参照码字表来检查存储与码字“C”相对应的子码字“Csub”或“CSsub”的物理地址。
当错误校正电路2150通知第一错误校正解码或第二错误校正解码成功时,CPU2120可以控制缓冲存储器2140以使得可以将经解码的码字传送到主机1000。
存储器接口2130可以通过使用各种接口协议来执行与存储器装置2200通信。
在存储器控制器2100控制存储器装置2200的同时缓冲存储器2140可以临时存储数据。例如,可以将从主机1000接收的数据临时存储在缓冲存储器2140中,直到编程操作完成。此外,在读取操作期间,从存储器装置2200读取的数据也可以临时存储在缓冲存储器2140中。
另外,缓冲存储器2140可以从错误校正电路2150接收编码的码字“C”和子码字“Csub”或“CSsub”,并且可以临时存储码字“C”和子码字“Csub”或“CSsub”直到将它们传送到存储器装置2200。缓冲存储器2140可以从错误校正电路2150接收经解码的码字,并暂时存储经解码的码字“C”,直到将其传送到主机1000。
错误校正电路2150可以在编程操作期间执行错误校正编码,并且在读取操作期间执行错误校正解码。错误校正电路2150可以是使用BCH码的错误校正电路。错误校正电路2150可以包括编码器2152和解码器2154。
编码器2152可以对从主机1000接收的原始消息执行错误校正编码。编码器2152可以包括错误校正编码器2152a和第一附加奇偶校验码生成器2152b。编码器2152的基本配置和操作可以与参照图6描述的编码器100相同。换句话说,如图9所示的错误校正编码器2152a和第一附加奇偶校验码生成器2152b可以执行与如图6所示的错误校正编码器110和第一附加奇偶校验码生成器120相同的操作。
编码器2152可以将编码的码字“C”和子码字“Csub”或“CSsub”输出到缓冲存储器2140,并且通知CPU2120编码的码字“C”和子码字“Csub”或“CSsub”已生成。
解码器2154可以使用从存储器装置2200接收的读取矢量来执行错误校正解码。解码器2154可以包括错误校正解码器2154a和扩展校验子矢量生成器2154b。解码器2154的基本配置和操作可以与参照图6描述的解码器200相同。如图9所示的错误校正解码器2154a和扩展校验子矢量生成器2154b可以执行与如图6所示的错误校正解码器210和扩展校验子矢量生成器220相同的操作。
在从存储器装置2200接收与码字“C”相对应的读取矢量“R”时,解码器2154可以利用第一错误校正能力执行第一错误校正解码。当第一错误校正解码失败时,解码器2154可以通知CPU2120第一错误校正解码失败。
在从存储器装置2200接收与子码字“Csub”或“CSsub”相对应的读取矢量“Rsub”时,解码器2154可以利用第二错误校正能力执行第二错误校正解码。当第二错误校正解码失败时,解码器2154可以通知CPU 2120第二错误校正解码失败。
在第一错误校正解码或第二错误校正解码通过时,解码器2154可以将经解码的码字“C”输出到缓冲存储器2140,并通知CPU 2120错误校正解码成功。
内部存储器2160可以用作存储装置,其中存储了存储器控制器2100的操作所需的各种信息。内部存储器2160可以存储多个表。在实施例中,内部存储器2160可以存储包括逻辑地址和物理地址之间的映射信息的L2P表。在实施例中,内部存储器2160可以存储码字表。
存储器控制器2100控制存储器装置2200的操作,包括编程操作、读取操作、擦除操作等。存储器装置2200可以是易失性存储器装置,当切断电源时丢失存储的数据,或者是非易失性存储器装置,即使在没有电源的情况下也保持存储的数据。
存储器装置2200可以从存储器控制器2100接收编程命令、地址和码字,并根据所接收到的编程命令和地址来存储码字。
存储器装置2200可以包括多个存储块,每个存储块可以包括多个页面。每个页面可以包括多个组块。一个页面或一个组块可以包括多个写入单元。
存储器装置2200可以从存储器控制器2100接收命令、地址、码字“C”和子码字“Csub”或“CSsub”。存储器装置2200可以根据从存储器控制器2100接收到的命令和地址,存储码字“C”和子码字“Csub”或“CSsub”。例如,存储器装置2200可以将码字”C”和子码字Csub”或“CSsub”存储在不同的存储区域。例如,存储器装置2200可以将码字“C”和子码字“Csub”或“CSsub”存储在不同的组块、不同的页面或不同的存储块中。
当存储子码字“Csub”时,存储器装置2200可以使用部分编程方法。例如,每当存储器装置2200从存储器控制器2100接收一个子码字“Csub”时,存储器装置2200可以将子码字“Csub”存储在一个编程单元中。可以与码字“C”一起接收子码字“Csub”或与码字“C”分开接收子码字“Csub”。
存储器装置2200可以根据从存储器控制器2100接收的命令和地址,对码字“C”和子码字“Csub”或“CSsub”执行读取操作。存储器装置2200可以向存储器控制器2100提供与码字“C”相对应的读取矢量“R”或者与子码字“Csub”或“CSsub”相对应的读取矢量“Rsub”。
图10是示出根据所公开技术的实施例的码字表的示图。
图10示出了其中每当生成与一个码字“C”相对应的第一附加奇偶校验码“P"”时就生成与一个第一附加奇偶校验码“P"”相对应的子码字“Csub”的示例。相同的原理适用于其中生成与多个第一附加奇偶校验码“P"”相对应的子码字“CSsub”的情况。
图10示出了其中码字“C”存储在与物理地址1至物理地址“q”相对应的页面中的示例。
在该示例中,L2P表可以存储逻辑地址和与每个码字“C”相对应的物理地址之间的映射信息。在如图10所示的示例中,物理地址1可以映射到逻辑地址地址1,物理地址“q”可以映射到逻辑地址“q”。
码字表可以存储对应于存储码字“C”的存储区域的物理地址(或者根据实施例的逻辑地址)和对应于存储与码字“C”相对应的子码字“Csub”的存储区域的物理地址之间的映射信息。在图10所示的示例中,可以将对应于存储多个码字“C”的存储区域的物理地址1至“q”映射到对应于存储子码字Csub的存储区域的物理地址11至“qq”。
因此,当使用与码字“C”相对应的读取矢量“R”的第一错误校正解码失败时,可以基于码字表获得对应于存储与码字“C”相对应的子码字“Csub”的存储区域的物理地址。另外,可以从与所获得的物理地址相对应的存储区域中读取子码字“Csub”。
尽管图10示出了码字“C”和子码字“Csub”存储在不同的存储块“BLK1”和“BLK2”中的情况,然而,所公开技术的实施例不限于此。例如,码字C和子码字Csub可以存储在相同的存储块中。
图11是示出根据所公开技术的实施例的存储器装置2200的示图。图11所示的存储器装置2200可以应用于图9的存储器系统。
存储器装置2200可以包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可以包括电压生成器2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。
控制逻辑2210可以在图9所示的存储器控制器2100的控制下控制外围电路2220。控制逻辑2210可以响应于通过输入/输出电路2226从存储器控制器2100接收的命令“CMD”和地址“ADD”来控制外围电路2220。例如,控制逻辑2210可以响应于命令“CMD”和地址“ADD”输出操作信号“OP_CMD”、行地址“RADD”、列地址“CADD”、页面缓冲器控制信号“PBSIGNALS”和允许位“VRY_BIT<#>”。控制逻辑2210可以响应于从电流感测电路2234接收的通过或失败信号“PASS”或“FAIL”来确定验证操作通过或者失败。
外围电路2220可以响应于控制逻辑2210的控制来执行选择性擦除操作以擦除所选择的存储块中包括的存储器单元之中的所选择分存储器单元。外围电路2220可以执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成器2222可以响应于从控制逻辑2210接收的操作信号“OP_CMD”产生在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,电压生成器2222可以向行解码器2224传送编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等。
行解码器2224可以响应于从控制逻辑2210接收的行地址“RADD”将操作电压Vop传送到存储器单元阵列2240包括的存储块之中的联接至所选择的存储块的局部线“LL”。局部线“LL”可以包括局部字线、局部漏极选择线和局部源极选择线。另外,局部线“LL”可以包括联接到存储块的各种线,诸如源极线。
输入/输出电路2226可以通过输入/输出线“IO”将从存储器控制器2100接收的命令“CMD”和地址“ADD”传送到控制逻辑2210,或者可以与列解码器2228交换数据“DATA”。
列解码器2228可以响应于从控制逻辑2210接收的列地址“CADD”,在输入/输出电路2226和页面缓冲器组2232之间传送数据。例如,列解码器2228可以通过数据线“DL”与页面缓冲器“PB1”到“PBm”,或者可以通过列线“CL”与输入/输出电路2226交换数据。
页面缓冲器组2232可以与共同联接到存储块“BLK1”至“BLKi”的位线“BL1”至“BLm”联接。页面缓冲器组2232可以包括分别联接到位线“BL1”至“BLm”的多个页面缓冲器“PB1”至“PBm”。例如,单个页面缓冲器可以联接到单个位线。页面缓冲器“PB1”至“PBm”可以响应于从控制逻辑2210接收的页面缓冲器控制信号“PBSIGNALS”进行操作。例如,页面缓冲器“PB1”至“PBm”可以在编程操作期间临时存储从控制逻辑2210接收的编程数据,并且可以根据编程数据控制施加到位线“BL1”至“BLm”的电压。另外,在读取操作期间,页面缓冲器“PB1”至“PBm”可以临时存储通过位线“BL1”至“BLm”接收的数据,或者可以感测位线“BL1”至“BLm”的电压或电流。
在读取操作或验证操作期间,电流感测电路2234可以响应于从控制逻辑2210接收的允许位“VRY_BIT<#>”产生参考电流,并且可以通过将从页面缓冲器组2232接收的感测电压“VPB”与参考电流产生的参考电压进行比较,输出通过信号“PASS”或失败信号“FAIL”。
存储器单元阵列2240可以包括其中存储有数据的多个存储块“BLK1”至“BLKi”。存储块“BLK1”至“BLKi”可以存储用户数据和用于执行存储器装置2200的操作的各种类型的信息。存储块“BLK1”至“BLKi”可以具有二维结构或三维结构,并且可以具有相同的配置。
图12是示出存储块的示例的示图。
参照图12,可以配置存储块“BLKi”使得可以将并行布置的多条字线联接在第一选择线和第二选择线之间。第一选择线可以是源极选择线“SSL”,第二选择线可以是漏极选择线“DSL”。具体地,存储块“BLKi”可以包括联接在位线“BL1”至“BLm”和源极线“SL”之间的多个串“ST”。位线“BL1”至“BLm”可以分别联接至串“ST”,并且源极线“SL”可以共同联接至串“ST”。由于串“ST”可以具有相同的配置,因此作为示例将详细描述联接到第一位线“BL1”的串“ST”。
串“ST”可以包括在源极线“SL”和第一位线“BL1”之间彼此串联联接的源极选择晶体管“SST”、多个存储器单元“F1”至“F16”以及漏极选择晶体管“DS。每个串“ST”可以包括至少一个源极选择晶体管“SST”、至少一个漏极选择晶体管“DST”、以及比如图12所示的存储器单元“F1”至“F16”更多的存储器单元。
源极选择晶体管“SST”的源极可以联接到源极线“SL”,漏极选择晶体管“DST”的漏极可以联接到第一位线“BL1”。“F1”至“F16”可以串联联接在源极选择晶体管“SST”和漏极选择晶体管“DST”之间。包括在不同串“ST”中的源极选择晶体管“SST”的栅极可以联接至源极选择线“SSL”,包括在不同串“ST”中的漏极选择晶体管“DST”的栅极可以联接至漏极选择线“DSL”,并且存储器单元“F1”至“F16”的栅极可以分别与多条字线“WL1”至“WL16”联接。在不同串“ST”包括的存储器单元之中,联接到同一字线的一组存储器单元可以被称为物理页面“PPG”。因此,存储块“BLKi”可以包括与字线“WL1”至“WL16”的数量一样多的物理页面“PPG”。
单个存储器单元可以存储一位数据。这种存储器单元可以称为单层单元(SLC)。一个物理页面“PPG”可以存储一个逻辑页面(LPG)数据。单个逻辑页面“LPG”的数据可以包括与单个物理页面PPG中包括的单元数一样多的数据位。例如,当在一个存储器单元中存储两位或更多位数据时,一个物理页面“PPG”可以存储与两个或更多个逻辑页面“LPG”相对应的数据,例如,在以多层单元(MLC)类型驱动的存储器装置中,与两个逻辑页面“LPG相对应”的数据可以存储在一个物理页面“PPG”中,而在以三层单元(TLC)类型驱动的存储器装置中,与三个逻辑页面“LPG”相对应的数据可以存储在一个物理页面“PPG”中。
图13是示出包括图9的存储器控制器2100的存储器系统30000的另一实施例的示图。
参照图13,存储器系统30000可以实现为移动电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可以包括存储器装置2200和控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可以在处理器3100的控制下控制存储器装置2200的访问操作,例如,编程操作、读取操作和擦除操作。
存储器控制器2100可以控制编程到存储器装置2200中的数据以通过显示器3200输出。
无线电收发器3300可以通过天线“ANT”交换无线电信号。例如,无线电收发器3300可以将通过天线“ANT”接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发机3300输出的信号,并将所处理的信号传送到存储器控制器2100或显示器3200。存储器控制器2100可以将由处理器3100处理的信号编程到半导体存储器装置2200中。另外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且可以通过天线“ANT”将无线电信号输出至外部装置。可以由输入装置3400输入控制处理器3100的操作的控制信号或待由处理器3100处理的数据,并且输入装置3400可以包括指向装置,诸如触摸板和计算机鼠标、小键盘、或键盘。处理器3100可以控制显示器3200的操作,使得可以通过显示器3200输出从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或者从输入装置3400输出的数据。
根据实施例,能够控制存储器装置2200的操作的存储器控制器2100可以实现为处理器3100的一部分或者实现为与处理器3100分别提供的芯片。
图14是示出包括图9的存储器控制器2100的存储器系统70000的另一实施例的示图。
参照图14,存储器系统70000可以包括存储卡或智能卡。存储器系统70000可以包括存储器装置2200、存储器控制器2100和卡接口7100。
存储器控制器2100可以控制存储器装置2200和卡接口7100之间的数据交换。根据实施例,卡接口7100可以是但不限于安全数字(SD)卡接口或多媒体卡(MMC)接口。
卡接口7100可以根据主机60000的协议在主机60000和存储器控制器2100之间接口连接数据交换。根据实施例,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)USB协议。卡接口7100可以是指支持主机60000使用的协议的硬件、安装在该硬件上的软件或信号传输方法。
当存储器系统70000连接到诸如PC、平板电脑、数码相机、数字音频播放器、移动电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以响应于微处理器6100的控制,通过卡接口7100和存储器控制器2100与存储器装置2200进行数据通信。
通过实施在本公开中所公开的技术,可以改变使用BCH码的错误校正电路的错误校正能力。
Claims (20)
1.一种错误校正电路,使用博斯-查德胡里-霍昆格姆码,即BCH码,所述错误校正电路包括:
解码器,执行使用第一错误校正能力的第一错误校正解码或使用第二错误校正能力的第二错误校正解码中的至少一个或;以及
编码器,基于消息和与所述第一错误校正能力相对应的第一生成矩阵来生成码字,并基于所述码字和与所述第二错误校正能力相对应的第二奇偶校验矩阵的一行或多行来生成第一附加奇偶校验码;
其中在所述第一错误校正解码期间使用基于与所述码字相对应的读取矢量生成的第一校验子矢量,且在所述第二错误校正解码期间使用基于所述第一附加奇偶校验码生成的附加校验子;以及
其中从与所述第一错误校正能力相对应的第一奇偶校验矩阵扩展所述一行或多行。
2.根据权利要求1所述的错误校正电路,其中所述解码器在所述第一错误校正解码失败时执行所述第二错误校正解码。
3.根据权利要求1所述的错误校正电路,其中所述解码器基于所述第二奇偶校验矩阵的一行或多行和所述读取矢量来生成与所述读取矢量相对应的第二附加奇偶校验码,并在所述第二错误校正解码期间通过对所述第一附加奇偶校验码和所述第二附加奇偶校验码执行异或运算来生成所述附加校验子。
4.根据权利要求3所述的错误校正电路,其中所述解码器通过合并所述第一校验子矢量和所述附加校验子来生成扩展校验子矢量,并且使用所述扩展校验子矢量来生成错误位置多项式。
5.根据权利要求1所述的错误校正电路,其中所述编码器基于所述第一附加奇偶校验码和第三生成矩阵来生成与所述第一附加奇偶校验码相对应的子码字,以及
其中所述解码器基于与所述第三生成矩阵相对应的第三奇偶校验矩阵和与所述子码字相对应的读取矢量来执行第三错误校正解码,以恢复与所述码字相对应的所述第一附加奇偶校验码。
6.根据权利要求1所述的错误校正电路,其中所述编码器基于与所述码字相对应的第一附加奇偶校验码和第四生成矩阵来生成子码字,所述子码字与所述第一附加奇偶校验码相对应;以及
其中所述解码器基于与所述第四生成矩阵相对应的第四奇偶校验矩阵和与所述子码字相对应的读取矢量来执行错误校正解码,以恢复与所述码字相对应的所述第一附加奇偶校验码。
7.一种存储器控制器,使用博斯-查德胡里-霍昆格姆码,即BCH码,所述存储器控制器包括:
解码器,执行使用第一错误校正能力的第一错误校正解码或使用第二错误校正能力的第二错误校正解码中的至少一个;以及
编码器,基于消息和第一生成矩阵来生成码字,并基于所述码字和第二奇偶校验矩阵的一行或多行来生成第一附加奇偶校验码,所述第一生成矩阵和所述第二奇偶校验矩阵分别与所述第一错误校正能力和所述第二错误校正能力相关;
其中,在所述第一错误校正解码期间使用基于与所述码字相对应的读取矢量生成的第一校验子矢量,且在所述第二错误校正解码期间使用基于所述第一附加奇偶校验码生成的附加校验子;以及
其中从与所述第一错误校正能力相对应的第一奇偶校验矩阵扩展所述一行或多行。
8.根据权利要求7所述的存储器控制器,其中所述解码器在所述第一错误校正解码失败时执行所述第二错误校正解码。
9.根据权利要求7所述的存储器控制器,其中所述解码器基于所述第二奇偶校验矩阵的一行或多行和读取矢量来生成与读取矢量相对应的第二附加奇偶校验码,以及在所述第二错误校正解码期间通过对所述第一附加奇偶校验码和所述第二附加奇偶校验码执行异或运算来生成所述附加校验子。
10.根据权利要求9所述的存储器控制器,其中所述解码器通过合并所述第一校验子矢量和所述附加校验子来生成扩展校验子矢量,并且使用所述扩展校验子矢量来生成错误位置多项式。
11.根据权利要求7所述的存储器控制器,其中所述编码器基于所述第一附加奇偶校验码和第三生成矩阵来生成与所述第一附加奇偶校验码相对应的子码字,以及
其中所述解码器基于与所述第三生成矩阵相对应的第三奇偶校验矩阵和与所述子码字相对应的读取矢量来执行第三错误校正解码,以恢复与所述码字相对应的所述第一附加奇偶校验码。
12.根据权利要求7所述的存储器控制器,进一步包括:中央处理单元,即CPU,所述CPU产生命令以及一个或多个地址并且将所述命令和所述地址传送到与所述存储器控制器通信的存储器装置,所述命令指示将所述码字和所述第一附加奇偶校验码存储在不同的存储区域中。
13.根据权利要求12所述的存储器控制器,其中所述CPU管理信息以映射存储所述码字的物理地址和所述第一附加奇偶校验码的物理地址。
14.根据权利要求13所述的存储器控制器,其中所述CPU基于所述第一错误校正解码失败的信息来检查存储所述第一附加奇偶校验码的存储区域的物理地址,并且向存储器装置传送所述物理地址和用于从存储所述第一附加奇偶校验码的存储区域读取所述第一附加奇偶校验码的命令。
15.根据权利要求11所述的存储器控制器,进一步包括CPU,所述CPU在生成与所述码字相对应的子码字时,生成存储所述子码字的命令和地址并将所述命令和所述地址传送到与所述存储器控制器通信的存储器装置。
16.根据权利要求11所述的存储器控制器,进一步包括CPU,所述CPU在生成一个或多个子码字时,生成存储所述一个或多个子码字的命令和地址并将所述命令和所述地址传送到与所述存储器控制器通信的存储器装置,
其中所述一个或多个子码字的总长度与所述码字相同。
17.一种存储器系统,使用博斯-查德胡里-霍昆格姆码,即BCH码,所述存储器系统包括:
存储器控制器,通过使用消息和与第一奇偶校验矩阵相对应的第一生成矩阵来生成码字,基于所述码字和第二奇偶校验矩阵的一行或多行来生成第一附加奇偶校验码,并且通过使用所述第一附加奇偶校验码和第三生成矩阵来生成子码字,所述第一生成矩阵和所述第二奇偶校验矩阵分别对应于第一错误校正能力和第二错误校正能力;以及
存储器装置,与所述存储器控制器通信,并且从所述存储器控制器接收所述码字和所述子码字且将所述码字和所述子码字分别存储在第一存储区域和第二存储区域中;
其中从所述第一奇偶校验矩阵扩展所述一行或多行。
18.根据权利要求17所述的存储器系统,其中所述存储器控制器执行使用所述第一错误校正能力的第一错误校正解码或使用所述第二错误校正能力的第二错误校正解码中的至少一个;以及
其中在所述第一错误校正解码期间使用基于与所述码字相对应的读取矢量生成的第一校验子矢量,以及在所诉第二错误校正解码期间使用基于所述第一附加奇偶校验码生成的附加校验子。
19.根据权利要求18所述的存储器系统,其中所述存储器控制器在所述第一错误校正解码期间生成从所述第一存储区域读取所述码字的命令和地址,并且将所述命令和所述地址传送到所述存储器装置。
20.根据权利要求19所述的存储器系统,其中所述存储器控制器在所述第一错误校正解码失败时生成从所述第二存储区域读取所述子码字的命令和地址,并且将所述命令和所述地址传送到所述存储器装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0093392 | 2019-07-31 | ||
KR1020190093392A KR20210015087A (ko) | 2019-07-31 | 2019-07-31 | 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306735A true CN112306735A (zh) | 2021-02-02 |
Family
ID=74260602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911295983.5A Withdrawn CN112306735A (zh) | 2019-07-31 | 2019-12-16 | 错误校正电路、具有其的存储器控制器以及具有存储器控制器的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11082068B2 (zh) |
KR (1) | KR20210015087A (zh) |
CN (1) | CN112306735A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210306006A1 (en) | 2019-09-23 | 2021-09-30 | SK Hynix Inc. | Processing-in-memory (pim) devices |
KR20210092391A (ko) * | 2020-01-16 | 2021-07-26 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146553B2 (en) * | 2001-11-21 | 2006-12-05 | Infinera Corporation | Error correction improvement for concatenated codes |
AU2003230163A1 (en) | 2002-05-06 | 2003-11-17 | Actelis Networks Israel Ltd. | Data transmission with forward error correction and rate matching |
US8640005B2 (en) | 2010-05-21 | 2014-01-28 | Intel Corporation | Method and apparatus for using cache memory in a system that supports a low power state |
KR101188002B1 (ko) | 2010-07-29 | 2012-10-05 | 한국전자통신연구원 | 계층 변조를 이용한 계층적 오류 정정 부호 방법 및 장치 |
JP5091996B2 (ja) | 2010-09-09 | 2012-12-05 | 株式会社東芝 | 誤り訂正復号器、メモリコントローラ及び受信機 |
US8484542B2 (en) | 2011-02-08 | 2013-07-09 | Sandisk Technologies Inc. | Data recovery using additional error correction coding data |
US9350388B2 (en) | 2014-03-07 | 2016-05-24 | Storart Technology Co. Ltd. | Data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format |
US20150311920A1 (en) * | 2014-04-25 | 2015-10-29 | Agency For Science, Technology And Research | Decoder for a memory device, memory device and method of decoding a memory device |
US10089177B2 (en) * | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
KR102422275B1 (ko) | 2015-07-30 | 2022-07-18 | 삼성전자주식회사 | 무선 통신 시스템에서 채널 부호화 및 복호화 방법과 장치 |
US9973212B2 (en) | 2015-09-08 | 2018-05-15 | Storart Technology Co. Ltd. | Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code |
KR20180027803A (ko) | 2016-09-07 | 2018-03-15 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10707899B2 (en) * | 2017-08-31 | 2020-07-07 | SK Hynix Inc. | Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes |
KR20200099438A (ko) | 2019-02-14 | 2020-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
EP4351007A2 (en) * | 2019-05-15 | 2024-04-10 | Samsung Electronics Co., Ltd. | Method and apparatus for decoding data in communication or broadcasting system |
-
2019
- 2019-07-31 KR KR1020190093392A patent/KR20210015087A/ko active Search and Examination
- 2019-11-25 US US16/694,987 patent/US11082068B2/en active Active
- 2019-12-16 CN CN201911295983.5A patent/CN112306735A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210015087A (ko) | 2021-02-10 |
US11082068B2 (en) | 2021-08-03 |
US20210036719A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725863B2 (en) | Memory system and method for operating the same | |
US8644066B2 (en) | Multi-level non-volatile memory device, system and method with state-converted data | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US11050438B2 (en) | Memory controller | |
US11031952B2 (en) | Error correction decoder and memory system having the same | |
US10878920B2 (en) | Memory controller and memory system having the same | |
KR102257050B1 (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US9407289B2 (en) | Method of operating cyclic redundancy check in memory system and memory controller using the same | |
US20160062828A1 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
CN110673979B (zh) | 存储器控制器及其操作方法 | |
US11128315B2 (en) | Error correction decoder | |
US11115064B2 (en) | Error correction decoder and memory system having the same | |
US11080134B2 (en) | Memory controller and memory system including the same | |
US11082068B2 (en) | Error correction circuit, memory controller having error correction circuit, and memory system having memory controller | |
KR102582326B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
CN106158046B (zh) | 用于turbo乘积码的误校正避免 | |
CN110830046B (zh) | 纠错电路及其操作方法 | |
US11251811B2 (en) | Error correction circuit and operating method thereof | |
KR20200041678A (ko) | 에러 정정 회로 및 이의 동작 방법 | |
CN113744791A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210202 |
|
WW01 | Invention patent application withdrawn after publication |