CN104115126A - 使用代数码的多阶段ecc编码 - Google Patents

使用代数码的多阶段ecc编码 Download PDF

Info

Publication number
CN104115126A
CN104115126A CN201280069744.8A CN201280069744A CN104115126A CN 104115126 A CN104115126 A CN 104115126A CN 201280069744 A CN201280069744 A CN 201280069744A CN 104115126 A CN104115126 A CN 104115126A
Authority
CN
China
Prior art keywords
group
parity check
bit
code
check 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.)
Pending
Application number
CN201280069744.8A
Other languages
English (en)
Inventor
E.沙伦
I.阿尔罗德
S.利齐恩
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.)
SanDisk Corp
SanDisk Technologies LLC
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN104115126A publication Critical patent/CN104115126A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种方法包括与第一代数错误校正码相关联的第一编码操作,其生成与第一组信息位对应的第一组第一奇偶校验位和与第二组信息位对应的第二组第一奇偶校验位。与第二代数错误校正码相关联的第二编码操作生成与第一组信息位对应的第一组第二奇偶校验位和与第二组信息位对应的第二组第二奇偶校验位。第三编码操作生成一组联合奇偶校验位。第一组信息位、第二组信息位、第一组第一奇偶校验位、第二组第一奇偶校验位和联合奇偶校验位可以存储在数据存储设备中作为单个码字。

Description

使用代数码的多阶段ECC编码
技术领域
本公开总地涉及对错误校正编码(ECC)数据进行解码。
背景技术
例如通用串行总线(USB)闪存设备或可移除存储卡的非易失性数据存储设备允许增加数据和软件应用的便携性。闪存设备可以通过在每一个闪存单元中存储多个位而提高数据存储密度。例如,多级单元(MLC)闪存设备通过每单元存储3位、每单元存储4位或更多而提供增大的存储密度。虽然增加每单元的位数和减少设备特征尺寸(dimension)可以增加存储器设备的存储密度,但是存储在存储器设备的数据的位误码率也增加。
错误校正编码(ECC)通常用于校正从存储器设备读取的数据中出现的错误。在存储前,可由ECC编码器对数据进行编码以生成可以与数据存储在一起的冗余信息(例如“奇偶校验位”)。例如,ECC可以基于代数码,例如汉明编码方案、Reed-Solomon(RS)编码方案或Bose Chaudhuri Hocquenghem(BCH)编码方案,或者基于迭代编码方案,例如Turbo码编码方案或低密度奇偶校验(LDPC)编码方案。
ECC方案的效率可以基于各种方面来测量。例如,效率可以基于与冗余相比的错误校正能力来测量,例如使用给定冗余量可以校正的错误量,或用于校正由于特定误码率遭遇错误的数据的冗余量。可替换地或此外,效率可以至少部分基于ECC引擎的复杂性(例如ECC核的大小或成本)、ECC引擎的功率消耗或解码吞吐量和等待时间来测量。例如,在例如用于移动设备应用的固态盘(SSD)和存储卡中吞吐量增加和等待时间减少的情况下改进随机读取性能。
发明内容
代数码用在多阶段ECC方案中。数据可以被编码为多组信息位。对于每个组信息位,第一码可以用于生成第一组奇偶校验位,并且第二码可以用于生成第二组奇偶校验位。可以使用第三码对多组信息位中的每一组的第二组奇偶校验位进行处理和编码,以生成用作数据的联合奇偶校验位的第三组奇偶校验位。可以使用第四码对联合奇偶校验位进行编码以生成用作联合奇偶校验保护位的第四组奇偶校验位。可以在存储器中存储该组信息位、第一奇偶校验位、联合奇偶校验位和联合奇偶校验保护位。
当从存储器读取该组信息位时,在第一解码阶段,对应的第一奇偶校验位用在基于第一码的解码尝试中。如果在第一解码阶段期间对于该组信息位解码失败,则数据的全部信息组可以基于第一码进行解码并且在第二解码阶段结合联合奇偶校验位进行处理以生成用于在第一阶段中解码失败的信息组的第二组奇偶校验位。使用第二组奇偶校验位的解码可以使用与第一码相比具有改进的错误校正能力的第二码执行。
使用代数码使得能够将错误校正码构造为通过该组联合奇偶校验位连接在一起的若干较短子码(例如BCH子码)的串接(concatenation)。与例如使用串接以构造长低密度奇偶校验(LDPC)码的LDPC子码的实现方式的基于相对高复杂度迭代解码器的实现方式相比,错误校正码在使用相对低复杂度解码引擎的同时具有高错误校正能力。
附图说明
图1是包括被配置为使用基于代数码的多阶段ECC解码的数据存储设备的系统的具体实施例的图;
图2是示出使用基于代数码的多阶段ECC解码生成联合奇偶校验位的第一实施例的图;
图3是示出使用基于代数码的多阶段ECC解码生成联合奇偶校验位的第二实施例的图;
图4是示出使用基于代数码的多阶段ECC解码生成联合奇偶校验位的第三实施例的图;
图5是基于代数码的多阶段ECC编码的方法的具体实施例的流程图;以及
图6是基于代数码的多阶段ECC解码的方法的具体实施例的流程图。
具体实施方式
参考图1,描绘系统100的具体说明性实施例,系统100包括被配置为使用基于代数码的多阶段ECC解码的数据存储设备102。系统100包括耦接到主机设备130的数据存储设备102。数据存储设备102包括耦接到控制器106的存储器104。控制器106被配置为对用于存储在存储器104处的数据进行编码,以使得能够进行基于代数码的多阶段ECC解码。控制器106还被配置为使用基于代数码的多阶段ECC解码对从存储器104读取的数据进行解码。
主机设备130可以被配置为提供要存储在存储器104处的数据或请求要从存储器104读取的数据。例如,主机设备130可以包括移动电话、音乐或视频播放器、游戏控制台、电子书阅读器、个人数字助理(PDA)、例如膝上型计算机、笔记本计算机或平板计算机的计算机、任何其他电子设备或其任何组合。
数据存储设备102可以是存储器卡,例如Secure Digital卡、卡、miniSD.TM卡(特拉华州威尔明顿的SD-3C LLC商标)、MultiMediaCard.TM(MMC.TM)卡(弗吉尼亚州阿灵顿JEDEC固态技术协会的商标)、或(CF)卡(加利福尼亚州米尔皮塔斯闪迪公司的商标)。作为另一示例,数据存储设备102可以是主机130中的固态驱动器(SSD)或嵌入式存储器,例如作为说明性示例的存储器(弗吉尼亚州阿灵顿JEDEC固态技术协会的商标)和eSD存储器。
存储器104可以包括闪存。例如,存储器104可以是例如NAND闪存设备、NOR闪存设备或任何其他类型的闪存设备的闪存设备的非易失性存储器。存储器104包括多个存储元件,例如多级单元(MLC)存储器的存储器单元。
在数据存储设备102可操作地耦接到主机设备130时,控制器106可以被配置为从主机设备130接收存储器访问请求。例如,控制器106可以被配置为从主机设备130接收数据140,对数据140进行编码以生成码字149,并且在存储器104存储码字149。控制器106还可以被配置为从主机设备130接收获取数据140的请求。作为响应,控制器106可以被配置为从存储器104读取码字159,对码字159的一个或多个请求部分进行解码以校正可能在码字159的请求部分中出现的位错误,以及向主机设备130提供解码后的数据170。码字159可以是码字149的表示,即由于在存储器104处存储期间可能出现的一个或多个位错误码字159可能与码字149不同。
控制器106包括被配置为对数据进行编码以使得能够进行基于代数码的多阶段ECC解码的多阶段ECC编码引擎110。多阶段ECC编码引擎110可以包括第一ECC编码器112、第二ECC编码器114、第三ECC编码器116和第四ECC编码器118。控制器106包括被配置为根据基于代数码的多阶段ECC解码对数据进行解码的多阶段ECC解码引擎120。ECC解码引擎120可以包括第一ECC解码器122、第二ECC解码器124、第三ECC解码器126和第四ECC解码器128。
第一ECC编码器112被配置为根据第一代数码对数据进行编码以生成第一组奇偶校验位。例如,第一代数码可以是汉明码、Reed-Solomon(RS)码或Bose Chaudhuri Hocquenghem(BCH)码。如本文使用的,“代数码”可以包括由生成多项式定义的任何循环(或非循环)码并且排除例如Turbo码和低密度奇偶校验(LDPC)的迭代编码方案。作为具体示例,第一ECC编码器112可以对输入数据应用次数(degree)m1的多项式生成函数g1(x)以生成m1个第一奇偶校验位的组。第一组奇偶校验位可以在从存储器104获取的数据的第一解码阶段期间使用。
第二ECC编码器114被配置为根据第二代数码对数据进行编码以生成第二组奇偶校验位。第二代数码可以强于(即提供更多错误校正能力)第一代数码。例如,第二ECC编码器114可以应用次数m1+m2的多项式生成函数g(x)以生成m1+m2个第二奇偶校验位。第二ECC编码器114可以应用次数m1+m2的多项式生成函数g(x)=g1(x)·g2(x),其中g1(x)是第一代数码(具有次数m1)的多项式生成函数,并且其中g2(x)是次数m2的多项式生成函数以生成额外的m2个奇偶校验位。第二组奇偶校验位可以在从存储器104获取的数据的第二解码阶段期间使用。
第三ECC编码器116被配置为根据第三代数码对数据进行编码以生成第三组奇偶校验位。如相对于图2-4进一步详细描述的,第三代数码可以应用于多个该组联合信息位的多个部分(基于第二ECC编码器114的输出)以生成联合奇偶校验位。
第四ECC编码器118被配置为根据第四代数码对数据进行编码以生成第四组奇偶校验位。第四代数码可以应用于联合奇偶校验位以形成联合奇偶校验保护位。
多阶段ECC编码引擎110被配置为通过将例如数据140的数据作为多组信息位(i1141、……、ir142)提供给第一ECC编码器112以生成用于每组信息位的第一组奇偶校验位(p)(即第一组奇偶校验位p1143、……、pr144,其中每个pi组分别包括m1个奇偶校验位)来生成码字149。多阶段ECC编码引擎110被配置为将每组信息位和对应的一组第一奇偶校验位提供给第二ECC编码器114以生成用于每组信息位的第二组奇偶校验位(p(2))(即分别是第二组奇偶校验位p1 (2)145、……、pr (2)146,其中每个pi (2)包括m1+m2个奇偶校验位)。多阶段ECC编码引擎110可以被配置为生成第三组码字,其中第三码字的信息位基于第二码字(例如基于第二码字的奇偶校验位,例如根据第二码字的奇偶校验位的多个部分,p(2)),以及被配置为在第三ECC编码器116生成用于数据140的联合奇偶校验位(pJ)147。多阶段ECC编码引擎110可以被配置为向第四ECC编码器118提供联合奇偶校验位147以生成用于数据140的联合奇偶校验保护位(pJ)148。
多阶段ECC编码引擎110可以被配置为生成包括多组信息位141-142、多个第一组奇偶校验位143-144、联合奇偶校验位147和联合奇偶校验保护位148的码字149。可以丢弃多组p(2)奇偶校验位145-146而不存储到存储器104中。
第一ECC解码器122被配置为根据由第一ECC编码器112使用的第一代数码对数据进行解码。第一ECC解码器122被配置为接收该组信息位和对应的第一组奇偶校验位并且执行ECC解码操作。如果信息位和第一奇偶校验位中的位错误数不超过第一代数码的错误校正能力,则第一ECC解码器122生成解码后的该组信息位(即该组信息位的错误校正后的版本)。否则,响应于信息位和第一奇偶校验位中的错误数超过第一代数码的错误校正能力,第一ECC解码器122生成解码故障指示符。
第二ECC解码器124被配置为根据由第二ECC编码器114使用的第二代数码对数据进行解码。第二ECC解码器124被配置为接收该组信息位和对应的第二组奇偶校验位并且执行ECC操作,以生成该组信息位的错误校正后的版本。
第三ECC解码器126被配置为根据由第三ECC编码器116使用的第三代数码对数据进行解码。如关于图2-4进一步详细描述的,第三代数码可以应用于第三组码字的多个部分以校正第三组码字中的错误或擦除(erasure)以生成第三组码字的错误校正后的版本。
第四ECC解码器128被配置为根据由第四ECC编码器118使用的第四代数码对数据进行解码。第四ECC解码器128被配置为接收联合奇偶校验位和联合奇偶校验保护位并且执行ECC解码操作,以校正联合奇偶校验位中的错误以生成联合奇偶校验位的错误校正后的版本。
多阶段ECC解码引擎120被配置为通过向第一ECC解码器122提供来自所获取的码字159的请求的一组或多组信息位和对应的第一奇偶校验位(例如i1151和p1153)。如果来自所获取的码字159的全部请求的这些组信息位151-152被第一ECC解码器122成功解码,则所获取的码字159的解码处理可以结束并且所请求的解码后的数据可以作为解码后的数据170提供给主机设备130。
否则,当来自所获取的码字159的请求的至少一组信息位未被第一ECC解码器122成功解码时,多阶段解码引擎120被配置为开始所获取的码字159的全部组信息位151-152的解码处理。所获取的码字159的全部组信息位151-152因此被提供给第一ECC解码器122以尝试使用对应的第一奇偶校验位153-154解码。
多阶段解码引擎120可以被配置为通过向第二ECC编码器114提供被第一ECC解码器122成功解码的该组信息位和第一奇偶校验位(例如i1141)开始解码处理的第二阶段,以生成用于成功解码的每组信息位的p(2)奇偶校验位(例如p1 (2)145)
多阶段解码引擎120可以被配置为向第四ECC解码器128提供联合奇偶校验位157和联合奇偶校验保护位158以生成解码后的联合奇偶校验位147。解码后的联合奇偶校验位147。解码后的联合奇偶校验位147和用于已成功解码的每组信息位的所生成的p(2)奇偶校验位的组171可以被提供给第三ECC解码器126,以从第三组码字解码码字。多阶段解码引擎120可以被配置为处理解码后的第三码字172,以生成用于未解码的每组信息位的p(2)奇偶校验位。如关于图2描述的,与未解码的该组信息位相关联的解码后的第三码字位(例如W1(x))因为是第二组第二奇偶校验位除以第一生成多项式(例如W1(x)=p1 (2)/g1(x)),因此可以与用于未解码的该组信息位的对应第二组奇偶校验位(例如p1 (2))对应。所生成的p(2)奇偶校验位可以与未解码的信息位174一起提供给第二ECC解码器124用于使用第二、更高强度的代数码进行解码以生成解码后的信息位175。
在操作期间,在数据存储设备102可操作地耦接到主机设备130的情况下,数据存储设备102可以从主机设备130接收数据140。控制器106可以向多阶段ECC编码引擎110提供数据140,以在第一ECC编码器112生成第一组奇偶校验位143-144。多阶段ECC编码引擎110可以提供该组信息位141-142和第一组奇偶校验位143-144,以在第二ECC编码器114生成第二组奇偶校验位145-146。多阶段ECC编码引擎110可以向第三ECC编码器116提供第二组奇偶校验位145-146,以生成一组联合奇偶校验位147。多阶段ECC编码引擎110可以向第四ECC编码器118提供该组联合奇偶校验位147以生成联合奇偶校验保护位148。控制器106可以向存储器104发送用于存储的码字149。
并非全部由编码处理生成的位都被保存。作为说明,由第二编码器生成的r·m2个奇偶校验位(例如用于r个码字中的每一个的m2个奇偶校验位)可以不被存储为码字149的一部分,而是存储第三编码器的联合奇偶校验位147,因此节省昂贵的存储空间。如果需要的话,则在解码期间可以重新构造所丢弃的位。
在数据存储设备102可操作地耦接到主机设备130的情况下,数据存储设备102可以从主机设备130接收对于数据140的一个或多个部分的请求。控制器106可以从存储器获取码字159并且开始使用对应的第一组奇偶校验位153-154的所请求的该组信息位151-152的第一阶段解码。如果全部所请求的该组信息位151-152在第一阶段成功解码,则所解码的数据被提供给主机设备130。
如果在第一解码阶段期间请求的一组或多组信息位无法正确解码,则多阶段ECC解码引擎120可以开始第二解码阶段,其包括向第四ECC解码器128提供联合奇偶校验保护位158和该组联合奇偶校验位157以生成该组联合奇偶校验位的错误校正后的版本147。在第一阶段未处理的码字159的全部组信息位被提供给第一ECC解码器122,并且所得到的该组信息位的错误校正后的版本被第二ECC编码器114编码以生成第二组奇偶校验位。
第二奇偶校验位和联合奇偶校验位的组147被提供给第三ECC解码器126以生成解码后的第三码字。可以处理解码后的第三码字以生成被提供给第二ECC解码器124以生成解码后的该组信息位的第二组奇偶校验位。所请求的该组信息位可以被提供给主机设备130作为解码后的数据170。
虽然多阶段ECC编码引擎110被示出为包括第四ECC编码器118并且多阶段ECC解码引擎120被示出为包括第四ECC解码器128,但是在其他实施例中可以不包括第四ECC编码器118和第四ECC解码器128。例如,联合奇偶校验位147可以被存储在与相对低的错误出现率相关联的存储器104的一部分中,例如闪存的单级单元(SLC)部分。作为另一示例,其中联合信息位172与用于每组信息位的第二奇偶校验位(而非第二奇偶校验位的多项式除法的余数)相同,减少了可能在联合奇偶校验位中出现的单个错误的影响。作为结果,可以在不使用联合奇偶校验保护位148的情况下实现高概率的错误校正。
图1因此提供其中在使用基于例如BCH子码的若干短子码的低复杂度解码引擎的情况下,若干短子码可以通过该组联合奇偶校验位连接在一起以构造具有高错误校正能力的长ECC码的系统的示例。此外,多阶段解码方案的使用允许随机读取支持和低解码等待时间。可以执行第一次尝试以分别解码每一个子码。基于从存储器104读取的数据的预测错误率,短子码可以被设计为提供相对高的解码成功概率。作为结果,数据可以从存储器104读取,传送至控制器106,并且是解码的短子码(例如在第一ECC解码器122解码的i1141和p1143)。在第一次解码尝试失败的相对低概率事件中,属于相同ECC块的其他子码(例如,在码字159中)也从存储器104读取,传送至控制器106,并且被解码。如果其他子码成功解码,则基于联合奇偶校验位和其他子码的解码结果,对于失败的子码完成第二次解码尝试。第二次解码尝试使用具有比第一次尝试更高的错误校正能力(并且因此更低的失败概率)的代数码。
在本文中符号C(n,k,t)用于表示可以校正t个错误/擦除的长度为n且尺寸为k的错误/擦除校正码。
向量符号q=[q0 q1 q2…qi]及其多项式表示q(x)=q0+q1·x+q2·x2+…qi·xi可互换使用。
符号用于表示多项式除法操作的商结果,使得a(x)=q(x)·b(x)+r(x),其中r(x)是余数多项式,并且deg r(x)<deg b(x)。
大写字母用于表示临时向量/多项式(例如Q或Q(x))(即在编码/解码期间用于中间计算)。小写字母用于表示编码器/解码器的输入/输出向量(例如q或q(x))。
符号(或其多项式表示)用于表示(可能的)向量q(或其多项式表示q(x))的损坏版本。
g1(x)表示错误校正循环码C1(n1=k+m1,k,t1)的次数为m1的生成多项式(generator polynomial)。作为示例,图1的第一ECC编码器112和第一ECC解码器122可以使用C1操作。
g2(x)表示次数为m2的多项式,使得次数为m1+m2的多项式g(x)=g1(x)×g2(x)是错误校正循环码C2(n2=k+m1+m2,k,t2)的生成多项式,其中t2>t1。作为示例,图1的第二ECC编码器114和第二ECC解码器124可以使用C2操作。
r表示串接的子码的数目。
C3(n3=r+m3,r,t3)表示擦除校正码。例如,C3可以是单个二进制奇偶校验码,使得m3=1位,n3=r+1并且t3=1位擦除。擦除校正码C3并不一定是二进制。例如,C3可以是可以校正高达t3=m3个符号擦除的GF()上的Reed-Solomon(RS)码(其中GF表示有限伽罗瓦域(finite Galois Field))。n3是GF(2q)中的符号数,图1的第三ECC编码器116和第三ECC解码器126可以使用C3操作。
C4(n4=m3×m2+m4,k4=m3×m2,t4)表示错误校正码。图1的第四ECC编码器118和第四ECC解码器128可以使用C4操作。
多阶段ECC编码器可以接收k个信息位的r个向量(每子码一个向量)i 1,i 2,…,i r并且可以生成m1个奇偶校验位的r个向量(每子码一个向量)p 1,p 2,…,p r作为输出。多阶段ECC编码器还可以生成用于全部子码的m3×m2个联合奇偶校验位的向量w以及用于保护联合奇偶校验位的m4个奇偶校验位的向量v
通过计算每子码的奇偶校验位(p 1,p 2,…,p r)和计算联合奇偶校验位(w)可以在多阶段ECC编码器处执行编码。每子码的奇偶校验位(p 1,p 2,…,p r),对于每一个j=1,2,…,r、可以通过计算多项式除法的商结果Q(x)而生成:
第一奇偶校验位,pj(x)(次数为m1-1的多项式)或向量p j,可以被计算为:
p j ( x ) = i j ( x ) &CenterDot; x m 1 - Q ( x ) &CenterDot; g 1 ( x ) = i j ( x ) &CenterDot; x m 1 mod g 1 ( x )
第二奇偶校验位pj (2)(x)和/或联合信息位Wj(x)(次数为m2-1的多项式,等价于Wj)可以根据多项式除法的商结果U(x)
来计算为
W j ( x ) = i j ( x ) &CenterDot; x m 1 + m 2 - p j ( x ) &CenterDot; x m 2 - U ( x ) &CenterDot; g 1 ( x ) &CenterDot; g 2 ( x ) g 1 ( x ) = Q ( x ) &CenterDot; x m 2 - U ( x ) &CenterDot; g 2 ( x )
注意Wj(x)还可以被计算为:
p j ( 2 ) ( x ) = [ i j ( x ) &CenterDot; x m 1 - p j ( x ) ] &CenterDot; x m 2 mod g 1 ( x ) &CenterDot; g 2 ( x ) ; W j ( x ) = p j ( 2 ) ( x ) g 1 ( x )
可替换地,Wj(x)可以被计算为:
W j ( x ) = Q ( x ) &CenterDot; x m 2 mod g 2 ( x )
可以使用码C3执行计算联合奇偶校验位(w),以便根据向量W j(j=1,2,…,r)计算m3×m2个联合奇偶校验位(w)。如图2中所示,W j向量可以被布置为矩阵的行并且可以使用码C3对于矩阵中的r个符号的每一列计算奇偶校验符号m3
图2示出使用基于代数码的多阶段ECC解码生成联合奇偶校验位的具体实施例。该组联合信息位202被布置为包括r行的矩阵:W 1203,W 2204,...,W r205。如上所述,每一行W j可以对应于除以生成多项式g2(x)的第二组奇偶校验位pj (2)(其中第二组奇偶校验位pj (2)基于生成多项式g(x)=g1(x)·g2(x))。在替换实施例中,每一行W j可以是第二组奇偶校验位pj (2)。代表性C3码字210包括来自该组联合信息位202的每一行的一位以及来自联合奇偶校验位(w)147的每一行的一个奇偶校验位。通过将C3码应用于该组联合信息位202的每一列(例如通过在图1的第三ECC编码器116编码联合信息位),生成与联合奇偶校验位(w)147的每一列对应的奇偶校验位。
图3示出使用基于代数码的多阶段ECC解码来生成联合奇偶校验位的具体实施例,其中码C3是二进制码,例如可以校正单个擦除的单个奇偶校验码(即,GF(2)上的C3(r+1,r,1))。该组联合信息位202被布置为包括r行的矩阵:W 1203,W 2204,...,W r205。将C3码(异或(XOR)操作310)应用于该组联合信息位202的每一列生成联合奇偶校验位(w)147的对应的奇偶校验位。使用XOR操作310使得能够使用相对低复杂度硬件生成联合奇偶校验位(w)147并且使得能够校正每列的单个擦除。因此,如果生成全部r行中除了一行之外的其余行,则丢失的行可以使用联合奇偶校验位(w)147来重新构造。
图4示出使用基于代数码的多阶段ECC解码来生成联合奇偶校验位的具体实施例,其中码C3是非二进制码。如所示,码C3是可以校正两个擦除的GF(2p)上的Reed-Solomon(RS)码(即GF(2p)上的C3(r+2,r,2)),其中代表性C3码字410包括来自该组联合信息位202的每一行的多个位(对应于非二进制符号)以及来自联合奇偶校验位(w)147的每一行的多个奇偶校验位(对应于非二进制符号)。
虽然图4示出码字410的每一个非二进制符号由该组联合信息位202的单个行的位形成,但是在其他实施例中,码字410的符号可以横跨该组联合信息位202的多个行。作为说明,单个符号可以包括来自行W 1203的一列处的一位以及来自行W 2204的另一列处的另一位。如关于第二阶段解码进一步详细描述的,通过使用横跨该组联合信息位202的多行的多位符号,可以提供对第一阶段解码失败的额外容忍度。
计算用于保护联合奇偶校验位的奇偶校验位(v)(例如图1的联合奇偶校验保护位148)可以使用码C4(n4=m3×m2+m4,k4=m3×m2,t4)来计算用于保护m3×m2个联合奇偶校验位w的m4个奇偶校验位(v)而执行。例如,图1的第四ECC编码器118可以对联合奇偶校验位147进行编码以生成联合奇偶校验保护位148。
存储到存储器的总位数可以是r×k+r×m1+m2×m3+m4,对应于存储i 1,i 2,…,i r,p 1,p 2,…,p r,wv(例如存储图1的包括i 1i r141-142,p 1p r143-144,pJ147和pJP148的码字149)。作为说明,存储r组k个信息位(i)导致存储r×k位。存储r组第一奇偶校验位(p)导致存储r×m1位,其中每个第一组奇偶校验位包括m1位。存储m3行联合奇偶校验位(w)导致存储m2×m3位,其中每行具有m2位。存储联合奇偶校验位(v)导致存储m4位。
可以在第一阶段执行解码,并且如果任何请求的子码在第一阶段并未正确解码,则可以执行第二阶段解码。在第一阶段解码中,为了获得第j’个子码信息位i j,从存储器读取(可能损坏的)位,并且码C1解码器用于从解码i j。如果存储器向每一个C1码字的n1位引入t1个或更少的错误,则解码成功。例如,图1的第一ECC解码器122对可能损坏的信息位i1151和可能损坏的第一奇偶校验位p1操作,以生成信息位i1141。
虽然C1可以是循环码,但是在一些实施例中C1可以是非循环的。注意,是循环码C1的码字,因为其可以被g1(x)整除。循环码的特例是BCH码(当g1(x)被构造为GF()的元素的最小多项式的最小公倍数时,其中α是伽罗瓦(Galois)域GF()的本原元(primitive element))。为了计算的最小公倍数,可以使用GF()中的元素的最小多项式。在一些实施例中,作为说明性示例,C1可以是被定义为生成多项式的乘法的任何码。因此,C1可以是非循环码,并且可以是截短的BCH码或截短的RS码,作为示例性例子。
如果在第一阶段期间高达t3个子码无法解码,则可以执行使用子码奇偶校验和联合奇偶校验的第二阶段子码解码。第二阶段解码可以包括从存储器读取(可能损坏的)联合奇偶校验位和保护联合奇偶校验位的(可能损坏的)奇偶校验位码C4解码器(例如图1的第四ECC解码器128)用于使用恢复联合奇偶校验位的无错误版本w。如果存储器向C4的n4位引入t4个或更少的错误,则联合奇偶校验位的解码成功(即具有小于t4个错误)。
对于在第一解码阶段中成功解码的每一个子码j,i jp j可以用于计算
U ( x ) = [ i j ( x ) &CenterDot; x m 1 + m 2 - p j ( x ) &CenterDot; x m 2 g 1 ( x ) &CenterDot; g 2 ( x ) ]
子码j对第三码字C3的贡献可以被生成为:
W j ( x ) = i j ( x ) &CenterDot; x m 1 + m 2 - p j ( x ) &CenterDot; x m 2 - U ( x ) &CenterDot; g 1 ( x ) &CenterDot; g 2 ( x ) g 1 ( x )
可替换地,Wj(x)可以被生成为:
W j ( x ) = [ i j ( x ) &CenterDot; x m 1 - p j ( x ) ] &CenterDot; x m 2 mod g 1 ( x ) &CenterDot; g 2 ( x ) g 1 ( x )
注意,g1(x)和g2(x)可以在解码器中是已知的,因为码定义被假设为已知的。此外,注意,在具体实现方式情况下,计算Wj(x)可以通过计算下列等式来执行:
其后 W j ( x ) = Q ( x ) &CenterDot; x m 2 mod g 2 ( x )
码C3擦除解码器可以用于恢复每一个失败子码j的Wj。如果最多t3个子码在阶段1期间无法解码,则擦除解码器将成功恢复每一个失败子码的Wj
注意,在C3是非二进制码,例如包括GF(2q)上的符号,并且在每一个这种符号中多于一个子码参加的情况下,如果在‘r’个子码中的每一个中,在对应于码C1的k+m1位中存在小于t2个错误,则t3可以小于r并且解码仍然可以成功。例如,如果q=4,r=8,t3=2(RS校正两个擦除或一个错误)且m3=2(符号),则全部8个子码可能无法解码(t3=2<r=8)并且如果在8个子码的每一个中,在对应于码C1的k+m1位中存在小于t2个错误,则第二阶段解码方案将仍然恢复信息位。
对于在第一解码阶段中失败的每一个子码j,损坏的C2码字可以被生成为多项式:
c ~ j ( x ) = i ~ j ( x ) &CenterDot; x m 1 + m 2 - p ~ j ( x ) &CenterDot; x m 2 - W j ( x ) &CenterDot; g 1 ( x )
码C2解码器(例如图1的第二ECC解码器124)可以用于从解码i j。如果存储器向读取位引入t2个或更少的错误,则解码成功(即如果具有t2个或更少的组合错误,则第二阶段解码成功)。
注意, c j ( x ) = [ i j ( x ) &CenterDot; x m 1 - p j ( x ) ] &CenterDot; x m 2 - W j ( x ) &CenterDot; g 1 ( x ) = U ( x ) &CenterDot; g 1 ( x ) &CenterDot; g 2 ( x ) 是循环码C2的码字,因为其可以被g(x)=g1(x)·g2(x)整除。循环码的特例是BCH码(当g(x)=g1(x)·g2(x)被构造为根的最小多项式的最小公倍数时,其中α是伽罗瓦域GF()的本原元)。注意C2可以对应于截短的BCH或RS码并且不一定是循环码。
使用代数码的多阶段解码与传统ECC编码相比对于给定冗余量可以提供复杂度和解码等待时间的显著减少,同时大致维持相同错误校正能力。表1中提供若干示例。在表1的示例中,多阶段码字(例如图1的码字149)适合932B并且提供每8KB块<10-10的块错误率。作为参考,可以使用传统122b/2KB BCH。
表1
●参考:传统BCH:kref=2KB,tref=122
●示例1:r=8,k=1KB,t1=64,t2=79,t3=1,t4=8
(C1,C2,C4是BCH码,C3是单个奇偶校验码)
●示例2:r=4,k=1KB,t1=62,t2=76,t3=1,t4=7
(C1,C2,C4是BCH码,C3是单个奇偶校验码)
●示例3:r=2,k=1KB,t1=56,t2=72,t3=1,t4=8
(C1,C2,C4是BCH码,C3是单个奇偶校验码)
●示例4:r=8,k=0.5KB,t1=31,t2=46,t3=2,t4=11
(C1,C2,C4是BCH码,C3是GF(16)上的RS码)
●示例5:r=8,k=0.5KB,t1=34,t2=45,t3=1,t4=6
(C1,C2,C4是BCH码,C3是单个奇偶校验码)
与长度为nref且校正能力为tref的传统BCH编码方案相比,当C1,C2,C4是BCH码并且C3是单个奇偶校验码或RS码时使用代数码的多阶段ECC的复杂度改进可以如下给出:
与长度为nref的传统BCH编码方案相比,使用代数码的多阶段ECC的等待时间改进可以如下给出:
等待时间比可以基于主要由第一解码阶段确定的解码等待时间,因为子码在第一解码阶段期间失败的概率可能较小(例如小于10-5)。
参考图5,描绘对数据进行编码的方法500的具体实施例的流程图。方法500可以在数据存储设备处执行,例如图1的数据存储设备102。在502,可以开始与第一错误校正码相关联的第一编码操作,以生成与第一组信息位对应的第一组第一奇偶校验位以及生成与第二组信息位对应的第二组第一奇偶校验位。第一错误校正码是代数码。例如,通过向第一ECC编码器112的编码输入提供第一组信息位并且向第一ECC编码器112的控制输入发送信号以使得第一ECC编码器读取在编码输入处的第一组信息位并且对第一组信息位执行第一编码操作,可以在图1的第一ECC编码器112处开始第一编码操作。
在504,开始与第二错误校正码相关联的第二编码操作,以生成与第一组信息位对应的第一组第二奇偶校验位以及生成与第二组信息位对应的第二组第二奇偶校验位。第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码。例如,通过向第二ECC编码器114的编码输入提供第一组信息位并且向第二ECC编码器114的控制输入发送信号,以使得第二ECC编码器114读取编码输入处的第一组信息位并且对第一组信息位执行第二编码操作,可以在图1的第二ECC编码器114处开始第二编码操作。
在506,开始第三编码操作,以生成与一组联合信息位对应的一组联合奇偶校验位。该组联合信息位与第一组信息位和第二组信息位相关联。例如,第一错误校正码可以对应于第一生成多项式g1(x),并且该组联合信息位可以包括除以第一生成多项式的第一组第二奇偶校验位(例如W1(x)=p1 (2)(x)/g1(x))并且可以包括除以第一生成多项式的第二组第二奇偶校验位(例如W2(x)=p2 (2)(x)/g1(x))。通过生成该组联合信息位,向第三ECC编码器116的编码输入提供该组联合信息位,以及向第三ECC编码器116的控制输入发送信号以使得第三ECC编码器116读取在编码输入处的该组联合信息位并且对该组联合信息位执行第三编码操作,可以在图1的第三ECC编码器116处开始第三编码操作。作为示例,该组联合信息位可以被布置为如图2-4中所示的矩阵,并且作为矩阵的列序列(或列组)被提供给编码输入。例如,如关于图3描述的,第三编码操作可以包括可以校正单个擦除的单个奇偶校验码。作为另一示例,如关于图4描述的,第三编码操作可以包括非二进制代数码。
方法500还包括,在508,在数据存储设备的存储器中将第一组信息位、第二组信息位、第一组第一奇偶校验位、第二组第一奇偶校验位和联合奇偶校验位存储为单个码字。例如,单个码字可以是图1的码字149。
方法500还可以包括开始第四编码操作,以通过例如图1的第四ECC编码器128生成与联合奇偶校验位对应的一组联合奇偶校验保护位。单个码字还可以包括该组联合奇偶校验保护位。通过向第四ECC编码器118的编码输入提供该组联合奇偶校验位,以及向第四ECC编码器118的控制输入发送信号,以使得第四ECC编码器118读取编码输入处的该组联合奇偶校验位并且对该组联合奇偶校验位执行第四编码操作,可以开始第四编码操作。
通过对信息进行编码以使得能够进行基于代数码的多阶段ECC解码,可以执行与具有与多阶段ECC解码方案相当的错误校正能力的BCH码相比等待时间减少的对短子码进行解码的第一解码阶段。第二解码阶段可以提供与具有相当错误校正能力的BCH码相比存储器存储需求减少的基于更长的码的更强的ECC保护。与例如Turbo码或LDPC的迭代解码方案相比,使用代数码的ECC可以减少解码器复杂度和解码等待时间。
参考图6,描绘解码数据的方法600的具体实施例的流程图。可以在例如图1的数据存储设备102的数据存储设备处执行方法600。
在解码的第一阶段期间,在602,开始与第一错误校正码相关联的第一解码操作。第一解码操作使用码字的第一组信息位和第一组第一奇偶校验位。第一错误校正码是代数码。例如,通过向第一ECC解码器122的解码输入提供第一组信息位和第一组奇偶校验位,以及向第一ECC解码器122的控制输入发送信号,以使得第一ECC解码器122读取解码输入处的第一组信息位和第一组奇偶校验位并且执行第一解码操作,可以在图1的第一ECC解码器122处开始第一解码操作。例如图1的码字159,码字还包括第二组信息位、第二组第一奇偶校验位和该组联合奇偶校验位。
在604,响应于第一解码操作的解码失败,开始解码的第二阶段。在606,第二阶段包括开始使用第二组信息位和第二组奇偶校验位的第二解码操作。第二解码操作与第一错误校正码相关联。例如,通过向第一ECC解码器122的解码输入提供第二组信息位和第二组奇偶校验位,以及向第一ECC解码器122的控制输入发送信号,以使得第一ECC解码器122读取解码输入处的第二组信息位和第二组奇偶校验位并且执行第二解码操作,可以在图1的第一ECC解码器122处开始第二解码操作。
在606,第二阶段包括开始与第二错误校正码相关联的编码操作,以生成与第二组信息位对应的第二组第二奇偶校验位。第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码。例如,通过向第二ECC编码器114的编码输入提供第二组信息位,以及向第二ECC编码器114的控制输入发送信号,以使得第二ECC编码器114读取编码输入处的第二组信息位并且执行对第二组信息位执行编码操作,可以在图1的第二ECC编码器114处开始编码操作。
在608,第二阶段包括开始使用该组联合奇偶校验位和与第二组第二奇偶校验位对应的联合信息位的第三解码操作,以生成与第一组第二奇偶校验位对应的联合信息位。第一组第二奇偶校验位与第一信息位相关联。例如,第一错误校正码可以与例如g1(x)的第一生成多项式对应。与第二组第二奇偶校验位对应的联合信息位(例如W2(x))可以包括除以第一生成多项式的第二组第二奇偶校验位(例如p2 (2)(x)/g1(x))。作为示例,通过生成包括与第二组奇偶校验位对应的联合信息位(但不包括与第一组信息位对应的联合信息位)的该组联合信息位,向第三ECC解码器126的解码输入提供该组联合信息位和联合奇偶校验位,以及向第三ECC解码器126的控制输入发送信号,以使得第三ECC解码器126读取解码输入处的该组联合信息位和该组联合奇偶校验位并且对该组联合信息位和该组联合奇偶校验位执行第三解码操作,可以在图1的第三ECC解码器126处开始第三解码操作。
在610,第二阶段还包括开始使用第一组信息位和第一组第二奇偶校验位的第四解码操作。第四解码操作与第二错误校正码相关联。例如,通过向第二ECC解码器124的解码输入提供第一组信息位和第一组第二奇偶校验位,以及向第二ECC解码器124的控制输入发送信号,以使得第二ECC解码器124读取解码输入处的第一组信息位和第一组第二组奇偶校验位并且执行第四解码操作,可以在图1的第二ECC解码器124处开始第四解码操作。
在一些实施例中,码字还包括该组联合奇偶校验保护位,并且第二阶段包括开始使用该组联合奇偶校验位和该组联合奇偶校验保护位的联合奇偶校验解码操作,以在开始第三解码操作之前校正该组联合奇偶校验位中的错误。例如,可以在图1的第四ECC解码器128处执行联合奇偶校验解码操作。作为示例,如关于图3描述的,联合奇偶校验解码操作可以基于可以校正单个擦除的单个奇偶校验码。作为另一示例,如关于图4描述的,联合奇偶校验解码操作可以基于非二进制代数码。
通过使用基于代数码的多阶段ECC解码进行解码,可以执行与具有与多阶段ECC解码方案相当的错误校正能力的BCH码相比等待时间和复杂度减少的对短子码进行解码的第一解码阶段。第二解码阶段可以提供与具有相当错误校正能力的BCH码相比存储器存储需求减少的基于更长的码的更强的ECC保护。与例如Turbo码或LDPC的迭代解码方案相比,使用代数码的ECC可以减少解码器复杂度和解码等待时间。
虽然本文描绘的各种组件被示出为块组件并且以通用术语描述,但是这种组件可以包括一个或多个微处理器、状态机、或被配置为使能例如图1的数据存储设备102的数据存储设备的其他电路以执行归因于这种组件或其任何组合的特定功能。例如,图1的多阶段ECC编码引擎110和多阶段ECC解码引擎120中的一个或两者可以表示例如处理器、状态机、逻辑电路或其他结构的物理组件以使得能够进行根据使用代数码的多阶段ECC方案的数据的编码和解码。
图1的多阶段ECC编码引擎110和多阶段ECC解码引擎120中的一个或两者可以使用微处理器或微控制器实现。在特定实施例中,多阶段ECC解码引擎120包括执行存储在存储器104的指令的处理器。可替换地或此外,可执行指令可以存储在不是存储器104的一部分的分开的存储器位置处,例如在只读存储器(ROM)处。
在具体实施例中,数据存储设备102可以是被配置为选择性地耦接到一个或多个外部设备的便携式设备。例如,数据存储设备102可以是可移除设备,例如通用串行总线(USB)闪存或可移除存储器卡。然而,在其他实施例中,数据存储设备102可以附接到一个或多个主机设备或嵌入在一个或多个主机设备内,例如在便携式通信设备的外壳内。例如,数据存储设备102可以在封装装置内,例如无线电话、个人数字助理(PDA)、游戏设备或控制台、便携式导航设备、计算机或使用内部非易失性存储器的其他设备。在具体实施例中,数据存储设备102包括非易失性存储器,例如闪存(例如,NAND、NOR、多级单元(MLC)、分级(divided)位线NOR(DINOR)、AND、高电容耦合率(HiCR)、非对称非接触式晶体管(ACT)或其他闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次性可编程存储器(OTP)或任何其他类型的存储器。
本文描述的实施例的图示意图提供各种实施例的一般理解。可以利用并且从本公开得出其他实施例,使得在不背离本公开的范围的情况下进行结构和逻辑替换和改变。本公开意图覆盖各种实施例的任何和全部随后的适应和变化。
上面公开的主题被认为是说明性而非限制性的,并且所附权利要求意图覆盖落在本公开的范围内的全部这种修改、增强和其他实施例。因此,在法律允许的最大程度上,本发明的范围由所附权利要求及其等效物的最宽允许解释确定,并且不应局限于或受限于上述详细描述。

Claims (22)

1.一种对数据进行编码的方法,所述方法包括:
在数据存储设备处,执行:
开始与第一错误校正码相关联的第一编码操作,以生成与第一组信息位对应的第一组第一奇偶校验位以及生成与第二组信息位对应的第二组第一奇偶校验位,其中第一错误校正码是代数码;
开始与第二错误校正码相关联的第二编码操作,以生成与第一组信息位对应的第一组第二奇偶校验位以及生成与第二组信息位对应的第二组第二奇偶校验位,其中第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码;
开始第三编码操作,以生成与一组联合信息位对应的一组联合奇偶校验位,该组联合奇偶校验位与第一组信息位和第二组信息位相关联;
在数据存储设备的存储器中将第一组信息位、第二组信息位、第一组第一奇偶校验位、第二组第一奇偶校验位和联合奇偶校验位存储为单个码字。
2.如权利要求1所述的方法,还包括开始第四编码操作,以生成与联合奇偶校验位对应的一组联合奇偶校验保护位,其中单个码字还包括该组联合奇偶校验保护位。
3.如权利要求1所述的方法,其中第三编码操作包括能够校正单个擦除的单个奇偶校验码。
4.如权利要求1所述的方法,其中第三编码操作包括非二进制代数码。
5.如权利要求1所述的方法,其中第一错误校正码与第一生成多项式对应,并且其中该组联合信息位包括除以第一生成多项式的第一组第二奇偶校验位并且包括除以第一生成多项式的第二组第二奇偶校验位。
6.一种对数据进行解码的方法,所述方法包括:
在数据存储设备处,执行:
在解码的第一阶段期间,开始与第一错误校正码相关联的第一解码操作,第一解码操作使用码字的第一组信息位和第一组第一奇偶校验位,其中第一错误校正码是代数码,并且其中所述码字还包括第二组信息位、第二组第一奇偶校验位和该组联合奇偶校验位;以及
响应于第一解码操作的解码失败,开始解码的第二阶段,第二阶段包括:
开始使用第二组信息位和第二组奇偶校验位的第二解码操作,第二解码操作与第一错误校正码相关联;
开始与第二错误校正码相关联的编码操作,以生成与第二组信息位对应的第二组第二奇偶校验位,其中第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码;
开始使用该组联合奇偶校验位和与第二组第二奇偶校验位对应的联合信息位的第三解码操作,以生成与第一组第二奇偶校验位对应的联合信息位,第一组第二奇偶校验位与第一信息位相关联;
开始使用第一组信息位和第一组第二奇偶校验位的第四解码操作,第四解码操作与第二错误校正码相关联。
7.如权利要求6所述的方法,其中所述码字还包括该组联合奇偶校验保护位,并且还包括开始使用该组联合奇偶校验位和该组联合奇偶校验保护位的联合奇偶校验解码操作,以在开始第三解码操作之前校正该组联合奇偶校验位中的错误。
8.如权利要求7所述的方法,其中联合奇偶校验解码操作基于能够校正单个擦除的单个奇偶校验码。
9.如权利要求7所述的方法,其中联合奇偶校验解码操作基于非二进制代数码。
10.如权利要求6所述的方法,其中第一错误校正码与第一生成多项式对应,并且其中与第二组第二奇偶校验位对应的联合信息位包括除以第一生成多项式的第二组第二奇偶校验位。
11.一种数据存储设备,包括:
存储器;以及
多阶段错误校正编码(ECC)编码器,包括:
第一编码器,其与第一错误校正码相关联的,并且被配置为生成与第一组信息位对应的第一组第一奇偶校验位以及生成与第二组信息位对应的第二组第一奇偶校验位,其中第一错误校正码是代数码;
第二编码器,其与第二错误校正码相关联,并且被配置为生成与第一组信息位对应的第一组第二奇偶校验位以及生成与第二组信息位对应的第二组第二奇偶校验位,其中第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码;
第三编码器,其被配置为生成与一组联合信息位对应的一组联合奇偶校验位,该组联合奇偶校验位与第一组信息位和第二组信息位相关联;
其中多阶段ECC编码器被配置为生成要在存储器中存储的包括第一组信息位、第二组信息位、第一组第一奇偶校验位、第二组第一奇偶校验位和联合奇偶校验位的码字。
12.如权利要求11所述的数据存储设备,其中多阶段ECC编码器还包括第四编码器,其被配置为生成与联合奇偶校验位对应的一组联合奇偶校验保护位,并且其中多阶段ECC编码器被配置为在码字中包括该组联合奇偶校验保护位。
13.如权利要求11所述的数据存储设备,其中第三编码器被配置为使用每码字能够校正单个擦除的单个奇偶校验码。
14.如权利要求11所述的数据存储设备,其中第三编码器被配置为使用非二进制代数码。
15.如权利要求11所述的数据存储设备,其中第一错误校正码与第一生成多项式对应,并且其中该组联合信息位包括除以第一生成多项式的第一组第二奇偶校验位并且包括除以第一生成多项式的第二组第二奇偶校验位。
16.一种数据存储设备,包括:
存储器;以及
多阶段错误校正编码(ECC)解码器,包括:
第一解码器,其与第一错误校正码相关联,并且被配置为接收存储在存储器处的码字的第一组信息位和第一组第一奇偶校验位,其中第一错误校正码是第一代数码,并且其中所述码字还包括第二组信息位、第二组第一奇偶校验位和该组联合奇偶校验位;
第二解码器,其与第二错误校正码相关联,并且被配置为接收第一组信息位和第一组第二奇偶校验位并且生成第一组信息位的错误校正后的版本,其中第二错误校正码是具有比第一错误校正码更高的错误校正能力的另一代数码;以及
第三解码器,其被配置为接收该组联合奇偶校验位和该组联合信息位并且生成该组联合信息位的错误校正后的版本,其中该组联合信息位与第一组信息位和第二组信息位相关联;
其中多阶段ECC解码器被配置为使用第一解码器执行第一组信息位的第一阶段解码,并且响应于第一阶段解码期间的解码失败执行第二阶段解码,包括使用第一解码器对第二组信息位进行解码,生成与第二组信息位对应的第二组第二奇偶校验位,使用第三解码器解码与第一组信息位对应的联合信息位,并且使用第二解码器解码第一组信息位,其中向第二解码器提供的第一组第二奇偶校验位与对应于第一组信息位的解码后的联合信息位对应。
17.如权利要求16所述的数据存储设备,其中所述码字还包括该组联合奇偶校验保护位,并且还包括第四解码器,该第四解码器被配置为执行联合奇偶校验解码操作,以使用该组联合奇偶校验位和该组联合奇偶校验保护位以生成该组联合奇偶校验位的错误校正后的版本。
18.如权利要求17所述的数据存储设备,其中联合奇偶校验解码操作基于每码字能够校正单个擦除的单个奇偶校验码。
19.如权利要求17所述的数据存储设备,其中联合奇偶校验解码操作基于非二进制代数码。
20.如权利要求16所述的数据存储设备,其中第一错误校正码与第一生成多项式对应,并且其中与第一组信息位对应的联合信息位包括除以第一生成多项式的第一组第二奇偶校验位。
21.如权利要求1所述的方法,其中第二错误校正码的码字的位的子集构成第一错误校正码的码字。
22.如权利要求6所述的方法,其中第二错误校正码的码字的位的子集构成第一错误校正码的码字。
CN201280069744.8A 2011-12-22 2012-12-20 使用代数码的多阶段ecc编码 Pending CN104115126A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/335,534 2011-12-22
US13/335,534 US8645789B2 (en) 2011-12-22 2011-12-22 Multi-phase ECC encoding using algebraic codes
PCT/US2012/070869 WO2013096581A1 (en) 2011-12-22 2012-12-20 Multi-phase ecc encoding using algebraic codes

Publications (1)

Publication Number Publication Date
CN104115126A true CN104115126A (zh) 2014-10-22

Family

ID=47628426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069744.8A Pending CN104115126A (zh) 2011-12-22 2012-12-20 使用代数码的多阶段ecc编码

Country Status (4)

Country Link
US (1) US8645789B2 (zh)
JP (1) JP2015507409A (zh)
CN (1) CN104115126A (zh)
WO (1) WO2013096581A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991230A (zh) * 2015-02-13 2016-10-05 瑞昱半导体股份有限公司 存储器控制模块与方法以及纠错码编/解码电路与方法
CN106856103A (zh) * 2014-12-08 2017-06-16 爱思开海力士有限公司 用于与非闪存的涡轮乘积码
CN108028058A (zh) * 2015-10-08 2018-05-11 桑迪士克科技有限责任公司 用于设备的数据编码技术
CN110909001A (zh) * 2019-11-20 2020-03-24 成都比特信安科技有限公司 一种数据种子植入及溯源追踪的方法
CN111048140A (zh) * 2018-10-15 2020-04-21 爱思开海力士有限公司 错误校正电路、存储器控制器及存储器系统
CN111869111A (zh) * 2018-02-09 2020-10-30 美光科技公司 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字
CN111989746A (zh) * 2018-04-20 2020-11-24 美光科技公司 使用阶层式解码器的误差校正
CN117707839A (zh) * 2024-02-05 2024-03-15 苏州领慧立芯科技有限公司 Otp数据错误检查与纠正系统、方法及存储芯片

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874958B2 (en) * 2010-11-09 2014-10-28 International Business Machines Corporation Error detection in a mirrored data storage system
CN102567134B (zh) * 2012-01-06 2015-01-07 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法
JP5768022B2 (ja) 2012-03-19 2015-08-26 株式会社東芝 メモリコントローラ、記憶装置、誤り訂正装置および誤り訂正方法
TW201346922A (zh) * 2012-05-14 2013-11-16 Toshiba Kk 記憶體控制器、記憶裝置及錯誤修正方法
US20140006897A1 (en) * 2012-06-29 2014-01-02 International Business Machines Corporation Correction of structured burst errors in data
US9577673B2 (en) * 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US20140245101A1 (en) * 2013-02-28 2014-08-28 Kabushiki Kaisha Toshiba Semiconductor memory
US9344117B2 (en) * 2013-03-15 2016-05-17 Mellanox Technologies, Ltd. Methods and systems for error-correction decoding
KR20150006616A (ko) * 2013-07-09 2015-01-19 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작 방법
US20150074496A1 (en) * 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US10073731B2 (en) 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
KR20150084560A (ko) * 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 인코딩 장치, 디코딩 장치 및 그 동작 방법
US20150256204A1 (en) * 2014-03-07 2015-09-10 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
US9513987B2 (en) 2014-11-07 2016-12-06 International Business Machines Corporation Using error correcting codes for parity purposes
KR102305095B1 (ko) 2015-04-13 2021-09-24 삼성전자주식회사 비휘발성 메모리 컨트롤러의 동작 방법
US9772899B2 (en) * 2015-05-04 2017-09-26 Texas Instruments Incorporated Error correction code management of write-once memory codes
US10432363B2 (en) * 2016-08-12 2019-10-01 SK Hynix Inc. Page health prediction using product codes decoder in NAND flash storage
US9836350B2 (en) * 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Joint decoding of rewriting NVM error sectors
US10180874B2 (en) 2015-10-28 2019-01-15 Western Digital Technologies, Inc. Storage device operations based on bit error rate (BER) estimate
US9886342B2 (en) * 2015-10-28 2018-02-06 Sandisk Technologies Llc Storage device operations based on bit error rate (BER) estimate
US9978462B2 (en) 2015-10-29 2018-05-22 Sandisk Technologies Llc Partial soft bit read
US9984771B2 (en) * 2016-01-11 2018-05-29 Sandisk Technologies Llc Multi-level raid-type encoding with random correction capability
US10389389B2 (en) 2016-03-04 2019-08-20 Western Digital Technologies, Inc. Method and data storage device using convolutional low-density parity-check coding with a long page write and a short page read granularity
US10367528B2 (en) 2016-03-04 2019-07-30 Sandisk Technologies Llc Convolutional low-density parity-check coding
US10063258B2 (en) 2016-03-04 2018-08-28 Sandisk Technologies Llc Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
US10656996B2 (en) * 2016-12-21 2020-05-19 PhazrIO Inc. Integrated security and data redundancy
TWI634561B (zh) * 2017-03-24 2018-09-01 群聯電子股份有限公司 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
US10083754B1 (en) * 2017-06-05 2018-09-25 Western Digital Technologies, Inc. Dynamic selection of soft decoding information
US10379952B2 (en) * 2017-06-16 2019-08-13 Western Digital Technologies, Inc. Data recovery and regeneration using parity code
CN108021467B (zh) * 2017-11-10 2021-07-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
US10372539B2 (en) 2017-11-20 2019-08-06 Western Digital Technologies, Inc. Variable length CLDPC encoder and method of operation in an autonomous vehicle
US11216443B2 (en) * 2018-06-20 2022-01-04 EMC IP Holding Company LLC Processing device configured for data integrity testing utilizing signature-based multi-phase write operations
US10691532B2 (en) * 2018-06-29 2020-06-23 Alibaba Group Holding Limited Storage drive error-correcting code-assisted scrubbing for dynamic random-access memory retention time handling
US11164652B2 (en) 2019-06-21 2021-11-02 Micron Technology, Inc. Two-layer code with low parity cost for memory sub-systems
US11152958B2 (en) * 2019-12-09 2021-10-19 Western Digital Technologies, Inc. Very low complexity SECDED codes
US11296729B2 (en) 2020-07-23 2022-04-05 Micron Technology, Inc. Data reliability for extreme temperature usage conditions in data storage
WO2022139848A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Dynamic hardware integrity and/or replay protection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3668673B2 (ja) * 2000-06-09 2005-07-06 株式会社日立コミュニケーションテクノロジー エラー訂正符号の構成方法、復号方法、伝送装置、ネットワーク
JP4707803B2 (ja) * 2000-07-10 2011-06-22 エルピーダメモリ株式会社 エラーレート判定方法と半導体集積回路装置
US7079826B2 (en) * 2001-03-16 2006-07-18 Texas Instruments Incorporated Digitally controlled analog RF filtering in subsampling communication receiver architecture
JP3993035B2 (ja) * 2001-07-19 2007-10-17 松下電器産業株式会社 データ記録方法、記録媒体、および再生装置
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7823043B2 (en) 2006-05-10 2010-10-26 Sandisk Il Ltd. Corruption-resistant data porting with multiple error correction schemes
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
US8832518B2 (en) 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
JP5166074B2 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
JP4672743B2 (ja) * 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
KR101526317B1 (ko) * 2008-05-09 2015-06-11 삼성전자주식회사 계층적 디코딩 장치
US8365049B2 (en) * 2008-12-15 2013-01-29 Lsi Corporation Soft-error detection for electronic-circuit registers
CN102034552A (zh) * 2009-09-25 2011-04-27 威刚科技(苏州)有限公司 存储装置与其资料处理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106856103A (zh) * 2014-12-08 2017-06-16 爱思开海力士有限公司 用于与非闪存的涡轮乘积码
CN106856103B (zh) * 2014-12-08 2020-10-30 爱思开海力士有限公司 用于与非闪存的涡轮乘积码
CN105991230A (zh) * 2015-02-13 2016-10-05 瑞昱半导体股份有限公司 存储器控制模块与方法以及纠错码编/解码电路与方法
CN108028058A (zh) * 2015-10-08 2018-05-11 桑迪士克科技有限责任公司 用于设备的数据编码技术
CN108028058B (zh) * 2015-10-08 2021-06-04 桑迪士克科技有限责任公司 数据存储设备、装置和方法
CN111869111A (zh) * 2018-02-09 2020-10-30 美光科技公司 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字
CN111989746A (zh) * 2018-04-20 2020-11-24 美光科技公司 使用阶层式解码器的误差校正
CN111048140A (zh) * 2018-10-15 2020-04-21 爱思开海力士有限公司 错误校正电路、存储器控制器及存储器系统
CN110909001A (zh) * 2019-11-20 2020-03-24 成都比特信安科技有限公司 一种数据种子植入及溯源追踪的方法
CN117707839A (zh) * 2024-02-05 2024-03-15 苏州领慧立芯科技有限公司 Otp数据错误检查与纠正系统、方法及存储芯片
CN117707839B (zh) * 2024-02-05 2024-04-26 苏州领慧立芯科技有限公司 Otp数据错误检查与纠正系统、方法及存储芯片

Also Published As

Publication number Publication date
US20130166988A1 (en) 2013-06-27
JP2015507409A (ja) 2015-03-05
US8645789B2 (en) 2014-02-04
WO2013096581A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
CN104115126A (zh) 使用代数码的多阶段ecc编码
CN103392172B (zh) 纠正存储阵列中的擦除
US9673840B2 (en) Turbo product codes for NAND flash
KR101686980B1 (ko) 비휘발성 메모리 내의 데이터 저장 방법
US8719677B2 (en) Using ECC encoding to verify an ECC decode operation
CN113032178B (zh) 存储器控制器及快闪存储器的存取方法
US8874995B2 (en) Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US9710327B2 (en) Flash memory system and operating method thereof
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
CN102017425B (zh) 用于执行级联纠错的方法和系统
CN103329104A (zh) 使用另外的错误校正编码数据的数据恢复
TW200846898A (en) Method for writing data in flash memory and error correction coding/decoding method thereof
CN106874140B (zh) 数据存储方法及装置
CN101373640A (zh) 闪存装置以及错误校正方法
CN104733051A (zh) 奇偶校验码的解码方法、存储器储存装置及控制电路单元
US11025281B2 (en) Memory system
US9680509B2 (en) Errors and erasures decoding from multiple memory devices
CN101634938A (zh) 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘
US12009837B2 (en) Syndrome calculation for error detection and error correction
US8627183B1 (en) Systems and methods for storing variable rate product codes
CN105304143A (zh) 解码方法、存储器控制电路单元及存储器存储装置
JP2020046823A (ja) メモリシステム
CN113168882A (zh) 一种编码方法、译码方法以及存储控制器
CN115408198A (zh) 数据纠错方法、装置、设备及存储介质
CN108170554B (zh) 一种nand的数据编码方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C05 Deemed withdrawal (patent law before 1993)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141022