CN111367709A - 错误校正设备及其操作方法和使用该设备的存储器系统 - Google Patents
错误校正设备及其操作方法和使用该设备的存储器系统 Download PDFInfo
- Publication number
- CN111367709A CN111367709A CN201910982561.9A CN201910982561A CN111367709A CN 111367709 A CN111367709 A CN 111367709A CN 201910982561 A CN201910982561 A CN 201910982561A CN 111367709 A CN111367709 A CN 111367709A
- Authority
- CN
- China
- Prior art keywords
- error
- error information
- generation module
- data
- information generation
- 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
-
- 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
-
- 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/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
-
- 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
- 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/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/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/1525—Determination and particular use of error location polynomials
- H03M13/153—Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
-
- 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请涉及一种错误校正设备。该错误校正设备可包括:输入组件,被配置成接收数据;错误信息生成组件,具有检测L个错误的第一错误检测能力和检测K个错误的第二错误检测能力,其中L是正整数,K是大于L的整数,并且该错误信息生成组件被配置成基于第一错误检测能力来生成包括所接收的数据中包含的错误的数量和错误的位置的错误信息,并且当基于第一错误检测能力未生成错误信息时,基于第二错误检测能力来生成错误信息;错误校正组件,被配置成基于所生成的错误信息来校正所接收的数据的错误;以及输出组件,被配置成输出经校正数据。
Description
相关申请的交叉引用
本专利文件要求于2018年12月26日提交的申请号为10-2018-0169391的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
本专利文件中公开的技术和实施方案涉及一种错误校正设备、该设备的操作方法以及使用该设备的存储器系统,且更特别地,涉及一种用于校正在对存储器系统中存储的数据的读取操作期间发生的错误的技术。
背景技术
通常,可将存储器装置划分成易失性存储器和非易失性存储器,易失性存储器随着时间推移或在断除电源时会丢失其数据,非易失性存储器即使在断除电源时仍保留其数据。包括这种存储器装置的数据处理系统或数据存储系统还包括控制器或与控制器通信,该控制器根据来自诸如主机装置的另一装置的请求(例如,写入请求、读取请求或擦除请求)来管理去往或来自存储器装置的数据流。控制器可包括错误校正电路,以校正引入到存储器装置中存储的数据中的错误或者在从存储器装置读取所存储的数据的过程期间已发生的错误。然而,因为控制器的错误校正能力与数据处理系统或数据存储系统的性能具有权衡关系,所以错误校正能力可能受到限制。
发明内容
可在各个实施例中实施本专利文件中公开的技术,以提供一种用于提高数据的可靠性和错误校正效率的错误校正技术。
在实施例中,错误校正设备可包括:输入组件,被配置成接收数据;错误信息生成组件,具有检测L个错误的第一错误检测能力和检测K个错误的第二错误检测能力,其中L是正整数,K是大于L的整数,并且该错误信息生成组件被配置成基于第一错误检测能力来生成包括所接收的数据中包含的错误的数量和错误的位置的错误信息,并且当基于第一错误检测能力未生成错误信息时,基于第二错误检测能力来生成错误信息;错误校正组件,被配置成基于所生成的错误信息来校正所接收的数据的错误;以及输出组件,被配置成输出经校正数据。
在实施例中,错误校正方法可包括以下步骤:接收数据;基于检测L个错误的第一错误检测能力来生成包括所接收的数据中包含的错误的数量和错误的位置的错误信息,并且当基于第一错误检测能力未生成错误信息时,基于检测K个错误的第二错误检测能力来生成错误信息,其中L是正整数,K是大于L的整数;基于所生成的错误信息来校正所接收的数据的错误;并且输出经校正数据。
在实施例中,存储器系统可包括:存储器装置,被配置成根据写入命令在其中存储数据,并根据读取命令输出其中存储的数据;以及控制器,被配置成控制存储器装置的操作。控制器可包括:存储器接口,被配置成从存储器装置接收与主机的读取请求相对应的读取数据;数据缓冲器,被配置成临时存储通过存储器接口接收的读取数据和通过校正读取数据所获得的经校正数据;错误校正设备,具有检测L个错误的第一错误检测能力和检测K个错误的第二错误检测能力,其中L是正整数,K是大于L的整数,并且该错误校正设备被配置成:基于第一错误检测能力来生成包括数据缓冲器中存储的读取数据中包含的错误的数量和错误的位置的错误信息,当基于第一错误检测能力未生成错误信息时,基于第二错误检测能力来生成错误信息,基于所生成的错误信息来校正数据缓冲器中存储的读取数据的错误,并将经校正读取数据临时存储在数据缓冲器中;以及主机接口,被配置成将临时存储在数据缓冲器中的读取数据传送到主机。
在实施例中,存储器系统可包括:半导体存储器系统,包括:存储器单元阵列,包括多个存储器单元以存储数据;以及控制器,与存储器单元阵列通信,并且被配置成使用多于一个的错误检测算法来检测数据中的一个或多个错误符号,该错误检测算法同时对数据进行操作并且包括第一错误检测算法和第二错误检测算法,第一错误检测算法具有第一错误检测能力,第二错误检测算法具有第二错误检测能力,能够比第一错误检测算法检测更多的错误符号。第二错误检测算法被配置成当通过第一错误检测算法检测到符合第一错误检测能力的一个或多个错误符号时,终止该第二错误检测算法检测一个或多个错误符号的操作。
在实施例中,第一错误检测算法被配置成基于从数据获得的奇偶校验矩阵来检测一个或多个错误符号。
在实施例中,第一错误检测算法包括彼得森(Peterson)算法。
在实施例中,第二错误检测算法确定错误定位多项式并找到错误定位多项式的根(root)。
在实施例中,第二错误检测算法包括伯莱坎普-梅西(Berlekamp-Massey)算法和钱氏(Chien)搜索。
在实施例中,控制器被进一步配置成校正所检测到的一个或多个错误符号。
在实施例中,半导体存储器系统包括存储器单元阵列和与该存储器单元阵列通信以从该存储器单元阵列读取数据的控制器,该控制器包括:校正子生成器,计算数据的多个校正子;第一错误检测算法,具有第一错误检测能力,以检测数据中的一个或多个错误符号;第二错误检测算法,具有能够检测比第一错误检测算法更多错误符号的第二错误检测能力,以检测数据中的错误符号;以及比较器,与校正子生成器通信,并且被配置成对多个校正子进行比较,以检查多个校正子是否满足终止第二错误检测算法的条件。第一和第二错误检测算法并行地对数据操作。
在实施例中,第一错误检测算法被配置成基于从多个校正子获得的奇偶校验矩阵来检测一个或多个错误符号。
在实施例中,第二错误检测算法包括博斯-查德胡里-霍昆格姆(BCH)码,并且其中终止第二错误检测算法的条件包括将奇偶校验矩阵的列指定为校正子。
在实施例中,第二错误检测算法包括里德-所罗门(RS)码,并且其中终止第二错误检测算法的条件包括形成算术级数的校正子的幂序列。
在实施例中,第一错误检测算法包括彼得森算法。
在实施例中,第二错误检测算法确定错误定位多项式。
在实施例中,与第一错误检测算法的操作并行地实施错误定位多项式的确定。
在实施例中,第二错误检测算法包括确定错误定位多项式并找到错误定位多项式的根。
在实施例中,第一错误检测算法和找到错误定位多项式的根并行进行。
在实施例中,半导体存储器系统包括存储器单元阵列和与该存储器单元阵列通信以从该存储器单元阵列读取数据的控制器,该控制器包括:校正子生成器,计算数据的多个校正子;第一错误检测算法,检测数据中的单个符号错误或多大双符号错误;第二错误检测算法,使用循环码来与第一错误检测算法并行地检测数据中的错误符号;以及比较器,与校正子生成器通信,并且被配置成对多个校正子进行比较,以检查多个校正子是否满足终止第二错误检测算法的条件。
在实施例中,第一错误检测算法被配置成基于从多个校正子获得的奇偶校验矩阵或彼得森算法来检测数据中的单个符号错误或双符号错误。
在实施例中,第二错误检测算法包括博斯-查德胡里-霍昆格姆(BCH)码,并且其中终止第二错误检测算法的条件包括基于形成算术级数的校正子的幂序列来找到单个符号错误。
在实施例中,第二错误检测算法包括博斯-查德胡里-霍昆格姆(BCH)码,并且其中终止第二错误检测算法的条件包括基于从多个校正子获得的奇偶校验矩阵中的两个不同的列之和来找到双符号错误。
在实施例中,第二错误检测算法包括里德-所罗门(RS)码,并且其中终止第二错误检测算法的条件包括基于在奇偶校验矩阵的一列中的校正子的幂的算术级数找到单符号错误,并且基于在奇偶校验矩阵的两个列中的校正子的幂的算术级数找到双符号错误。
附图说明
图1是示出基于实施例的数据处理系统的配置图。
图2是示出基于所公开技术的实施例的控制器的框图。
图3A和图3B是示出基于所公开技术的一些实施例的错误校正设备的框图。
图4是示出基于所公开技术的实施例的错误校正方法的流程图。
图5是示出基于所公开技术的实施例的错误校正方法的流程图。
图6是示出基于所公开技术的实施例的错误校正方法的流程图。
图7是示出基于所公开技术的实施例的错误校正方法的流程图。
图8是示出基于所公开技术的实施例的错误检测方法的流程图。
图9是示出基于所公开技术的实施例的错误检测方法的流程图。
图10是示意性示出基于所公开技术的实施例的存储器装置的示图。
图11是示意性示出基于所公开技术的一些实施例的存储器装置的单元阵列电路的示图。
图12是用于描述基于所公开技术的一些实施例的存储器装置的3D堆叠结构的示例的示图。
具体实施方式
可在实施例中实施本专利文件中公开的技术,以提供一种存储装置,该存储装置包括具有不同错误校正能力的两种或更多种错误校正算法。
图1是示出基于所公开技术的实施例的数据处理系统的配置图。
参照图1,基于本实施例的数据处理系统100可包括主机110和存储器系统120。
主机110可请求存储器系统120执行处理数据所需的所有操作,例如写入操作、读取操作和擦除操作,并从存储器系统120接收结果。
主机110可包括诸如便携式电子装置、台式计算机、游戏机、TV和投影仪的有线/无线电子装置,便携式电子装置包括移动电话、MP3播放器、膝上型计算机等。此外,主机110可包括提供与数据处理系统的预期用途和使用数据处理系统的用户的目的相对应的功能和操作的一个或多个操作系统(OS)(例如,Windows、Chrome和Linux)。提供主机110及其相关的讨论以通过示例而非限制的方式来示出所公开技术的一些实施例。因此,主机100可以是能够与存储器系统120通信信息的任意装置。
存储器系统120可根据主机110的请求来执行操作,并且执行保持存储器系统120所需的所有操作。存储器系统120可包括控制器121和存储器装置122,控制器121被配置成控制存储器系统120的全部操作,存储器装置122被配置成基于控制器121的控制命令来执行操作并且执行保持存储器系统120所需的所有操作。控制器121和存储器装置122可通过通道CH彼此联接。下面将参照图2至图12详细描述控制器121和存储器装置122。
存储器系统120可校正错误数据。作为特定示例,存储器系统120可从主机110接收数据,检测在存储器系统120中、如在对存储器装置122中存储的数据的读取操作中处理的数据中包含的错误,并校正所检测到的错误。存储器系统120可根据数据中包含的错误通过应用不同的错误检测能力来检测错误。错误检测能力可指示可检测错误的最大数量。也就是说,当错误检测能力为4时,存储器系统120可检测包括最多四个错误的错误数据。下面将参照图3至图9详细描述该配置。
存储器系统120可被配置为PCMCIA(个人计算机存储卡国际协会)卡,CF(紧凑式闪存)卡,智能媒体卡,记忆棒,诸如eMMC、RS-MMC和微型MMC的各种多媒体卡(MMC),诸如迷你SD或微型SD的安全数字(SD)卡,UFS(通用闪存),SSD(固态驱动器)等。
因为上述配置仅是用于帮助理解存储器系统120的示例,所以显而易见的是,基于本实施例的存储器系统120不限于此。
图2是示出基于所公开技术的实施例的控制器的框图。
参照图2,基于本实施例的控制器121可包括处理器210、存储器220、错误校正设备230、主机接口(I/F)240、存储器I/F 250和电源管理组件(PMU)260。
处理器210可控制存储器系统120的全部操作。作为特定示例,当从主机110接收到诸如写入请求、读取请求或擦除请求的请求时,处理器210可控制控制器121的组件和存储器装置122的操作,以执行对应于所接收的请求的操作。
在实施例中,处理器210可运行固件级代码以控制存储器系统120的全部操作。存储器系统120中可存在闪存转换层(FTL),以在主机110与存储器装置122之间执行不同的转换。FTL执行的任务的示例可包括逻辑块映射、损耗均衡和垃圾收集。
在实施例中,处理器210可被实施为微处理器或中央处理单元(CPU)。
存储器220可用作控制器121、存储器装置122等的工作存储器。存储器220可存储待由控制器121和存储器装置122运行的指令。存储器220可用作存储驱动存储器系统120、控制器121等所需的数据的工作存储器。作为特定示例,存储器220可将从存储器装置122接收的数据存储到主机110中,以便执行从主机110请求的操作,诸如写入操作、读取操作或擦除操作。对于该操作,存储器220可被配置为程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
在实施例中,存储器220可被实施为易失性存储器。例如,存储器220可被实施为SRAM(静态随机存取存储器)、DRAM(动态随机存取存储器)、ROM(只读存储器)、MROM(掩模ROM)、PROM(可编程ROM)、EPROM(可擦除ROM)、EEPROM(电可编程ROM)、PCRAM(相变随机存取存储器)、FRAM(铁电RAM)、MRAM(磁性RAM)、RRAM(电阻式RAM)或闪速存储器(例如,NAND闪存)。
错误校正设备230可校正在存储器系统120中处理的错误数据。
在实施例中,错误校正设备230可包括未示出的ECC(错误校正码)编码器和ECC解码器。ECC编码器可在写入操作期间对待存储在存储器装置122中的数据执行错误校正编码,并且ECC解码器可在读取操作期间对从存储器装置122接收的数据执行错误校正解码。ECC编码器可通过对待存储在存储器装置122中的数据执行错误校正编码来生成奇偶校验位,并将所生成的奇偶校验位添加到待存储在存储器装置122中的数据。存储器装置122可在其中存储具有奇偶校验位的数据。ECC解码器可通过基于奇偶校验位对从存储器装置122接收的数据执行错误校正解码来检测错误,并且校正所检测到的错误。当所检测到的错误中包含的错误位的数量超过ECC解码器的错误校正能力或错误检测能力的极限时,ECC解码器无法校正所检测到的错误,并且因而可输出错误校正失败信号。
错误校正码(ECC)用于NAND闪速存储器中以检测和校正位错误。随着存储器的复杂性增加,位错误率持续增长。对于每存储器单元存储多于一位的存储器装置,这个问题变得更为关键。位错误可能由许多因素引起。作为示例而非限制,位错误可由存储器单元的重叠阈值电压窗口引起。对于n位多层单元NAND闪速存储器,每个单元的阈值电压可被编程为2n个可能值。在理想的多层单元NAND闪速存储器中,每个值对应于非重叠阈值电压窗口。被编程为相同值的存储器单元使它们的阈值电压落入相同的窗口中,但它们精确的阈值电压可能不同。随着编程/擦除周期增加,不同编程状态的相邻阈值电压分布之间的裕度减小,并且最终这些分布开始重叠。因此,具有落入相邻分布的重叠范围内的阈值电压的存储器单元可被读取为被编程为不同于原始目标值的值,并且因而导致读取错误。在大多数情况下,可通过使用ECC来管理这种读取错误。还存在位错误的许多其它原因(例如,单元间干扰、编程/擦除周期等),并且这些也可通过使用ECC来管理。
在实施例中,错误校正设备230可对从存储器装置122接收的数据执行硬判决和软判决。硬判决可指示通过仅使用错误校正码和在施加预定参考读取电压时根据存储器单元的通/断特性而读取的数据来校正从存储器装置122接收的错误数据的方法。在下文中,该数据将被称为硬判决数据。软判决可指示通过另外使用关于硬判决数据的可靠性的附加信息以及硬判决数据和错误校正码来校正从存储器装置122接收的错误数据的方法。附加信息将被称为可靠性数据。错误校正设备230可对从存储器装置122接收的数据执行硬判决和软判决中的两者或任意一个。当通过对从存储器装置122接收的数据执行硬判决未能校正错误时,错误校正设备230可执行软判决。
在实施例中,错误校正设备230可使用LDPC(低密度奇偶校验)码、BCH(博斯-查德胡里-霍昆格姆,Bose-Chaudhri-Hocquenghem)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、RSC(递归系统码)或诸如TCM(网格编码调制)或BCM(分组编码调制)的编码调制来校正从存储器装置122接收的错误数据。
错误校正设备230可检测和校正数据损坏,该数据损坏包括对数据位的任何无意的改变。在读取操作期间检测到这种数据损坏,并且可尽所使用的代码的最大能力来对这种数据损坏进行校正。一些存储器控制器包括可检测和校正每字(例如,总线传送的单位)单个位的错误的错误校正算法。其它存储器控制器包括可检测(和校正)每字两位或更多位的错误的错误校正算法。然而,在所公开技术的一些实施例中,错误校正设备230包括具有不同错误检测和/或校正能力的两种或更多种错误校正算法。例如,错误校正设备230可包括第一和第二错误校正算法。第一错误检测(和校正)算法可具有第一错误检测(和校正)能力,以检测(和校正)每字一位或多位的错误,并且第二错误检测(和校正)算法可具有第二错误检测(和校正)能力,以检测(和校正)比第一错误检测(和校正)算法更多的错误位。换句话说,第一和第二错误检测(和校正)算法可具有不同的可校正错误位的最大数量。例如,第一错误检测(和校正)算法可检测(和校正)多达每字L位的错误,并且第二错误检测(和校正)算法可检测(和校正)多达每字K位的错误,其中K是大于L的整数。错误校正设备230可检测错误位的位置和数量,并校正所检测到的错误。下面将参照图3至图9详细描述所公开技术的各个实施方案。
在实施例中,给定利用BCH码对数据进行编码,错误校正设备230可使用彼得森算法、伯莱坎普-梅西算法和/或欧几里德(Euclid)算法等。
在实施例中,给定利用非二进制BCH码或RS码对数据进行编码,错误校正设备230可使用彼得森-格伦斯坦-齐尔勒(Peterson-Gorenstein-Zierler)算法、伯莱坎普-梅西算法和/或欧几里德算法等。
在实施例中,给定利用加比卢林(Gabildulin)码对数据进行编码,错误校正设备230可使用改进的伯莱坎普-梅西算法和/或欧几里德算法。
在所公开技术的一些实施例中,错误校正设备230的错误检测/校正解码算法可被实施如下:(1)计算校正子;(2)确定错误定位多项式;(3)找到错误定位多项式的根;以及(4)确定错误值(例如,针对里德-所罗门码或非二进制BCH码)。
主机I/F 240可使存储器系统120与主机110之间能够进行数据通信。作为特定示例,主机I/F 240可从主机110接收诸如写入请求、读取请求或擦除请求的请求,并将对应于所接收的请求的数据传送到主机110。对于该操作,主机110可使用主机接口层(HIL)。
在实施例中,根据被定义为向主机110传送数据或从主机110接收数据的通信协议,主机I/F 240可被实施为USB(通用串行总线)、MMC(多媒体卡)、PCI-E(高速外围组件互连)、SAS(串列SCSI)、SATA(串行高级技术附件)、PATA(并行高级技术附件)、SCSI(小型计算机系统接口)、ESDI(增强型小型磁盘接口)、IDE(电子集成驱动器)、MIPI(移动产业处理器接口)等。
存储器I/F 250可包括用于控制器121与存储器装置122之间的数据通信的协议。例如,存储器I/F 250可用于响应于从主机110接收的请求,将包括用于执行写入操作、读取操作或擦除操作的指令的数据和保持存储器系统120所需的其它数据传送到存储器装置122。存储器I/F 250可用于从存储器装置122接收相应的数据。对于该操作,存储器接口250可使用闪存接口层(FIL)。
PMU 260可用于向存储器系统120分配电能。作为特定示例,PMU260可从电池或诸如主机110的外部设备接收电力,并且分配所接收的电力以操作存储器系统120的各个组件。此外,PMU 260可包括用于存储电力的电容器或电池,以即使在由于诸如突然断电的意外电力损失而没有电力的情况下也正常地操作存储器系统120。
图3A和图3B是示出基于所公开技术的一些实施例的错误校正设备的框图。
参照图3A和图3B,基于所公开技术的实施例的错误校正设备230可包括输入组件310、错误信息生成组件320、错误校正组件330和输出组件340。
输入组件310可接收旨在进行错误检测和错误校正的数据。作为特定示例,将从主机接收的数据和从存储器装置接收的数据存储在数据缓冲器中,并且输入组件310可从数据缓冲器接收旨在进行错误检测和错误校正的数据。输入组件310可将所接收的数据传送到错误信息生成组件320。
在实施例中,输入组件310可接收利用线性分组码而被编码的数据。例如,输入组件310可接收利用BCH码、非二进制BCH码、RS码或加比卢林码而被编码的数据。
在所公开技术的实施例中,如图3A所示,错误信息生成组件320可通过检测所接收的数据中包含的错误位来生成错误信息。对于该操作,错误信息生成组件320可包括第一错误信息生成模块321、第二错误信息生成模块322、错误信息生成控制模块323、校正子计算模块324和多项式生成模块325。错误信息可以是数据中包含的错误位的数量和错误的位置。在所公开技术的另一实施例中,如图3B所示,错误信息生成组件320可包括第一错误信息生成模块327、第二错误信息生成模块328、错误信息生成控制模块329和校正子计算模块326。在实施方案中,第二错误信息生成模块328可确定错误定位多项式(例如,伯莱坎普-梅西算法)和/或可找到错误定位多项式的根(例如,钱氏(Chien)搜索),并且第一错误信息生成模块327可通过使用奇偶校验矩阵的特征来检测错误位(及其位置)。通过第一错误信息生成模块327的错误检测和通过第二错误信息生成模块328的错误检测并行进行,并且在由第一错误信息生成模块327检测到错误位时,第二错误信息生成模块328终止其错误检测算法。
第一错误信息生成模块321可通过使用第一错误校正能力来生成第一错误信息,该第一错误校正能力可检测(和校正)多达每字L位的错误,其中L是正整数。作为特定示例,第一错误信息生成模块321能够检测每字L位或更少位的错误,并且可基于通过使用第一错误校正能力而获得的错误检测结果来生成第一错误信息。也就是说,第一错误信息生成模块321可通过将第一错误检测能力应用于所接收的数据来生成第一错误信息。
在所公开技术的实施例中,第一错误信息生成模块321可基于彼得森算法来生成第一错误信息。
在所公开技术的另一实施例中,第一错误信息生成模块321可基于奇偶校验矩阵的列向量编号来生成关于包含一位错误的数据的第一错误信息。例如,当所接收的数据(r)利用BCH码进行编码并且奇偶校验矩阵H如下面的矩阵(1)所示进行配置时,可将奇偶校验矩阵和所有码字C的乘积定义为零向量,如下面的等式(1)所示。
H·C=0 等式(1)
此外,如下面的等式(2)所示,可将所接收的数据(r)表示为原始数据(c)和错误(e)之和,并且可将所接收的数据(r)的校正子计算结果(S)定义为奇偶校验矩阵(H)和错误(e)的乘积。
S=H·r=H·(c+e)=H·c+H·eH·e 等式(2)
因此,当所接收的数据(r)中发生一位错误(例如,第二位处的错误)时,校正子计算结果(S1)可对应于奇偶校验矩阵H的列向量之中对应于错误(e1)的列向量(例如,第二列向量),如等式(3)所示。
也就是说,与所接收的数据的校正子计算结果相对应的奇偶校验矩阵的列向量编号可指示所接收的数据的错误位置。因此,第一错误信息生成模块321可检查与所接收的数据的校正子计算结果相对应的奇偶校验矩阵的列向量编号,并且生成第一错误信息,第一错误信息包括所检查到的作为错误位的位置的列向量编号。在所公开技术的一些实施例中,第一错误信息生成模块321可识别奇偶校验矩阵中包括的列向量的特征(例如,几何比、校正子的幂序列是否形成算术级数),从而检查与所接收的数据的校正子计算结果相对应的奇偶校验矩阵的列向量编号。
在实施例中,第一错误信息生成模块321可基于奇偶校验矩阵的列向量编号来生成关于具有两位或更多位错误的数据的第一错误信息。例如,当所接收的数据(r)中包含两个或更多个错误位(例如,第二和第四位处的错误)时,校正子计算结果(S2)可对应于奇偶校验矩阵(H)的列向量之中对应于错误e2的列向量(例如,第二和第四列向量)之和,如等式(4)所示。
在这种情况下,因为所接收的数据的校正子计算结果是两个或更多个列向量之和,所以可能难以直接将所接收的数据与奇偶校验矩阵中包括的列向量进行比较。因此,第一错误信息生成模块321可将通过从所接收的数据的校正子计算结果顺序地或任意地减去奇偶校验矩阵中包括的列向量而获得的结果与奇偶校验矩阵中包括的列向量进行比较,从而检查校正子计算结果中包括的两个列向量。当检查到减法结果对应于奇偶校验矩阵中包括的列向量中的任意一个时,可将检查到的列向量编号和被减去的列向量编号确定为错误位的位置。在上面的等式(4)中,当从校正子计算结果S2减去第二列向量时,仅剩余第四列向量。第一错误信息生成模块321可将第四列向量与奇偶校验矩阵中包括的列向量进行比较,并且因而检查剩余列向量对应于第四列向量的结果。因此,第一错误信息生成模块321可生成第一错误信息,第一错误信息指示错误位的数量为2,并且错误位位于第二和第四列向量。
第二错误信息生成模块322可通过使用第二错误校正能力来生成第二错误信息,该第二错误校正能力可检测(和校正)多达每字K位的错误,其中K大于L。作为特定示例,第二错误信息生成模块322能够检测多达每字K位的错误(比第一错误校正能力更多位的错误),并且基于通过使用第二错误校正能力而获得的错误检测结果来生成第二错误信息。也就是说,第二错误信息生成模块322可通过将第二错误检测能力应用于所接收的数据来生成第二错误信息。
在实施例中,第二错误信息生成模块322可对数据执行校正子计算。第二错误信息生成模块322可基于伯莱坎普-梅西算法(BMA),由校正子计算结果生成多项式。第二错误信息生成模块322可使用钱氏搜索来计算多项式的根。最后,第二错误信息生成模块322可生成第二错误信息,第二错误信息指示作为错误位的位置的多项式的根以及作为错误位的数量的根的数量。
错误信息生成控制模块323可控制第一和第二错误信息生成模块321和322的操作。作为特定示例,错误信息生成控制模块323可控制具有不同错误校正能力的两个或更多个错误信息生成模块(例如,321、322、327、328),以生成错误信息。
在实施例中,错误信息生成控制模块323可控制第一和第二错误信息生成模块321和322(327和328),使得第一错误信息生成模块321(327)在第二错误信息生成模块322(328)之前操作或与之并行操作。
在实施例中,错误信息生成控制模块323可控制第一和第二错误信息生成模块321和322,使得第一和第二错误信息生成模块321和322选择性地生成错误信息。作为特定示例,错误信息生成控制模块323可控制第一和第二错误信息生成模块321和322,使得第一和第二错误信息生成模块321和322中的任意一个基于错误发生预测信息来生成错误信息。错误发生预测信息可指示通过预测所接收的数据中将包括的错误的数量而获得的信息。错误发生预测信息可通过实验或统计地确定,或者根据诸如用于接收数据的通道的特性或存储数据的位置的耐久性的存储器系统120的特性来确定。
校正子计算模块324可对所接收的数据执行校正子计算。作为特定示例,校正子计算模块324可基于奇偶校验矩阵来对所接收的数据执行校正子计算,并且输出该校正子计算的结果。
在实施例中,当利用线性分组码对所接收的数据进行编码时,奇偶校验矩阵H和线性分组码的所有码字C的乘积可产生零向量。因此,校正子计算模块324可输出奇偶校验矩阵中包括的列向量之中作为校正子计算的结果的列向量,该列向量对应于所接收的数据中的错误位。也就是说,当所接收的数据的第二位处存在错误时,校正子计算模块324可输出奇偶校验矩阵的第二列向量作为校正子计算的结果。
多项式生成模块325可基于校正子计算结果来生成多项式。作为特定示例,当因为在所接收的数据中存在错误所以奇偶校验矩阵的特定列向量作为校正子计算结果被输出时,多项式生成模块325可将校正子计算结果转换成多项式。显而易见的是,基于校正子计算结果而生成的多项式的根对应于错误的位置,并且根的数量对应于错误位的数量。也就是说,当所接收的数据的第二位处存在错误时,多项式生成模块325可生成多项式,如下面的等式(5)所示。
at·αt+at-1·αt-1+…+a1+1 等式(5)
在实施例中,多项式生成模块325可使用伯莱坎普-梅西算法(BMA),由校正子计算结果生成多项式。
对于线性分组码,由奇偶校验矩阵H来定义码c。所有码字c∈C满足关系H·c=0。在第二错误信息生成模块328使用博斯-查德胡里-霍昆格姆(BCH)码或里德-所罗门(RS)码对数据进行解码的一些实施方案中,t-错误校正BCH和RS的奇偶校验矩阵可由上面的矩阵(1)表示。
对于BCH和RS码的解码,第二错误信息生成模块328利用伯莱坎普-梅西算法(BMA)由校正子s=H·r导出错误定位多项式。然而,在t较大的情况下,BMA引起较大的延迟。
可在实施例中实施本专利文件中公开的技术,以提供一种存储装置,该存储装置包括具有不同错误校正能力的两种或更多种错误校正算法,以减少在小t情况下进行错误检测和校正的时间。在所公开技术的一些实施例中,第一错误信息生成模块327可与第二错误信息生成模块328并行使用,以检测这种“小”(例如,t=1、2、3)数量的错误位,并且甚至在第二错误信息生成模块328的BMA和钱氏搜索完成之前完成错误检测过程。
示例1:单个位错误检测
对于BCH和RS码,因为校正子对应于H的错误列的列组合,所以可基于校正子来检测单个错误。此处,可通过找到包括任意错误位或符号的列来识别错误列。
对于二进制BCH码,错误位一直是“1”。因此,如果发生单个位错误,则校正子将是H的特定列。对于RS码,当发生单个位错误时,校正子表示为:
当发生单个位错误时,校正子的幂序列形成算术级数。因此,第一错误信息生成模块327可基于校正子的幂序列来检测单个位错误。
示例2:双位错误检测
对于二进制BCH码,错误位一直是“1”。因此,如果发生双位错误,则校正子可表示为H的两个不同列之和。让hi为H的第i列。然后,在实施方案中,可通过以下步骤检测双位错误:(1)计算(2)利用(算术级数)测试单个错误检测方法。在另一实施方案中,其中可通过以下步骤检测双位错误:(1)使用例如彼得森算法,在双位错误的假设下找到i和j;(2)如果则可确定双位错误。
对于RS码,允许错误符号。因此,如果发生双位错误,则校正子是H的两个不同列的线性组合。让hi成为H的第i列。s=α_ih_i+α_jh_j,…0≤i≠j≤n-1,其中α_i,α_j∈GF(q)。在实施方案中,可通过以下步骤检测双位错误:(1)计算 (2)利用(算术级数)测试单个错误检测方法。在另一实施方案中,其中其中可通过以下步骤检测双位错误:(1)使用彼得森算法,在双位错误的假设下找到i和j;(2)计算(3)利用(算术级数)测试单个错误检测方法。
第一错误信息生成模块321可基于校正子计算结果生成第一错误信息。作为特定示例,第一错误信息生成模块321可通过校正子计算结果,从校正子计算结果和基于该校正子计算结果所生成的多项式中的一个或多个来检查列向量的数量和各个列向量编号。第一错误信息生成模块321可生成第一错误信息,该第一错误信息指示列向量的数量是错误的数量以及检查到的列向量编号是错误的位置。
在实施例中,当在所接收的数据中发生单个位错误时,第一错误信息生成模块321(或327)可基于奇偶校验矩阵中各个列向量的几何比来检查对应于校正子计算结果的列向量编号。也就是说,因为奇偶校验矩阵的各个列向量具有不同的几何比,所以第一错误信息生成模块321(或327)可检查校正子计算结果或具有与基于该校正子计算结果所生成的多项式的各个项之间的相乘因子相对应的几何比的列向量的编号,并且生成包含检查到的作为错误位置的列向量编号的第一错误信息。也就是说,如上面的矩阵(1)所示,当第二位处存在数据的错误时,校正子计算结果或基于该校正子计算结果所生成的多项式可表示为上面的等式(1)。多项式的各个项之间的相乘因子为α,α等于奇偶校验矩阵的第二列向量的几何比。因此,第一错误信息生成模块321可生成第一错误信息,该第一错误信息包括指示在所接收的数据的第二位处已发生单个错误位的信息。在实施例中,当在所接收的数据中已发生两个或更多个错误位时,第一错误信息生成模块321可另外执行用于检查相应的列向量编号的操作。例如,当在已发生双位错误的情况下输出两个列向量作为校正子计算结果时,第一错误信息生成模块321可从校正子计算结果顺序地或任意地减去奇偶校验矩阵的各个列向量,并且因而检查结果是否形成几何级数。因为减法运算的结果形成几何级数,所以第一错误信息生成模块321(或327)可生成第一错误信息,该第一错误信息指示列向量编号是错误的位置,该列向量编号基于用于减法运算的矩阵的列向量编号和具有与减法运算结果相对应的几何比的列向量而被检查。
第二错误信息生成模块322(或328)可基于校正子计算结果来生成第二错误信息。作为特定示例,第二错误信息生成模块322(或328)可搜索校正子计算结果或基于该校正子计算结果所生成的多项式的根。第二错误信息生成模块322(或328)可生成第二错误信息,该第二错误信息指示搜索到的根是错误的位置并且根的数量是错误的数量。
在实施例中,第二错误信息生成模块322可使用钱氏搜索来搜索多项式的根。
错误信息生成控制模块323、329可控制校正子计算模块324、326、多项式生成模块325以及第一和第二错误信息生成模块321、327和322、328的操作,以便生成错误信息。
错误校正组件330可校正数据的错误。作为特定示例,错误校正组件330可基于错误信息来校正数据的错误。
输出组件340可输出在错误校正设备230中处理的数据。作为特定示例,当所接收的数据中发生错误时,输出组件340可输出已基于错误信息校正的经校正数据。此外,输出组件340可输出如从输入组件310中接收的没有错误的数据。从输出组件340输出的数据可存储在数据缓冲器中,并且存储在数据缓冲器中的数据可通过主机I/F而被传送到主机装置。
作为示例而非限制,图3A和图3B将错误信息生成组件320示出为包括第一和第二错误信息生成模块321、327和322、328以提供错误信息。在其它实施方案中,错误信息生成组件320可包括具有不同错误检测能力的三个或更多个错误信息生成模块。
图4是示出基于所公开技术的实施例的错误校正方法的流程图。
在下文中,将参照图1至图3A和图3B描述错误校正方法。
参照图4,在步骤S410中,主机110可向存储器系统120传送对存储器系统120中存储的数据的读取请求。存储器系统120的控制器121可通过主机I/F 240接收主机110的读取请求。
在步骤S420中,控制器121可通过存储器I/F 250向存储器装置122传送控制信号,以便控制存储器装置122读取与主机110的读取请求相对应的数据。因此,存储器装置122可读取与主机110的读取请求相对应的数据,并且将读取数据传送到控制器121。
在步骤S430中,控制器121可通过存储器I/F 250从存储器装置122接收读取数据。控制器121可将所接收的读取数据临时存储在存储器220中。控制器121可将临时存储在存储器220中的读取数据输入到错误校正设备230,以便对临时存储在存储器220中的读取数据执行错误校正和解码。因此,错误校正设备230可接收临时存储在存储器220中的读取数据。在步骤S440中,错误校正设备230可生成错误信息。作为特定示例,错误校正设备230可通过应用对应于数据的错误的错误检测能力来生成包括错误的数量和错误的位置的错误信息。也就是说,错误校正设备230可基于向具有L个或更少的错误的数据应用的L错误检测能力和向具有大于L个且等于或小于K个的错误的数据应用的K错误检测能力来生成错误信息,其中L是正整数,并且K是大于L的整数。
在步骤S450中,错误校正设备230可校正错误。作为特定示例,错误校正设备230可基于错误信息来校正数据的错误。此外,错误校正设备230可对读取数据执行错误校正和解码。
在步骤S460中,错误校正设备230可输出经校正数据。也就是说,错误校正设备230可将原始数据存储在存储器220中,该原始数据对应于已执行错误校正和解码的读取数据。
在步骤S470中,控制器121可通过主机I/F 240将存储在存储器220中的原始数据传送到主机110。
图5是示出基于所公开技术的实施例的错误校正方法的流程图。
以下描述将基于由图1所示的存储器系统120执行错误校正方法的示例。此外,因为步骤S510和S560以与图4中的步骤S410和S440相同的方式被执行,所以本文将省略对其的描述。
参照图5,在步骤S520中,存储器系统120可开始生成第一错误信息和第二错误信息的操作。作为特定示例,存储器系统120可应用具有不同错误检测能力的两种或更多种错误检测(和校正)算法以对输入数据并行地解码,生成包括错误的数量和错误的位置的第一错误信息和第二错误信息。
在实施例中,存储器系统120可对输入数据并行地执行以下操作:利用检测(和校正)多达每字L位的错误的第一错误校正能力生成第一错误信息的操作,以及利用检测(和校正)多达每字K位的错误的第二错误校正能力生成第二错误信息的操作。
在步骤S530中,存储器系统120可检查是否已生成第一错误信息。作为特定示例,存储器系统120可检查是否已通过第一错误检测能力生成第一错误信息。因为第一错误检测能力低于第二错误检测能力(L小于K),所以可在生成第二错误信息之前生成第一错误信息。此外,当未生成第一错误信息时,这可指示数据中发生的错误位的数量超过第一错误检测能力的可校正错误位的最大数量。因此,可通过第二错误检测能力来生成第二错误信息。
在步骤S540中,存储器系统120可停止生成第二错误信息的操作。作为特定示例,当通过第一错误检测能力成功地生成第一错误信息时,存储器系统120可终止通过第二错误检测能力进行的错误检测,而不生成第二错误信息。通常,通过高于第一错误检测能力的第二错误检测能力进行的错误检测操作可能需要比通过第一错误检测能力进行的错误检测操作更大量的时间以完成检测。因此,当成功地生成第一错误信息时,不需要生成第二错误信息。因此,存储器系统120可终止生成第二错误信息的操作。
在步骤S550中,存储器系统120可基于第一错误信息来校正错误。作为特定示例,存储器系统120可基于第一错误信息来校正数据中的错误位。例如,当成功地生成第一错误信息时,也就是当存在L个或更少的错误(例如,每字L个或更少的错误位)时,存储器系统120可基于第一错误信息来校正错误数据。
在步骤S550中,存储器系统120可生成第二错误信息。作为特定示例,当输入数据中的错误位的数量超过可由第一错误检测能力校正的错误位的最大数量时,因为生成第一错误信息失败,所以存储器系统120可基于第二错误检测能力来继续进行第二错误信息的生成。
存储器系统120可基于第二错误信息来校正错误。作为特定示例,存储器系统120可基于通过第二错误检测能力生成的第二错误信息来校正错误的输入数据。例如,当生成第一错误信息失败时,也就是当输入数据中的错误位的数量超过可校正错误位的最大数量(L)时,存储器系统120可基于第二错误信息来校正数据的错误。
在步骤S560中,存储器系统120可输出通过校正输入数据的错误而获得的经校正数据。
图6是示出基于所公开技术的实施例的错误校正方法的流程图。
以下描述将基于由图1所示的存储器系统120执行错误校正方法的示例。此外,因为步骤S610和S650以与图4中的步骤S410和S440相同的方式被执行,所以本文将省略对其的描述。
参照图6,在步骤S620中,存储器系统120可检查是否已生成第一错误信息。作为特定示例,不同的错误检测能力中的任意一种可优先于继续检测错误时的其它错误检测能力。例如,存储器系统120可通过优先应用不同的错误检测能力中的任意一种来生成错误信息。
在实施例中,存储器系统120可通过优先应用第一错误检测能力(最大错误位L)来执行生成第一错误信息的操作,该第一错误检测能力小于第二错误检测能力(最大错误位K)。
在步骤S630中,存储器系统120可生成第二错误信息。作为特定示例,当存储器系统120由于数据中存在多于L个错误位而未能通过应用第一错误检测能力来生成第一错误信息时,存储器系统120可通过应用检测多达K个错误位(K大于L)的第二错误检测能力来生成第二错误信息。
在步骤S640中,存储器系统120可校正错误。作为特定示例,当通过优先应用的错误检测能力成功地生成第一错误信息时,存储器系统120可基于该第一错误信息来校正数据的错误。此外,当通过优先应用的错误检测能力来生成第一错误信息失败时,存储器系统120可基于第二错误信息来校正数据的错误。
图7是示出基于所公开技术的实施例的错误校正方法的流程图。
以下描述将基于由图1所示的存储器系统120执行错误校正方法的示例。此外,因为步骤S710和S760以与图4中的步骤S410和S440相同的方式被执行,所以本文将省略对其的描述。
参照图7,在步骤S720中,存储器系统120可确定将发生错误的可能性。作为特定示例,存储器系统120可基于错误发生预测信息来预测输入数据中可能出现的错误位的数量。
在实施例中,具有L位错误检测能力和K位错误检测能力的存储器系统120可预测输入数据中的错误位的数量是否会超过L。
在步骤S730中,存储器系统120可生成第一错误信息。作为特定示例,当预期输入数据中将发生L个或更少的错误位时,存储器系统120可通过应用L位错误检测能力来生成第一错误信息。
在步骤S740中,存储器系统120可生成第二错误信息。作为特定示例,当预期输入数据中将发生多于L个错误位时,存储器系统120可通过应用检测多于L个错误位的K位错误检测能力来生成第二错误信息。
在步骤S750中,存储器系统120可校正错误。作为特定示例,当预期将发生L个或更少的错误位时,存储器系统120可基于第一错误信息来校正数据的错误。此外,当确定将发生多于L个错误位时,存储器系统120可基于第二错误信息来校正数据的错误。
作为示例而非限制,上述方法使用了L位错误检测能力和K位错误检测能力。在其它实施方案中,可使用多于两种的错误检测能力。
图8是示出基于所公开技术的实施例的错误检测方法的流程图。
以下描述将基于由图1所示的存储器系统120执行错误检测方法的示例。
参照图8,在步骤S810中,存储器系统120可执行校正子计算。作为特定示例,存储器系统120可基于奇偶校验矩阵来对输入数据执行校正子计算。
在步骤S820中,存储器系统120可生成多项式。作为特定示例,存储器系统120可基于对输入数据的校正子计算的结果来生成多项式。所生成的多项式的根可指示错误的位置,并且根的数量可指示错误的数量。
在实施例中,存储器系统120可使用伯莱坎普-梅西算法(BMA),由校正子计算结果生成多项式。
在步骤S830中,存储器系统120可搜索列向量。作为特定示例,存储器系统120可搜索奇偶校验矩阵中的与校正子计算结果或基于该校正子计算结果而生成的多项式相对应的列向量。
在实施例中,存储器系统120可基于奇偶校验矩阵中包括的列向量的几何比,搜索奇偶校验矩阵中的与校正子计算结果或基于该校正子计算结果而生成的多项式相对应的列向量。
在实施例中,当数据中发生一位错误(第一或第二错误)时,存储器系统120可检查奇偶校验矩阵中包括的列向量之中的、具有与校正子计算结果或基于该校正子计算结果而生成的多项式的各个项之间的相乘因子相同的几何比的向量。
在实施例中,当数据中发生两位错误时,存储器系统120可执行从校正子计算结果或基于该校正子计算结果而生成的多项式减去奇偶校验矩阵中包括的各个列向量的操作。当存储器系统120执行减法运算使得校正子计算结果或基于该校正子计算结果而生成的多项式的项中的每一个具有特定相乘因子时,具有与特定相乘因子相同的几何比的列向量的编号和已执行减法运算的列向量的编号可对应于错误的位置。
在步骤S840中,存储器系统120可生成第一错误信息。作为特定示例,存储器系统120可生成第一错误信息,该第一错误信息包括指示与校正子计算结果或基于该校正子计算结果而生成的多项式相对应的列向量的数量是错误的数量并且列向量的编号是错误的位置的信息。
图9是示出基于所公开技术的实施例的错误检测方法的流程图。
以下描述将基于由图1所示的存储器系统120执行错误检测方法的示例。此外,因为步骤S910和S920以与图8中的步骤S810和S820相同的方式被执行,所以本文将省略对其的描述。
参照图9,在步骤S930中,存储器系统120可计算多项式的根。作为特定示例,存储器系统120可执行计算基于校正子计算结果而生成的多项式的根的操作。
在实施例中,存储器系统120可使用钱氏搜索以搜索多项式的根。
在步骤S940中,存储器系统120可生成第二错误信息。作为特定示例,存储器系统120可生成第二错误信息,该第二错误信息包括指示所计算的根是错误的位置并且根的数量是错误的数量的信息。
重新参照图1,存储器装置122可包括多个存储块120a、120b和120c。存储块120a、120b和120c中的每一个可包括多个页面。每个页面可包括联接到多个字线的多个存储器单元。存储器装置122可包括多个平面,每个平面包括多个存储块120a、120b和120c。特别地,存储器装置122可包括多个存储器管芯,每个存储器管芯包括多个平面。在实施例中,存储器装置122可被实施为诸如闪速存储器的非易失性存储器装置。闪速存储器可具有三维(3D)堆叠结构。在下文中,下面将参照图10至图13详细描述存储器装置122。
图10是示意性地示出基于所公开技术的实施例的存储器装置的示图。
参照图10,存储器装置122可包括多个存储块,例如,块BLK(Block)0 1110、块BLK11120、块BLK2 1130和块BLKN-1 1140,并且块1110、1120、1130和1140中的每一个可包括多个页面,例如,2M个页面2MPAGES。为便于描述,将例示存储块中的每一个包括2M个页面。然而,存储器中的每一个可包括M个页面。每个页面可包括联接到多个字线的多个存储器单元。
根据可由一个存储器单元存储或表示的位的数量,可将存储器装置122中包括的多个存储块划分成单层单元(SLC)存储块和多层单元(MLC)存储块。SLC存储块可包括由每个被配置成其中存储一位数据的存储器单元实施的多个页面,并且具有高速数据计算性能和高耐久性。MLC存储块可包括由每个被配置成其中存储多位数据(例如,两位或更多位数据)的存储器单元实施的多个页面,并且具有比SLC存储块更大的数据存储空间。换言之,MLC存储块可以比SLC存储块更高的密度来集成。特别地,存储器装置122可包括作为MLC存储块的三层单元(TLC)存储块、四层单元(QLC)存储块或多层单元存储块以及包括由每个能够存储两位数据的存储器单元实施的多个页面的MLC存储块。TLC存储块可包括由每个能够存储三位数据的存储器单元实施的多个页面,QLC存储块可包括由每个能够存储四位数据的存储器单元实施的多个页面,并且多层单元存储块可包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面。
块1110、1120、1230和1140中的每一个可通过写入操作来存储从主机110提供的数据,并且通过读取操作将其中存储的数据提供到主机110。
图11是示意性地示出基于本实施例的存储器装置的单元阵列电路的示图。
参照图11,存储器系统120的存储器装置122中包括的多个存储块120a、120b和120c之中的每个存储块1230可包括多个单元串1240,多个单元串1240分别被实施为存储器单元阵列并联接到多个位线BL0至BLm-1。每列的单元串1240可包括一个或多个接地选择晶体管GST以及一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管MC0至MCn-1可串联地联接在选择晶体管GST和SST之间。存储器单元MC0至MCn-1中的每一个可被配置成其中能够存储多位数据信息的MLC。单元串1240可电联接到相应的位线BL0至BLm-1。
图11示出包括NAND闪速存储器单元的存储块1230。然而,基于本实施例的存储器装置122中包括的存储块120a、120b和120c中的每一个不限于NAND闪速存储器,而是可被实施为NOR型闪速存储器、具有在其中混合两种或更多种类型的存储器单元的混合闪速存储器、或具有嵌入在存储器芯片中的控制器的1-NAND闪速存储器。此外,基于本实施例的存储器装置122也可被实施为具有由导电浮栅形成的电荷存储层的闪速存储器装置或者具有由介电层形成的电荷存储层的电荷撷取闪存(CTF)存储器装置。
根据操作模式,存储器装置122的电压供应组件1210可提供待供应到各个字线的字线电压(例如,写入电压、读取电压和通过电压)以及待供应到形成存储器单元的体材料(bulk)(例如,阱区)的电压。电压供应组件1210的电压生成操作可在控制电路(未示出)的控制下执行。电压供应组件1210可生成多个可变读取电压以生成多个读取数据。响应于控制电路的控制,电压供应组件1210可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择存储块的字线中的一个,并且将字线电压分别提供到所选择字线和未选择字线。
存储器装置122的读取/写入电路1220可由控制电路控制,并且根据操作模式作为读出放大器或写入驱动器而操作。例如,在验证/正常读取操作的情况下,读取/写入电路1220可作为用于从存储器单元阵列读取数据的读出放大器而操作。在写入操作的情况下,读取/写入电路1220可作为用于根据待存储在存储器单元阵列中的数据来驱动位线的写入驱动器而操作。在写入操作期间,读取/写入电路1220可从缓冲器(未示出)接收待存储到存储器单元阵列中的数据,并且根据所接收的数据来驱动位线。对于该操作,读取/写入电路1220可包括分别对应于列或列对的多个页面缓冲器(PB)1222、1224和1226,并且页面缓冲器1222、1224和1226中的每一个可包括多个锁存器(未示出)。
图12是用于描述基于本实施例的存储器装置的3D堆叠结构的示图。
参照图12,存储器装置122可被实施为2D或3D存储器装置。特别地,如图12所示,存储器装置122可被实施为具有3D堆叠结构的非易失性存储器装置。当存储器装置122被实施为具有3D堆叠结构的非易失性存储器装置时,存储器装置122可包括多个存储块BLK0至BLKN-1。图12是示出图1中示出的存储器装置122的存储块120a、120b和120c的框图,并且存储块120a、120b和120c中的每一个可利用3D结构(或垂直结构)来实施。例如,存储块120a、120b和120c中的每一个可包括在例如x轴方向、y轴方向和z轴方向的第一至第三方向上延伸的结构,并因此具有3D结构。
重新参照图11,存储器装置122中包括的存储块1230中的每一个可包括在第二方向上延伸的多个NAND串NS,并且可在第一和第三方向上设置多个NAND串NS。NAND串NS中的每一个可联接到位线BL、一个或多个串选择线SSL、一个或多个接地选择线GSL、多个字线WL、一个或多个虚设字线DWL以及共源线CSL,并且包括多个晶体管结构TS。
也就是说,存储器装置122的存储块120a、120b和120c之中的存储块1230可联接到多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL、多个虚设字线DWL和多个共源线CSL,并因此包括多个NAND串。此外,在存储块1230中,多个NAND串NS可联接到一个位线BL,使得可在一个NAND串NS中实施多个晶体管。此外,NAND串NS中的每一个的串选择晶体管SST可联接到相应的位线BL,并且NAND串NS中的每一个的接地选择晶体管GST可联接到共源线CSL。在NAND串NS中的每一个的串选择晶体管SST与接地选择晶体管GST之间,可设置存储器单元MC。也就是说,可在存储器装置122的存储块120a、120b和120c的存储块1230中实施多个存储器单元。
应当注意的是,为便于理解基本构思,已参考“位”描述了所公开的实施例,要理解的是,所公开的实施例通常适用于“符号”,该“符号”可以是二进制或非二进制符号。应当进一步注意的是,在本文件中,术语错误检测算法(或错误检测码)用于传达至少能够检测数据流或数据块的错误符号的算法(或代码)。要理解的是,错误校正算法和错误校正码不仅能够检测错误,而且能够校正特定数量的错误符号。在该上下文中,错误校正算法可用于检测和/或校正错误符号。因此,在本文件中,这些算法有时可互换使用。
在所公开技术的实施例中,半导体存储器系统包括:存储器单元阵列,其包括多个存储器单元以存储数据;以及控制器,其与存储器单元阵列通信。控制器被配置成使用多于一种的错误检测算法来检测数据中的一个或多个错误位,该错误检测算法包括第一错误检测算法和第二错误检测算法,第一错误检测算法具有第一错误检测能力,第二错误检测算法具有能够检测比第一错误检测算法更多错误位的第二错误检测能力。第二错误检测算法被配置成在通过第一错误检测能力对一个或多个错误位的检测完成时终止对一个或多个错误位的检测。
第一错误检测算法被配置成基于从数据获得的奇偶校验矩阵来检测一个或多个错误位。例如,第一错误检测算法可包括彼得森算法。第二错误检测算法可包括错误定位多项式的确定算法和找到错误定位多项式的根。第二错误检测算法可包括伯莱坎普-梅西算法和钱氏搜索。
在所公开技术的实施例中,半导体存储器系统包括存储器单元阵列和控制器,控制器与存储器单元阵列通信以从存储器单元阵列读取数据。控制器包括:校正子生成器,计算数据的多个校正子;第一错误检测算法,具有第一错误检测能力以检测数据中的一个或多个错误位;第二错误检测算法,具有能够检测比第一错误检测算法更多错误位的第二错误检测能力以检测数据中的错误位;以及比较器,与校正子生成器通信,并且被配置成对多个校正子进行比较,以检查多个校正子是否满足终止第二错误检测算法的条件。
在一些实施方案中,第一错误检测算法可在第二错误检测算法开始操作之前首先进行操作。在其它实施方案中,第一和第二错误检测算法对数据并行地操作。其的有效性在于,通过第一错误检测算法进行的错误检测比通过第二错误检测算法进行的错误检测更快。在与第二错误检测算法相关联的计算非常复杂的示例实施方案中,与第一和
第二错误校正算法相关联的同时计算可提高错误检测的有效性并最小化检测错误所花费的时间。作为另一示例,即使第一错误检测算法由于错误的量超过第一错误校正算法的错误检测/校正能力而未能检测/校正错误,第一错误检测/校正算法的计算结果也可通过提供关于例如错误位的位置的信息以利于第二错误检测算法的进行。
第一错误检测算法可被配置成基于从多个校正子获得的奇偶校验矩阵来检测一个或多个错误位。作为另一示例,第一错误检测算法可包括彼得森算法。
第二错误检测算法可包括博斯-查德胡里-霍昆格姆(BCH)码,并且在这种情况下,终止第二错误检测算法的条件包括将奇偶校验矩阵的列指定为校正子。
第二错误检测算法包括里德-所罗门(RS)码,并且在这种情况下,终止第二错误检测算法的条件包括形成算术级数的校正子的幂序列。
第二错误检测算法可包括错误定位多项式的确定算法。在这种情况下,第一错误检测算法和错误定位多项式的确定算法并行地进行。
第二错误检测算法可包括确定错误定位多项式和找到错误定位多项式的根。在这种情况下,第一错误检测算法和找到错误定位多项式的根并行地进行。
在所公开技术的另一实施例中,半导体存储器系统包括存储器单元阵列和控制器,控制器与存储器单元阵列通信以从存储器单元阵列读取数据。控制器包括:校正子生成器,计算数据的多个校正子;第一错误检测算法,检测数据中的单个位错误或多达双位错误;第二错误检测算法,使用循环码来与第一错误检测算法并行地检测数据中的错误位;以及比较器,与校正子生成器通信,并且被配置成对多个校正子进行比较,以检查多个校正子是否满足终止第二错误检测算法的条件。
第一错误检测算法可被配置成基于从多个校正子获得的奇偶校验矩阵或彼得森算法来检测数据中的单个位错误或双位错误。第二错误检测算法可包括博斯-查德胡里-霍昆格姆(BCH)码,并且其中终止第二错误检测算法的条件包括基于形成算术级数的校正子的幂序列找到单个位错误。
第二错误检测算法可包括博斯-查德胡里-霍昆格姆(BCH)码,并且在这种情况下,终止第二错误检测算法的条件包括基于从多个校正子获得的奇偶校验矩阵的两个不同的列之和找到双位错误。
第二错误检测算法可包括里德-所罗门(RS)码,并且在这种情况下,终止第二错误检测算法的条件包括基于在奇偶校验矩阵的列中的校正子的幂的算术级数找到单个位错误。作为另一示例,终止第二错误检测算法的条件包括基于在奇偶校验矩阵的两个列中的校正子的幂的算术级数找到双位错误。
伯莱坎普-梅西算法是一种针对给定的二进制输出序列会找到最短线性反馈移位寄存器(LFSR)的算法。该算法还会找到任意域中的线性递归序列的最小多项式。域要求意味着伯莱坎普-梅西算法要求所有的非零元素都具有乘法逆元素。
钱氏搜索是一种用于确定有限域上定义的多项式的根的快速算法。钱氏搜索通常用于找到在对里德-所罗门码和BCH码进行解码时遇到的错误定位多项式的根。
里德-所罗门码对被视为一组称为符号的有限域元素的数据块进行操作。里德-所罗门码能够检测和校正多个符号错误。通过向数据添加t检查符号,里德-索罗门码可检测到最多不超过t个错误符号的任意组合,或者校正最多不超过[t/2]个符号。
彼得森算法(或彼得森解决方案)是一种用于互斥的并发编程算法,其允许两个或更多个进程共享单一使用的资源而不产生冲突,仅使用共享存储器进行通信。
基于本实施例,可以提高数据的可靠性和错误校正的效率。
虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和变型。
Claims (20)
1.一种错误校正设备,包括:
输入组件,接收数据;
错误信息生成组件,具有检测L个错误的第一错误检测能力和检测K个错误的第二错误检测能力,其中L是正整数,K是大于L的整数,并且所述错误信息生成组件基于所述第一错误检测能力来生成包括所接收的数据中包含的错误的数量和所述错误的位置的错误信息,并且当基于所述第一错误检测能力未生成所述错误信息时,基于所述第二错误检测能力来生成所述错误信息;
错误校正组件,基于所生成的错误信息来校正所述所接收的数据的所述错误;以及
输出组件,输出经校正数据。
2.根据权利要求1所述的错误校正设备,其中所述错误信息生成组件包括:
第一错误信息生成模块,通过所述第一错误检测能力来生成作为所述错误信息的第一错误信息;
第二错误信息生成模块,通过所述第二错误检测能力来生成作为所述错误信息的第二错误信息;以及
错误信息生成控制模块,控制所述第一错误信息生成模块和所述第二错误信息生成模块的操作。
3.根据权利要求2所述的错误校正设备,其中当所述第一错误信息生成模块和所述第二错误信息生成模块彼此并行地操作时,在由所述第一错误信息生成模块生成所述第一错误信息并且所述第二错误信息生成模块正在操作的情况下,所述错误信息生成控制模块控制所述第二错误信息生成模块以停止所述第二错误信息生成模块的操作。
4.根据权利要求2所述的错误校正设备,其中所述错误信息生成组件进一步包括校正子计算模块,所述校正子计算模块基于奇偶校验矩阵来对所述所接收的数据执行校正子计算,
其中所述第一错误信息生成模块和所述第二错误信息生成模块中的一个或多个基于校正子计算结果来生成所述错误信息。
5.根据权利要求4所述的错误校正设备,其中所述错误信息生成组件进一步包括多项式生成模块,所述多项式生成模块基于所述校正子计算结果来生成具有所述错误信息作为根的多项式,
其中所述第一错误信息生成模块和所述第二错误信息生成模块中的一个或多个基于所生成的多项式来生成所述错误信息。
6.根据权利要求5所述的错误校正设备,其中所述第一错误信息生成模块基于所述奇偶校验矩阵的列向量的编号来生成所述第一错误信息,所述列向量具有与所述多项式的各个项之间的相乘因子相对应的几何比。
7.根据权利要求6所述的错误校正设备,其中所述第二错误信息生成模块计算所述多项式的根,并且基于所计算的根来生成所述第二错误信息。
8.一种错误校正方法,包括以下步骤:
接收数据;
基于检测L个错误的第一错误检测能力来生成包括所接收的数据中包含的错误的数量和所述错误的位置的错误信息,并且当基于所述第一错误检测能力未生成所述错误信息时,基于检测K个错误的第二错误检测能力来生成所述错误信息,其中L是正整数,K是大于L的整数;
基于所生成的错误信息来校正所述所接收的数据的所述错误;并且
输出经校正数据。
9.根据权利要求8所述的错误校正方法,其中在生成所述错误信息的步骤中,
当并行地应用第一错误检测能力和第二错误检测能力时,在通过所述第一错误检测能力生成第一错误信息并且正在执行通过所述第二错误检测能力生成第二错误信息的操作的情况下,停止生成所述第二错误信息的操作。
10.根据权利要求9所述的错误校正方法,其中生成所述错误信息的步骤包括以下步骤:基于奇偶校验矩阵来对所述所接收的数据执行校正子计算,并且通过将所述第一错误检测能力和所述第二错误检测能力中的一个或多个应用于校正子计算结果来生成所述错误信息。
11.根据权利要求10所述的错误校正方法,其中生成所述错误信息的步骤包括以下步骤:基于所述校正子计算结果来生成具有所述错误信息作为根的多项式,并且通过将所述第一错误检测能力和所述第二错误检测能力中的一个或多个应用于所生成的多项式来生成所述错误信息。
12.根据权利要求11所述的错误校正方法,其中通过应用所述第一错误检测能力来生成所述错误信息的步骤包括以下步骤:基于所述奇偶校验矩阵的列向量的编号来生成所述错误信息,所述列向量具有与所述多项式的各个项之间的相乘因子相对应的几何比。
13.根据权利要求12所述的错误校正方法,其中通过应用所述第二错误检测能力来生成所述错误信息的步骤包括以下步骤:计算所述多项式的根,并且基于所计算的根来生成所述错误信息。
14.一种存储器系统,包括:
存储器装置,根据写入命令在其中存储数据,并且根据读取命令输出其中存储的数据;以及
控制器,控制所述存储器装置的操作,
其中所述控制器包括:
存储器接口,从所述存储器装置接收与主机的读取请求相对应的读取数据;
数据缓冲器,临时存储通过所述存储器接口接收的所述读取数据和通过校正所述读取数据而获得的经校正数据;
错误校正设备,具有检测L个错误的第一错误检测能力和检测K个错误的第二错误检测能力,其中L是正整数,K是大于L的整数,并且所述错误校正设备:基于所述第一错误检测能力来生成包括所述数据缓冲器中存储的所述读取数据中包含的错误的数量和所述错误的位置的错误信息,当基于所述第一错误检测能力未生成所述错误信息时,基于所述第二错误检测能力来生成所述错误信息,基于所生成的错误信息来校正所述数据缓冲器中存储的所述读取数据的所述错误,并且将经校正读取数据临时存储在所述数据缓冲器中;以及
主机接口,将临时存储在所述数据缓冲器中的所述读取数据传送到所述主机。
15.根据权利要求14所述的存储器系统,其中所述控制器包括:
第一错误信息生成模块,通过所述第一错误检测能力来生成作为所述错误信息的第一错误信息;
第二错误信息生成模块,通过所述第二错误检测能力来生成作为所述错误信息的第二错误信息;以及
错误信息生成控制模块,控制所述第一错误信息生成模块和所述第二错误信息生成模块的操作。
16.根据权利要求15所述的存储器系统,其中当所述第一错误信息生成模块和所述第二错误信息生成模块彼此并行地操作时,在由所述第一错误信息生成模块生成所述第一错误信息并且所述第二错误信息生成模块正在操作的情况下,所述错误信息生成控制模块控制所述第二错误信息生成模块以停止所述第二错误信息生成模块的操作。
17.根据权利要求15所述的存储器系统,其中所述控制器进一步包括校正子计算模块,所述校正子计算模块基于奇偶校验矩阵对所述数据缓冲器中存储的所述读取数据执行校正子计算,
其中所述第一错误信息生成模块和所述第二错误信息生成模块中的一个或多个基于校正子计算结果来生成所述错误信息。
18.根据权利要求17所述的存储器系统,其中所述控制器进一步包括多项式生成模块,所述多项式生成模块基于所述校正子计算结果来生成具有所述错误信息作为根的多项式,
其中所述第一错误信息生成模块和所述第二错误信息生成模块中的一个或多个基于所生成的多项式来生成所述错误信息。
19.根据权利要求18所述的存储器系统,其中所述第一错误信息生成模块基于所述奇偶校验矩阵的列向量的编号来生成所述第一错误信息,所述列向量具有与所述多项式的各个项之间的相乘因子相对应的几何比。
20.根据权利要求19所述的存储器系统,其中所述第二错误信息生成模块计算所述多项式的根,并且基于所计算的根来生成所述第二错误信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180169391A KR20200079811A (ko) | 2018-12-26 | 2018-12-26 | 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 |
KR10-2018-0169391 | 2018-12-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111367709A true CN111367709A (zh) | 2020-07-03 |
Family
ID=71124299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910982561.9A Withdrawn CN111367709A (zh) | 2018-12-26 | 2019-10-16 | 错误校正设备及其操作方法和使用该设备的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11095310B2 (zh) |
KR (1) | KR20200079811A (zh) |
CN (1) | CN111367709A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020150515A (ja) * | 2019-03-15 | 2020-09-17 | キオクシア株式会社 | 誤り訂正回路及びメモリシステム |
KR20210080982A (ko) * | 2019-12-23 | 2021-07-01 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US11281529B2 (en) * | 2020-02-14 | 2022-03-22 | Micron Technology, Inc. | Error detection code generation techniques |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079182A1 (en) * | 2005-09-09 | 2007-04-05 | Ching-Yu Chen | Method for calculating an error detecting code |
US20090217140A1 (en) * | 2008-02-27 | 2009-08-27 | Samsung Electronics Co., Ltd. | Memory system and method for providing error correction |
US20110209031A1 (en) * | 2010-02-25 | 2011-08-25 | Yong June Kim | Methods of Performing Error Detection/Correction in Nonvolatile Memory Devices |
US20140068376A1 (en) * | 2012-08-30 | 2014-03-06 | Kabushiki Kaisha Toshiba | Memory controller and semiconductor storage device |
CN103631670A (zh) * | 2012-08-22 | 2014-03-12 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1821415B1 (en) | 2006-02-16 | 2009-03-11 | Telefonaktiebolaget L M Ericsson (Publ) | Hybrid decoding using multiple turbo decoders in parallel |
US9450613B2 (en) * | 2010-11-10 | 2016-09-20 | Infineon Technologies Ag | Apparatus and method for error correction and error detection |
US10200066B2 (en) * | 2016-03-09 | 2019-02-05 | SK Hynix Inc. | Code reconstruction scheme for multiple code rate TPC decoder |
-
2018
- 2018-12-26 KR KR1020180169391A patent/KR20200079811A/ko not_active Application Discontinuation
-
2019
- 2019-09-27 US US16/585,564 patent/US11095310B2/en active Active
- 2019-10-16 CN CN201910982561.9A patent/CN111367709A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079182A1 (en) * | 2005-09-09 | 2007-04-05 | Ching-Yu Chen | Method for calculating an error detecting code |
US20090217140A1 (en) * | 2008-02-27 | 2009-08-27 | Samsung Electronics Co., Ltd. | Memory system and method for providing error correction |
US20110209031A1 (en) * | 2010-02-25 | 2011-08-25 | Yong June Kim | Methods of Performing Error Detection/Correction in Nonvolatile Memory Devices |
CN103631670A (zh) * | 2012-08-22 | 2014-03-12 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据处理方法 |
US20140068376A1 (en) * | 2012-08-30 | 2014-03-06 | Kabushiki Kaisha Toshiba | Memory controller and semiconductor storage device |
Also Published As
Publication number | Publication date |
---|---|
US20200210292A1 (en) | 2020-07-02 |
US11095310B2 (en) | 2021-08-17 |
KR20200079811A (ko) | 2020-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10381089B2 (en) | Semiconductor memory system performing read operation based on counted memory cells and operating method thereof | |
CN108140407B (zh) | 用于读取数据存储设备的软比特技术 | |
US10700706B2 (en) | Memory system with decoders and method of operating such memory system and decoders | |
CN108073466B (zh) | 用于减少数据访问延迟的介质质量感知ecc解码方法选择 | |
US9411679B2 (en) | Code modulation encoder and decoder, memory controller including them, and flash memory system | |
US11450400B2 (en) | Controller and operating method thereof | |
CN107731259B (zh) | 最佳读取参考电压的存储器系统及其操作方法 | |
US10148293B2 (en) | Incremental LLR generation for flash memories | |
US10521291B2 (en) | Controller, semiconductor memory system and operating method thereof | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
US10725863B2 (en) | Memory system and method for operating the same | |
KR102275717B1 (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
CN107634764B (zh) | 使用低密度奇偶校验码的解码器及存储控制器 | |
US20160124805A1 (en) | Nonvolatile memory system and data recovery method thereof | |
US10439647B2 (en) | Controller, semiconductor memory system and operating method thereof | |
US11095310B2 (en) | Error correction apparatus, operation method thereof and memory system using the same | |
US20160373137A1 (en) | Enhanced chip-kill schemes by using ecc syndrome pattern | |
US20210020217A1 (en) | Encoder for memory system and method thereof | |
KR20210100357A (ko) | Ldpc 디코더, ldpc 디코더의 동작 방법 및 반도체 메모리 시스템 | |
US11770133B1 (en) | Exact ber reporting in the presence of CRC termination | |
US10396825B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
US10084487B2 (en) | Apparatuses and methods for erasure-assisted ECC decoding | |
US11265021B2 (en) | Apparatus and method for error recovery in memory system | |
US10528496B2 (en) | Controller and operating method thereof | |
US9824778B2 (en) | Nonvolatile memory system and data recovery method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200703 |