CN111540402A - 用纠错码(ecc)综合征权重辅助快速恢复错误 - Google Patents

用纠错码(ecc)综合征权重辅助快速恢复错误 Download PDF

Info

Publication number
CN111540402A
CN111540402A CN202010080602.8A CN202010080602A CN111540402A CN 111540402 A CN111540402 A CN 111540402A CN 202010080602 A CN202010080602 A CN 202010080602A CN 111540402 A CN111540402 A CN 111540402A
Authority
CN
China
Prior art keywords
codeword
syndrome
decoder
during
bits
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
Application number
CN202010080602.8A
Other languages
English (en)
Other versions
CN111540402B (zh
Inventor
王峥
A·帕塔波蒂安
R·J·高斯
A·克利亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN111540402A publication Critical patent/CN111540402A/zh
Application granted granted Critical
Publication of CN111540402B publication Critical patent/CN111540402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1575Direct 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请公开了用纠错码(ECC)综合征权重辅助快速恢复错误。本公开涉及解码纠错码(ECC)码字的方法和设备。使用至少两个参考电压来从通信信道提取所选择的码字。所选择的码字由ECC解码器处理,并且确定初始综合征权重以指示未解析的奇偶错误。粗略搜索在第一迭代序列期间操作,以同时调节至少两个参考电压中的每个参考电压。后续的精细搜索在第二迭代序列期间操作,以单独调节至少两个参考电压中的每个参考电压。在每次迭代期间继续解码和综合征权重的确定,直到获得最小的综合征权重,其后解码码字的用户数据内容。粗略搜索可将解码器从饱和操作区域转移到线性操作区域。解码器可为低密度奇偶校验(LDPC)解码器。

Description

用纠错码(ECC)综合征权重辅助快速恢复错误
发明内容
各种实施方案通常涉及在采用纠错码(ECC)解码器(诸如但不限于低密度奇偶校验(LDPC)解码器)的通信信道中对数据进行解码。
在一些实施方案中,使用至少两个参考电压来从通信信道(诸如存储器中的位置)提取所选择的码字。所选择的码字由ECC解码器处理,并且确定初始综合征权重以指示未解析的奇偶错误。粗略搜索在第一迭代序列期间操作,以同时调节所述至少两个参考电压中的每个参考电压。后续的精细搜索在第二迭代序列期间操作,以单独调节所述至少两个参考电压中的每个参考电压。在每次迭代期间继续解码和综合征权重的确定,直到获得最小的综合征权重,其后解码码字的用户数据内容。粗略搜索可将解码器从饱和操作区域转移到线性操作区域。解码器可为低密度奇偶校验(LDPC)解码器。
根据下面的详细讨论和附图,可以理解可表征各种实施方案的这些和其他特征与优点。
附图说明
图1提供了数据存储装置的功能块表示,以为本公开的各种实施方案提供示例性操作环境。
图2示出了在一些实施方案中的闪存存储器单元。
图3示出了由诸如图2中的单元形成的闪存存储器的方面。
图4示出了在一些实施方案中单元可被编程到的不同充电状态。
图5为根据本公开的一些实施方案的使用纠错码(ECC)解码器对数据进行解码的数据恢复信道的示意图。
图6为示出图5的ECC解码器的方面的互连(Tanner)图,其特征在于低密度奇偶校验(LDPC)解码器。
图7示出了可用于区分闪存存储器单元的不同编程状态的扫描窗。
图8示出了图5的ECC解码器的解码操作。
图9示出了在图8的解码期间的位错误和综合征权重值之间的图形关系。
图10A和图10B示出了一些实施方案中ECC解码器的粗略搜索模式和精细搜索模式的简化表示。
图11示出了在一些实施方案中可使用来自图4和图10A至图10B的参考电压的读取/编程验证电路。
图12为用于加速ECC解码例程的流程图。
图13为图12的例程的粗略VREF搜索部分的流程图。
图14为图12的例程的精细VREF搜索部分的流程图。
图15为固态驱动器(SSD)型数据存储装置的功能框图,其中可有利地实施各种实施方案。
图16为硬盘驱动器(HDD)或混合型数据存储装置的功能框图,其中可有利地实施各种实施方案。
具体实施方式
本公开整体涉及在使用纠错码(ECC)解码器电路的通信信道中对数据进行解码。
纠错码(ECC)用于通过通信信道提供数字数据的可靠传递。可采用多种ECC方案来检测和纠正所接收的数据包(例如,码字)中的位错误。
低密度奇偶校验(LDPC)码是一种特定形式的ECC码,该ECC码可用于数据传输。与其他形式的ECC码一样,LDPC码采用具有信息部件(例如,用户数据位)和用于纠错的冗余部件(例如,纠错位)两者的码字的形式。常见的惯例是将LDPC码字描述为k/n码,其中n表示位的总数目,k表示用户位的数目,并且n-k表示冗余位的数目。
已经制定了多种行业标准,以促进通过无线接口和有线接口进行LDPC码传输。因为LDPC码具有在或接近接口传输能力的理论容量的嘈杂环境中处理数据的高速传输的稳健能力,所以LDPC码常常用于高数据I/O通信信道中,包括但不限于诸如固态驱动器(SSD)、硬盘驱动器(HDD)、混合固态驱动器(HSSD)等的数据存储装置。
LDPC解码器是用于解码LDPC码的一种类型的电路。LDPC解码器常常采用多个可变节点(有时也称为可变节点单元,VNU)和校验节点(或校验节点单元,CNU)。可变节点生成和/或存储潜在的码位。校验节点使用组合逻辑函数对可变节点的内容的不同组合执行奇偶校验。LDPC可被实现为具有栅极逻辑的硬件电路,或经由在存储器中具有相关联的编程指令的一个或多个可编程处理器电路来实现。
如果满足校验节点的所有奇偶约束,那么将成功解码输入码字。如果检测到一个或多个错误,则执行后续迭代,包括使用提供关于码字状态的进一步信息的软信息。每次迭代涉及在各个单元之间发送的消息。从可变节点到校验节点的消息可被称为v2c或r消息,并且从校验节点到可变节点的消息可被称为c2v或q消息。可使用其他表示法,诸如P和Q消息等。
综合征或综合征权重描述了在解码操作期间的任何给定迭代处LDPC解码器的状态。综合征权重通常表示未解析的校验节点数,即,不满足相关联的可变节点内容所需奇偶校验的校验节点数。如果综合征权重达到零,这意味着已成功解码了码字中的所有位,并且可以输出码字以供信道进一步处理。大于零的任何数目的综合征权重指示可变节点中仍然存在位错误,并且可能需要由LDPC解码器进一步处理。应当理解,可针对其他形式的ECC解码器确定综合征权重,并提供相同的一般形式的信息,即给定数据块中的剩余位错误的一般数目的指示。
LDPC解码器的操作性能高度依赖于信道噪声。观察到的位错误率(BER)与信噪比(SNR)的曲线图示出,随着信道中的噪声减小,BER的陡峭改善。这有时被称为瀑布区域并且表现出指数斜率。在极低的噪声水平下,LDPC解码器的响应变平以形成所谓的错误层,其为表现出非常浅的斜率的曲线图的肩部分。错误层处的斜率变化的一个原因是,由于存在的错误的数目减小到非常小的值(例如,综合征权重变得非常小),有时可能变得越来越难以解析剩余的错误,尤其是对于涉及能够抵抗容易分辨的位对称的某些位错误组合(陷阱集)。
在光谱的另一端处,大的综合征权重通常表示在输入码字中存在许多错误;在一些情况下,LDPC解码器的错误太多而无法正确解析。例如,如果用于检测闪存存储器中的位的参考电压(VREF)未正确设置,使得来自存储器的输入码字中存在许多误读位,则可能产生非常大的综合征权重。还存在其他大综合征权重的来源。
在许多LDPC设计中,给定码字中的实际位错误和相关联的综合征权重之间的关系对于大范围的综合征权重而言或多或少是线性的。然而,当综合征权重超过某个阈值时,该关系可能变得饱和。因此,正如由于陷阱集而可能难以解码具有非常小的综合征权重的码字一样,由于饱和而对具有非常高的综合征权重的码字进行解码可能也是非常困难的。
本公开的各种实施方案提供用于增强ECC解码器的操作的设备和方法,诸如但不限于LDPC解码器。如下所述,一些实施方案将ECC解码器作为用于在非易失性存储器(NVM)中进行数据存储的数据恢复信道的一部分来操作,尽管这不是必需的。
一般来讲,至少两个参考电压(VREF)被应用于检索第一码字。在NVM的上下文中,VREF可用于区分NVM中各种存储位的位值(例如,逻辑0或1)。ECC解码器可为LDPC解码器,其使用多个可变节点和多个校验节点以在解码第一码字时执行第一次传递。
综合征权重是在第一个检索到的码字第一次通过结束时确定的。该综合征权重将具有指示解码的码字中的剩余错误的总数的量值;在LDPC解码器的上下文中,综合征权重可指示具有未解析奇偶错误的校验节点的总数。对于其他形式的ECC解码器,可以其他方式计算综合征权重。
如果第一码字的综合征权重超过预定阈值,则可实施快速恢复操作。快速恢复操作包括粗略搜索模式,随后是精细搜索模式。
在粗略搜索模式期间,至少两个VREF值中的每个将同时递增。VREF值可以相同的量并在相同的方向(极性)上进行调节,或者VREF值可以具有相同或不同极性的不同量进行调节。将使用新的VREF值重新读取新的码字,并且将计算新的综合征权重。该过程将继续,因为每次通过期间将对VREF中的每个应用附加的并发增量,直到满足特定标准。设想增量将相对较大,并且将趋于导致每个连续迭代的综合征权重的显著降低。
在发现同时调节的VREF值的集合提供最小综合征权重的时候,系统切换到精细搜索操作模式。虽然不是必须的,但设想粗略搜索将使解码器进入或接近线性区域。在一些情况下,粗略搜索模式将继续,直到发现低于预定阈值的综合征权重。在其他情况下,将发生总迭代数目,并且将选择提供最小综合征权重的同时调节的VREF值的集合。
在精细搜索模式期间,对VREF值中的每个进行单独调节,以将VREF值进一步调谐至最终值,该最终值生成处于可解析状态的码字。在精细搜索模式期间,将调节VREF值中的一个,而剩余的VREF值将保持在恒定水平。每个VREF值将以类似的方式被单独调谐。
最终,在精细搜索模式结束时将达到最小综合征权重。如果综合征权重为零,则码字将被成功解码。如果综合征权重非零,则使用最终选择的VREF值,综合征权重将足够低,使得可应用其他分辨率技术来解析剩余的位错误。
已发现,这些技术可导致ECC解码器的性能显著改善,包括对于最近写入存储器的码字,以及已在存储器中驻留相对长的保压时间并因此遭受显著电荷漂移的码字。经验测试已示出,可实现恢复时间减少多达十倍(10X),并且使用更高级的纠错码(例如,外代码)来解析码位错误的需要减少多达两倍半(2.5X)。
从总体上示出示例性数据存储装置100的图1的回顾开始,将理解各种实施方案的这些和其他特征与方面。呈现装置100以提供其中可有利地实施各种实施方案的示例性环境。本文列出的各种实施方案不限于数据存储应用程序,并且可容易地扩展到使用ECC技术进行数据错误解析的基本上任何其他数据传输信道。
装置100包括控制器102和存储器模块104。控制器102提供对装置100的顶层控制,并且可被配置为在本地存储器中具有相关联的编程的可编程处理器。除此之外或另选地,控制器可采用基于硬件的控制电路的形式,其具有逻辑门或其他元件以执行所需的控制器功能。
存储器模块104可被布置为一个或多个非易失性存储器(NVM)元件,包括可旋转磁性记录盘和固态存储器阵列。虽然图1中示出了单独控制器102,但这并不必要,因为另选的实施方案可将任何必需的控制器功能直接结合到存储器模块中或数据存储装置之外。虽然不是限制性的,但出于本讨论的目的,将设想数据存储装置100为固态驱动器(SSD),该固态驱动器利用NAND闪存存储器存储和检索来自主机装置的用户数据。
图2示出了在一些实施方案中存储器104的单独闪存存储器单元110的示意图。存储器单元被描述为二维单元,尽管也可使用其他构造,包括三维(堆叠)单元。
存储器单元110形成在半导体基板112上,并且采用一般形式的n信道MOSFET(金属氧化物半导体场效应晶体管),其具有由信道(CH)区域隔开的漏极区域114和源极区域116。控制栅极结构118包括控制栅极(CG)120和浮栅(FG)122。浮栅122使用阻挡层124、126电隔离。
为了对存储器单元110编程,向源极、漏极和控制栅极供应适当的电压,以诱导电荷从信道迁移和积聚到浮栅122。不同量的积聚电荷将改变将单元110置于正向(源极漏)导电状态中(例如,“接通”单元)所需的控制栅极120处的电压。可以相对于接通单元所需的电压的量值来识别单元的不同编程状态。
一旦将数据编程到单元,通常就必须对单元应用擦除(擦除或重置)操作,然后才能将替换数据写入单元。可通过向漏极、源极和栅极应用不同的电压组合来进行擦除,以将积聚的电荷从浮栅122迁移回基板112的信道区域。
图3示出了图3的存储器单元110的阵列130的示意图。提供了对各种单元的访问,包括使用位线(BL)132和字线(WL)134。一般来讲,附接到所选择的字线134的所有存储器单元有时被称为存储器行。数据集以页面的形式存储到行中,该页面表示对应于一个或多个码字的所选择的位的数目,如下所述。可将多个页的数据存储到同一存储器单元的集合中。
图4示出了来自图2至图3的存储器单元群的多种电荷分布140。总共示出八(8)种电荷分布140,从而指示每个存储器单元被配置为存储三(3)位数据。此类单元有时被称为TLC(三级单元)。更一般地,总共2N个充电状态可用于存储N位数据。其他配置包括仅存储单个位的SLC(单级单元)、存储两位的MLC(多级单元)、存储四位的XLC(四级单元)等。TLC电荷分布140如下存储数据位:
电荷分布 数据位
C1 111
C2 110
C3 100
C4 101
C5 011
C6 010
C7 000
C8 001
表1
在该配置中,最有效位(MSB)可对应于第一页中的位,中间有效位(ISB)可对应于第二页中的位,并且最低有效位(LSB)可对应于第三页中的数据位。可根据需要使用数据位的其他配置和分配。
虽然不是必须的,但擦除的单元的集合可最初用第一页数据编程为SLC,使得第一页中的数据位通常具有C1(逻辑1)或C5(逻辑0)的充电状态。可将第二页数据添加至单元,使得充电状态通常为C1(11)、C3(10)、C5(01)或C7(00)。随后可写入第三页数据,以提供八种充电状态,如图所示。在其他情况下,闪存存储器可被配置为在单个编程操作期间写入所有三页数据,使得添加电荷直到达到所需的电荷水平C1-C8。
可使用一个或多个参考电压(VREF)来识别各种充电状态,如在142处所指示。在该情况下,总共有九(9)个参考电压VREF被标识为R1-R9。为了识别特定单元是否被编程为SLC(例如,用于区分充电状态C1-C4和C5-C8),可应用电压参考R1和R5。这将识别前导位是逻辑1还是逻辑0。随后可应用附加的VREF,以识别其他位位置和值。作为该感测的一部分,应当指出的是,一般来讲,R5应当标称具有足够的量值以将分布C1-C4中的单元中的每个置于导电状态,但R5不应能够使分布C5-C8中的单元中的任一个导电。同时,R1不应能够将单元中的任一个置于导电状态,并且R9应当能够使所有单元导电。
图5示出了装置100的数据恢复信道150的一部分。信道150使用错误检测代码(ECC)解码器152来对数据位进行解码,诸如图4中所示的各种位。上游检测器电路154处理来自存储器阵列130的恢复信号,并向ECC解码器152呈现码字形式的位。
ECC解码器应用适当的解码算法以努力检测和解析位错误并返回原始存储数据的副本。ECC解码器152和检测器154可使用任何数目的硬连线和/或可编程电路配置在硬件、软件和/或固件中实现。
在一些实施方案中,ECC解码器152采用低密度奇偶校验(LDPC)解码器的形式。LDPC解码器将最小和或其他合适的LDPC算法应用于输入码字。图6提供了用于示出LDPC解码器的各方面的Tanner图160。解码器包括多个可变节点单元(VNU)162,也被称为可变节点。图4中示出了总共八(8)个可变节点132,标记为V0-V7,尽管实际上,可按需要使用数千个可变节点。
可变节点162与一系列校验节点单元(CNU)或校验节点164通信。总共示出了四个校验节点,标记为C0-C3,但如前所述,可以使用比所示出的那些更多的校验节点。
在至少一些情况下,输入码位最初连同诸如对数似然比(LLR)值的信息加载到可变节点162。各种可变节点162中的数据内容被选择性地组合,以形成传输到对应校验节点164的v2c消息。在图4中,校验节点C0接收来自可变节点V0、V1和V2的位;校验节点C3接收来自可变节点V2至V7的位,以此类推。
一旦接收到,校验节点就会使用某些奇偶约束来评估v2c消息,以解析码字。在一个示例中,校验节点164可实现偶数奇偶约束,使得给定v2c消息中的所有位的总和应为0(偶数)值。可使用其他奇偶约束。
具有这些奇偶计算结果的消息以c2v消息的形式返回。通常,LDPC算法的每次迭代包括生成v2c消息的一个集合并将其传输到校验节点,随后将c2v消息的一个集合返回到可变节点。如果不存在错误,则解析所得的码字并输出数据,如图5中所示。如果存在至少一个错误,则使用c2v消息以及在一些情况下使用其他信息来更新可变节点132的值。可应用后续迭代以努力解析码字。
由于各种原因,在输入码字中可能出现位错误。图7示出了给定存储器单元群的两个相邻电荷分布170、172的图形表示。第一电荷分布170表示编程状态1,并且第二电荷分布172表示编程状态0。扫描窗174表示在扫描操作期间可应用以努力识别给定单元的实际充电状态的VREF的范围。
位错误计数是数据(诸如码字)的集合的错误位的总数。在VREF搜索操作期间,位错误计数常常作为公共度量来应用。位错误计数可用于选择使位错误计数最小化的VREF值。然而,在LDPC解码器152的迭代处理期间,没有成功的LDPC恢复,位错误计数通常不容易在空中识别。
综合征或综合征权重是在LDPC解码迭代之后未能会聚的校验节点164的数目的计数。相对于未通过纠错校验的多个元件或阶段,可针对其他ECC解码器计算类似的综合征权重。如图8中所示,如果ECC解码器成功地恢复码字,则解码器操作的输出处的综合征权重(SW)将为零(SW=0)。否则,综合征权重将为正整数(SW=!0)。一般来讲,综合征权重将取决于所应用的ECC迭代数目以及其他因素。
已确定码字中的综合征权重和位错误的数目将具有正相关。图9示出了由图6的LDPC解码器处理的各种码字的数据点的数据图180。综合征权重量值沿x轴182表示,并且每个码字的位错误的数目沿y轴184表示。
可以看出,对于小至中综合征权重值,综合征权重和位错误计数之间存在基本上线性的关系。高于特定的过渡综合征权重(如通常由过渡线188所示),关系变得饱和,并且位错误以显著更快的速率增加以增加综合征权重。尽管其他解码器可具有不同的特征过渡点,但示出线性区域和饱和区域之间的过渡是针对约700的综合征权重而发生的。
如果给定码字中的位错误总数太大,则综合征权重将被推入饱和区域中。当在该区域中操作时,综合征权重将不含有关于位错误的足够信息以以有效的方式帮助引导图7中所示的VREF搜索操作。
因此,本公开的各种实施方案在ECC解码操作期间采用用于VREF搜索操作的多模式策略。多模式策略包括粗略搜索模式,如通常由图10A所示,随后是精细搜索模式,如通常由图10B所示。粗略搜索的目标是通过针对每次迭代同时移位所有相关VREF值来有效地使综合征权重(并因此,位错误计数)返回到线性区域。重复这一点,直到综合征权重充分降低,其后在精细搜索模式期间根据需要单独调节VREF值以解析码字。
如通过图10A所示,两个初始VREF值由R1和R5表示。可使用VREF值的其他组合,因此这仅用于说明目的。这些值同时递增,使得R1被增量Δ1调节以提供对应的新VREF值R1',并且R5由增量Δ2调节以提供对应的新VREF值R5’。相应的增量Δ1和Δ2可为相同的值,或者可为不同的值。可在每个后续迭代期间同时应用相同或不同的增量。如果应用错误的增量极性,则应容易地检测到这一点,因为可发生综合征权重的增加,从而允许系统在下一次迭代期间快速反转增量方向。
图10B示出在精细搜索模式期间对VREF值进行单独调节;例如,R1保持恒定,而R5被增量Δ3调节。如先前一样,将对R5进行附加增量,而R1保持固定。一旦针对R5确定了最终值,则R5将保持恒定,并且将对R1进行增量。虽然不是限制性的,但设想最终搜索模式期间的增量可在量值上小于粗略搜索期间使用的增量。
图11为根据一些实施方案的存储装置100的读取/编程验证(PV)电路190的功能框图。电路190适于在读取操作期间应用图4和图10A至图10B的VREF以从存储器输出码位。编程期间的编程验证操作也可由电路执行,或者可使用具有类似构造的不同专用电路。图11的电路构造仅仅是为了提供具体例证,并且因此可根据需要使用其他电路布置来使用VREF值生成码字。应当理解,电路190可形成图5中检测器154的一部分。
命令解码器192对输入读取命令进行解码,并且将适当的VREF值输出至数模(DAC)驱动器电路194。设想每个VREF值(例如,R1、R5等)将以多位数字值的形式存储在存储器中,该数字值被DAC 194转换到对应的模拟电压水平。在图10A至图10B的粗略和精细搜索期间各种增量的分辨率量最终将受到DAC的输入位分辨率的限制。
DAC/驱动器194经由相关联的字线134将对应的模拟参考电压应用到所选择单元110的控制栅极120(见图2至图3)。电压源196向联接到被读取的存储器单元110的位线132应用合适的源电压VS。感测放大器197通过与来自参考电压源198的另一个参考电压VR进行比较来确定所应用的电压是否足以将单元110置于导电状态。响应于该比较,将所得的位值(0或1)输出至输出缓冲器199。
图12为根据一些实施方案执行的加速ECC解码例程200的流程图。流程图通常表示在对所选择的码字(诸如从存储器104检索的码字)进行解码期间由系统执行的步骤。这些步骤可表示通过硬件电路、通过由一个或多个处理器执行的编程指令或两者根据需要执行的逻辑步骤。为了提供具体示例,将设想使用如上所述的LDPC解码器进行解码,尽管这并不是限制性的。
如在步骤202处所示,所选择的码字最初从数据信道检索,诸如在上文图11中所讨论。在步骤204处对检索的码字应用解码,包括处理LDPC解码器152的各种可变节点和校验节点,以努力解析校验节点的奇偶校验。在该步骤期间计算综合征权重(SW)值。
决策步骤206确定综合征权重是否为零,指示码字已被成功解码的事实,即,存储在可变节点中的位正确地表示存储在相关联的存储器位置中的位。如果是,则流程转到步骤208,在该步骤中使码字经受进一步处理以从码字输出相关联的用户数据。
如果综合征权重非零,则该流程转到决策步骤210,在该步骤中确定综合征权重是否高于第一阈值T1。虽然该步骤是可选的,但在一些情况下,设想将执行该步骤,使得图10A和图10B的粗略和精细搜索仅应用于高于预定值的综合征权重。如果综合征权重小于可对应于图9中的线188的指定阈值T1,则可通过LDPC解码器152对码字应用正常处理,以努力解析剩余的位错误(步骤212)。因此,T1阈值有时被称为加速处理阈值。
当综合征权重超过第一阈值T1时,该流程转到步骤214,在该步骤中进行粗略VREF搜索,如下所述。如果此类搜索得到码字的分辨率,则在决策步骤216中,该流程转到输出数据步骤208。然而,在大多数情况下,设想将达到退出粗略搜索模式的内部标准,其后,流程传递到框218,在该框中系统转换到精细搜索模式。如前所述,成功地解析码字(决策步骤220)将导致数据的输出。如果码字未被成功地解析,则该流程将转到步骤222,在该步骤中可应用其他纠正操作,包括应用更高级的纠错诸如外代码等。
图13为在一些实施方案中图12的粗略VREF搜索步骤214的详细流程图。应当理解,各种步骤仅仅是示例性的并且不是限制性的。如上所述,粗略搜索过程的最小总体目标是使综合征权重下降到线性区域。
该流程设想使用R1和R5进行页面解码;可使用其他参考电压。如步骤224处所示,R1和R5的粗略搜索偏移由SO1C=[α11,α12,…,α1m]和SO5C=[α51,α52,…,α5m]限定。用于其他参考电压的搜索偏移可为相同的值,或者可为不同的。VREF首先设置有某些初始值(例如,默认VREF值),表示为R1S和R5S。应用VREF偏移α11和α51的第一集合并且读取码字,步骤226,并且由LDPC解码器处理。在步骤228处计算粗略搜索综合征权重SWCi。可直接使用LDPC解码器或一些其他专用块(诸如H矩阵倍增器)来确定综合征权重。应当指出的是,粗略搜索过程是经过i次迭代的迭代。
如果满足下列标准中的一个标准,则可终止粗略搜索过程。如果SWCi达到零(SWCi=0),如决策步骤230所示,码字已被成功解码(步骤232),这意味着参考电压足以允许对码字进行解码并且跳过精细搜索。如果SWCi变得小于第二阈值T2(步骤234),则可假定解码器已进入线性区域,并且参考电压的最新值用于开始精细搜索模式(步骤236、238、240)。因此,T2阈值有时也被称为提前终止阈值。
应适当选择提前终止阈值T2以保持有效性和效率之间的平衡。这可通过经验,通过计算机模拟等等来执行。可随时间推移自适应地调节提前终止阈值以微调性能。还可提升提前终止阈值以允许粗略扫描过程经历整个过程(例如,m次迭代,决策步骤242)。在m次迭代之后,根据步骤244设定参考电压并且开始精细搜索(步骤240)。用于开始精细搜索的参考电压将使用提供最小综合征权重的增量,其表示为[α1C,α5C]。粗略搜索期间的新增量由步骤246提供。
图14示出了图12的精细VREF搜索过程。如上所述,精细搜索过程的总体目标是进一步调谐VREF值以接近最佳值,如果不足以解析所有位错误,则至少足以使综合征权重最小化,以允许应用附加的处理来解析码字。
在精细搜索期间,R1和R5的搜索偏移由SO1F=[β11,β12,…,β1m]和SO5F=[β51,β52,…,β5m]限定,如步骤250处所示。如该步骤所指出,不同的参考电压将具有不同的增量,并且可具有不同的对应搜索步骤p和q的总数。
与粗略搜索期间不同的是,单独扫描相关VREF R1和R5而不是同时递增在一起。例如,如步骤252处所示,最初将R5设置为粗略搜索结果R5S+α5C。然后在精细搜索范围SO1F内扫描R1。对于每次迭代,在码字读取操作(步骤254、256)期间应用附加的偏移β1k,并且确定新的精细搜索综合征权重SWFj,步骤258。
将提前终止标准应用于精细搜索模式。如果发现SWFj等于零(步骤260),则终止精细搜索,并且将当前VREF值用于提取干净的数据,以及潜在地存储以供下一次用作默认读取值(步骤262)。
如果SWFj非零但小于第三阈值T3(步骤264),则选择当前偏移β1k作为R1的最终精细搜索偏移(步骤266)。如前所述,阈值T3应当被选择为使得具有该综合征权重的码字能够通过LDPC解码器152的进一步处理而容易地解码。此时,系统确定综合征权重是否为零(步骤268)。
如果综合征权重非零,则保存所测试的VREF值(在该情况下为R1)的最终增量值,并且过程前进到递增地调节下一个VREF值(在该情况下为R5),如由步骤270所示。如果综合征权重为零,则在步骤272处设定最终增量,并且该过程在274处返回。因此,T3阈值有时被称为退出阈值。
如果没有满足提前终止标准,则一旦达到最终迭代数目(步骤276),就选择使综合征权重最小化的所选择VREF值(R1)的偏移(步骤278),并且扫描下一个VREF值(R5)(步骤280)。因为精细搜索通常在线性区域中操作,所以梯度下降或爬山方法可用于加速VREF优化。
虽然前述讨论已涉及单独码字,但VREF优化处理可应用于其他尺寸的数据结构,诸如多个码字、整个数据页等。对某些存储器类型的经验测试已示出,加速恢复方案可将最大恢复时间缩短10X,并且需要在2.5X之前使用高级ECC操作(诸如外代码等)。
已提供图15和图16以示出关于本文所讨论的ECC解码器(包括LDPC解码器)的使用的合适环境的另外的细节。图15示出了根据一些实施方案的固态驱动器(SSD)数据存储装置300的功能框图。
控制器电路302为装置300提供顶层控制并且可对应于图1的控制器102。接口电路304和本地缓冲器存储器306协调外部主机装置和闪存存储器308之间的用户数据的传输。读取/写入/擦除电路310执行必要的输入写入数据的编码,并指导适当闪存存储器单元的编程以将编码的写入数据写入存储器308。在读取操作期间,在将原始供应的数据传输至主机之前,由ECC解码器152(其形成R/W/E电路310的一部分)来恢复编程的数据位并使其经受处理。应当理解,图12至图14的例程的各种步骤可由解码器结合与解码器交接的控制电路来执行,诸如但不限于相关联的R/W/E电路310、控制器302等的控制电路。
图16在一些实施方案中提供了用于硬盘驱动器(HDD)或混合固态驱动器(HSSD)存储装置400的功能框图。控制器电路402、接口电路404和缓冲器存储器405如图15中那样操作,以协调与主机装置的数据传输。闪存存储器406提供用于存储数据的本地非易失性半导体存储器。读取/写入(R/W)信道408和前置放大器/驱动器(前置放大器)410支持使用数据读取/写入换能器(头部)414将数据传输至可旋转记录介质(盘)412。头部位置使用语音线圈马达(VCM)416和闭环伺服控制电路418来控制。
可根据需要将来自主机的数据存储到闪存406和/或盘412。如前所述,信道408在写入操作期间对数据进行编码,并且在后续读取操作期间使用ECC处理来恢复数据。可根据需要使用单独的ECC解码器152对存储到闪存和盘的数据进行解码。如前所述,图12至图14的例程的各种步骤可由解码器结合与解码器交接的控制电路来执行,诸如但不限于相关联的R/W电路408、控制器402等的控制电路。
现在应当理解,本文提供的各种实施方案提供了优于现有技术的许多有益效果。使用具有粗略搜索模式和精细搜索模式的快速恢复过程可提供解析码字所需的时间和处理的显著减少,尤其是具有较大初始综合征权重的那些码字。
虽然不需要,但设想ECC解码器的初始解码操作将为使用系统的现有VREF值和其他信道参数的硬解码,其后将评估综合征权重,并且如果需要,将发生粗略搜索和精细搜索,随后从存储器重新读取码字。虽然粗略搜索和精细搜索可作为新的重试来执行,但也可利用软解码技术来进一步加速该过程。
应当理解,尽管在前面的描述中已经阐述了本公开的各种实施方案的诸多特征和优点以及本公开的各种实施方案的结构和功能的细节,但是该具体实施方式仅仅是说明性的,并且可以在由所附权利要求所表达的术语的广泛一般含义所指示的全部范围内对细节进行改变,尤其是在本公开的原理内的部件的结构和布置方面的改变。

Claims (21)

1.一种用于对数据进行解码的方法,包括:
应用至少两个参考电压以提取代表存储在存储器中的数据的初始码字;
使用纠错码(ECC)解码器对所述初始码字进行解码;
确定所述初始码字的初始综合征权重;
通过在第一多次迭代期间同时调节所述至少两个参考电压中的每个参考电压来执行粗略搜索,以生成第一次更新的码字序列,使用所述ECC解码器对所述第一次更新的码字进行解码并确定所述第一次更新的码字中的每个码字的对应综合征权重;
随后通过在第二多次迭代期间依次单独调节所述至少两个参考电压中的每个参考电压来执行精细搜索,以生成第二次更新的码字序列,使用所述ECC解码器对所述第二次更新的码字进行解码,并且确定所述第二次更新的码字中的每个的对应综合征权重;
识别所述至少两个参考电压的最终值,所述最终值生成具有所述最小综合征权重的所述第二次更新的码字中的所选择的一个码字;以及
使用所述至少两个参考电压的所述最终集合来提取存储在所述存储器中的所述数据的用户数据部分。
2.根据权利要求1所述的方法,其中所述ECC解码器为低密度奇偶校验(LDPC)解码器,所述低密度奇偶校验解码器具有被配置为存储相关联的码字的码位的多个可变节点和被配置为对所述可变节点中的所选择的所述码位的组合执行奇偶校验的多个校验节点,并且其中所述综合征权重相对于指示未解析的错误的所述校验节点的总数来确定,所述未解析的错误仍然是响应于奇偶校验的相关联码字。
3.根据权利要求2所述的方法,其中所述LDPC解码器对位错误具有综合征权重的特征响应,所述位错误包括用于更低综合征权重的标称线性区域和用于更高综合征权重的标称饱和区域,其中所述粗略搜索被配置为将所述LDPC解码器从所述饱和区域转移到所述线性区域,并且其中所述精细搜索被配置为解析所述码位中的所有或基本上所有剩余位错误。
4.根据权利要求1所述的方法,其中所述初始码字、所述第一次更新的码字和所述第二次更新的码字中的每个码字包括用户数据位和冗余位,并且其中所述ECC解码器用于使用所述冗余位来识别和纠正所述用户数据位中的错误。
5.根据权利要求1所述的方法,还包括将所述初始综合征权重与加速处理阈值进行比较,以及响应于所述初始综合征权重超过所述加速处理阈值来执行所述粗略搜索。
6.根据权利要求1所述的方法,其中所述粗略搜索包括通过第一增量来调节第一参考电压以提供经调节的第一参考电压,通过第二增量来调节第二参考电压以提供经调节的第二参考电压,以及应用所述调节的第一参考电压和所述调节的第二参考电压以从所述存储器提取选择的码字。
7.根据权利要求1所述的方法,其中所述存储器包括闪存存储器,并且所述至少两个参考电压被应用于从所述闪存存储器读取所述码字。
8.根据权利要求1所述的方法,其中在所述粗略搜索期间确定的所述综合征权重中的每个综合征权重与提前终止阈值进行比较,并且其中所述精细搜索响应于在所述粗略搜索期间确定的所述综合征权重中的所选择的一个综合征权重小于所述提前终止阈值而开始。
9.根据权利要求1所述的方法,其中将所述粗略搜索执行预定数目的迭代,并且所述精细搜索使用所述至少两个参考电压的选择的集合在所述预定数目的迭代结束时开始,所述至少两个参考电压在粗略搜索期间获得的所述综合征权重中提供具有最小值的对应综合征权重。
10.根据权利要求1所述的方法,其中在所述精细搜索期间获得的所述最小综合征权重的值为零。
11.根据权利要求1所述的方法,其中所述最小综合征权重为非零正值,并且其中使用所述至少两个参考电压的所述最终集合来提取存储在所述存储器中的所述数据的所述用户数据部分以提供最终码字,并且将外代码ECC值应用于所述最终码字。
12.一种用于对数据进行解码的方法,包括:
使用第一参考电压和第二参考电压来确定从存储器位置提取的初始码字的综合征权重,并且由纠错码(ECC)解码器解码;
响应于超过预定阈值的所述初始码字的所述综合征权重来应用快速恢复过程,所述快速恢复过程包括粗略搜索,在所述粗略搜索期间,所述第一参考电压和第二参考电压在第一多次迭代期间被同时调节以从所述存储器位置提取后续码字的第一集合中的每个码字,随后进行精细搜索,在所述精细搜索期间,在第二多次迭代中的每次迭代期间依次进一步单独调节所述第一参考电压和第二参考电压,以从所述存储器位置提取后续码字的第二集合中的每个码字,后续码字的所述第一集合和第二集合中的每个码字由所述ECC解码器和针对其确定的对应综合征权重来解码;以及
使用所述第一参考电压和第二参考电压的选择的集合来对存储在所述存储器位置处的数据的用户数据部分进行解码,所述第一参考电压和第二参考电压提供具有最小值的选择的综合征权重。
13.根据权利要求11所述的方法,还包括响应于所述综合征权重小于所述预定阈值来执行所述初始码字的标准解码过程,所述方法是在第三多次迭代中的每次迭代期间通过不同的电压间隔来单独调节第一电压阈值和第二电压阈值,以从所述LDPC码字的所述用户数据位中移除位错误。
14.根据权利要求11所述的方法,其中所述LDPC解码器对位错误具有综合征权重的特征响应,所述位错误包括用于更低综合征权重的标称线性区域和用于更高综合征权重的标称饱和区域,其中所述预定阈值对应于所述线性区域和所述饱和区域之间的过渡位置,并且其中所述快速恢复过程被配置为将所述LDPC解码器从所述饱和区域转移到所述线性区域。
15.根据权利要求11所述的方法,其中将所述参考电压应用到非易失性存储器(NVM),以从所述NVM获得所述码字中的每个码字的单独位。
16.一种设备,包括:
低密度奇偶校验(LDPC)解码器,所述低密度奇偶校验解码器包括被配置为存储码字位的多个可变节点以及被配置为对所述可变节点的所述码字位的选择的组合执行奇偶校验的多个校验节点;和
控制电路,所述控制电路被配置为通过相对于在所述LDPC解码器的第一次迭代期间具有未解析的奇偶错误的所述校验节点的总数确定综合征权重来解析选择的码字中的位错误,以及通过同时调节第一参考电压和第二参考电压来响应于超过预定加速处理阈值的所述综合征权重而执行加速解码操作,用于在粗略搜索模式期间,在第一多次后续迭代中的每次迭代期间恢复所选择码字的后续副本,随后在第二多次后续迭代中的每次迭代期间以不同的电压间隔单独调节所述第一参考电压和第二参考电压,以在精细搜索模式期间从所述选择码字的所述用户数据位中移除位错误。
17.根据权利要求15所述的设备,其中所述LDPC解码器对位错误具有综合征权重的特征响应,所述位错误包括用于更低综合征权重的标称线性区域和用于更高综合征权重的标称饱和区域,其中所述加速处理阈值对应于所述线性区域和所述饱和区域之间的过渡位置,并且其中所述粗略搜索模式被配置为将所述LDPC解码器从所述饱和区域转移到所述线性区域。
18.根据权利要求15所述的设备,还包括非易失性存储器(NVM),其中所述控制电路指导将所述第一参考电压和第二参考电压应用到所述NVM,以检索所述选择的码字的所述码字位。
19.根据权利要求15所述的设备,其中所述NVM包括闪存存储器,所述闪存存储器包括闪存存储器单元,所述闪存存储器单元中的每个闪存存储器单元具有对应于N个存储位的2N个不同编程状态,其中N大于1,并且其中所述第一参考电压和第二参考电压被配置为在与所选择的码字相关联的一组闪存存储器单元中区分所述相应的N个存储位。
20.根据权利要求15所述的设备,其中所述控制电路被进一步配置为在所述粗略搜索模式期间确定所述第一多次后续迭代中的每次迭代期间的更新的综合征权重,将所述更新的综合征权重中的每个综合征权重与早期终止阈值进行比较,并且响应于所述更新的综合征权重中的最近一个综合征权重下降到所述提前终止阈值之下而从所述粗略搜索模式转换到所述精细搜索模式。
21.根据权利要求15所述的设备,其中所述控制电路被进一步配置为应用所述电压参考的最终集合以在所述精细搜索模式结束时生成最终码字,所述最终码字包括至少一个剩余位错误,所述控制电路还使用外代码纠错码来纠正所述最终码字中的所述至少一个剩余位错误。
CN202010080602.8A 2019-02-06 2020-02-05 用纠错码(ecc)综合征权重辅助快速恢复错误 Active CN111540402B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/269,051 2019-02-06
US16/269,051 US10892777B2 (en) 2019-02-06 2019-02-06 Fast error recovery with error correction code (ECC) syndrome weight assist

Publications (2)

Publication Number Publication Date
CN111540402A true CN111540402A (zh) 2020-08-14
CN111540402B CN111540402B (zh) 2023-11-14

Family

ID=71836787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010080602.8A Active CN111540402B (zh) 2019-02-06 2020-02-05 用纠错码(ecc)综合征权重辅助快速恢复错误

Country Status (2)

Country Link
US (1) US10892777B2 (zh)
CN (1) CN111540402B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10636470B2 (en) * 2018-09-04 2020-04-28 Micron Technology, Inc. Source follower-based sensing scheme
KR20210074425A (ko) * 2019-12-11 2021-06-22 삼성전자주식회사 에러를 정정하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법
US11449236B2 (en) * 2020-05-01 2022-09-20 Western Digital Technologies, Inc. Data storage device with syndrome weight minimization for data alignment
US20240120011A1 (en) * 2021-03-19 2024-04-11 Micron Technology, Lnc. Determining offsets for memory read operations
TWI774417B (zh) * 2021-06-11 2022-08-11 瑞昱半導體股份有限公司 基於權重調整演算法參數的解碼方法與解碼系統
US11694761B2 (en) * 2021-09-17 2023-07-04 Nxp B.V. Method to increase the usable word width of a memory providing an error correction scheme
US20230396271A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Early stopping of bit-flip low density parity check decoding based on syndrome weight
US11838032B1 (en) * 2022-10-18 2023-12-05 Western Digital Technologies, Inc. Advanced ultra low power error correcting code encoders and decoders

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085571A1 (en) * 2013-09-24 2015-03-26 Sandisk Technologies Inc. Updating read voltages
US20170068591A1 (en) * 2015-09-08 2017-03-09 Apple Inc. Efficient search for optimal read thresholds in flash memory
US20170125114A1 (en) * 2013-12-20 2017-05-04 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US20170177236A1 (en) * 2015-10-08 2017-06-22 Seagate Technology Llc Internal copy-back with read-verify
US20180012663A1 (en) * 2016-07-08 2018-01-11 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2282671T3 (es) 2002-07-03 2007-10-16 The Directv Group, Inc. Codificacion de codigos de comprobacion de paridad de baja densidad (ldpc) utilizando una matriz de comprobacion de paridad estructurada.
US20050283707A1 (en) 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US7562279B2 (en) 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
SG176449A1 (en) 2006-11-02 2011-12-29 Advanced Tech Materials Antimony and germanium complexes useful for cvd/ald of metal thin films
US7934139B2 (en) 2006-12-01 2011-04-26 Lsi Corporation Parallel LDPC decoder
US8799742B1 (en) * 2007-07-30 2014-08-05 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US7911364B1 (en) 2007-09-04 2011-03-22 Marvell International Ltd. Interleaver for turbo equalization
US8219878B1 (en) 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8291292B1 (en) 2008-01-09 2012-10-16 Marvell International Ltd. Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes
US8201051B2 (en) 2008-10-15 2012-06-12 Lsi Corporation Method for detecting short burst errors in LDPC system
EP2181504A4 (en) 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
US8286048B1 (en) 2008-12-30 2012-10-09 Qualcomm Atheros, Inc. Dynamically scaled LLR for an LDPC decoder
US8370709B2 (en) 2009-04-16 2013-02-05 Micron Technology, Inc. Multiple-level memory cells and error detection
US8351258B1 (en) 2010-01-22 2013-01-08 Marvell International Ltd. Adapting read reference voltage in flash memory device
US8879640B2 (en) 2011-02-15 2014-11-04 Hong Kong Applied Science and Technology Research Institute Company Limited Memory efficient implementation of LDPC decoder
US8918694B2 (en) 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
US8566665B2 (en) 2011-06-24 2013-10-22 Lsi Corporation Systems and methods for error correction using low density parity check codes using multiple layer check equations
US8650451B2 (en) 2011-06-30 2014-02-11 Lsi Corporation Stochastic stream decoding of binary LDPC codes
US8645810B2 (en) 2011-07-31 2014-02-04 Sandisk Technologies Inc. Fast detection of convergence or divergence in iterative decoding
US9264073B2 (en) 2011-09-02 2016-02-16 Samsung Electronics Co., Ltd Freezing-based LDPC decoder and method
US8656249B2 (en) 2011-09-07 2014-02-18 Lsi Corporation Multi-level LDPC layer decoder
US8775896B2 (en) 2012-02-09 2014-07-08 Lsi Corporation Non-binary LDPC decoder with low latency scheduling
US9015547B2 (en) 2012-08-17 2015-04-21 Lsi Corporation Multi-level LDPC layered decoder with out-of-order processing
US8930788B2 (en) 2012-09-04 2015-01-06 Lsi Corporation LDPC decoder with fractional unsatisfied check quality metric
US8862961B2 (en) 2012-09-18 2014-10-14 Lsi Corporation LDPC decoder with dynamic graph modification
US20140089757A1 (en) 2012-09-22 2014-03-27 Lsi Corporation LDPC Decoder With Fractional Local Iterations
US9048870B2 (en) 2012-11-19 2015-06-02 Lsi Corporation Low density parity check decoder with flexible saturation
WO2014139123A1 (en) 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus of ldpc decoder with lower error floor
US9059742B1 (en) 2013-03-15 2015-06-16 Western Digital Technologies, Inc. System and method for dynamic scaling of LDPC decoder in a solid state drive
US20160191079A1 (en) 2014-12-24 2016-06-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Low Dynamic Power Check Node Processor For Low Density Parity Check Decoder
US9473175B1 (en) 2015-02-10 2016-10-18 Microsemi Storage Solutions (U.S.), Inc. Forward error correction decoder system
US9755666B2 (en) 2015-07-24 2017-09-05 Tidal Systems, Inc. Adaptive desaturation in min-sum decoding of LDPC codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150085571A1 (en) * 2013-09-24 2015-03-26 Sandisk Technologies Inc. Updating read voltages
US20170125114A1 (en) * 2013-12-20 2017-05-04 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US20170068591A1 (en) * 2015-09-08 2017-03-09 Apple Inc. Efficient search for optimal read thresholds in flash memory
US20170177236A1 (en) * 2015-10-08 2017-06-22 Seagate Technology Llc Internal copy-back with read-verify
US20180012663A1 (en) * 2016-07-08 2018-01-11 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights

Also Published As

Publication number Publication date
US20200252079A1 (en) 2020-08-06
CN111540402B (zh) 2023-11-14
US10892777B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
CN111540402B (zh) 用纠错码(ecc)综合征权重辅助快速恢复错误
US9378835B2 (en) Methods and apparatus for soft data generation for memory devices based using reference cells
KR101675170B1 (ko) 플래시 메모리 프로그래밍 방법 및 시스템, 플래시 메모리 판독 방법 및 시스템
KR101422050B1 (ko) 셀 당 멀티­비트인 플래시 메모리에서의 오류 보정 방법
US9106264B2 (en) Encoding and decoding in flash memories using convolutional-type low-density parity check codes
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
KR102154789B1 (ko) 선택적 이진 및 비-이진 디코딩을 이용한 플래시 메모리에서의 검출 및 디코딩
US20130185598A1 (en) Multi-tier detection and decoding in flash memories
US10790860B2 (en) Dynamic detection for flash memory
US8990668B2 (en) Decoding data stored in solid-state memory
US9553612B2 (en) Decoding based on randomized hard decisions
US10574272B2 (en) Memory system
US20150317203A1 (en) Code-Based Read Control for Data Storage Devices
US9082480B2 (en) Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
CN109545261B (zh) 在读取操作后选择用于刷新的闪速存储块的方法
CN112331244B (zh) 广义低密度奇偶校验码的软输入软输出分量代码解码器
TWI837354B (zh) 廣義低密度同位檢查碼的軟輸入軟輸出組件碼解碼器
CN110795268B (zh) 比特判断方法、存储器控制电路单元以及存储器存储装置
US20240103727A1 (en) Out-of-order bit-flipping decoders for non-volatile memory devices
KR102530269B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

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