CN101923902A - 与带纠错的多级编码相关的方法、系统和装置 - Google Patents

与带纠错的多级编码相关的方法、系统和装置 Download PDF

Info

Publication number
CN101923902A
CN101923902A CN2010101984781A CN201010198478A CN101923902A CN 101923902 A CN101923902 A CN 101923902A CN 2010101984781 A CN2010101984781 A CN 2010101984781A CN 201010198478 A CN201010198478 A CN 201010198478A CN 101923902 A CN101923902 A CN 101923902A
Authority
CN
China
Prior art keywords
parity
group
sequence
sign indicating
parity information
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
CN2010101984781A
Other languages
English (en)
Other versions
CN101923902B (zh
Inventor
保罗·阿马托
乔瓦尼·坎帕尔多
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.)
Micron Technology Inc
Original Assignee
Numonyx BV Amsterdam Rolle Branch
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 Numonyx BV Amsterdam Rolle Branch filed Critical Numonyx BV Amsterdam Rolle Branch
Publication of CN101923902A publication Critical patent/CN101923902A/zh
Application granted granted Critical
Publication of CN101923902B publication Critical patent/CN101923902B/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
    • 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/29Coding, 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/2933Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • 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/29Coding, 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
    • 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/29Coding, 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/2933Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • H03M13/2936Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional code
    • 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
    • G11C2029/0411Online error correction
    • 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
    • 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/27Coding, 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 using interleaving techniques
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors

Abstract

本公开的实施例提供了与带纠错的多级编码相关的方法、系统和装置。在一些实施例中,可以利用级联编码/解码方案将数据编程到非易失性存储器单元矩阵中和/或从非易失性存储器单元矩阵中读取数据。在一些实施例中,计算模块可以确定非易失性存储器器件的给定参数组合的每单元实际位的值。还可以说明并要求保护其它一些实施例。

Description

与带纠错的多级编码相关的方法、系统和装置
技术领域
本公开的实施例涉及存储器领域,尤其涉及与带纠错的多级编码相关的方法、系统和装置。
背景技术
在用于开发非易失性存储器(NVM)器件如闪速器件的通常工作流程中,在固定NVM器件的关键参数(例如,技术节点的大小、每单元位数等)之后设计纠错码(ECC)。至多进行了对ECC对等待时间和逻辑区域的影响的一些粗略估计。
发明内容
根据本发明的实施例,提供了一种方法,该方法包括:接收输入数据;至少部分地基于所述输入数据、利用外编码器产生外码序列;至少部分地基于所述外码序列、利用内编码器产生内码序列,所述内码序列包括第一群奇偶信息位和第二群非奇偶信息位;将所述第一群奇偶信息位写入非易失性存储器器件的第三群奇偶单元;以及将所述第二群非奇偶信息位写入所述非易失性存储器器件的第四群非奇偶单元。
根据本发明的实施例,还提供了一种方法,该方法包括:从非易失性存储器器件的第二群奇偶单元中读取第一群奇偶信息位;从所述非易失性存储器器件的第四群非奇偶单元中读取第三群非奇偶信息位,所述第一群奇偶信息位和所述第三群非奇偶信息位对应于内码序列;利用内解码器对所述内码序列进行解码以提供外码序列;以及利用外解码器对所述外码序列进行解码以提供输入数据。
根据本发明的实施例,还提供了一种存储了计算机可执行指令的计算机可读介质,所述计算机可执行指令在被机器执行时使得所述机器执行包括以下步骤的方法:接收非易失性存储器(NVM)器件能够存储的非奇偶信息位的数目;接收所述NVM器件的非奇偶单元的数目;接收所述NVM器件的奇偶单元的数目;以及至少部分地基于所述非奇偶信息位的数目、所述非奇偶单元的数目以及所述奇偶单元的数目来确定所述NVM的每单元实际位的值。
根据本发明的实施例,还提供了一种装置,该装置包括:非易失性存储器单元矩阵;以及与所述非易失性存储器单元矩阵耦合的编程器,所述编程器被配置成接收输入数据并至少部分地基于所述输入数据产生级联码序列,所述级联码序列包括第一群奇偶信息位和第二群非奇偶信息位,所述编程器还被配置成将所述第一群奇偶信息位写入第三群奇偶单元以及将所述第二群非奇偶信息位写入第四群非奇偶单元。
附图说明
结合附图进行以下详细说明将容易理解实施例。为了便于进行该说明,用相同的标号指示相同的结构元素。在附图中,通过举例的方式而不是通过限制的方式来说明实施例。
图1示出了根据实施例的非易失性存储器器件。
图2示出了根据实施例的计算系统。
图3是示出了根据实施例的各计算操作的多个流程图。
图4示出了根据实施例的参数组合的表格。
图5示出了根据实施例的非易失性存储器器件。
图6是示出了根据实施例的编码操作和解码操作的两个流程图。
图7是描绘了根据实施例的错误率与信噪比的关系的曲线图。
图8示出了根据实施例的合并了NVM器件的主机设备。
具体实施方式
在以下详细说明中参考构成其一部分的附图,其中相同的标号在任何地方指示相同的部分,在附图中以例示的方式示出了可以实践本公开的实施例。应理解,在不背离本公开的范围的情况下可以使用其它实施例并且可以作出结构或逻辑上的改变。因此,以下详细说明不是在限制的意义上作出的,且根据本公开的实施例的范围是由所附权利要求及其等同设置限定的。
可以以可有助于理解本公开的实施例的方式将各种操作描述为多个分立操作;然而,说明顺序不应被解释为暗示这些操作是依赖于顺序的。
对本公开来说,短语“A和/或B”的意思是“(A)、(B)或(A和B)”。对本公开来说,短语“A、B和/或C”的意思是“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)”。
可以用由各种模块和组件提供的操作来引入和描述这些模块和组件。这些模块和组件可以包括硬件、软件和/或固件元件以便提供所说明的操作。尽管这些模块和组件中的一些可能被示出具有一定程度的专一性(例如,以固定的布置提供多个分立元件),但是其它实施例可以采用元件/布置的各种修改以便在具体实施例的约束/目标内提供相关联的操作。
本说明可以使用短语“在实施例中”,其可以指一个或多个相同或不同的实施例。此外,针对本公开的实施例使用的术语“包括”、“具有”等是同义的。
当奇偶信息位的数目显著少于非奇偶信息位的数目时,上述用于开发非易失性存储器(NVM)器件的通常工作流程可能是高效的。然而,随着技术节点大小的缩小和每个单元中存储的位的数目的增加,原始的位错误率(BER)变得越来越大,从而奇偶信息位的数目增加。在这些情况下,由每单元位数的增加导致的作为主旨的存储容量增益可能被实现可靠性目标所需要的奇偶信息位的数目的相应增加所抵消。在使用硬判决ECC解决方案例如汉明(Hamming)码和BCH码时尤其如此。因而,在此讨论的实施例提供可用来增大NVM器件存储容量的度量标准和ECC方案。
图1示出了根据实施例的NVM器件100。NVM器件100可以包括编程器104,编程器104从例如主机设备接收输入数据,对输入数据进行编码,并将编码数据写入与其耦合的单元矩阵108。单元矩阵108可以是每个都由浮栅金属氧化物半导体(MOS)晶体管形成的多级存储器单元的矩阵。在其它实施例中,可以使用其它晶体管或类晶体管技术。在一些实施例中,多级存储器单元(或简称为“单元”)可以是相变存储器单元。
NVM器件100还可以包括与单元矩阵108耦合的读取器112。读取器112可以通过使用一个或多个感测放大器读取各单元的电压电平Vt来访问存储在单元矩阵108中的编码数据,并通过将该电压电平与一个或多个阈值相比较来确定逻辑电平或“单元状态”。这些单元可以具有由该一个或多个感测放大器将特定MLC的Vt与多个电压阈值相比较而确定的、多于两个的逻辑电平或“单元状态”。因此,逻辑电平可以对应于离散范围的Vt。
在访问编码数据之后,读取器112可以以与编程器104的编码操作互补的方式对数据进行解码。然后,读取器112可以将输出数据提供给例如主机设备。
在由编程器104提供的编码操作中,代表输入数据的多个非奇偶信息位可以与多个奇偶信息位一起产生,奇偶信息位可用来纠正在随后检索非奇偶信息位时可能出现的错误。非奇偶信息位可以被写入非奇偶单元,而奇偶信息位可以被写入奇偶单元。NVM器件100有多个参数(包括在编码处理中使用的ECC方案)对单元矩阵的奇偶单元(其为满足NVM器件100的目标错误率所需)的百分比有影响。因而,本公开的实施例提供用于选择增大单元矩阵108的存储容量同时维持期望工作特性的参数的系统、方法和装置。
图2示出了根据一些实施例的可用来选择NVM器件100的参数的计算系统200。计算系统200可以包括四个计算模块:非奇偶计算模块204、每单元实际位(ABC)计算模块208、奇偶计算模块212和每单元标称位(b/c)计算模块216,它们至少如所示那样彼此耦合。
这些计算模块可以各自分别接收与NVM器件100的选定参数组合相关的输入。作为响应,这些计算模块可以各自分别提供可用作选择NVM器件100的期望参数组合的直接和/或间接基础的输出。由这些计算模块提供的计算可以计及各参数在功能上的相互依赖性。如后面所述,度量的ABC可以帮助在操作上比较各种参数组合。
图3包括说明了根据一些实施例的图2的各模块的计算操作的流程图。图4示出了根据一些实施例的、提供了七种不同的参数组合以及为每种参数组合计算出的值的表格400。
首先参考组合A,b/c计算模块216可以接收单元量1和分布数目4作为输入。单元量是指为了提取位信息而一起读取的单元的数目,分布数目是指每个单元的逻辑电平的数目。给定这些输入,b/c计算模块216可以确定b/c值是2。也就是说,每个单元可以表现出二位的平均值。
还参考图3a,非奇偶计算模块204可以在块304接收NVM器件100的器件大小。器件大小可以被提供为NVM器件100能够存储的非奇偶信息位的数目。在表格400的组合中,器件大小被提供为32,678兆位(Mbit)。在块308,非奇偶计算模块204可以从b/c计算模块216接收b/c。给定这些输入,非奇偶计算模块204可以在块312确定非奇偶单元的数目。对于组合A,非奇偶单元的数目是16,384×106
现在参考图3c,奇偶计算模块212可以在块316接收NVM器件100的器件大小;在块320接收NVM器件100的单元的分布数目;在块324接收在将数据编程到NVM器件100中/从NVM器件100中读取数据时所要使用的ECC方案;并在块328从b/c计算模块216接收b/c。奇偶计算模块212可以在块332使用这些输入作为基础来确定奇偶单元的数目。
在一些实施例中,奇偶计算模块212可以确定ECC值,该ECC值基于与NVM器件100的目标器件错误率(DER)以及所提供的分布数目相关联的BER来确定。参考组合A的参数并假定所有分布具有相同宽度,例如1.3伏(V),则可以使用5.5V的读取窗口来容纳单元的4个分布。这可导致约10-5的BER。为了在给定此BER时实现百万分之(ppm)10的DER,奇偶计算模块212可以确定6位ECC值可被使用。该ECC值可以指每ECC块能够被纠正的位的数目,其可以例如是512个非奇偶信息字节。
对于组合A,使用BCH码作为ECC方案,奇偶计算模块212可以确定每个由512个非奇偶信息字节构成的ECC块将具有78个奇偶信息位。对于该给定实施例,这可以提供约2%的奇偶开销并导致约328×106个奇偶单元。
在本公开中,尽管特定值可能被描述为由特定模块确定,但在其它实施例中,给定模块可从其它模块接收作为输入的值,反之亦然。
现在参考图3b,ABC计算模块208可以在块336接收NVM器件100的大小;在块340从非奇偶计算模块204接收非奇偶单元的数目;并在块344从奇偶计算模块212接收奇偶单元的数目。然后,ABC计算模块208可以在块348通过下面的等式、使用这些输入作为基础来确定ABC:
ABC=(器件的位)/(非奇偶单元+奇偶单元)        等式1
因此,等式1的分母代表对为满足目标DER而产生的奇偶信息位和非奇偶信息位进行存储所需要的单元的真实数目。分子代表NVM器件100的大小,例如能够存储的非奇偶信息位的数目。在组合A中,所确定的ABC可以约为1.96。
可以用类似的方式确定组合B-G的ABC值。可以在不同组合之间调整的主要变量是b/c(包括单元量和分布数目)以及ECC方案。提供这些主要变量的不同值并比较所得ABC可以帮助确定将实现给定实施例的设计目标的期望NVM设计。
在组合B中,分布数目增加到8个并且单元量保持为1,从而提供3的b/c。在此情形下,BER变成0.02,且可能需要164位ECC值来实现10ppm的相同DER。这将导致每ECC块有2028个奇偶信息位,这对应于49%的奇偶开销。然后,计算系统200可以确定此情形的ABC是2.01,其仅略大于组合A的1.96ABC。因此,从2b/c移动到3b/c所导致的作为主旨的增益几乎完全被实现10ppm目标DER所需要的额外奇偶信息位所消除。
在组合D中,分布数目可以是7且单元量可以是1,从而导致2.67b/c。在此情形下,可能需要100位ECC值来实现10ppm目标DER。这导致31%的奇偶开销和2.03的ABC。因此,尽管组合D的每单元标称位小于组合B,但是每单元实际位更大。
当考虑组合F时可以看出类似的效应。在该组合中,计算系统200可以确定:2.15的ABC可使用2.5b/c(其由分布数目6和单元量1得出)来实现。
以此方式,使用ABC把与各种参数组合相关联的奇偶成本计算在内可以提供真实的成本度量,可以利用该成本度量将这些组合相比较。
在一些实施例中,如上所述,还可以调整ECC方案以提供更高的效率。例如,尽管组合A、B、D、F都依靠BCH码,但是使用级联码作为ECC方案可以实现额外增益。可以使用级联编码、根据短的部件码构造长的强大的ECC。组合C、E、G使用具有网格码调制(trellis codemodulation,TCM)的级联编码方案作为内码并使用Reed Solomon(RS)作为外码。在其它实施例中,可以使用其它级联编码方案。
图5更详细地示出了根据实施例的NVM器件100,其中ECC方案是级联编码方案。NVM器件100、具体地说是编程器104可以通过使用以下两个编码器来形成级联码:使用非二进制码的外编码器504和使用二进制码的内编码器508。编程器104还可以包括这两个编码器之间的交织器512。
可以参考图6a的流程图、根据实施例简要说明编程器104的工作。在块604,编程器104可以从数字源516(例如主机设备)接收输入数据。在块608,外编码器504可以至少部分地基于输入数据来产生外码序列。在块612,内编码器508可以至少部分地基于由外编码器504产生的外码序列来产生内码序列。在一些实施例中,如在图5中,交织器(例如交织器512)可以使外码序列交织,且内编码器508可以至少部分地基于交织的外码序列来产生内码序列。
内码序列(在图5中可以称为“编码数据”)可以包括奇偶信息位和非奇偶信息位。然后,在块616,这些奇偶信息位和非奇偶信息位可以被分别写入单元矩阵108的奇偶单元和非奇偶单元。
读取器112可以包括内解码器520、解交织器524和外解码器528,以与编程器105的组件互补的方式工作。可以参考图6b的流程图、根据实施例简要说明读取器112的工作。
在块624,读取器112可以从单元矩阵108接收内码序列,例如编码数据或级联码序列。这可以通过从奇偶单元中读取奇偶信息位并从非奇偶单元中读取非奇偶信息位来完成。在块628,读取器112的内解码器520可以对内码序列进行解码以提供外码序列。其可被提供给外解码器528。在一些实施例中,外码序列在被提供给外解码器528之前可以由解交织器524解交织。在块632,外解码器528可以对外码序列进行解码以提供输入数据。然后,输入数据可以被发送到数字信宿(digital sink)532,例如主机设备。
本实施例中使用的级联编码可以以降低的复杂性实现高的可靠性。从内编码器508产生的内码序列可以是由内解码器520利用软判决解码算法(例如Viterbi算法)解码得到的短TCM序列。外码序列可以长于内码序列,并且可以由外解码器528利用代数解码方法(例如RS码)来解码。
此组合的有效性归因于如下事实:内软码使得编码通道(例如,存储在单元矩阵108中的值的编程和读取)具有较低噪声。实质上,内码(例如TCM码)这样实现这一点:即,以不增大符号传输速率而实现编码增益的方式将普通速率R=k/(k+1)二进制卷积码与M-ary信号群集(M=2(k+1)>2)相组合。换言之,不需要额外的奇偶校验单元。于是,外码通过作用在更好的通道上而在处理所有剩余错误方面变得非常有效。可以参考图7进一步解释该有效性。
图7是示出了根据一些实施例的512字节ECC块的错误概率的曲线图700。具体地说,曲线图700描绘了改变ECC编码方案和值的信号的信噪比(SNR)与字错误率(WER)。SNR可与单元矩阵108的单元的分布宽度和分布数目相关,而WER可与BER成正比。
竖直虚线704代表第一SNR;竖直虚线708代表第二SNR;水平虚线712是为实现10ppm的目标DER所要达到的ECC块错误率。线716、720、724、728、732、736和740分别对应于ECC值164b、80b、66b、40b、24b、12b和0b。
给定竖直虚线704的SNR(其可对应于每单元有8个分布的实施例),可以使用164b的ECC值(由线716代表)来实现目标DER。因此,使用标准BCH码的实施例将需要上面针对组合B讨论的164b的ECC值。
然而,当使用卷积码时,内码(例如TCM码)可以在编码通道上提供约2dB的SNR增益。因此,外码有效地作用在具有竖直虚线708(其与竖直虚线704形成对比)所涉及的SNR的编码通道上。该SNR为外解码器528提供使用66b码(由线724代表)的灵活性。
线744和748分别示出了对于未编码信号和卷积编码信号而言BER如何按SNR变化。线744代表真实的通道状况,线748代表在施加卷积码之后被BCH码看到的通道状况。可以看出,在SNR范围内,卷积编码信号与较低的BER相关联。
再次参考图4的表格400,使用卷积码作为ECC方案的组合(例如组合C、E和G)都与大于2.2的ABC值相关联,而与只使用BCH码的组合相关联的ABC值都小于2.2。
在一些实施例中,再次参考图2,系统200可以包括选择器220,选择器220接收参数组合和相关联的ABC值、并基于ABC值选择期望参数。有可能的是,参数组合的主要变量可以是ECC方案和每单元标称位。因此,这些参数和/或对这些参数有影响的作为基础的参数(例如,分布数目和单元量)可以是这些实施例的选定参数。
图8示出了根据一些实施例的可以作为NVM器件100的主机的主机设备800。主机设备800可以包括:一个或多个处理器804;耦合到处理器804中的至少一个的系统控制逻辑808;耦合到系统控制逻辑808的系统存储器812;耦合到系统控制逻辑808的NVM器件100;以及耦合到系统控制逻辑808的一个或多个通信接口820。
用于一个实施例的系统控制逻辑808可以包括任何适当的接口控制器,以将任何适当的接口提供给与其耦合的组件。
系统存储器812可以用来加载和/或存储例如用于主机设备800的数据/指令。系统存储器812可以包括任何适当的易失性存储器,诸如但不限于适当的动态随机存取存储器(DRAM)。
NVM器件100还可以用来加载和/或存储例如用于主机设备800的数据/指令。NVM器件100可以包括任何适当的非易失性存储器,诸如但不限于NOR闪速存储器、NAND闪速存储器、相变存储器等。
在一些实施例中,逻辑可以包括指令824,指令824当由处理器804执行时导致主机设备800和/或NVM器件100执行在此说明的编程、读取和/或计算操作中的至少一些。指令可以位于NVM器件100和/或系统存储器812中。在一些实施例中,指令824可以另外地/可替选地位于系统控制逻辑808中。
在一些实施例中,主机设备800本身可以用来实施计算系统200的模块而不是NVM器件100的编程/读取操作。在这些实施例中,NVM器件100可以不包含在主机设备800中。
通信接口820可以为主机设备800提供接口以在一个或多个网络上通信并且/或者与任何其它适当的设备通信。通信接口820可以包括任何适当的硬件和/或固件。用于一个实施例的通信接口820可以包括例如网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。对于无线通信,用于一个实施例的通信接口820可以使用一个或多个天线。
对于一个实施例,处理器804中的至少一个可以与系统控制逻辑808的一个或多个控制器的逻辑封装在一起。对于一个实施例,处理器804中的至少一个处理器可以与系统控制逻辑808的一个或多个控制器的逻辑封装在一起以形成系统级封装(System in Package,SiP)。对于一个实施例,处理器804中的至少一个处理器可以与系统控制逻辑808的一个或多个控制器的逻辑集成在同一管芯上。对于一个实施例,处理器804中的至少一个处理器可以与系统控制逻辑808的一个或多个控制器的逻辑集成在同一管芯上以形成片上系统(System on Chip,SoC)。
在各实施例中,主机设备800可以是台式计算机或膝上计算机、服务器、机顶盒、数字记录器、游戏机、个人数字助理、移动电话、数字媒体播放器、数码相机等。主机设备800可以具有或多或少的组件和/或不同的架构。
尽管在此为了说明优选实施例的目的而说明和例示了特定实施例,但是本领域的普通技术人员应理解:在不背离本公开的范围的情况下,可以用意在实现相同目的的各种各样的替代实施例和/或等价实施例或实施来替换所示出和说明的实施例。类似地,可以在具有其它架构的主机设备中采用本公开的存储器器件。本申请意图覆盖在此讨论的实施例的任何修改和变化。因此,显然意图仅由权利要求及其等价设置限定根据本公开的实施例。

Claims (22)

1.一种方法,包括:
接收输入数据;
至少部分地基于所述输入数据、利用外编码器产生外码序列;
至少部分地基于所述外码序列、利用内编码器产生内码序列,所述内码序列包括第一群奇偶信息位和第二群非奇偶信息位;
将所述第一群奇偶信息位写入非易失性存储器器件的第三群奇偶单元;以及
将所述第二群非奇偶信息位写入所述非易失性存储器器件的第四群非奇偶单元。
2.根据权利要求1所述的方法,还包括:
在产生所述外码序列时使用非二进制码;以及
在产生所述内码序列时使用二进制码。
3.根据权利要求2所述的方法,其中所述非二进制码是Reed Solomon码,且所述二进制码是网格码调制码。
4.根据权利要求1所述的方法,还包括:
写入大于二的每单元标称位数;以及
使用所述非易失性存储器器件的总单元数的百分之十五或更少作为奇偶单元。
5.根据权利要求1所述的方法,其中所述非易失性存储器器件能够存储第一数目的非奇偶信息位,且所述第一数目除以所述非易失性存储器器件的奇偶单元的第二数目与所述非易失性存储器器件的非奇偶单元的第三数目之和得到的结果大于2.2。
6.根据权利要求5所述的方法,其中每个单元包括八个或更多分布。
7.一种方法,包括:
从非易失性存储器器件的第二群奇偶单元中读取第一群奇偶信息位;
从所述非易失性存储器器件的第四群非奇偶单元中读取第三群非奇偶信息位,所述第一群奇偶信息位和所述第三群非奇偶信息位对应于内码序列;
利用内解码器对所述内码序列进行解码以提供外码序列;以及
利用外解码器对所述外码序列进行解码以提供输入数据。
8.根据权利要求7所述的方法,还包括:
在对所述外码序列进行解码之前对所述外码序列进行解交织。
9.根据权利要求7所述的方法,还包括:
在对所述内码序列进行解码时使用二进制码;以及
在对所述外码序列进行解码时使用非二进制码。
10.一种存储了计算机可执行指令的计算机可读介质,所述计算机可执行指令在被机器执行时使得所述机器执行包括以下步骤的方法:
接收非易失性存储器(NVM)器件能够存储的非奇偶信息位的数目;
接收所述NVM器件的非奇偶单元的数目;
接收所述NVM器件的奇偶单元的数目;以及
至少部分地基于所述非奇偶信息位的数目、所述非奇偶单元的数目以及所述奇偶单元的数目来确定所述NVM的每单元实际位的值。
11.根据权利要求10所述的计算机可读介质,其中所述指令在被所述机器执行时还使得所述机器执行包括以下步骤的方法:
确定所述NVM的多个可能的参数组合中的每一个的每单元实际位的值。
12.根据权利要求11所述的计算机可读介质,其中所述指令在被所述机器执行时还使得所述机器执行包括以下步骤的方法:
至少部分地基于所述多个可能的组合的每单元实际位的值来选择所述NVM器件的第一参数组合。
13.根据权利要求12所述的计算机可读介质,其中所述指令在被所述机器执行时使得所述机器通过以下步骤执行所述选择:
选择纠错码方案;以及
选择每单元标称位的值。
14.根据权利要求11所述的计算机可读介质,其中所述指令在被所述机器执行时使得所述机器通过以下步骤执行所述确定:
将所述NVM器件的位数除以所述非奇偶单元的数目与所述奇偶单元的数目之和。
15.根据权利要求11所述的计算机可读介质,其中所述指令在被所述机器执行时还使得所述机器执行包括以下步骤的方法:
接收所述NVM器件能够存储的所述非奇偶信息位的数目;
接收所述NVM器件的每单元标称位的值;以及
至少部分地基于所述非奇偶信息位的数目和所述每单元标称位的值来确定所述NVM器件的所述非奇偶单元的数目。
16.根据权利要求11所述的计算机可读介质,其中所述指令在被所述机器执行时还使得所述机器执行包括以下步骤的方法:
接收所述NVM器件的单元的分布数目;
接收在将数据编程到所述NVM器件中和从所述NVM器件中读取数据时所要使用的纠错码(ECC)方案;以及
至少部分地基于所述分布数目和所述ECC方案来确定所述NVM器件的所述奇偶单元的数目。
17.一种装置,包括:
非易失性存储器单元矩阵;以及
与所述非易失性存储器单元矩阵耦合的编程器,所述编程器被配置成接收输入数据并至少部分地基于所述输入数据产生级联码序列,所述级联码序列包括第一群奇偶信息位和第二群非奇偶信息位,所述编程器还被配置成将所述第一群奇偶信息位写入第三群奇偶单元以及将所述第二群非奇偶信息位写入第四群非奇偶单元。
18.根据权利要求17所述的装置,其中所述编程器包括:
外编码器,被配置成接收所述输入数据并至少部分地基于所述输入数据产生外码序列;以及
内编码器,被配置成至少部分地基于所述外码序列产生所述级联码序列。
19.根据权利要求18所述的装置,其中所述外编码器还被配置成使用非二进制码来产生所述外码序列,且所述内编码器还被配置成使用二进制码来产生所述内码序列。
20.根据权利要求17所述的装置,还包括:
内解码器,被配置成对所述级联码序列进行解码以提供外码序列;以及
外解码器,被配置成对所述外码序列进行解码以提供所述输入数据。
21.根据权利要求17所述的装置,其中所述装置是集成电路。
22.根据权利要求17所述的装置,其中所述装置是非易失性存储器器件。
CN2010101984781A 2009-06-10 2010-06-08 与带纠错的多级编码相关的方法、系统和装置 Active CN101923902B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/482,400 2009-06-10
US12/482,400 US8370702B2 (en) 2009-06-10 2009-06-10 Error correcting codes for increased storage capacity in multilevel memory devices

