CN113345513A - 使用来自先前迭代的准则配置迭代性错误校正参数 - Google Patents
使用来自先前迭代的准则配置迭代性错误校正参数 Download PDFInfo
- Publication number
- CN113345513A CN113345513A CN202110231988.2A CN202110231988A CN113345513A CN 113345513 A CN113345513 A CN 113345513A CN 202110231988 A CN202110231988 A CN 202110231988A CN 113345513 A CN113345513 A CN 113345513A
- Authority
- CN
- China
- Prior art keywords
- iteration
- parity
- sense word
- sense
- bit
- 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.)
- Granted
Links
- 238000012937 correction Methods 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 148
- 230000008569 process Effects 0.000 claims abstract description 113
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 99
- 238000012545 processing Methods 0.000 claims abstract description 74
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 abstract description 148
- 238000010586 diagram Methods 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/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
-
- 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/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/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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
-
- 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
-
- 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)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请案涉及使用来自先前迭代的准则配置迭代性错误校正参数。存储器系统中的处理装置从存储器装置读取感测字并且在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果。所述处理装置使用所述多个奇偶校验方程式结果确定所述感测字的校正子,确定所述感测字的所述校正子是否满足码字准则,以及响应于所述感测字的所述校正子不满足所述码字准则,执行迭代性LDPC校正过程,其中所述LDPC校正过程中的第一迭代之后的至少一个迭代使用至少部分地基于前一迭代或部分迭代的准则。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及使用来自存储器子系统中的先前迭代的准则配置迭代性错误校正参数。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一方面中,本申请案提供一种系统,其包括:存储器装置;和处理装置,其以操作方式与所述存储器装置耦合以执行包括以下操作的操作:从所述存储器装置读取感测字;在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;使用所述多个奇偶校验方程式结果确定所述感测字的校正子;确定所述感测字的所述校正子是否满足码字准则;和响应于所述感测字的所述校正子不满足所述码字准则,执行迭代性低密度奇偶校验(LDPC)校正过程,其中所述LDPC校正过程中的第一迭代之后的至少一个迭代使用至少部分地基于前一迭代或部分迭代的准则。
在另一方面中,本申请案提供一种方法,其包括:读取感测字;在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;使用所述多个奇偶校验方程式结果确定所述感测字的校正子;确定所述感测字的所述校正子是否满足码字准则;和响应于所述感测字的所述校正子不满足所述码字准则,执行迭代性低密度奇偶校验(LDPC)校正过程,其中所述LDPC校正过程中的第一迭代之后的至少一个迭代使用至少部分地基于前一迭代或部分迭代的准则。
在另一方面中,本申请案提供一种包括指令的非暂时性计算机可读存储媒体,所述指令当由处理装置执行时致使所述处理装置执行包括以下操作的操作:从存储器装置读取感测字;在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;确定所述多个奇偶校验方程式结果是否指示所述感测字中的错误;和响应于所述奇偶校验方程式结果指示所述感测字中的错误:执行错误校正过程的第一迭代;和执行所述错误校正过程的一或多个后续迭代,其中所述一或多个后续迭代包括翻转所述感测字中的其中处于未满足状态的奇偶校验方程式结果的数目等于针对来自前一迭代或部分迭代的所述感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目的任何位。
附图说明
根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是根据本公开的一些实施例的使用来自先前迭代的准则配置迭代性错误校正参数的实例方法的流程图。
图3是说明根据本公开的一些实施例的用于配置迭代性错误校正参数的感测字校正子矩阵的图式。
图4是根据本公开的一些实施例的其中使用来自先前迭代的准则配置一或多个参数的迭代性错误校正过程的实例方法的流程图。
图5是说明根据本公开的一些实施例的用于在一或多个迭代之后配置迭代性错误校正参数的经更新感测字校正子矩阵的图式。
图6是根据本公开的一些实施例的在阈值数目个迭代之后使用可调整参数的迭代性错误校正的实例方法的流程图。
图7是根据本公开的一些实施例的其中在阈值数目个迭代之后调整一或多个参数的迭代性错误校正过程的实例方法的流程图。
图8是说明根据本公开的一些实施例的用于在一或多个迭代之后配置迭代性错误校正参数的经更新感测字校正子矩阵的图式。
图9是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的方面针对于使用来自存储器子系统中的先前迭代的准则配置迭代性错误校正参数。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统的实例是包含一或多个非易失性存储器装置和管理非易失性存储器装置的存储器子系统控制器的固态驱动器(SSD)。存储器子系统控制器可将数据编码成可存储于存储器装置处的格式。举例来说,可使用一类错误检测和校正码(ECC)(例如低密度奇偶校验(LDPC)码)来编码数据。LDPC码是容量逼近码,这意指存在允许将错误阈值设置为极接近于理论最大值的实际构造。此错误阈值定义数据错误的上限,借此可使丢失信息的概率尽可能地小。LDPC码可靠且高效,这使其可用于带宽受限的应用中。举例来说,写入到存储器装置的物理存储器单元的经编码数据可称为码字。从单元读取的可包含错误并且不同于码字的数据可称为感测字。感测字可包含用户数据、错误校正码、元数据或其它信息中的一或多个。
在执行错误校正码操作时,作为读取操作的部分,可将存储于存储装置上的经编码数据从存储器装置发射到存储器子系统控制器。存储器子系统控制器可执行将经编码数据解码成原始位序列的解码操作,所述原始位序列经编码以存储于存储器装置上。存储器子系统控制器接收的经解码数据的位数可归因于噪声、干扰、失真、位同步错误或来自媒体自身(固有和外在两者)的错误而翻转。举例来说,最初可存储为0的位可翻转为1,或反过来最初可存储为1的位可翻转为0。
常规存储器子系统执行尝试校正从存储器装置读取的感测字中的位翻转错误的错误校正码操作。举例来说,常规存储器子系统可对所存储的数据执行错误校正码操作以检测和校正经编码数据中的错误。在许多情况下使用迭代过程解码数据。可解码数据阵列的片段以产生对应位(例如,感测字)串。
一般来说,常规存储器子系统的错误校正码能力是时间和资源密集型过程。错误校正过程使用数个奇偶校验方程式,每一奇偶校验方程式适用于感测字的位子集,所述奇偶校验方程式一起用以识别感测字中的位翻转错误。在常规错误校正过程的每一迭代中,可对感测字的每一位至少处理两次(例如,对整个感测字使用两个或更多个遍次)。举例来说,在第一遍次期间,存储器子系统控制器可识别与感测字的每一位相关联的能量并且识别与感测字的任一位相关联的最大能量。在一个实施例中,与给定位相关联的能量(在本文中也称为能级)可由与所述位相关联的数个未满足的奇偶校验方程式表示。在另一实施例中,能量可为数个未满足的奇偶校验方程式加当前位值与其原始值的XOR。接着需要对感测字的每一位的第二遍次以将每一位的能量与所识别的最大能量进行比较。常规错误校正过程则可包含翻转那些具有匹配最大能量的能量的位,并且移动到过程的下一迭代。对感测字的每一位处理两次以便识别那些应在给定迭代中翻转的位的需求给常规错误校正过程增加额外时间和复杂性。
本公开的方面通过使用来自存储器子系统中的先前迭代或部分迭代的准则配置迭代性错误校正参数来解决以上和其它缺陷。在一个实施例中,存储器子系统控制器的奇偶校验组件从存储器子系统的存储器装置读取感测字并且在感测字的对应子集上执行数个奇偶校验方程式。在一个实施例中,奇偶校验方程式中的每一个对应于感测字的不同位子集,不过不同子集可共享一或多个位。每一奇偶校验方程式产生指示感测字的对应子集中设置为值‘1’的位数是偶数还是奇数的奇偶校验方程式结果。在一个实施例中,如果对应子集中的设置为值‘1’的位数是偶数,那么奇偶校验方程式结果称为处于满足状态(即,指示感测字的对应子集中不存在错误的状态),且如果对应子集中的设置为值‘1’的位数是奇数,那么奇偶校验方程式结果称为处于未满足状态(即,指示感测字的对应子集中存在错误的状态)。由于感测字的任一位可以是多个不同子集的部分,因此所述位可促成多个奇偶校验方程式结果或与多个奇偶校验方程式结果相关联。在一个实施例中,奇偶校验组件逻辑上组合全部奇偶校验方程式结果以确定感测字的校正子。如果感测字的校正子不满足码字准则(例如,不指示全部奇偶校验方程式结果处于满足状态),那么奇偶校验组件确定感测字中存在一或多个错误并且起始迭代性LDPC校正过程。一旦奇偶校验组件开始翻转感测字中的位,位序列便可称为经校正字。在一个实施例中,第一迭代之后的每一迭代或第一迭代之后的至少一个迭代使用至少部分地基于LDPC校正过程的前一迭代的一些准则。所述准则用于确定翻转经校正字的哪些位(即,从‘1’改变为‘0’或从‘0’改变为‘1’)并且可包含例如来自前一迭代(即,紧接在当前迭代之前执行的迭代)的经校正字的任一位的最大能量。奇偶校验组件可执行LDPC校正过程的多个迭代,直到经校正字的校正子满足码字准则,或直到达到阈值数目个迭代。
本公开的其它方面通过在阈值数目个迭代之后用可调整参数实施迭代性错误校正来解决以上和其它缺陷。在一个实施例中,存储器子系统控制器的奇偶校验组件从存储器子系统的存储器装置读取感测字并且在感测字的对应子集上执行数个奇偶校验方程式。每一奇偶校验方程式产生指示感测字的对应子集中设置为值‘1’的位数是偶数还是奇数的奇偶校验方程式结果。如果感测字的校正子不满足码字准则(例如,不指示全部奇偶校验方程式结果处于满足状态),那么奇偶校验组件确定感测字中存在一或多个错误并且在阈值数目个迭代之后用可调整参数起始迭代性LDPC校正过程。在一个实施例中,最初使用至少部分地基于LDPC校正过程的前一迭代的第一准则执行第一阈值数目个迭代(例如,比针对来自前一迭代的感测字或经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目小的数目)。对于在已达到第一阈值数目个迭代之后执行的任何迭代,LDPC校正过程可使用第二准则,所述第二准则也至少部分地基于LDPC校正过程的前一迭代,但可不同于第一准则。举例来说,第二准则可包含针对来自前一迭代的经校正字的任一位处于未满足状态的最大数目个奇偶校验方程式结果。奇偶校验组件可执行LDPC校正过程的多个迭代,直到经校正字的校正子满足码字准则,或直到达到第二阈值数目个迭代。下文描述奇偶校验组件和迭代性LDPC校正过程的额外细节。
通过使用来自先前迭代的准则或在阈值数目个迭代之后使用可调整参数配置迭代性错误校正参数,处理感测字的每一位的次数(即,对感测字的每一位的遍次的数目)可在错误校正过程中从两次或更多次减少到仅一次。举例来说,在单遍次期间,存储器子系统控制器可识别与感测字的每一位相关联的未被满足奇偶校验方程式结果的数目并且识别所述未被满足奇偶校验方程式的数目等于针对来自前一迭代的感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目所针对的感测字的任何位。在一个实施例中,存储器子系统控制器翻转那些位并且移动到过程的下一迭代而不必对感测字进行第二遍次。这减少奇偶校验和错误校正过程的时间和复杂性,进而释放存储器子系统控制器的资源来执行其它操作。另外,本文中所描述的技术可使得在较少迭代中完成错误校正并且使不可校正的错误减少。此外,虽然本文中在读取存储于存储器子系统中的数据的上下文中描述迭代性错误校正技术,但应了解这些相同技术还适用于其它实施方案。举例来说,在光通信系统中,可能需要验证接收到的数据是否匹配发射的数据。如果在所接收的数据中识别到错误,那么可应用本文中所描述的迭代性错误校正技术来校正那些错误。可在这些技术的任何数目个不同实施方案中实现类似于上文所描述的那些优点的优点。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置(例如,处理器)的计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组以及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
虽然描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子系统控制器115可包含被配置成执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是替代地可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令来实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一个实施例中,存储器子系统110包含奇偶校验组件113,其可使用来自存储器子系统110中的先前迭代或部分迭代的准则配置迭代性错误校正参数。在一个实施例中,响应于从存储器装置130或140中的一个读取的感测字的校正子不满足码字准则(例如,奇偶校验方程式结果中的一或多个处于未满足状态),奇偶校验组件可执行迭代性LDPC校正过程。在一个实施例中,奇偶校验组件113确定针对感测字的每一位处于未满足状态的奇偶校验方程式结果的数目,并且确定针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。如果当前迭代是迭代性LDPC校正过程的第一迭代,那么奇偶校验组件113可翻转感测字中的具有满足能量阈值条件(例如,大于或等于阈值能级)的能级(例如,处于未满足状态的奇偶校验方程式结果的阈值数目)的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,阈值能级等于感测字的任一位的最大能量(例如,处于未满足状态的奇偶校验方程式结果的最大数目)。如果当前迭代并非第一迭代,那么奇偶校验组件113可翻转感测字中的具有等于来自前一迭代的经校正字的任一位的最大能量的能量的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。奇偶校验组件113进一步确定在迭代性LDPC校正过程中执行的迭代数目是否满足迭代准则(例如,小于阈值迭代数目),如果是,那么通过移动到下一迭代来继续LDPC校正过程。响应于执行的迭代数目不满足迭代准则(例如,满足或超过阈值迭代数目),奇偶校验组件113可结束LDPC校正过程。因此,在第一迭代之后的至少一个迭代(例如,第一迭代之后的每一迭代)中,奇偶校验组件113使用至少部分地基于LDPC校正过程的前一迭代或部分迭代的准则。举例来说,第二次迭代可使用基于第一迭代的准则,第三迭代可使用基于第二次迭代的准则等。取决于实施例,给定位的能量可表示与所述位相关联的未被满足奇偶校验方程式的数目或未被满足奇偶校验方程式的数目加当前位值与其原始值的XOR(例如,在第一迭代之前)。
在另一实施例中,奇偶校验组件113确定座的感测字的每一位处于未满足状态的奇偶校验方程式结果的数目,并且确定针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。如果当前迭代是迭代性LDPC校正过程的第一迭代之后的阈值数目个迭代中的一个(例如,是第一迭代之后的前3个或4个迭代中的一个),那么奇偶校验组件113可翻转感测字或经校正字中的其中处于未满足状态的奇偶校验方程式结果的数目大于或等于比针对来自前一迭代的感测字或经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目小的数目的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。如果当前迭代是阈值迭代数目之后的迭代(例如,并非第一迭代之后的前3个或4个迭代中的一个),那么奇偶校验组件113可翻转经校正字中的其中处于未满足状态的奇偶校验方程式结果的数目等于针对来自前一迭代的经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。奇偶校验组件113进一步确定迭代性LDPC校正过程中执行的迭代数目是否满足迭代准则(例如,小于阈值迭代数目),如果是,那么通过移动到下一迭代来继续LDPC校正过程。响应于执行的迭代数目不满足迭代准则(例如,满足或超过阈值迭代数目),奇偶校验组件113可结束LDPC校正过程。因此,在阈值数目个迭代之后,奇偶校验组件113可调整用于至少部分地基于LDPC校正过程的前一迭代确定是否翻转经校正字的给定位的准则。下文描述关于奇偶校验组件113的操作的另外细节。
图2是根据本公开的一些实施例的使用来自先前迭代的准则配置迭代性错误校正参数的实例方法的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的奇偶校验组件113执行方法200。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作205处,处理逻辑从请求者接收从例如存储器装置130的存储器装置读取数据的请求。在一个实施例中,存储器子系统控制器115从主机系统120或从连接到存储器子系统110或存储器子系统110内的某一其它组件接收请求。所述请求可识别将从存储器子系统110的存储器装置130读取的数据。
在操作210处,处理逻辑从存储器装置130读取感测字。在一个实施例中,感测字包含表示在操作205处请求的数据的位序列。在一个实施例中,奇偶校验组件113识别存储器装置130中的存储有所请求的数据的物理地址,从存储器装置130读取感测字,并且在可执行奇偶校验和/或错误校正过程时将感测字暂时存储于缓冲器或其它存储方位中。在图3中示出实例感测字310。感测字310被说明为包含八个感测字位(即,SWB0-SWB7)序列,不过应理解,这仅是用于说明性目的的实例。在其它实施例中,感测字可包含任何数目个位,例如数千位(例如,36k位)。
在操作215处,处理逻辑在感测字的对应子集上执行数个奇偶校验方程式。在一个实施例中,奇偶校验方程式中的每一个对应于感测字的不同位子集,不过不同子集可共享一或多个位。举例来说,在一个实施例中,子集可包含出自感测字中的36k位的40位。举例来说,可存在各自被配置成在40位的不同子集上操作的数千(例如,3k)奇偶校验方程式。每一奇偶校验方程式产生指示感测字的对应子集中设置为值‘1’的位数是偶数还是奇数的奇偶校验方程式结果。在一个实施例中,如果对应子集中设置为值‘1’的位数是偶数,那么奇偶校验方程式结果称为处于满足状态,且如果对应子集中的设置为值‘1’的位数是奇数,那么奇偶校验方程式结果称为处于未满足状态。在另一实施例中,这些值(即,逻辑状态)可反向。由于感测字的任一位可以是多个不同子集的部分,因此所述位可促成多个奇偶校验方程式结果或与多个奇偶校验方程式结果相关联。在一个实施例中,感测字的每一位是供奇偶校验方程式使用的相同数目个子集(例如,4个子集)的部分。
在操作220处,处理逻辑使用所确定的奇偶校验方程式结果确定感测字的校正子。在一个实施例中,奇偶校验组件113例如通过附加或串连奇偶校验方程式结果,逻辑上组合奇偶校验方程式结果以确定校正子。在图3中示出实例校正子320。校正子320被说明为包含八个校正子位(即,SB0-SB7)序列,不过应理解,这仅是用于说明性目的的实例。在其它实施例中,校正子可包含任何数目个位,例如数千位(例如,3k位)。
图3是说明根据本公开的一些实施例的用于配置迭代性错误校正参数的感测字校正子矩阵300的框图。如上文所描述,感测字310包含从存储器装置读取的数个位,且校正子320包含表示奇偶校验方程式结果的数个位。在所说明实例中,存在各自对应于感测字310的不同位子集的八个奇偶校验方程式。举例来说,由SB0表示的第一子集包含SWB0、SWB1、SWB2和SWB4。由SB1表示的第二子集包含SWB0、SWB1、SWB2和SWB5。由SB2表示的第三子集包含SWB0、SWB1、SWB2和SWB6。存在由校正子320的每一位表示的额外子集。在矩阵300中,值‘1’可指示感测字310的给定位是由校正子320的位表示的子集的部分,而值‘0’可指示感测字310的位并非子集的部分。
在一个实施例中,奇偶校验方程式各自识别感测字310的是每一对应子集的部分的位的逻辑状态,将那些位加总在一起并且确定结果是偶数还是奇数。换句话说,每一奇偶校验方程式确定感测字310的是对应子集的部分并且具有特定逻辑状态的位的数目是偶数还是奇数。举例来说,奇偶校验组件113可确定感测字310的对应子集中的设置为逻辑值‘1’的位数是偶数还是奇数。在一个实施例中,如果感测字310的对应子集中的设置为逻辑值‘1’的位数是偶数,那么奇偶校验方程式结果可为‘0’,这指示满足奇偶校验方程式。如果感测字310的对应子集中的设置为逻辑值‘1’的位数是奇数,那么奇偶校验方程式结果可为‘1’,这指示未满足奇偶校验方程式。校正子320的每一位表示这些奇偶校验方程式结果中的一个。因此,对于SB0,由于SWB0设置为值‘1’,SWB1设置为值‘0’,SWB2设置为值‘1’,且SWB4设置为值‘0’,因此对应子集中的感测字310的两个位设置为值‘1’。两个位是偶数,因此由SB0表示的奇偶校验方程式结果是‘0’,这指示满足对应奇偶校验方程式。对于SB2,举例来说,由于SWB0设置为值‘1’,SWB1设置为值‘0’,SWB2设置为值‘1’,且SWB6设置为值‘1’,因此对应子集中的感测字310中的三个位设置为值‘1’。三个位是奇数,因此由SB0表示的奇偶校验方程式结果是‘1’,这指示未满足对应奇偶校验方程式。
再次参考图2,在操作225处,处理逻辑确定感测字的校正子是否满足LDPC校验准则。在一个实施例中,奇偶校验组件113确定校正子中的全部奇偶校验方程式结果是否处于满足状态(例如,具有值‘0’)。在一个实施例中,如果校正子中的全部奇偶校验方程式结果处于满足状态,那么奇偶校验组件113确定校正子满足LDPC检验准则。相反地,如果校正子中的全部奇偶校验方程式结果不处于满足状态(例如,一或多个奇偶校验方程式结果具有值‘1’),那么奇偶校验组件113确定校正子不满足LDPC检验准则。如果感测字的校正子确实满足码字准则,那么奇偶校验组件113确定感测字中不存在错误,并且在操作230处,将感测字作为所请求的数据返回给请求者。
然而,如果感测字的校正子不满足码字准则,那么奇偶校验组件113确定感测字中存在一或多个错误,并且在操作235处,执行迭代性LDPC校正过程。在一个实施例中,第一迭代之后的至少一个迭代使用至少部分地基于LDPC校正过程的前一迭代或部分迭代的准则。所述准则用于确定翻转经校正字的哪些位(即,从‘1’改变为‘0’或从‘0’改变为‘1’),并且可包含例如针对来自前一完整迭代(即,紧接在当前迭代之前执行的迭代)的经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。在另一实施例中,准则可基于部分迭代。举例来说,如果完整迭代包含检验2000位,那么可从那些位中的仅1000个(即,迭代的一半)或某一其它分数(例如,三分之一、四分之一等)确定奇偶校验方程式结果的最大数目(或最大能量)。如果在当前迭代中,奇偶校验组件113已经检验组成完整迭代的位的特定分数,那么来自当前迭代的此部分迭代的位可用于准则。奇偶校验组件113可执行LDPC校正过程的多个迭代直到经校正字的校正子在操作225处满足码字准则,或直到达到阈值数目个迭代。下文关于图4描述迭代性LDPC校正过程的额外细节。
图4是根据本公开的一些实施例的其中使用来自先前迭代的准则配置一或多个参数的迭代性错误校正过程的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的奇偶校验组件113执行方法400。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作405处,处理逻辑确定感测字的校正子是否满足LDPC校验准则。如果感测字的校正子确实满足码字准则,那么在操作410处,处理逻辑确定感测字中不存在错误。然而,如果感测字的校正子不满足码字准则,那么奇偶校验组件113确定感测字中存在一或多个错误并且起始迭代性LDPC校正过程。迭代性LDPC校正过程可包含数个迭代,这从第一迭代开始并且继续一或多个后续迭代。
在操作415处,处理逻辑确定针对感测字的每一位处于未满足状态的奇偶校验方程式结果的数目。使用如上所述并且在图3中说明的实例,感测字310的SWB0是对应于校正子320的SB0、SB1、SB2和SB3的子集的部分,感测字310的SWB1是对应于校正子320的SB0、SB1、SB2和SB4的子集的部分,且感测字310的SWB7是对应于校正子320的SB3、SB5、SB6和SB7的子集的部分。感测字310的额外位是由校正子320的每一位表示的不同子集的部分。对于SWB0,由于SB0设置为值‘0’,SB1设置为值‘0’,SB2设置为值‘1’,且SB3设置为值‘1’,因此校正子320的两个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。对于SWB1,由于SB0设置为值‘0’,SB1设置为值‘0’,SB2设置为值‘1’,且SB4设置为值‘0’,因此校正子320的一个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。对于SWB7,由于SB3设置为值‘1’,SB5设置为值‘1’,SB6设置为值‘0’,且SB7设置为值‘1’,因此校正子320的三个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。在另一实施例中,处理逻辑确定感测字的每一位的能量。取决于实施例,给定位的能量可表示与所述位相关联的未被满足奇偶校验方程式的数目或未被满足奇偶校验方程式的数目加当前位值与其原始值的XOR。
在操作420处,处理逻辑确定针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。由于SWB0具有两个未被满足的奇偶校验方程式,SWB1具有一个未被满足的奇偶校验方程式,且SWB7具有三个未被满足的奇偶校验方程式,因此奇偶校验组件113可确定最大数目是当前迭代中的三个未被满足奇偶校验方程式。奇偶校验组件113可存储此最大数目的指示(例如,存储于本地存储器119中或存储器子系统110中的其它处)以供在后续迭代中使用。在另一实施例中,处理逻辑确定感测字的任一位的最大能量。
在操作425处,处理逻辑确定LDPC校正过程的当前迭代是否是第一迭代。如果当前迭代是第一迭代,那么在操作430处,处理逻辑翻转感测字中的其中处于未满足状态的奇偶校验方程式结果的数目(或能级)满足能量阈值条件的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,当能级大于或等于阈值能级时满足能量阈值条件。在一个实施例中,如在操作425处确定,阈值能级等于针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。因此,在以上实例中,奇偶校验组件113可将感测字310的SWB7的值从‘0’翻转为‘1’并且翻转校正子320的SB3、SB5、SB6和SB7的值。在图5中说明所得矩阵500。如所说明,感测字510的SWB7具有值‘1’,校正子520的SB3具有值‘0’,SB5具有值‘0’,SB6具有值‘1’,且SB7具有值‘0’。在操作430处翻转位后,处理逻辑即刻返回到操作405并且确定经更新校正子是否满足码字准则。
然而,如果处理逻辑在操作425处确定当前迭代并非第一迭代,那么在操作435处,处理逻辑翻转经校正字中的其中处于未满足状态的奇偶校验方程式结果的数目(或能量)大于或等于针对来自前一迭代的经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目(或最大能量)的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,如在操作420处所确定,奇偶校验组件113检验来自经校正字510的每一位的经更新校正子520的数个未被满足的奇偶校验方程式结果,并且将所述数个未被满足的奇偶校验方程式结果与来自前一迭代的最大数目(例如,3个)的未被满足奇偶校验方程式结果进行比较。奇偶校验组件113可翻转经校正字510中的任何所识别位。如果经校正字510中不存在此类所识别位,那么在当前迭代中不翻转位。
在操作440处,处理逻辑确定迭代性LDPC校正过程中执行的迭代数目是否满足迭代准则(例如,小于阈值迭代数目)。在一个实施例中,奇偶校验组件113维持在执行每一迭代之后递增的计数器。奇偶校验组件113可将计数器的值与阈值(例如,30)进行比较以确定是否满足迭代准则。如果迭代数目确实满足迭代准则,那么处理逻辑通过确定经更新校正子是否满足码字准则并且移动到下一迭代来继续LDPC校正过程。然而,如果执行的迭代数目不满足迭代准则(例如,迭代数目满足或超过阈值迭代数目),那么奇偶校验组件113可在操作445处确定经校正字无法完全被校正并且结束LDPC校正过程。
图6是根据本公开的一些实施例的在阈值数目个迭代之后使用可调整参数的迭代性错误校正的实例方法的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的奇偶校验组件113执行方法600。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作605处,处理逻辑从请求者接收从例如存储器装置130的存储器装置读取数据的请求。在一个实施例中,存储器子系统控制器115从主机系统120或从连接到存储器子系统110或存储器子系统110内的某一其它组件接收请求。所述请求可识别将从存储器子系统110的存储器装置130读取的数据。
在操作610处,处理逻辑从存储器装置130读取感测字。在一个实施例中,感测字包含表示在操作205处请求的数据的位序列。在一个实施例中,奇偶校验组件113识别存储器装置130中的存储有所请求的数据的物理地址,从存储器装置130读取感测字,并且在可执行奇偶校验和/或错误校正过程时将感测字暂时存储于缓冲器或其它存储方位中。在图3中示出实例感测字310。感测字310被说明为包含八个感测字位(即,SWB0-SWB7)序列,不过应理解,这仅是用于说明性目的的实例。在其它实施例中,感测字可包含任何数目个位,例如数千位(例如,36k位)。
在操作615处,处理逻辑在感测字的对应子集上执行数个奇偶校验方程式。在一个实施例中,奇偶校验方程式中的每一个对应于感测字的不同位子集,不过不同子集可共享一或多个位。举例来说,在一个实施例中,子集可包含出自感测字中的36k位的40位。举例来说,可存在各自被配置成在40位的不同子集上操作的数千(例如,3k)奇偶校验方程式。每一奇偶校验方程式产生指示感测字的对应子集中设置为值‘1’的位数是偶数还是奇数的奇偶校验方程式结果。在一个实施例中,如果对应子集中设置为值‘1’的位数是偶数,那么奇偶校验方程式结果称为处于满足状态,且如果对应子集中的设置为值‘1’的位数是奇数,那么奇偶校验方程式结果称为处于未满足状态。在另一实施例中,这些值(即,逻辑状态)可反向。由于感测字的任一位可以是多个不同子集的部分,因此所述位可促成多个奇偶校验方程式结果或与多个奇偶校验方程式结果相关联。在一个实施例中,感测字的每一位是供奇偶校验方程式使用的相同数目个子集(例如,4个子集)的部分。
在操作620处,处理逻辑使用所确定的奇偶校验方程式结果确定感测字的校正子。在一个实施例中,奇偶校验组件113例如通过附加或串连奇偶校验方程式结果,逻辑上组合奇偶校验方程式结果以确定校正子。在图3中示出实例校正子320。校正子320被说明为包含八个校正子位(即,SB0-SB7)序列,不过应理解,这仅是用于说明性目的的实例。在其它实施例中,校正子可包含任何数目个位,例如数千位(例如,3k位)。
在操作625处,处理逻辑确定感测字的校正子是否满足LDPC校验准则。在一个实施例中,奇偶校验组件113确定校正子中的全部奇偶校验方程式结果是否处于满足状态(例如,具有值‘0’)。在一个实施例中,如果校正子中的全部奇偶校验方程式结果处于满足状态,那么奇偶校验组件113确定校正子满足LDPC检验准则。相反地,如果校正子中的全部奇偶校验方程式结果不处于满足状态(例如,一或多个奇偶校验方程式结果具有值‘1’),那么奇偶校验组件113确定校正子不满足LDPC检验准则。如果感测字的校正子确实满足码字准则,那么奇偶校验组件113确定感测字中不存在错误,并且在操作630处,将感测字作为所请求的数据返回给请求者。
然而,如果感测字的校正子不满足码字准则,那么奇偶校验组件113确定感测字中存在一或多个错误,并且在操作635处,执行迭代性LDPC校正过程。在一个实施例中,第一迭代之后的第一阈值数目个迭代的每一迭代使用至少部分地基于LDPC校正过程的前一迭代的第一准则。所述准则用于确定翻转经校正字的哪些位(即,从‘1’改变为‘0’或从‘0’改变为‘1’),并且可包含例如比针对来自前一迭代(即,紧接在当前迭代之前执行的迭代)的经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目小的数目。对于在已达到第一阈值数目个迭代之后执行的任何迭代,LDPC校正过程可使用第二准则,所述第二准则也至少部分地基于LDPC校正过程的前一迭代,但可不同于第一准则。举例来说,第二准则可包含针对来自前一迭代的经校正字的任一位处于未满足状态的最大数目个奇偶校验方程式结果。
奇偶校验组件113可执行LDPC校正过程的多个迭代直到经校正字的校正子在操作225处满足码字准则,或直到达到第二阈值数目个迭代。下文关于图7描述迭代性LDPC校正过程的额外细节。
图7是根据本公开的一些实施例的其中在阈值数目个迭代之后调整一或多个参数的迭代性错误校正过程的实例方法的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的奇偶校验组件113执行方法700。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作705处,处理逻辑确定感测字的校正子是否满足LDPC校验准则。如果感测字的校正子确实满足码字准则,那么在操作410处,处理逻辑确定感测字中不存在错误。然而,如果感测字的校正子不满足码字准则,那么奇偶校验组件113确定感测字中存在一或多个错误并且起始迭代性LDPC校正过程。迭代性LDPC校正过程可包含数个迭代,这从第一迭代开始并且继续一或多个后续迭代。
在操作715处,处理逻辑确定针对感测字的每一位处于未满足状态的奇偶校验方程式结果的数目。使用如上所述并且在图3中说明的实例,感测字310的SWB0是对应于校正子320的SB0、SB1、SB2和SB3的子集的部分,感测字310的SWB1是对应于校正子320的SB0、SB1、SB2和SB4的子集的部分,且感测字310的SWB7是对应于校正子320的SB3、SB5、SB6和SB7的子集的部分。感测字310的额外位是由校正子320的每一位表示的不同子集的部分。对于SWB0,由于SB0设置为值‘0’,SB1设置为值‘0’,SB2设置为值‘1’,且SB3设置为值‘1’,因此校正子320的两个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。对于SWB1,由于SB0设置为值‘0’,SB1设置为值‘0’,SB2设置为值‘1’,且SB4设置为值‘0’,因此校正子320的一个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。对于SWB7,由于SB3设置为值‘1’,SB5设置为值‘1’,SB6设置为值‘0’,且SB7设置为值‘1’,因此校正子320的三个位设置为值‘1’,指示处于未满足状态的对应奇偶校验方程式结果。在另一实施例中,处理逻辑确定感测字的每一位的能量。取决于实施例,给定位的能量可表示与所述位相关联的未被满足奇偶校验方程式的数目或未被满足奇偶校验方程式的数目加当前位值与其原始值的XOR。
在操作720处,处理逻辑确定针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。由于SWB0具有两个未被满足的奇偶校验方程式,SWB1具有一个未被满足的奇偶校验方程式,且SWB7具有三个未被满足的奇偶校验方程式,因此奇偶校验组件113可确定最大数目是当前迭代中的三个未被满足奇偶校验方程式。奇偶校验组件113可存储此最大数目的指示(例如,存储于本地存储器119中或存储器子系统110中的其它处)以供在后续迭代中使用。在另一实施例中,处理逻辑确定感测字的任一位的最大能量。
在操作725处,处理逻辑确定LDPC校正过程的当前迭代是否是第一迭代。如果当前迭代是第一迭代,那么在操作730处,处理逻辑翻转感测字中的其中处于未满足状态的奇偶校验方程式结果的数目(或能级)满足能量阈值条件的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,当能级大于或等于阈值能级时满足能量阈值条件。在一个实施例中,如在操作425处确定,阈值能级等于针对感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目。因此,在以上实例中,奇偶校验组件113可将感测字310的SWB7的值从‘0’翻转为‘1’并且翻转校正子320的SB3、SB5、SB6和SB7的值。在图5中说明所得矩阵500。如所说明,感测字510的SWB7具有值‘1’,校正子520的SB3具有值‘0’,SB5具有值‘0’,SB6具有值‘1’,且SB7具有值‘0’。在操作730处翻转位后,处理逻辑即刻返回到操作705并且确定经更新校正子是否满足码字准则。
然而,如果处理逻辑在操作725处确定当前迭代并非第一迭代,那么在操作735处,处理逻辑确定迭代性LDPC校正过程中执行的迭代的数目是否满足调整阈值准则(例如,小于调整阈值迭代数目)。在一个实施例中,奇偶校验组件113维持在执行每一迭代之后递增的计数器。奇偶校验组件113可将计数器的值与调整阈值(例如,3或4)进行比较以确定是否满足调整阈值准则。
如果迭代数目确实满足调整阈值准则,那么在操作740处,处理逻辑翻转感测字中的其中处于未满足状态的奇偶校验方程式结果的数目大于或等于比针对来自前一迭代的感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目(或阈值能级)小的数目的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。由于在操作720处确定的来自前一迭代的未被满足奇偶校验方程式的最大数目是三,因此奇偶校验组件可寻找感测字510的具有等于二(即,=3-1)的数个未被满足校验的任何位。因此,在以上实例中,奇偶校验组件113可将感测字510的SWB6的值从‘0’翻转为‘1’并且翻转校正子520的SB2、SB3、SB4和SB6的值。在图8中说明所得矩阵800。如所说明,经校正字810的SWB6具有值‘0’,校正子820的SB2具有值‘0’,SB3具有值‘1’,SB4具有值‘1’,且SB6具有值‘0’。在其它实施例中,可使用某一其它准则,例如比来自前一迭代的未被满足奇偶校验方程式的最大数目小二、小三等。在操作740处翻转位后,处理逻辑即刻返回到操作705并且确定经更新校正子是否满足码字准则。
然而,如果执行的迭代数目不满足调整阈值准则(例如,迭代数目满足或超过调整阈值迭代数目),那么在操作745处,处理逻辑翻转经校正字中的其中处于未满足状态的奇偶校验方程式结果的数目(或能量)大于或等于针对来自前一迭代的经校正字的任一位处于未满足状态的奇偶校验方程式结果的最大数目(或最大能量)的任何位,并且翻转与那些位相关联的奇偶校验方程式结果中的每一个。
在操作750处,处理逻辑确定迭代性LDPC校正过程中执行的迭代数目是否满足迭代准则(例如,小于阈值迭代数目)。在一个实施例中,奇偶校验组件113维持在执行每一迭代之后递增的计数器。奇偶校验组件113可将计数器的值与阈值(例如,30)进行比较以确定是否满足迭代准则。如果迭代数目确实满足迭代准则,那么处理逻辑通过确定经更新校正子是否满足码字准则并且移动到下一迭代来继续LDPC校正过程。然而,如果执行的迭代数目不满足迭代准则(例如,迭代数目满足或超过阈值迭代数目),那么奇偶校验组件113可在操作755处确定经校正字无法完全被校正并且结束LDPC校正过程。
图9说明计算机系统900的实例机器,可执行所述计算机系统900内的用于致使所述机器执行本文中所论述的方法中的任一种或多种方法的指令集。在一些实施例中,计算机系统900可对应于包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的奇偶校验组件113的操作)的主机系统(例如,图1的主机系统120)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统900包含处理装置902、主存储器904(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器906(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统918,其经由总线930彼此通信。
处理装置902表示一个或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置902被配置成执行指令926以用于执行本文中所论述的操作和步骤。计算机系统900可另外包含网络接口装置908以在网络920上通信。
数据存储系统918可包含机器可读存储媒体924(也称为计算机可读媒体),其上存储有一或多个指令集926或体现本文中所描述的方法或功能中的任一或多种的软件。指令926还可在由计算机系统900执行期间完全或至少部分地驻存在主存储器904内和/或处理装置902内,主存储器904和处理装置902也构成机器可读存储媒体。机器可读存储媒体924、数据存储系统918和/或主存储器904可对应于图1的存储器子系统110。
在一个实施例中,指令926包含实施对应于图1的奇偶校验组件113的功能性的指令。尽管在实例实施例中机器可读存储媒体924展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上储存有可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种系统,其包括:
存储器装置;和
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下操作的操作:
从所述存储器装置读取感测字;
在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
使用所述多个奇偶校验方程式结果确定所述感测字的校正子;
确定所述感测字的所述校正子是否满足码字准则;和
响应于所述感测字的所述校正子不满足所述码字准则,执行迭代性低密度奇偶校验LDPC校正过程,其中所述LDPC校正过程中的第一迭代之后的至少一个迭代使用至少部分地基于前一迭代或部分迭代的准则。
2.根据权利要求1所述的系统,其中所述处理装置执行包括以下操作的进一步操作:
从请求者接收从所述存储器装置读取数据的请求,其中所述感测字与所述数据相关联;和
响应于所述感测字的所述校正子满足所述码字准则,将所述感测字作为所述所请求的数据返回给所述请求者。
3.根据权利要求1所述的系统,其中所述多个奇偶校验方程式中的每一个对应于所述感测字的不同子集,且其中所述多个奇偶校验方程式结果中的每一个指示所述感测字的对应子集中的设置为值‘1’的位数是偶数还是奇数。
4.根据权利要求1所述的系统,其中确定所述感测字的所述校正子包括逻辑上组合所述多个奇偶校验方程式结果,且其中确定所述感测字的所述校正子是否满足所述码字准则包括确定所述校正子中的所述多个奇偶校验方程式结果是否全部处于满足状态。
5.根据权利要求1所述的系统,其中执行所述迭代性LDPC校正过程包括:
确定与所述感测字的每一位相关联的能级;
确定与所述感测字的任一位相关联的最大能级;
确定所述LDPC校正过程的当前迭代是否是所述第一迭代;和
响应于所述当前迭代是所述第一迭代,翻转所述感测字中的具有满足能量阈值条件的能级的任何位。
6.根据权利要求5所述的系统,其中执行所述迭代性LDPC校正过程另外包括:
响应于所述当前迭代并非所述第一迭代,翻转所述感测字中的具有大于或等于与来自所述前一迭代的所述感测字的任一位相关联的所述最大能级的相关联能级的任何位。
7.根据权利要求5所述的系统,其中与所述感测字的给定位相关联的所述能级表示针对所述位处于未满足状态的奇偶校验方程式结果的数目加所述位的当前值与所述位的原始值的XOR。
8.根据权利要求1所述的系统,其中所述处理装置执行包括以下操作的进一步操作:
确定所述迭代性LDPC校正过程中执行的迭代的数目是否满足迭代准则;
响应于执行的所述迭代数目满足所述迭代准则,继续所述LDPC校正过程;和
响应于执行的所述迭代数目不满足所述迭代准则,结束所述LDPC校正过程。
9.一种方法,其包括:
读取感测字;
在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
使用所述多个奇偶校验方程式结果确定所述感测字的校正子;
确定所述感测字的所述校正子是否满足码字准则;和
响应于所述感测字的所述校正子不满足所述码字准则,执行迭代性低密度奇偶校验LDPC校正过程,其中所述LDPC校正过程中的第一迭代之后的至少一个迭代使用至少部分地基于前一迭代或部分迭代的准则。
10.根据权利要求9所述的方法,其另外包括:
从请求者接收读取数据的请求,其中所述感测字与所述数据相关联;和
响应于所述感测字的所述校正子满足所述码字准则,将所述感测字作为所述所请求的数据返回给所述请求者。
11.根据权利要求9所述的方法,其中所述多个奇偶校验方程式中的每一个对应于所述感测字的不同子集,且其中所述多个奇偶校验方程式结果中的每一个指示所述感测字的对应子集中的设置为值‘1’的位数是偶数还是奇数。
12.根据权利要求9所述的方法,其中确定所述感测字的所述校正子包括逻辑上组合所述多个奇偶校验方程式结果,且其中确定所述感测字的所述校正子是否满足所述码字准则包括确定所述校正子中的所述多个奇偶校验方程式结果是否全部处于满足状态。
13.根据权利要求9所述的方法,其中执行所述迭代性LDPC校正过程包括:
确定与所述感测字的每一位相关联的能级;
确定与所述感测字的任一位相关联的最大能级;
确定所述LDPC校正过程的当前迭代是否是所述第一迭代;和
响应于所述当前迭代是所述第一迭代,翻转所述感测字中的具有满足能量阈值条件的能级的任何位。
14.根据权利要求13所述的方法,其中执行所述迭代性LDPC校正过程另外包括:
响应于所述当前迭代并非所述第一迭代,翻转所述感测字中的具有大于或等于与来自所述前一迭代的所述感测字的任一位相关联的所述最大能级的相关联能级的任何位。
15.根据权利要求13所述的方法,其中与所述感测字的给定位相关联的所述能级表示针对所述位处于未满足状态的奇偶校验方程式结果的数目加所述位的当前值与所述位的原始值的XOR。
16.根据权利要求9所述的方法,其另外包括:
确定所述迭代性LDPC校正过程中执行的迭代的数目是否满足迭代准则;
响应于执行的所述迭代数目满足所述迭代准则,继续所述LDPC校正过程;和
响应于执行的所述迭代数目不满足所述迭代准则,结束所述LDPC校正过程。
17.一种包括指令的非暂时性计算机可读存储媒体,所述指令当由处理装置执行时致使所述处理装置执行包括以下操作的操作:
从存储器装置读取感测字;
在所述感测字的对应子集上执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
确定所述多个奇偶校验方程式结果是否指示所述感测字中的错误;和
响应于所述奇偶校验方程式结果指示所述感测字中的错误:
执行错误校正过程的第一迭代;和
执行所述错误校正过程的一或多个后续迭代,其中所述一或多个后续迭代包括翻转所述感测字中的其中处于未满足状态的奇偶校验方程式结果的数目等于针对来自前一迭代或部分迭代的所述感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目的任何位。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述多个奇偶校验方程式中的每一个对应于所述感测字的不同子集,且其中所述多个奇偶校验方程式结果中的每一个指示所述感测字的对应子集中的设置为值‘1’的位数是偶数还是奇数。
19.根据权利要求17所述的非暂时性计算机可读存储媒体,其中确定所述多个奇偶校验方程式结果是否指示所述感测字中的错误包括确定所述多个奇偶校验方程式结果是否全部处于满足状态。
20.根据权利要求17所述的非暂时性计算机可读存储媒体,其中执行所述错误校正过程的所述第一迭代包括:
确定针对所述感测字的每一位处于未满足状态的奇偶校验方程式结果的数目;
确定针对所述感测字的任一位处于未满足状态的奇偶校验方程式结果的最大数目;和
翻转所述感测字中的其中处于未满足状态的奇偶校验方程式结果的数目满足能量阈值条件的任何位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/806,777 US11146291B2 (en) | 2020-03-02 | 2020-03-02 | Configuring iterative error correction parameters using criteria from previous iterations |
US16/806,777 | 2020-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113345513A true CN113345513A (zh) | 2021-09-03 |
CN113345513B CN113345513B (zh) | 2024-08-20 |
Family
ID=77463821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110231988.2A Active CN113345513B (zh) | 2020-03-02 | 2021-03-02 | 使用来自先前迭代的准则配置迭代性错误校正参数 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11146291B2 (zh) |
CN (1) | CN113345513B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374592B2 (en) * | 2020-03-02 | 2022-06-28 | Micron Technology, Inc. | Iterative error correction with adjustable parameters after a threshold number of iterations |
US11146291B2 (en) * | 2020-03-02 | 2021-10-12 | Micron Technology, Inc. | Configuring iterative error correction parameters using criteria from previous iterations |
US11722151B2 (en) * | 2021-08-09 | 2023-08-08 | Micron Technology, Inc. | Bit flipping decoder based on soft information |
US11977783B2 (en) | 2021-10-28 | 2024-05-07 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
US12061800B2 (en) | 2021-10-28 | 2024-08-13 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
US11777522B1 (en) | 2022-03-28 | 2023-10-03 | Micron Technology, Inc. | Bit flipping decoder with dynamic bit flipping criteria |
WO2024102655A1 (en) * | 2022-11-09 | 2024-05-16 | Micron Technology, Inc. | Bypassing iterations in a bit flipping decoder using a least reliable bit energy function |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317462A1 (en) * | 2011-06-13 | 2012-12-13 | Zhen-U Liu | Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof |
CN103888148A (zh) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | 一种动态阈值比特翻转的ldpc码硬判决译码方法 |
US20140281785A1 (en) * | 2013-03-15 | 2014-09-18 | Omer FAINZILBER | Error-correction decoding with conditional limiting of check-node messages |
CN105023613A (zh) * | 2014-04-22 | 2015-11-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
US20170222659A1 (en) * | 2016-02-02 | 2017-08-03 | Silicon Motion Inc. | Power improvement for ldpc |
US9755665B1 (en) * | 2014-09-23 | 2017-09-05 | Marvell International Ltd. | Systems and methods for an iterative decoding scheme |
US20170272097A1 (en) * | 2016-03-17 | 2017-09-21 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
CN108933605A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 低密度奇偶校验(ldpc)解码的提前终止 |
US20190379405A1 (en) * | 2015-09-25 | 2019-12-12 | SK Hynix Inc. | Data storage device |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9564931B1 (en) * | 2014-01-09 | 2017-02-07 | Marvell International Ltd. | Systems and methods for using decoders of different complexity in a hybrid decoder architecture |
US10089177B2 (en) * | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US10075190B2 (en) * | 2015-10-27 | 2018-09-11 | Sandisk Technologies Llc | Adaptive scheduler for decoding |
US20180032396A1 (en) * | 2016-07-29 | 2018-02-01 | Sandisk Technologies Llc | Generalized syndrome weights |
US10116333B2 (en) * | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
US10547332B2 (en) * | 2017-02-01 | 2020-01-28 | Tsofun Algorithm Ltd. | Device, system and method of implementing product error correction codes for fast encoding and decoding |
US10848182B2 (en) * | 2018-09-13 | 2020-11-24 | Apple Inc. | Iterative decoding with early termination criterion that permits errors in redundancy part |
US11146291B2 (en) * | 2020-03-02 | 2021-10-12 | Micron Technology, Inc. | Configuring iterative error correction parameters using criteria from previous iterations |
US11381253B1 (en) * | 2021-02-05 | 2022-07-05 | SK Hynix Inc. | Decoding codeword based on higher order information |
-
2020
- 2020-03-02 US US16/806,777 patent/US11146291B2/en active Active
-
2021
- 2021-03-02 CN CN202110231988.2A patent/CN113345513B/zh active Active
- 2021-09-16 US US17/447,864 patent/US11632132B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317462A1 (en) * | 2011-06-13 | 2012-12-13 | Zhen-U Liu | Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof |
US20140281785A1 (en) * | 2013-03-15 | 2014-09-18 | Omer FAINZILBER | Error-correction decoding with conditional limiting of check-node messages |
CN103888148A (zh) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | 一种动态阈值比特翻转的ldpc码硬判决译码方法 |
CN105023613A (zh) * | 2014-04-22 | 2015-11-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
US9755665B1 (en) * | 2014-09-23 | 2017-09-05 | Marvell International Ltd. | Systems and methods for an iterative decoding scheme |
US20190379405A1 (en) * | 2015-09-25 | 2019-12-12 | SK Hynix Inc. | Data storage device |
US20170222659A1 (en) * | 2016-02-02 | 2017-08-03 | Silicon Motion Inc. | Power improvement for ldpc |
US20170272097A1 (en) * | 2016-03-17 | 2017-09-21 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
CN108933605A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 低密度奇偶校验(ldpc)解码的提前终止 |
Also Published As
Publication number | Publication date |
---|---|
US20210273652A1 (en) | 2021-09-02 |
US11146291B2 (en) | 2021-10-12 |
US20220006473A1 (en) | 2022-01-06 |
US11632132B2 (en) | 2023-04-18 |
CN113345513B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113345513B (zh) | 使用来自先前迭代的准则配置迭代性错误校正参数 | |
US11689217B2 (en) | Methods and systems of stall mitigation in iterative decoders | |
CN113366449A (zh) | 基于存储器子系统的损耗的错误校正码改变 | |
US11705925B2 (en) | Dynamic bit flipping order for iterative error correction | |
US11321173B2 (en) | Managing storage of multiple plane parity data in a memory sub-system | |
US11398835B1 (en) | Managing defective bitline locations in a bit flipping decoder | |
US11750218B2 (en) | Iterative error correction with adjustable parameters after a threshold number of iterations | |
CN117153232A (zh) | 用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 | |
CN115273956B (zh) | 在存储器装置中通过校正子计算进行错误校正 | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
US11409461B1 (en) | Extending size of memory unit | |
US11394403B1 (en) | Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices | |
US11901911B1 (en) | Stall detection and mitigation in iterative decoders | |
US11921581B1 (en) | Read recovery including low-density parity-check decoding | |
US11923867B1 (en) | Iterative decoder with a dynamic maximum stop condition | |
US20240154625A1 (en) | Bypassing iterations in a bit flipping decoder using a least reliable bit energy function | |
US20240296093A1 (en) | Error correction decoder, storage device including error correction decoder, and operating method thereof | |
US11722151B2 (en) | Bit flipping decoder based on soft information | |
US20230396271A1 (en) | Early stopping of bit-flip low density parity check decoding based on syndrome weight | |
CN116825173A (zh) | 使用动态位翻转准则的位翻转解码器 | |
CN115148257A (zh) | 存储器装置中基于压缩的数据操作 | |
CN117746952A (zh) | 校验子解码系统 | |
CN117594100A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |