CN113744791A - 错误校正电路和错误校正编码方法 - Google Patents
错误校正电路和错误校正编码方法 Download PDFInfo
- Publication number
- CN113744791A CN113744791A CN202110194423.1A CN202110194423A CN113744791A CN 113744791 A CN113744791 A CN 113744791A CN 202110194423 A CN202110194423 A CN 202110194423A CN 113744791 A CN113744791 A CN 113744791A
- Authority
- CN
- China
- Prior art keywords
- error correction
- memory device
- raid parity
- codewords
- symbol group
- 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
- 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
-
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/1515—Reed-Solomon 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/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
-
- 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/2942—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 wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/104—Metadata, i.e. metadata associated with RAID systems with parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种错误校正电路。根据本技术,一种错误校正电路,对待存储在存储器装置中的多个消息执行错误校正编码,该错误校正电路包括第一错误校正编码器和第二错误校正编码器。第一错误校正编码器通过对多个消息中的每个执行第一错误校正编码来生成多个码字。第二错误校正编码器通过对码字内的相同列层的符号执行异或运算来执行第二错误校正编码操作。第二错误校正编码器基于存储器装置的使用时间来确定作为第二错误校正编码操作的目标的数据单位。
Description
相关申请的交叉引用
本申请要求于2020年5月29日提交的、申请号为10-2020-0065283的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本发明涉及一种电子装置,并且更具体地,涉及一种错误校正电路。
背景技术
存储器系统可以包括临时或永久存储数据的存储介质。在诸如写入、读取、传输或处理的各种操作期间,可能发生数据错误或数据损坏。
为了确保数据的可靠性,存储器系统可使用诸如错误校正编码和错误校正解码的错误校正技术。
发明内容
本公开的实施例提供了一种能够根据电路的错误校正能力而不同地应用RAID技术的错误校正电路。
根据本公开的实施例,一种错误校正电路,对待存储在存储器装置中的多个消息执行错误校正编码,该错误校正电路包括第一错误校正编码器和第二错误校正编码器。第一错误校正编码器通过对多个消息中的每个执行第一错误校正编码来生成多个码字。第二错误校正编码器通过对码字内的相同列层的符号执行异或运算来执行第二错误校正编码操作。第二错误校正编码器基于存储器装置的使用时间(a use period)来确定作为第二错误校正编码操作的目标的数据单位。
根据本公开的另一实施例,一种对待存储在存储器装置中的多个消息执行错误校正编码的方法,该方法包括:通过对该多个消息中的每个执行第一错误校正编码来生成多个码字,并且执行第二错误校正编码操作,该第二错误校正编码操作对码字内的相同列层的符号执行异或运算。基于存储器装置的使用时间来确定作为第二错误校正编码操作的目标的数据单位。
根据本公开的另一实施例,一种错误校正编码器的操作方法,其包括:对消息执行第一错误校正编码操作以生成多个码字;将该码字分组为多个组,每个组中的码字的数量取决于存储器装置的使用时间;以及对各个组执行第二错误校正编码操作以生成多个极大距离可分(MDS)码字。MDS码字待被存储到存储器装置中。
根据本技术,可以根据错误校正能力来应用具有不同资源消耗的RAID技术,因此可以实现资源的高效使用。
附图说明
图1是示出根据本公开的实施例的独立磁盘冗余阵列(RAID)技术的示例性示图。
图2是示出根据本公开的实施例的RAID技术的示例性示图。
图3是示出根据本公开的实施例的错误校正电路的示例性示图。
图4是示出根据本公开的实施例的错误校正编码方法的流程图。
图5是示出图4所示的错误校正编码方法的实施例的流程图。
图6是示出根据本公开的实施例的第二错误校正编码器的操作的示例性示图。
图7是示出根据本公开的实施例的根据第二错误校正编码生成的极大距离可分(MDS)码字的示例性示图。
图8是示出根据本公开的实施例的第二错误校正编码器的操作的示例性示图。
图9是示出根据本公开的实施例的根据第二错误校正编码生成的MDS码字的示例性示图。
图10是示出根据本公开的实施例的存储器系统的示例性示图。
图11是示出根据实施例的存储器装置的示图。
图12是示出存储块的示例性示图。
图13是示出包括图10所示的存储器控制器的存储器系统的另一示例的示图。
图14是示出包括图10所示的存储器控制器的存储器系统的另一示例的示图。
具体实施方式
本文提供了具体结构和功能描述以用于描述本发明的实施例。然而,本发明可以以各种方式实现并以各种形式配置。因此,本发明不限于所公开的实施例中的任何一个或者不受所公开的实施例中的任何一个限制,也不限于本文中的任何具体细节。而且,在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅指一个实施例,并且对任何这样的短语的不同引用不一定指的是相同的实施例。当在本文中使用术语“实施例”时不一定是指所有实施例。
图1是示出根据本公开的实施例的RAID技术的示例性示图。
在第一错误校正编码期间,可以基于多个消息生成多个码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CrE和C1F至CrF。多个码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CrE和C1F至CrF中的每个可以基于消息和错误校正码(ECC)的生成器矩阵来生成。所生成的码字C1至Cr可以以页面为单位存储在存储器装置中。
在第一错误校正解码期间,可以对从存储器装置提供的码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CrE和C1F至CrF之中的目标码字和ECC的奇偶校验矩阵执行错误校正解码。当包括在目标码字中的错误位的数量超过错误校正能力时,错误校正解码可能失败。
为了提高错误校正能力,可以应用独立磁盘冗余阵列(RAID)技术。
当应用RAID技术时,可以对行码字组CGA至CGF中的每个执行第二错误校正编码,其中行码字组CGA至CGF分别包括多个码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CrE和C1F至CrF。
作为示例,可以通过对包括在相同的行码字组中的码字中包括的符号之中的、相同列层中的符号执行异或运算,来执行第二错误校正编码。当执行第二错误校正编码时,可以生成分别与行码字组CGA至CGF对应的RAID奇偶校验符号组RPGA至RPGF。
例如,码字C1A可以包括第一位CB11A至第n位CB1nA,而码字C2A可以包括第一位CB21A至第n位CB2nA。类似地,码字CrA可以包括第一位CBr1A至第n位CBrnA。在行码字组CGA的码字C1A至CrA的每个中的位之中,RAID奇偶校验符号组RPGA的第一列层RL1中的第一位RB1A可以通过对第一列层CL11、CL21、…和CLr1中的第一位CB11A、CB21A、…和CBr1A执行异或运算来生成。另外,RAID奇偶校验符号组RPGA的第二列层RL2中的第二位RB2A可以通过对第二列层CL12、CL22、…和CLr2中的第二位CB12A、CB22A、…和CBr2A执行异或运算来生成。以相同的方式,RAID奇偶校验符号组RPGA的第n列层RLn中的第n位RBnA可以通过对第n列层CL1n、CL2n、…和CLrn中的第n位CB1nA、CB2nA、…和CBrnA执行异或运算来生成。即,可通过对包括在码字C1A至CrA中的位之中的、相同位置的位执行异或运算来生成包括在RAID奇偶校验符号组RPGA中的每一位。在这种情况下,相同列层的符号可以对应于每个码字中的相同位置的位。可以对其他行码字组CGB至CGF中的每个执行上述操作,以生成RAID奇偶校验符号组RPGB至RPGF中的每个。
所生成的RAID奇偶校验符号组RPGB至RPGF可以与码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CRe和C1F至CrF一起存储在存储器装置中。
在第一错误校正解码期间,当对行码字组CGA中的码字C1A至CrA之中的目标码字C1A的第一错误校正解码失败时,可以对行码字组CGA中的剩余码字C2A至CrA和与行码字组CGA相对应的RAID奇偶校验符号组RPGA执行第一错误校正解码。当对剩余码字C2A至CrA和与行码字组CGA相对应的RAID奇偶校验符号组RPGA的所有第一错误校正解码成功时,可以通过第二解码操作来恢复目标码字C1A,该第二解码操作对经解码的码字C2A至CrA之中的相同列层中的符号和经解码的RAID奇偶校验符号组RPGA执行异或运算。
在相同的行码字组CGA中包括的码字之中,当对两个或更多个码字(例如,C1A和C2A)的第一错误校正解码失败时,可能无法恢复码字(例如,C1A和C2A)。
图2是示出根据本公开的实施例的RAID技术的示例性示图。
除了包括在一个列层中的符号的数量被改变之外,第一错误校正编码和第一错误校正解码可以参照图1描述的相同地执行;因此,在此省略对该方面的进一步详细描述。
可以对每个行码字组eCGA和eCGB执行第二错误校正编码。行码字组eCGA可以包括多个码字C1A至CrA、C1B至CrB和C1C至CrC,并且行码字组eCGB可以包括多个码字C1D至CrD、C1E至CrE和C1F至CrF。因此,图2中描述的包括在每个行码字组eCGA和eCGB中的码字的数量大于图1中描述的每个行码字组CGA至CGF中包括的码字的数量。当执行第二错误校正解码时,可以生成分别与行码字组eCGA和eCGB相对应的扩展RAID奇偶校验符号组1eRPG1和扩展RAID奇偶校验符号组2eRPG2。扩展RAID奇偶校验符号组1eRPG1可以包括RAID奇偶校验符号组RPGA、RPGB和RPGC。另外,扩展RAID奇偶校验符号组2eRPG2可以包括RAID奇偶校验符号组RPGD、RPGE和RPGF。
作为示例,第二错误校正编码可以包括以下过程:对包括在相同行码字组中的码字中包括的符号之中的、相同列层中的符号执行异或运算。因此,可以生成与行码字组eCGA相对应的扩展RAID奇偶校验符号组1eRPG1,并且可以生成与行码字组eCGB相对应的扩展RAID奇偶校验符号组2eRPG2。
例如,码字C1A可以包括第一位CB11A至第n位CB1nA,码字C2A可以包括第一位CB21A至第n位CB2nA,码字CrA可以包括第一位CBr1A至第n位CBrnA。此外,码字C1B可包括第一位CB11B至第n位CB1nB,码字C2B可包括第一位CB21B至第n位CB2nB,码字CrB可包括第一位CBr1B至第n位CBrnB。码字C1C可包括第一位CB11C至第n位CB1nC,码字C2C可包括第一位CB21C至第n位CB2nC,码字CrC可包括第一位CBr1C至第n位CBrnC。
可以通过对行码字组eCGA中的码字C1A至CrA、C1B至CrB和C1C至CrC的每个的位之中的、第一列层CL11、CL21、…和CLr1中的第一位CB11A、CB21A、…、CBr1A、CB11B、CB21B、…、CBr1B、CB11C、CB21C、…和CBr1C执行异或运算,来生成RAID奇偶校验符号组RPGA的第一列层RL1中的第一位RB1A。此外,可以通过对行码字组eCGA中的码字C1A至CrA、C1B至CrB和C1C至CrC的每个的位之中的、第二列层CL12、CL22、…和CLr2中的第二位CB12A、CB22A、…、CBr2A、CB12B、CB22B、…、CBr2B、CB12C、CB22C、…和CBr2C执行异或运算,来生成RAID奇偶校验符号组RPGA的第二列层RL2中的第二位RB2A。以相同的方式,可以通过对行码字组eCGA中的码字C1A至CrA、C1B至CrB和C1C至CrC中的每个的位之中的、第n列层CL1n、CL2n、…和CLrn中的第n位CB1nA、CB2nA、…、CBrnA、CB1nB、CB2nB、…、CBrnB、CB1nC、CB2nC、…和CBrnC执行异或运算,来生成RAID奇偶校验符号组RPGA的第n列层RLn中的第n位RBnA。
即,可以通过对包括在行码字组eCGA中的位之中的、相同列位置处的位执行异或运算,来生成包括在扩展RAID奇偶校验符号组1eRPG1的RAID奇偶校验符号组RPGA中的每个位。在这种情况下,相同列层中的符号可以对应于每个码字中的相同列位置处的位。可以对另一个行码字组eCGB中包括的每个位执行上述运算,以生成RAID奇偶校验符号组RPGD。
可以基于极大距离可分(MDS)码的生成器矩阵来执行第二错误校正编码,该MDS码具有包括在相同行码字组中包括的码字中包括的符号之中的、相同列层的符号的符号组。例如,MDS码的生成器矩阵可以包括消息部分和奇偶校验部分,并且该奇偶校验部分可以用于生成与扩展行码字组eCGA相对应的扩展RAID奇偶校验符号组1eRPG1内的RAID奇偶校验符号组RPGB和RPGC。例如,MDS码可以是里德-所罗门(Reed-Solomon,RS)码、双重扩展RS码或三重扩展RS码。
如前所述,在扩展RAID奇偶校验符号组1eRPG1中包括的RAID奇偶校验符号组RPGA、RPGB和RPGC之中,可以通过对相同列层中的符号执行异或运算来生成RAID奇偶校验符号组RPGA。另外,包括在扩展RAID奇偶校验符号组1eRPG1中的RAID奇偶校验符号组RPGA、RPGB和RPGC之中,可以通过里德-所罗门错误校正编码来生成RAID奇偶校验符号组RPGB和RPGC。更具体地,可以通过伽罗瓦域(Galois Field)运算来生成RAID奇偶校验符号组RPGB和RPGC。
在第一错误校正解码期间,当对扩展行码字组eCGA中的码字C1A至CrA、C1B至CrB和C1C至CrC之中的目标码字C1A的第一错误校正解码失败时,可以对扩展行码字组eCGA中的剩余码字C2A至CrA、C1B至CrB和C1C至CrC以及相应的RAID奇偶校验符号组RPGA执行第一错误校正解码。当对剩余码字C2A至CrA、C1B至CrB和C1C至CrC和RAID奇偶校验符号组RPGA的所有第一错误校正解码成功时,可以通过对经解码的码字C2A至CrA、C1B至CrB和C1C至CrC之中的、相同列层中的符号和经解码的RAID奇偶校验符号组RPGA执行异或运算来恢复目标码字C1A。
然而,在包括在相同的扩展行码字组eCGA中的码字之中,当对两个或更多个目标码字(例如,C1A和C2A)的第一错误校正解码失败时,仅使用RAID奇偶校验符号组RPGA可能无法恢复目标码字(例如,C1A和C2A)。在这种情况下,通过进一步使用RAID奇偶校验符号组RPGB和RPGC,可以对第一错误校正解码失败的目标码字(例如,C1A和C2A)执行第二错误校正解码。在这种情况下,即使在包括在相同的扩展行码字组eCG1中的码字C1A至CrA、C1B至CrB和C1C至CrC之中,对两个或更多个目标码字(例如,C1A和C2A)的第一错误校正解码失败,也可以通过MDS码的删除解码(erasure decoding)来恢复目标码字(例如,C1A和C2A)。
根据在错误校正编码和错误校正解码期间应用的错误校正技术,可能消耗大量资源(例如,功率或计算开销)。资源消耗可能随着错误校正能力的增加而增加。当根据错误校正能力不同地应用错误校正技术时,可以实现资源的高效使用。例如,当在存储器装置的寿命期间,存储器装置的使用时间,即已经使用存储器装置的时间量不长时,预期错误发生率相对较低;因此,可以使用参照图1描述的第二错误校正编码和解码方法。也就是说,在存储器装置的寿命的早期阶段期间,可根据相对校小的数据单位来执行错误校正编码和解码。在这种情况下,由于错误校正消耗了相对较少的资源,所以可以降低功耗并可以提高操作速度。另一方面,当在存储器装置的寿命期间,存储器装置到达后期阶段时,由于存储器装置中的元件的劣化,预期错误发生率相对较高;因此,可以使用参照图2描述的第二错误校正编码和解码方法。也就是说,在存储器装置的寿命即将结束时,可根据相对较大的数据单位来执行错误校正编码和解码。在这种情况下,由于错误校正消耗了相对大量的资源,所以可以提高错误校正能力。
图3是示出根据本公开的实施例的错误校正电路的示例性示图。
错误校正电路100可以包括错误校正编码器110和错误校正解码器120。
错误校正编码器110可以基于原始消息来执行错误校正编码。错误校正编码器110可以根据错误校正能力而不同地应用错误校正编码技术。错误校正编码器110可以包括第一错误校正编码器112、编码控制器114以及第二错误校正编码器116。
第一错误校正编码器112可以基于多个原始消息和错误校正码的生成器矩阵,通过执行第一错误校正编码来生成多个行码字C1A至CrA、C1B至CrB、C1C至CrC、C1D至CrD、C1E至CrE以及C1F至CrF。例如,第一错误校正编码器112可以基于低密度奇偶校验码的生成器矩阵来执行第一错误校正编码。
编码控制器114可以通过以‘p’个(‘p’是自然数),对多个行码字进行分组来生成多个行码字组。此处,可以根据错误校正能力来不同地确定包括在每个行码字组中的‘p’个行码字。例如,编码控制器114可以确定包括在行码字组CGA至CGF的每个中的‘p’个行码字,使得‘p’随着错误校正能力的增加而增加。例如,在图1中,‘p’可以是‘r’。另外,在图2中,‘p’可以是‘3r’。
第二错误校正编码器116可以配置‘q’个符号组,‘q’个符号组中的每个包括行码字组中包括的‘p’个行码字中包括的符号之中的、相同列层中的‘p’个符号。每个符号可以是w位符号。此处,数字‘w’可以是自然数。一个列层可以包括‘w’个列。
第二错误校正编码器116可以通过对行码字组内的‘p’个符号组执行第二错误校正编码,来生成RAID奇偶校验符号组(例如,RAID奇偶校验符号组RPGA)。可以通过行码字组来生成RAID奇偶校验符号组。
例如,如图1所示,与单个行码字组(例如,行码字组CGA)相对应的RAID奇偶校验符号组(例如,RAID奇偶校验符号组RPGA)的数量取决于单个行码字组(例如,行码字组CGA)内的码字(例如,码字C1A至CrA)的数量。
例如,如图2所示,与单个行码字组(例如,行码字组eCGA)相对应的单个扩展RAID奇偶校验符号组(例如,扩展RAID奇偶校验符号组1eRPG1)内的RAID奇偶校验符号组(例如,RAID奇偶校验符号组RPGA、RPGB和RPGC)的数量取决于单个行码字组(例如,行码字组eCGA)内的码字(例如,码字C1A至CrA、C1B至CrB、C1C至CrC)的数量。
MDS码的生成器矩阵可用于第二错误校正编码。这可以表示,一个符号组和与该一个符号组相对应的一个或多个RAID奇偶校验符号配置一个MDS码字,这将参照图7和图9进行描述。
错误校正编码器110可以向通道输出所生成的行码字组和与该行码字组相对应的RAID奇偶校验符号组,即单个扩展行码字组(例如,包括行码字组CGA至CGC的扩展行码字组eCGA)和相应的扩展RAID奇偶校验符号组(例如,包括RAID奇偶校验符号组RPGA、RPGB和RPGC的扩展RAID奇偶校验符号组1eRPG1)。
错误校正解码器120可以基于从通道接收的行码字,来执行错误校正解码。可从存储器装置读取并且然后通过通道传送从通道接收的行码字,在存储器装置中存储期间和/或通过通道传送期间,可能在行码字中发生一个或多个错误。在下文中,从通道接收的、作为错误解码操作的目标的行码字被称为目标码字。目标码字可不同于刚刚从错误校正编码器110输出的原始行码字,因为原始行码字尚未进入通道或存储器装置,因此不包含错误。错误校正解码器120可以包括第一错误校正解码器122和第二错误校正解码器124。
第一错误校正解码器122可以从通道接收目标码字,并且可以对目标码字执行第一错误校正解码,该目标码字对应于由错误校正编码器110生成的多个原始行码字之中的任何一个行码字。例如,第一错误校正解码器122可基于LDPC码的奇偶校验矩阵来对目标码字执行第一错误校正解码。
当对目标码字的第一错误校正解码成功时,第一错误校正解码器122可以输出经解码的码字。
当对目标码字的第一错误校正解码失败时,第一错误校正解码器122可以从通道接收参考码字。参考码字是在单个行码字组(例如,行码字组CGA)或单个扩展行码字组(例如,扩展行码字组eCGA)内的、除了目标码字之外的剩余行码字。
第一错误校正解码器122可以对每个所接收的参考码字执行第一错误校正解码。当在所接收的参考码字之中,第一错误校正解码失败的参考码字的数量超过‘q’个时,第一错误校正解码器122可输出指示错误校正解码失败的信号。
当在所接收的参考码字之中,第一错误校正解码失败的参考码字的数量等于或小于‘q’个时,可以执行第二错误校正解码。
第二错误校正解码器124可以使用MDS码的生成器矩阵,对与包括目标码字和参考码字的行码字组(例如,行码字组CGA或行码字组eCGA)相对应的MDS码字执行第二错误校正解码。例如,可以在第二错误校正解码期间执行删除解码。
图4是示出根据本公开的实施例的错误校正编码方法的流程图。图4中所示的错误校正编码方法可以由图3的错误校正电路100来执行。
参照图4,根据本公开的实施例的错误校正电路的操作方法包括确定存储器装置的使用时段,即存储器装置的寿命中的时间或阶段(S110);根据基于使用时段而确定的数据单位,来执行错误校正编码(S130);以及将经编码的数据传送到存储器装置(S150)。在操作S110中,存储器装置所处的时段或阶段是从存储器装置启动的时间到现在。确定在存储器装置的寿命中存储器装置处于哪个时段或阶段是为了基于存储器装置的元件的劣化程度,来确定作为错误校正编码的目标的数据单位。如上所述,当从最初使用存储器装置的时间开始的总使用时段不长时,预期错误发生率相对较低;因此,可以使用参照图1描述的第二错误校正编码和解码方法。另一方面,当存储器装置已经使用了相对较长的时间时,由于存储器装置中的元件的劣化,预期错误发生率相对较,可以使用参照图2描述的第二错误校正编码和解码方法。
可以使用各种方法来确定在存储器装置的寿命内的存储器装置的使用时间,即存储器装置所处的时间点。作为示例,可以通过从生产和初始化存储器装置的时间开始设置的定时器,来确定存储器装置的使用时间。作为另一实例,可基于对包括在存储器装置中的所有存储块的编程/擦除操作的次数,来确定存储器装置的使用时段。当存储块的编程/擦除的次数较少时,可以确定存储器装置的使用时段较短。当存储块的编程/擦除的次数较多时,可以确定存储器装置的使用时间较长。
在操作S130,基于确定的使用时间来确定错误校正编码的数据单位。例如,当确定存储器装置的使用时间相对较短时,可以将如图1所述的、每个包括‘r’个码字的行码字组CGA至CGF中的每个确定为错误校正编码的数据单位。在这种情况下,‘p’可以是‘r’。作为另一示例,当确定存储器装置的使用时间相对较长时,可以将如参照图2所述的、每个包括‘3r’个码字的行码字组eCGA和eCGB中的每个确定为错误校正编码的数据单位。在这种情况下,‘p’可以是‘3r’。在操作S130,根据所确定的数据单位来执行错误校正编码。
在操作S150,通过通道将经编码的数据传送到存储器装置。可以将所传送的数据编程到存储器装置中。
图5为图4所示的错误校正编码方法的实施例的流程图。
参照图5,在操作S111中,参考表示已经对存储器装置执行的编程/擦除操作的次数的编程/擦除数量NPE。更具体地,在操作S111中,可以参考包括在存储器装置中的所有存储块的编程/擦除数量NPE。每当包括在存储器装置中的存储块被编程/擦除时,可以更新编程/擦除数量NPE。编程/擦除数量NPE可存储在存储器装置中或可存储在存储器控制器中。
在操作S131,确定存储器装置的编程/擦除数量NPE是否小于可预先设置的阈值计数NTH。当存储器装置的编程/擦除数量NPE小于阈值计数NTH时(S131:是),这可表示存储器装置的使用时间相对较短。因此,可以基于第一数据单位,来执行使用RAID技术的错误校正编码(S133)。在操作S133,第一数据单位可以是如图1描述的、包括“r”个码字的行码字组CGA至CGF中的每一个。
当存储器装置的编程/擦除数量NPE等于或大于阈值计数NTH(S131:否)时,这可表示存储器装置的使用时间相对较长。因此,可以基于大于第一数据单位的第二数据单位来执行使用RAID技术的错误校正编码(S135)。在操作S135,第二数据单位可以是如图2描述的、包括‘3r’个码字的行码字组eCGA和eCGB中的每一个。
此后,可以通过通道将经编码的数据传送到存储器装置(S150)。可以将所传送的数据编程到存储器装置中。
图6是用于描述根据本公开的实施例的第二错误校正编码器的操作的示例性示图。
第二错误校正编码器116可以包括多个RAID奇偶校验生成器。在图6中,作为示例,第二错误校正编码器116包括三个RAID奇偶校验生成器116a、116b和116c,但是本公开的实施例不限于此。
可根据错误校正能力而不同地确定RAID奇偶校验符号组的数量,因此RAID奇偶校验生成器116a、116b和116c中的至少一个可被停用。
图6示出了当使用低错误校正能力时,每行码字组生成一个RAID奇偶校验符号组的示例。
可以将行码字组CGA中的码字C1A至CrA输入到RAID奇偶校验1生成器116a。RAID奇偶校验1生成器116a可对‘n’个符号组的每个执行第二错误校正编码,其中该‘n’个符号组中的每个包括在‘r’个码字C1A至CrA的每个中包括的符号之中的、相同列层的‘r’个符号,以生成包括分别与‘n’个符号组相对应的‘n’个RAID奇偶校验符号的RAID奇偶校验符号组1RPGA。
作为示例,RAID奇偶校验1生成器116a可通过对‘n’个符号组中的每个执行异或运算来生成RAID奇偶校验符号组1RPGA,其中,‘n’个符号组中的每个包括‘r’个码字C1A至CrA中的每个包括的符号之中的、相同列层的‘r’个符号。
可以以相同的原理,对行码字组CGB和CGC执行第二错误校正编码,以生成RAID奇偶校验符号组2RPGB和RAID奇偶校验符号组3RPGC。
图7是示出根据本公开的实施例的根据第二错误校正编码而生成的MDS码字的示例性示图。
如上参照图6所述的,当对‘n’个符号组的每个执行第二错误校正编码时,其中‘n’个符号组的每个包括在行码字组CGA中的码字C1A至CrA的每个中包括的符号之中的、相同列层的‘r’个符号,可生成包括分别与‘n’个符号组相对应的‘n’个RAID奇偶校验符号的RAID奇偶校验符号组RPGA。
行码字组CGA中的‘r’个符号的一个符号组和RAID奇偶校验符号组RPGA中的相同列层的相应RAID奇偶校验符号可以配置一个MDS码字。即,作为对包括‘n’个符号组的单个行码字组CGA进行第二错误校正编码的结果,可以生成包括分别与‘n’个符号组相对应的‘n’个RAID奇偶校验符号的单个RAID奇偶校验符号组RPGA。行码字组CGA中的、每个包括‘r’个符号的‘n’个组和RAID奇偶校验符号组RPGA中的相应RAID奇偶校验符号可以是‘n’个MDS码字。如图7所示,对包括‘r’个码字C1A至CrA的单个行码字组CGA的第二错误校正编码可生成‘n’个MDS码字。
当将错误校正电路应用于存储器系统时,行码字组CGA和RAID奇偶校验符号组RPGA可以存储在一个超级页面中。该一个超级页面可由存储器系统中包括的多个存储块BLK1至BLK(r+1)中的每个中包括的物理页面或逻辑页面来配置。
在实施例中,码字C1A至CrA中的每个的大小可与逻辑页面的大小相同。在这种情况下,图7所示的超级页面SP1、SP2、SP3等中的每个可以由包括在存储器系统中的多个存储块BLK1至BLK(r+1)的每个中包括的逻辑页面来配置。
图8是示出根据本公开的实施例的第二错误校正编码器的操作的示例性示图。
第二错误校正编码器116可以包括多个RAID奇偶校验生成器。在图8中,作为示例,示出了第二错误校正编码器116包括三个RAID奇偶校验生成器116a、116b和116c的示例,但是本公开的实施例不限于此。
RAID奇偶校验符号组的数量可根据错误校正能力而变化,因此RAID奇偶校验生成器116a、116b和116c中的至少一个可被停用。
图8示出了当使用高错误校正能力时,分别生成用于行码字组eCGA和eCGB的、分别包括三个RAID奇偶校验符号组RPGA、RPGB、RPGC和RPGD、RPGE、RPGF的扩展RAID奇偶校验符号组1eRPG1和扩展RAID奇偶校验符号组2eRPG2的示例。
行码字组eCGA的码字C1A至CrA、C1B至CrB以及C1C至CrC可以输入到RAID奇偶校验生成器116a、116b和116c。此外,行码字组eCGB的码字C1D至CrD、C1E至CrE以及C1F至CrF可以输入到RAID奇偶校验生成器116a、116b和116c。RAID奇偶校验生成器116a、116b和116c中的每个可对每个符号组执行第二错误校正编码,其中该符号组中的每个包括码字C1A至CrA、C1B至CrB以及C1C至CrC中包括的符号之中的、相同列层的符号,以生成具有RAID奇偶校验符号组RPGA、RPGB和RPGC的扩展RAID奇偶校验符号组1eRPG1。此外,RAID奇偶校验生成器116a、116b和116c中的每个可以对每个符号组执行第二错误校正编码,其中该符号组中的每个包括分别包括码字C1D至CrD、C1E至CrE、以及C1F至CrF的行码字组CGD至CGF的每个中的符号之中的、相同列层的符号,以生成具有RAID奇偶校验符号组RPGD、RPGE和RPGF的扩展RAID奇偶校验符号组2eRPG2,。
在实施例中,RAID奇偶校验生成器116a、116b和116c可并行操作,并且RAID奇偶校验生成器116a、116b和116c中的每个可生成与它们相对应的RAID奇偶校验符号组。
例如,RAID奇偶校验1生成器116a可通过对‘n’个符号组中的每个执行异或运算来生成RAID奇偶校验符号组1RPGA,其中该‘n’个符号组的每个包括行码字组eCGA内的码字C1A至CrA、C1B至CrB以及C1C至CrC中包括的符号之中的、相同列层的‘3r’个符号。另外,RAID奇偶校验1生成器116a可以通过对‘n’个符号组中的每个执行异或运算来生成RAID奇偶校验符号组4RPGD,其中该‘n’个符号组中的每个包括行码字组eCGB内的码字C1D至CrD、C1E至CrE以及C1F至CrF中包括的符号之中的、相同列层的‘3r’个符号。
例如,RAID奇偶校验2生成器116b可通过对每个包括行码字组eCGA内的码字C1A至CrA、C1B至CrB以及C1C至CrC中包括的符号之中的、相同列层的‘3r’个符号的‘n’个符号组,和与MDS码的生成器矩阵内的RAID奇偶校验2生成器116b相对应的列的条目进行乘积,来生成RAID奇偶校验符号组2RPGB。另外,RAID奇偶校验2生成器116b可通过对每个包括行码字组eCGB内的码字C1D至CrD、C1E至CrE以及C1F至CrF中包括的符号之中的、相同列层的‘3r’个符号的‘n’个符号组,和与MDS码的生成器矩阵内的RAID奇偶校验2生成器116b相对应的列的条目进行乘积,来生成RAID奇偶校验符号组5RPGE。
例如,RAID奇偶校验3生成器116c可通过对每个包括行码字组eCGA内的码字C1A至CrA、C1B至CrB以及C1C至CrC中包括的符号之中的、相同列层的‘3r’个符号的‘n’个符号组,和与MDS码的生成器矩阵内的RAID奇偶校验3生成器116c相对应的列的条目进行乘积,来生成RAID奇偶校验符号组3RPGC。另外,RAID奇偶校验3生成器116c可通过对每个包括行码字组eCGB内的码字C1D至CrD、C1E至CrE以及C1F至CrF中包括的符号之中的、相同列层的‘3r’个符号的‘n’个符号组,和与MDS码的生成器矩阵内的RAID奇偶校验3生成器116c相对应的列的条目进行乘积,来生成RAID奇偶校验符号组6RPGF。
图9是示出根据本公开的实施例的根据第二错误校正编码而生成的MDS码字的示例性示图。
如参照图9所述,当对‘n’符号组中的每个执行第二错误校正编码时,其中该‘n’符号组中的每个包括行码字组eCGA中的码字C1A至CrA、C1B至CrB和C1C至CrC中的每个中包括的符号之中的、相同列层的‘3r’个符号,可生成包括RAID奇偶校验符号组RPGA、RPGB和RPGC的扩展RAID奇偶校验符号组1eRPG1,该RAID奇偶校验符号组RPGA、RPGB和RPGC中的每个包括分别与‘n’个符号组相对应的‘n’个RAID奇偶校验符号。
可以通过对‘n’个符号组中的每个执行异或运算来生成RAID奇偶校验符号组1RPGA,其中该‘n’个符号组中的每个包括行码字组eCGA内的码字C1A至CrA、C1B至CrB以及C1C至CrC中的符号之中的、相同列层的‘3r’个符号。此外,行码字组eCGA中的‘3r’个符号的一个符号组以及各自RAID奇偶校验符号组RPGA、RPGB和RPGC中的、相同列层的相应RAID奇偶校验符号可以配置一个MDS码字。即,作为对包括‘n’个符号组(每个包括‘3r’个符号)的单个行码字组eCGA进行第二错误校正编码的结果,生成了包括RAID奇偶校验符号组RPGA、RPGB和RPGC的单个扩展RAID奇偶校验符号组1eRPG1,该RAID奇偶校验符号组RPGA、RPGB和RPGC的每个包括分别与‘n’个符号组相对应的‘n’个RAID奇偶校验符号。行码字组eCGA中的、每个包括‘3r’个符号的‘n’个组和各自RAID奇偶校验符号组RPGA、RPGB和RPGC中的相应RAID奇偶校验符号可以是‘n’个MDS码字。如图9所示,对包括‘3r’个码字C1A至CrA、C1B至CrB和C1C至CrC的单个行码字组eCGA的第二错误校正编码可生成‘n’个MDS码字。
当将错误校正电路应用于存储器系统时,行码字组eCGA和RAID奇偶校验符号组RPGA、RPGA和RPGC可被划分并存储在三个超级页面中。一个超级页面可由存储器系统中包括的多个存储块BLK1至BLK(r+1)的每个中包括的物理页面或逻辑页面来配置。
在实施例中,码字C1A至CrA中的每个的大小可与逻辑页面的大小相同。在这种情况下,图9所示的超级页面SP1、SP2、SP3等的每个可以由包括在存储器系统中的多个存储块BLK1至BLK(r+1)中的每个中包括的逻辑页面来配置。
例如,当包括在存储块中的存储器单元作为三层单元(TLC)来操作时,一个超级物理页面可以包括三个超级页面SP1、SP2和SP3。也就是说,一个超级物理页面可以包括三个超级逻辑页面。总之,行码字组eCGA和与该行码字组eCGA相对应的扩展RAID奇偶校验符号组1eRPG1可以配置一个超级物理页面。
例如,当数据存储在包括TLC的存储器装置中时,如图9所示,三个超级逻辑页面可以存储一个行码字组eCGA和与该行码字组eCGA相对应的扩展RAID奇偶校验符号组1eRPG1。因此,由于行码字组eCGA和与该行码字组eCGA相对应的扩展RAID奇偶校验符号组1eRPG1被配置为满足没有增加用于存储和处理超级逻辑页面的延迟和存储容量的限制,因此不需要用于此的额外资源。
图10是示出根据本公开的实施例的存储器系统的示例性示图。
存储器系统2000可以包括其中存储数据的存储器装置2200和根据主机1000的请求控制存储器装置2200的存储器控制器2100。
主机1000可以为将数据存储在存储器系统2000中或从存储器系统2000检索数据的装置或系统。例如,主机1000可以由计算机、便携式数字装置、平板电脑、数码相机、数字音频播放器、电视、无线通信装置、以及蜂窝电话中的任何一个来实现,但是本公开的实施例不限于此。
存储器控制器2100可以控制存储器系统2000的全部操作。存储器控制器2100可以根据来自主机1000的请求执行各种更具体的操作。存储器控制器2100可以执行将数据存储在存储器装置2200中的编程操作、读取存储在存储器装置2200中的数据的读取操作、和/或擦除存储在存储器装置2200中的数据的擦除操作。
存储器控制器2100可以包括主机接口2110、中央处理单元2120、存储器接口2130、缓冲存储器2140、错误校正电路2150以及内部存储器2160。主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150以及内部存储器2160可以由中央处理单元2120控制。
主机接口2110可以使用各种接口协议中的任何一种与主机1000通信。例如,主机接口2110可以使用高速非易失性存储器(NVMe)、高速外围组件互连(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、移动工业处理器接口(MIPI)、通用闪存(UFS)、小型计算机系统接口(SCSI)和串列SCSI(SAS)中的至少一个接口与主机1000通信,但是本公开的实施例不限于此。
中央处理单元2120可以执行各种操作或生成命令和地址以控制存储器装置2200。例如,中央处理单元2120可以根据从主机1000接收的请求,生成用于编程操作、读取操作、擦除操作等的各种命令和地址,并将命令和地址发送到存储器装置2200。
中央处理单元2120可以将从主机1000接收的请求中包括的逻辑地址转换为物理地址,以便控制存储器装置2200的操作。中央处理单元2120可以使用存储在内部存储器2160中的地址映射表,将逻辑地址转换为物理地址或者将物理地址转换为逻辑地址。当将新数据编程在存储器装置2200中或擦除存储器装置2200中存储的数据时,中央处理单元2120可以更新地址映射表。
中央处理单元2120可以在编程操作期间使数据随机化,并且在读取操作期间使数据去随机化。
存储器接口2130可以使用各种接口协议中的任何一种与存储器装置2200通信。
缓冲存储器2140可以在存储器控制器2100控制存储器装置2200时临时存储数据。例如,从主机1000接收的编程数据可以被临时存储在缓冲存储器2140中,直到完成编程操作。另外,在读取操作期间,从存储器装置2200读取的数据可以临时存储在缓冲存储器2140中。
错误校正电路2150可以对编程数据执行错误校正编码,并对读取数据执行错误校正解码。错误校正电路2150可以与图3所示的错误校正电路100相同。
内部存储器2160可以用作存储用于存储器控制器2100的操作的各条信息的存储装置。内部存储器2160可以存储多个表。例如,内部存储器2160可以存储地址映射表,在该地址映射表中,逻辑地址和物理地址相互映射。
存储器装置2200可以被配置为当电源被切断时所存储数据丢失的易失性存储器装置,或者即使电源被切断也保持所存储数据的非易失性存储器装置。存储器装置2200可以根据存储器控制器2100的控制执行编程操作、读取操作、擦除操作等。
存储器装置2200可以包括用于存储数据的至少一个存储区域。存储区域可以对应于包括多个存储器单元的一个页面、包括多个页面的一个存储块、包括多个存储块的一个平面、或者包括多个平面的一个管芯。然而,本公开的实施例不限于此。
图11是示出根据实施例的存储器装置的示图。
存储器装置2200可包含控制逻辑2210、外围电路2220以及存储器单元阵列2240。外围电路2220可以包括电压生成电路2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232以及电流感测电路2234。
控制逻辑2210可以在图10所示的存储器控制器2100的控制下控制外围电路2220。
控制逻辑2210可响应于通过输入/输出电路2226从存储器控制器2100接收的命令CMD和地址ADD而控制外围电路2220。例如,控制逻辑2210可以响应于命令CMD和地址ADD而输出操作信号OP_CMD、行地址RADD、列地址CADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>。控制逻辑2210可以响应于从电流感测电路2234接收的通过信号PASS或失败信号FAIL来确定验证操作是已经通过还是已经失败。
外围电路2220可以执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作、以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成电路2222可响应于从控制逻辑2210接收的操作信号OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成电路2222可以将编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等传输到行解码器2224。
行解码器2224可以响应于从控制逻辑2210接收的行地址RADD,将操作电压Vop传送到与包括在存储器单元阵列2240中的存储块之中的所选择存储块连接的局部线(LL)。局部线LL可以包括局部字线、局部漏极选择线以及局部源极选择线。另外,局部线LL可以包括连接到存储块的各种线,诸如源极线。
输入/输出电路2226可以将通过输入/输出线IO从存储器控制器接收的命令CMD和地址ADD传输到控制逻辑2210,或者与列解码器2228交换数据DATA。
列解码器2228可响应于从控制逻辑2210接收的列地址CADD,在输入/输出电路2226和页面缓冲器组2232之间传送数据。例如,列解码器2228可以通过数据线DL与页面缓冲器PB1至PBm交换数据,或者通过列线CL与输入/输出电路2226交换数据。
页面缓冲器组2232可以连接到位线BL1至BLm,其中位线BL1至BLm共同连接到存储块BLK1至BLKi。页面缓冲器组2232可以包括连接到位线BL1至BLm的多个页面缓冲器PB1至PBm。例如,一个页面缓冲器可以连接到每个位线。页面缓冲器PB1到PBm可以响应于从控制逻辑2210接收的页面缓冲器控制信号PBSIGNALS而操作。例如,在编程操作期间,页面缓冲器PB1至PBm可以临时存储从存储器控制器接收的编程数据,并且根据编程数据来调整施加到位线BL1至BLm的电压。另外,在读取操作期间,页面缓冲器PB1至PBm可以临时存储通过位线BL1至BLm接收的数据,或者可以感测位线BL1至BLm的电压或电流。
在读取操作或验证操作期间,电流感测电路2234可响应于从控制逻辑2210接收的允许位VRY_BTI<#>而生成参考电流,并将由参考电流生成的参考电压与从页面缓冲器组2232接收的感测电压VPB进行比较,以输出通过信号PASS或失败信号FAIL。
存储器单元阵列2240可包括其中存储数据的多个存储块BLK1至BLKi。存储块BLK1至BLKi可存储用户数据和用于存储器装置2200的操作的各条信息。存储块BLK1至BLKi可以以二维结构或三维结构来实现,并且可以彼此相同地配置。
图12是示出存储块的示例性示图。
存储器单元阵列可以包括多个存储块,并且图12示出了多个存储块之中的代表性存储块BLKi。
在第一选择线和第二选择线之间彼此平行布置的多个字线可以连接到存储块BLKi。此处,第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。具体地,存储块BLKi可以包括连接在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可分别连接到串ST,且源极线SL可共同连接到串ST。由于串ST可彼此相同地配置,因此作为示例,具体描述了连接到第一位线BL1的串ST。
串ST可包括串联连接在源极线SL与第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。一个串ST可包括至少一个源极选择晶体管SST以及至少一个漏极选择晶体管DST,并且可包括多于附图中所示的16个存储器单元F1至F16。
源极选择晶体管SST的源极可连接到源极线SL,并且漏极选择晶体管DST的漏极可连接到第一位线BL1。存储器单元F1至F16可串联连接在源极选择晶体管SST与漏极选择晶体管DST之间。包括在不同串ST中的源极选择晶体管SST的栅极可连接到源极选择线SSL,漏极选择晶体管DST的栅极可连接到漏极选择线DSL,并且存储器单元F1至F16的栅极可连接到多个字线WL1至WL16。在包括在不同串ST中的存储器单元之中的、连接到相同字线的一组存储器单元可以被称为物理页面PPG。因此,存储块BLKi可以包括与字线WL1至WL16的数量一样多的物理页面PPG。
图13是示出包括图10所示的存储器控制器的存储器系统的另一示例的示图。
参照图13,存储器系统30000可以被实施为蜂窝电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可以包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可以在处理器3100的控制下,控制存储器装置2200的数据访问操作,例如,编程操作、擦除操作、读取操作等。
在存储器控制器2100的控制下,可以通过显示器3200输出编程在存储器装置2200中的数据。
无线电收发器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是示出包括图10所示的存储器控制器的存储器系统的另一示例的示图。
参照图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的数据通信。
尽管已经示出和描述了具体实施例,但是本领域技术人员将理解,鉴于本公开,在不脱离本发明的范围和技术精神的情况下,可以进行各种修改和变形。因此,本发明的范围不限于上述实施例。相反,本发明包括落入权利要求范围内的所有变化,包括它们的等同方案。
Claims (14)
1.一种错误校正电路,所述错误校正电路对待存储在存储器装置中的多个消息执行错误校正编码,所述错误校正电路包括:
第一错误校正编码器,通过对所述多个消息中的每个执行第一错误校正编码来生成多个码字;以及
第二错误校正编码器,通过对所述码字内的相同列层的符号执行异或运算来执行第二错误校正编码操作,
其中所述第二错误校正编码器基于所述存储器装置的使用时间来确定作为所述第二错误校正编码操作的目标的数据单位。
2.根据权利要求1所述的错误校正电路,其中当包括在所述存储器装置中的存储块的编程/擦除数量小于阈值计数时,所述第二错误校正编码器基于第一数据单位来执行所述第二错误校正编码操作。
3.根据权利要求2所述的错误校正电路,其中通过基于所述第一数据单位的第二错误校正编码操作,对所述码字中的相同列层的符号执行所述异或运算,来生成第一独立磁盘冗余阵列奇偶校验符号组,即第一RAID奇偶校验符号组。
4.根据权利要求2所述的错误校正电路,其中当包括在所述存储器装置中的所述存储块的编程/擦除数量等于或大于所述阈值计数时,所述第二错误校正编码器基于大于所述第一数据单位的第二数据单位来执行所述第二错误校正编码操作。
5.根据权利要求4所述的错误校正电路,其中通过对所述码字中的相同列层的符号执行所述异或运算来生成第一RAID奇偶校验符号组,并且通过基于所述第二数据单位的第二错误校正编码操作,根据对所述码字的里德-所罗门错误校正编码,来生成第二RAID奇偶校验符号组。
6.根据权利要求3所述的错误校正电路,
其中所述多个码字中的每个配置所述存储器装置中的逻辑页面,以及
其中包括在所述第一数据单位中的多个码字和与所述第一数据单位中的多个码字相对应的RAID奇偶校验符号组配置超级逻辑页面。
7.根据权利要求5所述的错误校正电路,
其中所述多个码字中的每个配置所述存储器装置中的逻辑页面,以及
包括在所述第二数据单位中的多个码字和与所述第二数据单位中的多个码字相对应的RAID奇偶校验符号组配置超级物理页面。
8.根据权利要求3所述的错误校正电路,进一步包括:
第一错误校正解码器,对从所述存储器装置读取的多个码字中的每个执行第一错误校正解码;以及
第二错误校正解码器,通过对所述多个码字之中的、除了所述第一错误校正解码失败的码字之外的剩余码字和所述第一RAID奇偶校验符号组中的相同列层的符号执行异或运算,来执行第二错误校正解码。
9.一种对待存储在存储器装置中的多个消息执行错误校正编码的方法,所述方法包括:
通过对所述多个消息中的每个执行第一错误校正编码来生成多个码字;并且
执行第二错误校正编码操作,所述第二错误校正编码操作对所述码字内的相同列层的符号执行异或运算,
其中基于所述存储器装置的使用时间来确定作为所述第二错误校正编码操作的目标的数据单位。
10.根据权利要求9所述的方法,其中执行所述第二错误校正编码操作包括:
参考包括在所述存储器装置中的存储块的编程/擦除数量;
确定所述编程/擦除数量是否小于阈值计数;并且
根据基于确定操作的结果而确定的数据单位,来生成独立磁盘冗余阵列奇偶校验符号组,即RAID奇偶校验符号组。
11.根据权利要求10所述的方法,其中生成所述RAID奇偶校验符号组包括:当所述存储器装置中的所述存储块的所述编程/擦除数量小于所述阈值计数时,通过对基于所述确定操作的结果而确定的第一数据单位中包括的码字中的相同列层的符号执行异或运算来生成第一RAID奇偶校验符号组。
12.根据权利要求10所述的方法,其中生成所述RAID奇偶校验符号组包括:当所述存储器装置中的所述存储块的所述编程/擦除数量等于或大于所述阈值计数时,通过对基于所述确定操作的结果而确定的第二数据单位中包括的码字中的相同列层的符号执行异或运算来生成第二RAID奇偶校验符号组,所述第二数据单位大于所述第一数据单位。
13.根据权利要求12所述的方法,其中生成所述RAID奇偶校验符号组进一步包括:当所述存储器装置中的所述存储块的所述编程/擦除数量等于或大于所述阈值计数时,通过对所述第二数据单位中包括的码字执行里德-所罗门错误校正编码来生成第三RAID奇偶校验符号组。
14.一种错误校正编码器的操作方法,所述操作方法包括:
对消息执行第一错误校正编码操作以生成多个码字;
将所述码字分组为多个组,每个组中的码字的数量取决于存储器装置的使用时间;以及
对各个组执行第二错误校正编码操作以生成多个极大距离可分码字,即MDS码字,
其中所述MDS码字待被存储到所述存储器装置中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0065283 | 2020-05-29 | ||
KR1020200065283A KR20210147686A (ko) | 2020-05-29 | 2020-05-29 | 오류 정정 회로 및 오류 정정 인코딩 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113744791A true CN113744791A (zh) | 2021-12-03 |
Family
ID=78705664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110194423.1A Withdrawn CN113744791A (zh) | 2020-05-29 | 2021-02-20 | 错误校正电路和错误校正编码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11418217B2 (zh) |
KR (1) | KR20210147686A (zh) |
CN (1) | CN113744791A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240068115A (ko) | 2022-11-10 | 2024-05-17 | 에스케이하이닉스 주식회사 | 소비 전력을 저감시킬 수 있는 메모리, 컨트롤러 및 컴퓨팅 시스템 |
CN116054842A (zh) * | 2022-12-14 | 2023-05-02 | 成都海光集成电路设计有限公司 | 数据编、解码方法、纠错方法、内存控制器、芯片及设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877662B2 (en) * | 2007-03-23 | 2011-01-25 | International Business Machines Corporation | Reverse concatenation for product codes |
JP5166074B2 (ja) * | 2008-02-29 | 2013-03-21 | 株式会社東芝 | 半導体記憶装置、その制御方法、および誤り訂正システム |
KR101398212B1 (ko) * | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
KR101606718B1 (ko) | 2010-10-27 | 2016-03-28 | 엘에스아이 코포레이션 | 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들 |
US8719677B2 (en) * | 2011-12-22 | 2014-05-06 | Sandisk Technologies Inc. | Using ECC encoding to verify an ECC decode operation |
US9048873B2 (en) * | 2013-03-13 | 2015-06-02 | Lsi Corporation | Systems and methods for multi-stage encoding of concatenated low density parity check codes |
US9348695B2 (en) | 2014-05-21 | 2016-05-24 | Sandisk Technologies Inc. | System and method of storing redundancy data |
US9959168B2 (en) * | 2016-03-04 | 2018-05-01 | Sandisk Technologies Llc | ECC and RAID-type decoding |
US9940194B2 (en) * | 2016-03-04 | 2018-04-10 | Sandisk Technologies Llc | ECC decoding using raid-type parity |
DE102016107285B4 (de) * | 2016-04-20 | 2019-04-25 | Infineon Technologies Ag | Verfahren zur verwendung einer speichervorrichtung, speichervorrichtung und speichervorrichtungsanordnung |
US10333555B2 (en) * | 2016-07-28 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for interleaved BCH codes |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US10484019B2 (en) * | 2017-10-30 | 2019-11-19 | Western Digital Technologies, Inc. | Adaptive encoder/decoder |
KR20200142213A (ko) * | 2019-06-12 | 2020-12-22 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
-
2020
- 2020-05-29 KR KR1020200065283A patent/KR20210147686A/ko not_active Application Discontinuation
- 2020-11-02 US US17/086,700 patent/US11418217B2/en active Active
-
2021
- 2021-02-20 CN CN202110194423.1A patent/CN113744791A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210147686A (ko) | 2021-12-07 |
US11418217B2 (en) | 2022-08-16 |
US20210376860A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US11050438B2 (en) | Memory controller | |
CN110299176B (zh) | 存储器控制器及具有该存储器控制器的存储器系统 | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US11031952B2 (en) | Error correction decoder and memory system having the same | |
KR20100124087A (ko) | 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법 | |
US10439647B2 (en) | Controller, semiconductor memory system and operating method thereof | |
US11082068B2 (en) | Error correction circuit, memory controller having error correction circuit, and memory system having memory controller | |
KR20200114151A (ko) | 오류 정정 디코더 | |
KR102666852B1 (ko) | 컨트롤러, 반도체 메모리 시스템 및 그의 동작 방법 | |
CN113744791A (zh) | 错误校正电路和错误校正编码方法 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US20200042245A1 (en) | Memory system, memory controller, and operating method thereof | |
CN110830046A (zh) | 纠错电路及其操作方法 | |
CN106158046B (zh) | 用于turbo乘积码的误校正避免 | |
CN112687323A (zh) | 具有用于解码的错误减少方案的存储器系统及其操作方法 | |
US11251811B2 (en) | Error correction circuit and operating method thereof | |
KR20190110920A (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US10930356B2 (en) | Memory controller and method of operating the same | |
KR102714845B1 (ko) | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 | |
KR102719499B1 (ko) | 에러 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
CN111435604B (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: 20211203 |
|
WW01 | Invention patent application withdrawn after publication |