Publications (2)

Publication Number Publication Date
CN101923902A true CN101923902A (zh) 2010-12-22
CN101923902B CN101923902B (zh) 2013-06-05

Family

ID=43070023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101984781A Active CN101923902B (zh) 2009-06-10 2010-06-08 与带纠错的多级编码相关的方法、系统和装置

Country Status (5)

Country Link
US (2) US8370702B2 (zh)
JP (1) JP5229591B2 (zh)
KR (1) KR101188103B1 (zh)
CN (1) CN101923902B (zh)
DE (1) DE102010021516B4 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103913130A (zh) * 2014-04-14 2014-07-09 哈尔滨理工大学 一种用于视觉三维测量组合编解码的容错方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656263B2 (en) * 2010-05-28 2014-02-18 Stec, Inc. Trellis-coded modulation in a multi-level cell flash memory device
US11336303B2 (en) * 2010-06-04 2022-05-17 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
US9195540B2 (en) * 2010-10-06 2015-11-24 HGST, Inc. Multiple sector parallel access memory array with error correction
CN103329103B (zh) * 2010-10-27 2017-04-05 希捷科技有限公司 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
KR101355988B1 (ko) 2012-07-05 2014-01-29 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR102012310B1 (ko) 2012-08-07 2019-10-21 삼성전자 주식회사 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템
JP5794240B2 (ja) 2013-02-05 2015-10-14 ソニー株式会社 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム
KR102204394B1 (ko) 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
GB201320983D0 (en) 2013-11-28 2014-01-15 Ibm Data encoding in solid-state storage apparatus
US9396062B1 (en) * 2014-04-04 2016-07-19 Seagate Technology Llc Group based codes for multi-dimensional recording (MDR)
US10180877B2 (en) * 2016-05-12 2019-01-15 Taiwan Semiconductor Manufacturing Co., Ltd. Selective error correction in a data storage device
US11422888B2 (en) * 2020-10-14 2022-08-23 Western Digital Technologies, Inc. Data integrity check for writing data in memory
WO2022185089A1 (en) * 2021-03-02 2022-09-09 Micron Technology, Inc. Methods and systems for managing memory with dynamic ecc protection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654847A (en) * 1984-12-28 1987-03-31 International Business Machines Apparatus for automatically correcting erroneous data and for storing the corrected data in a common pool alternate memory array
CA2124709C (en) 1993-08-24 1998-06-09 Lee-Fang Wei Reduced speed equalizer
CA2157958C (en) 1994-10-11 2000-01-18 Lee-Fang Wei Trellis coded modulation employing lower dimensionality convolutional encoder
JP2001167596A (ja) 1999-12-09 2001-06-22 Toshiba Corp 不揮発性半導体記憶装置
US6219276B1 (en) 2000-02-25 2001-04-17 Advanced Micro Devices, Inc. Multilevel cell programming
US6799294B1 (en) 2000-04-06 2004-09-28 Lucent Technologies Inc. Method and apparatus for generating channel error flags for error mitigation and/or concealment in source decoders
US6675344B1 (en) 2000-05-01 2004-01-06 Hewlett-Packard Development Company, L.P. Multiple ECC schemes to improve bandwidth
US6757860B2 (en) 2000-08-25 2004-06-29 Agere Systems Inc. Channel error protection implementable across network layers in a communication system
JP2002091831A (ja) * 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
KR100520621B1 (ko) * 2002-01-16 2005-10-10 삼성전자주식회사 가중화된 비이진 반복 누적 부호와 시공간 부호의 부호화방법 및 장치
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US7334159B1 (en) * 2003-09-29 2008-02-19 Rockwell Automation Technologies, Inc. Self-testing RAM system and method
US7395482B2 (en) 2003-12-18 2008-07-01 International Business Machines Corporation Data storage systems
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
KR100694407B1 (ko) * 2005-04-21 2007-03-12 주식회사 하이닉스반도체 불량 셀 교정 회로를 포함하는 불휘발성 강유전체 메모리장치
JP2007133986A (ja) * 2005-11-11 2007-05-31 Nec Electronics Corp 半導体記憶装置
US7447948B2 (en) 2005-11-21 2008-11-04 Intel Corporation ECC coding for high speed implementation
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
EP1912121B1 (en) 2006-09-13 2009-08-12 STMicroelectronics S.r.l. NAND flash memory device with ECC protected reserved area for non volatile storage of redundancy data
KR100785925B1 (ko) * 2006-12-06 2007-12-17 삼성전자주식회사 Tcm을 이용한 멀티 레벨 셀 메모리 장치
US7539052B2 (en) 2006-12-28 2009-05-26 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US8296623B2 (en) 2007-01-05 2012-10-23 California Institute Of Technology Codes for limited magnitude asymmetric errors in flash memories
US7646636B2 (en) * 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US20080256419A1 (en) 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes
US8161343B2 (en) 2007-07-17 2012-04-17 Intel Corporation Nibble encoding for improved reliability of non-volatile memory
US20090055605A1 (en) * 2007-08-20 2009-02-26 Zining Wu Method and system for object-oriented data storage
JP2009070509A (ja) * 2007-09-14 2009-04-02 Oki Electric Ind Co Ltd 半導体記憶装置
JP2009176393A (ja) * 2007-12-27 2009-08-06 Toshiba Corp 不揮発性半導体記憶装置及びその自動テスト方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
CN101405810A (zh) * 2006-01-20 2009-04-08 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103913130A (zh) * 2014-04-14 2014-07-09 哈尔滨理工大学 一种用于视觉三维测量组合编解码的容错方法
CN103913130B (zh) * 2014-04-14 2017-01-04 哈尔滨理工大学 一种用于视觉三维测量组合编解码的容错方法

Also Published As

Publication number Publication date
KR20100132922A (ko) 2010-12-20
DE102010021516B4 (de) 2014-03-20
US20100318877A1 (en) 2010-12-16
CN101923902B (zh) 2013-06-05
US8370702B2 (en) 2013-02-05
JP2010287305A (ja) 2010-12-24
DE102010021516A1 (de) 2010-12-16
US20130191697A1 (en) 2013-07-25
US8745463B2 (en) 2014-06-03
JP5229591B2 (ja) 2013-07-03
KR101188103B1 (ko) 2012-10-09

Similar Documents

Publication Publication Date Title
CN101923902B (zh) 与带纠错的多级编码相关的方法、系统和装置
US9673840B2 (en) Turbo product codes for NAND flash
US8341501B2 (en) Adaptive endurance coding of non-volatile memories
US10388400B2 (en) Generalized product codes for flash storage
US10484008B2 (en) Memory system with on-the-fly error detection and termination and operating method thereof
US10445175B2 (en) Controller and operating method thereof
KR102257050B1 (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
CN106997777A (zh) 具有改进的硬解码吞吐量的vss ldpc解码器
US20160210190A1 (en) Flash memory system and operating method thereof
US10009045B2 (en) Decoding method, memory controlling circuit unit and memory storage device
CN105989890A (zh) 用于快闪存储器的增量llr 产生
CN110299182B (zh) 采用连氏错误校正码设计的存储器存储装置及其编码方法
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US10191801B2 (en) Error correction code management of write-once memory codes
KR102314481B1 (ko) Siso 복호 방법, 디코더 및 반도체 메모리 시스템
TW201337932A (zh) 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US9954556B2 (en) Scheme to avoid miscorrection for turbo product codes
US10528496B2 (en) Controller and operating method thereof
TWI571885B (zh) 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US9906241B2 (en) Apparatus and method for turbo product codes
US10673465B2 (en) Memory controller, memory system, and control method
US11204831B2 (en) Memory system
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICRON TECHNOLOGY INC.

Free format text: FORMER OWNER: NUMONYX B. V.

Effective date: 20120117

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120117

Address after: Idaho

Applicant after: Micron Technology, Inc.

Address before: Swiss Rolle

Applicant before: Numonyx B. V.

C14 Grant of patent or utility model
GR01 Patent grant