CN101635158B - 编码和/或解码系统数据的方法、装置、系统和体系结构 - Google Patents
编码和/或解码系统数据的方法、装置、系统和体系结构 Download PDFInfo
- Publication number
- CN101635158B CN101635158B CN200910159482.4A CN200910159482A CN101635158B CN 101635158 B CN101635158 B CN 101635158B CN 200910159482 A CN200910159482 A CN 200910159482A CN 101635158 B CN101635158 B CN 101635158B
- Authority
- CN
- China
- Prior art keywords
- code
- data
- redundanat
- metadata
- redundanat code
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1803—Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1264—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
- G11B2020/1265—Control data, system data or management information, i.e. data used to access or process user data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了编码和/或解码系统数据的方法、装置、系统和体系结构。用于提供对来自存储系统的系统数据(例如,元数据)的迅速、独立且可靠的检索的方法、装置、系统和体系结构使得用户数据的可靠性降低可达到最低限度。方法一般包括对系统数据进行至少两次编码,其中至少一次为独立编码,至少一次是与用户数据一起的联合编码。方法还包括首先对系统数据解码,并且在解码失败后,对系统数据和用户数据联合解码。
Description
技术领域
本发明一般地涉及数据存储和检索的领域。更具体而言,本发明的实施例涉及用于对系统数据(或元数据)多次编码的方法、装置、系统和体系结构。
背景技术
在一些传统的数据存储系统中,例如在那些采用硬盘驱动器、致密盘、数字多功能盘(DVD)、闪存和随机访问存储器的数据存储系统中,所谓的用户数据和元数据可被存储在同一个扇区中。用户数据可包括诸如文档、照片、音频文件、媒体文件、操作文件等等之类的数据。关于用户数据的附加信息可由系统生成并且例如可对应于用户数据的长度和/或位置、用户数据的创建时间、用户数据的类型、用户数据的保护状态,等等。该附加信息有时被称为系统数据,或者元数据。一般地,用户数据占用的存储空间比相应元数据占用的存储空间要大得多。为了帮助诸如数据组合、索引和搜索之类的系统操作,存储系统经常需要仅访问元数据。
一些传统的数据存储系统还可以结合纠错和/或差错检测来确保对用户数据和元数据两者的可靠存储和检索。例如,通过采用诸如Bose-Chaudhuri-Hocquenghem(BCH)编码、Reed-Solomon编码、低密度奇偶校验编码、Hamming编码、Reed-Muller编码、二进制Golay编码、Viterbi编码、Turbo编码、最优矩形编码或迭代编码之类的纠错算法,或者通过采用诸如奇偶校验比特、校验和或者循环冗余校验之类的差错检测算法,可以从相应的用户数据和/或元数据生成冗余数据。冗余数据通常与用户数据和元数据被存储在同一扇区中。
参考图1和2的示例,一些传统的体系结构包括将用户数据20、元数据30和冗余数据40存储在存储系统的同一个扇区10中,其中冗余数据40对应于联合编码的用户数据20和元数据30。对用户数据和元数据进行联合编码(即,将用户数据和元数据一起作为单个串行数据流进行编码)提供了对用户数据的更可靠存储和检索。出于说明而非限制目的,假定在每个扇区10中,4千字节被分配给用户数据20,并且80字节被分配给元数据。如果生成与对用户数据20和元数据30的联合16比特BCH编码相对应的冗余数据40,则将会观察到,当等于60的BCH纠错力(T)(对应于二进制数据的约T*16比特)被分配给冗余数据40时,对用户数据和元数据两者解码的失败率概率约为10^-5。类似地,当T=117(对应于二进制数据的约117*16比特)被分配给冗余数据40时,对用户数据和元数据两者解码的失败率概率约为10^-25。然而,因为冗余数据40是从用户数据20和元数据30两者生成的,所以用户数据20和元数据30都必须被读取并被联合解码,即使在希望只检索元数据30时也是如此。从而,一些传统的体系结构虽然使得数据存储和检索能够具有极佳的可靠性,但却不能仅对元数据进行高吞吐量的检索。
从而,在一些其他的传统体系结构中,提供了两组冗余数据——一组仅对应于用户数据,另一组仅对应于元数据。在这些方案中,元数据可以独立于用户数据地利用其相应地冗余数据来被解码,从而使得能够仅对元数据进行高吞吐量的检索。参考图3和4的示例,用户数据120、元数据130、对应于用户数据120的第一冗余数据143和对应于元数据130的第二冗余数据146被存储在存储系统的同一扇区110中。然而,分配给冗余数据的总空间现在由第一冗余数据143和第二冗余数据146共享,这可能增大开销成本和/或减小差错校验和/或纠正(ECC)的能力。
再次考虑生成对应于16比特BCH编码的冗余数据的示例,4千字节被分配给用户数据120,80字节被分配给元数据130,并且被分配用于经编码的冗余数据(即,第一冗余数据143和第二冗余数据146)的总可用空间为220字节。换言之,如果使用16比特BCH编码,则总纠错力T_total=110。如图所示,当更多比特被分配给第二冗余数据146时,则更少的比特可用于分配给第一冗余数据143,因此导致用户数据120的失败率概率更高。如果希望元数据的失败率概率小于或等于用户数据失败率概率,则对第一和第二冗余数据的相应比特分配必须满足解答线180(例如,位于解答线180处或者在解答线180的左侧)。从而,为了使得元数据130的差错检验和/或纠正与用户数据120一样可靠,必须向第一冗余数据143分配不多于T=95(对应于95*16比特)(例如参见解答点183)。结果,约T=15(对应于15*16比特)可用于分配给第二冗余数据146(例如,总ECC纠正力[117]和分配给第一冗余数据的ECC纠正力[95]之间的差)。在此情况下,用户数据的失败率概率约为10^-17(与图1和2的联合编码体系结构的10^-25对比)。因此,虽然对用户数据和元数据的独立编码提供了仅对元数据的更高吞吐量检索,但它却没有提供数据存储和检索的极佳可靠性。
另一方面,增大ECC比特的数目以对经过解码的用户数据和元数据进行单独的差错校验和/或纠正不仅会增大所消耗的存储器的量,而且还会增大差错校验和/或纠正逻辑的复杂度。因此,需要能够仅对元数据进行迅速、独立和可靠的检索,其中用户数据可靠性的降低达到最低限度。
发明内容
本发明的实施例涉及用于对系统数据(或元数据)进行多次编码的方法、装置、系统和体系结构。更具体而言,本发明的实施例涉及对元数据进行至少两次编码,其中至少一次是独立编码,至少一次是与用户数据一起的联合编码。
在一些实施例中,在存储系统中存储具有用户数据部分和元数据部分的数据的方法可包括:利用长度为R的第一冗余码对用户数据和元数据进行编码;利用长度为P的第二冗余码对元数据进行编码;以及将用户数据、元数据、第一冗余码和第二冗余码中的每一个一起写在存储系统中。(一个或多个)算法和/或软件一般可被配置为实现这种方法和/或体现这里描述的发明构思的任何过程或步骤序列。
在其他实施例中,在具有多个部分的数据的第一部分和第二部分被利用第一冗余码来联合编码,第二部分被利用第二冗余码来(单独)编码,并且第一部分和第二部分以及第一冗余码和第二冗余码被一起写在存储系统中的情况下,恢复该数据的一部分的方法可包括:从存储系统中读取对应于第二部分的一部分数据和对应于第二冗余码的一部分数据;利用第二冗余码对第二部分进行解码;以及指示出是否利用第二冗余码对第二部分进行了成功解码。(一个或多个)算法和/或软件可类似地被配置为实现这种方法和/或体现这里描述的发明构思的任何过程或步骤序列。在各种实施例中,第一部分包括用户数据,并且第二部分包括元数据。
在其他实施例中,一种数据编码器可包括:至少一个输入,该至少一个输入接收将要被写入到存储介质的第一数据部分(例如,用户数据)和(相关联的)第二数据部分(例如,元数据);逻辑,该逻辑被配置为生成(i)与第一和第二数据部分两者相对应的第一冗余码,以及(ii)与第二数据部分而不与第一数据部分相对应的第二冗余码;以及输出,该输出将经编码的数据信号提供到存储介质的数据记录机构,其中,经编码的数据信号包括第一和第二数据部分、第一冗余码和第二冗余码。
在其他实施例中,数据解码器可包括:输入,该输入从存储介质接收所存储的数据信号,其中所存储的数据信号包括:(i)通过第一冗余码联合编码的第一和第二数据部分(例如,用户数据和相关联的元数据)两者的表示,以及(ii)通过第二冗余码编码的第二数据部分的表示;以及逻辑,该逻辑被配置为对所存储的数据信号进行解码并提供从存储介质读取的第二数据部分。
在其他实施例中,用于存储具有第一部分和第二部分的数字数据的系统可包括:具有多个可写扇区的数据存储介质;编码逻辑,该编码逻辑生成对应于该数字数据的至少两个冗余码,其中这两个冗余码中的第一冗余码包括对应于数字数据的第一部分(或者第一和第二部分)的纠错码,并且这两个冗余码中的第二冗余码包括对应于数字数据的第二部分的纠错码;数据记录机构,该数据记录机构被配置为将数字数据和该至少两个冗余码写在可写扇区之一中;读取器,该读取器被配置为从该(一个)可写扇区中读取数字数据的表示和冗余码的表示;以及解码逻辑,该解码逻辑被配置为对来自该(一个)可写扇区的数字数据进行解码。
在其他实施例中,编码器、解码器和/或差错校验和纠正体系结构可包括体现这里描述的发明构思的编码器、解码器和/或任何其他(一个或多个)电路。
本发明有利地提供了仅对元数据的迅速、独立和可靠的检索,其中数据可靠性的降低达到最低限度。本发明的这些和其他优点将从以下对示例性实施例的描述中变得更清楚。
附图说明
图1是示出传统数据存储体系结构的图,其中用户数据和元数据被联合编码。
图2是示出图1的体系结构的典型失败率概率的示图。
图3是示出传统数据存储体系结构的图,其中用户数据和元数据被分别编码。
图4是示出图3的体系结构的典型失败率概率的示图。
图5是示出根据本发明实施例的示例性数据存储体系结构的图。
图6是示出图5的体系结构的典型失败率概率的示图。
图7是示出根据本发明实施例对数据编码的示例性方法的流程图。
图8是示出根据本发明实施例对数据解码的示例性方法的流程图。
图9是示出根据本发明实施例对数据解码的另一种方法的流程图。
图10是示出根据本发明实施例的示例性编码系统和/或装置的框图。
图11是示出根据本发明实施例的示例性解码系统和/或装置的框图。
图12是示出根据本发明实施例的示例性系统和/或装置的框图。
具体实施方式
现在将详细述及本发明的各种实施例,这些实施例的示例在附图中示出。虽然将结合以下提供的示例性实施例来描述本发明,但是这些实施例并不意图限制本发明。相反,本发明意图覆盖可包括在由所附权利要求限定的本发明的范围内的替换、修改和等同。另外,在以下对本发明的描述中,阐述了许多具体细节以帮助全面理解本发明。然而,没有这些具体细节也可实现本发明。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以避免不必要地模糊本发明的技术方案。
以下的详细描述的一些部分是以进程、过程、逻辑块、功能块、处理以及计算机、处理器、控制和/或存储器内对数据比特、数据流或波形的操作的其他符号表示的形式给出的。这些描述和表示一般被数据处理领域的技术人员用于将其工作的实质有效地传达给本领域的其他技术人员。进程、过程、逻辑块、功能、操作等等在这里并且一般来说被认为是带来期望的和/或预期的结果的频率或指令的自洽序列。步骤一般包括对物理量的物理操纵。通常(但并非一定),这些量采取能够在计算机、数据处理系统或逻辑电路中存储、传送、组合、比较和以其他方式操纵的电、磁、光或量子信号的形式。已经证明,有时,出于通常使用的原因,将这些信号称为比特、波、波形、流、值、元素、符号、字符、项、数字等等将是便利的。
所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用到这些量的便利标签。除非另有明确指明和/或从以下论述中清楚可见,否则应当明白,在整个本申请中,利用诸如“处理”、“操作”、“计算”、“生成”、“确定”、“操纵”、“变换”、“显示”之类的术语的论述指的是对被表示为物理(例如,电子)量的数据进行操纵和变换的计算机、数据处理系统、逻辑电路或类似的处理设备(例如,电气、光学或量子计算或处理设备)的动作和进程。这些术语指的是处理设备的将一个系统或体系结构(例如,寄存器、存储器、其他这样的信息存储装置、传输或显示设备等等)的(一个或多个)组件内的物理量操纵或变换成同一个系统或体系结构的其他组件或不同的系统或体系结构内的被类似地表示为物理量的其他数据的动作、操作和/或进程。另外,为了便利和简单,术语“数据”、“码”、“数据流”、“波形”和“信息”可被互换使用,术语“连接到”、“与...耦合”、“耦合到”和“与...通信”也是如此(这些术语还指连接的元件、耦合的元件和/或通信元件之间的直接和/或间接关系,除非术语的使用上下文明确地有其他指示),但这些术语一般也被赋予其在本领域承认的含义。
用于存储元数据的示例性方法
在一个方面中,本发明涉及用于对元数据进行至少两次编码的方法,其中至少一次是独立编码,至少一次是与用户数据联合编码。参考图5和6的示例性图示,根据本发明的实施例,用户数据220、元数据230、第一冗余数据244和第二冗余数据246可被存储在数据存储系统的同一个扇区210中。如下文中更充分论述的,在一些示例中(但并非限于此),第一冗余码244可对应于通过对用户数据220和元数据230进行联合编码而创建的差错校验和/或纠正码,并且第二冗余码246可对应于通过独立于用户数据220地对元数据230编码而创建的差错校验和/或纠正码。在一种实现方式中,第二冗余码246是通过对元数据230单独编码(例如,对构成元数据230的数字数据编码)而产生的。排除用户数据对元数据编码至少一次使得可以对元数据230进行独立的读取和/或解码。这使得能够对数据存储系统中的元数据进行更迅速和/或更准确的读取,这也可以带来文件系统操作中的显著性能改善。
此外,对元数据和用户数据联合编码也使得元数据能够与用户数据一样可靠。例如(但并非限于此),假定对于数据存储系统的给定扇区210,4千字节被分配给用户数据220,80字节被分配给元数据230,并且总共220字节可用于第一冗余码244和第二冗余码246。还假定,例如(但并非限于此),第一冗余码244是联合对应于用户数据220和元数据230的16比特BCH码,并且第二冗余码246是仅对应于元数据230的16比特BCH码,在此情况下分配给所有冗余比特(220字节)的总存储空间对应于110的纠错力。参考图6的示图,例如,当纠错力P=95(例如参见解答点253)被分配给第一冗余码244时,最多达R=15可用于分配给第二冗余码246。这种分配将提供具有约10^-17的解码失败率概率的独立元数据恢复,并且还将提供具有约10^-17的解码失败率概率的联合元数据和用户数据恢复。然而,与一些传统的独立编码体系结构(例如,图3和4所示的体系结构)不同,本发明的实施例提供了可位于解答点253右侧的分配解答线(例如(但并非限于)解答线250)。
例如(但并非限于此),在一种实现方式中,纠错力R=108可被分配给第一冗余码244(例如参见解答线250上的解答点258,在该处它与数据解码失败率概率曲线251相交),并且P=2可被分配给第二冗余码(例如参见解答线250上的解答点256,在该处它与元数据解码失败率概率曲线252相交)。如上所述,这种分配可提供具有例如(但不限于)约10^-5的失败率概率的独立元数据恢复,以及具有例如(但不限于)约10^-23的失败率概率的用户数据恢复。因此,对于只需要访问元数据的系统操作,在一些实施例中,可以首先利用相对较“弱”的第二冗余码246对元数据230独立解码,这具有约10^-5的失败率概率。然后,如果没有成功恢复元数据,则可以通过利用相对较“强”的第一冗余码244对用户数据220和元数据230联合解码来恢复元数据230,这具有约10^-23的更可靠的失败率概率。从而,元数据可被编码至少两次:一次利用较“弱”的冗余码,这使得能够对元数据进行迅速的独立恢复,一次利用较“强”的冗余码,这使得能够对元数据和用户数据两者进行更可靠的恢复。
根据本发明的实施例也可设想对冗余码的其他比特分配。例如(但并非限于此),如图6的示例性示图中所示,P=17可被分配给第二冗余码(从而提供约为10^-12的失败率概率),并且R=93可被分配给第一冗余码(从而提供约为10^-20的失败率概率)。虽然以上示例涉及16比特BCH型编码并且向用户数据、元数据和(一个或多个)恢复码分配特定的扇区大小,但是使用不同的扇区大小分配和/或其他类型的编码也完全在本领域技术人员的能力范围内。例如(但并非限于此),第一冗余码可对应于16比特BCH编码,而第二冗余码可对应于8比特BCH编码。从数学上解答相应的编码方程以向(一个或多个)冗余码提供不同的比特分配并从而提供不同的失败率概率,这也完全在本领域技术人员的能力范围内。
对元数据和用户数据一起进行编码使得元数据能够与用户数据一样可靠。在图5的实施例中,对于数据存储系统的给定扇区210,X千字节被分配给用户数据220,Y千字节被分配给元数据230,并且总共R+P字节可用于第一冗余码244(R)和第二冗余码246(P)。数据扇区的大小和分配给用户数据、元数据和冗余码(例如,差错校验和/或纠正码)的存储器/存储装置的具体量一般取决于数据存储介质(例如,诸如硬盘驱动器之类的磁盘、诸如CD-ROM或DVD之类的光盘、诸如闪存驱动器或闪存条之类的非易失性存储器、例如用于网络交换机或网络缓冲器中那种随机访问存储器,等等),并且这种值是本领域中标准化的或者公知的。
图6是针对图5的实施例的、作为分配给第一冗余码244的纠错力R的函数的、对用户数据解码和对元数据解码的失败率(“差错率”)的示图,其中用户数据和元数据被编码为16比特BCH码(其中X=扇区210中的4千字节,Y=扇区210中的80字节,并且R+P=220字节的奇偶校验比特)。在图6的实施例中,第一冗余码244和第二冗余码246分别对应于(i)用户数据220和元数据230一起以及(ii)元数据230单独。图6的示图中的数据失败率线251和交点253表明,当大于R=95的纠错力被分配给第一冗余码244(即,R>95*16比特)时,发生对用户数据220和元数据230一起的相对可靠的解码。这种分配提供了具有约10^-17的失败率概率的对用户数据和元数据一起的恢复。然而,即使可用于分配给第二冗余码246的纠错力小于P=15(参见元数据失败率线252和解答点253),元数据仍能以合理的可靠度被成功解码。
从而,一般而言,可以确定作为分配给第一冗余码244的冗余存储的量的函数的、对用户数据和元数据一起解码的失败率和对元数据单独解码的失败率的示图,以及交点(在该处两个失败率曲线相交,例如图6中的解答点253)。交点处的失败率可被称为FCR,并且分配给第一和第二冗余码的冗余存储的量可以分别被称为RCR和PCR。在本发明的各种实施例中,分配给第一冗余码的存储量R(例如,以字节或比特为单位)相对于分配给第二冗余码246的存储量P可用公式R/P>RCR/PCR来表示。例如,R/P可以大于或等于1.1*(RCR/PCR)、1.2*(RCR/PCR)、1.5*(RCR/PCR),或者任何其他大于RCR/PCR的最小值。作为替换或附加,RCR和PCR可以被选择为使得对用户数据和元数据一起解码的失败率FUSER小于FCR,并且对用户元数据单独解码的失败率FMETA大于FCR。在各种实现方式中,失败率FUSER可以小于FCR/10、FCR/100、FCR/1000,或者任何其他小于FCR的最大值,并且失败率FMETA可以大于FCR*100、FCR*100、FCR*1000,或者任何其他大于FCR的最小值。例如,失败率FUSER可以小于或等于10^-20,并且失败率FMETA可以大于或等于10^-5。
现在参考图7所示的示例,存储数据的示例性方法260包括在步骤261中利用第一冗余码(或者第一冗余数据)对用户数据和元数据一起编码。接下来,方法260包括在步骤262中利用第二冗余码(或者第二冗余数据)独立于用户数据地对元数据编码。在一些示例中,可以在执行步骤262之前执行步骤261。在其他示例中,可以在执行步骤261之前执行步骤262。在其他示例中,可以同时执行步骤261和262。例如(但并非限于此),用户数据和元数据可被存储在两个缓冲器中,并且逻辑可被配置为(i)对应于第一冗余码对用户数据和元数据编码,以及(ii)对应于第二冗余码对元数据编码。如下所述,冗余码中的一个或多个可以是编码算法的多项式系数,在各种实施例中,该编码算法被实现为由于使数据经过卷积逻辑而生成的附加数据。使用第一和第二冗余码两者以便能够对元数据进行可靠的数据存储和相对迅速的检索,这是在本领域技术人员的能力范围内的。
在已利用第一冗余码对用户数据和元数据编码并且已利用第二冗余码对元数据编码之后,在步骤263中将用户数据、元数据和冗余数据(或者冗余码)写到存储系统中。在一些实现方式中,数据和冗余码被写到包括硬盘驱动器的存储系统。在各种其他实现方式中,用户数据、元数据和冗余码被写到可包括致密盘和/或数字多功能盘(DVD)的存储系统。在其他实现方式中,用户数据、元数据和冗余码被写到包括一个或多个基于闪存的或者其他非易失性存储器、一个或多个随机访问存储器和/或一个或多个只读取存储器的存储系统。
在其他实施例中,数据和冗余码可被写到存储系统的同一个扇区。例如(但并非限于此),数据和码可被写到硬盘驱动器的同一个物理扇区。在其他示例中,数据和码可被写到致密盘或DVD的(一个或多个)扇区的连续的帧。在其他实施例中,数据和码可被写到一个或多个基于闪存的存储器的连续的页和/或块。明白其他类似的其中用户数据、元数据和冗余码可被一起存储并从而被一起检索的基于扇区的分区方案,这是在本领域技术人员的能力范围内的。
在一些实施例中,第一冗余码包括纠错码。在一些特定实现方式中,纠错码可以是Bose-Chaudhuri-Hocquenghem(BCH)码。例如(但并非限于此),第一冗余码可包括n比特BCH码,其具有特定的生成多项式,该生成多项式被选择来纠正所采用的存储系统(例如,硬驱动器、非易失性存储器(例如,闪存驱动器)、或者数字多功能盘,它们具有不同特性的最常出现的差错样式)所特有的多个随机差错样式。在其他示例中(但并非限于此),当存储系统包括随机访问存储器时,第一冗余码可包括LDPC码,因为其具有纠正软差错的能力。然而,根据本发明的一些实施例中,可以从由以下各项构成的组中选择纠错码:Bose-Chaudhuri-Hocquenghem码、Reed-Solomon码、低密度奇偶校验码、Hamming码、Reed-Muller码、二进制Golay码、Viterbi码、Turbo码、最优矩形码、迭代码、及其组合。选择要结合本发明实施例使用的纠错码的类型、系数和因子是在本领域技术人员的能力范围内的。
在一些实施例中,第二冗余码也可包括纠错码。如上所述,根据本发明的一些实施例,可以从由以下各项构成的组中选择该纠错码:Bose-Chaudhuri-Hocquenghem码、Reed-Solomon码、低密度奇偶校验码、Hamming码、Reed-Muller码、二进制Golay码、卷积码、Turbo码、最优矩形码、迭代码、及其组合。第一和第二冗余码可包括相同类型的纠错码(例如,它们可都包括BCH码)。或者,第一和第二冗余码可包括不同类型的纠错码。例如(但并非限于此),第一冗余码可包括BCH码,而第二冗余码可包括迭代码。应当明白,要采用的纠错码的类型可以不仅是所采用的特定存储系统的函数,还可以是所编码的数据的特性的函数。
如上所述,可以利用“较弱”的第二冗余码来独立于用户数据地对元数据编码。对元数据的“较弱”的独立编码和/或解码虽然提供了对元数据的迅速独立检索,但却可能具有比对元数据和用户数据的联合编码和/或解码更高的失败率概率。因此,可能希望向对元数据单独编码的过程添加额外的差错保护。从而,在其他实施例中,第二冗余码还可包括从由以下各项构成的组中选择的差错检测码:奇偶校验比特、校验和、循环冗余校验(CRC)、及其组合。例如(但并非限于此),第二冗余码可以可选地还包括CRC码,以减小可能由纠错码引起的纠正差错的可能性。在其他实施例中,第二冗余码可包括用于指示元数据的奇偶校验的单个奇偶校验比特。
如上所述,第一冗余码可具有长度R,并且第二冗余码可具有长度P。例如,参考图5-6的示例性实施例,在总共220字节的可用冗余比特中,第一冗余码可具有200到210字节(例如,在一个示例中为200字节,在另一个示例中为208字节)的长度(例如,R),并且第二冗余码可具有10到20字节(例如,在一个示例中为20字节,在另一个示例中为12字节)的长度(例如,P)。应当明白,根据本发明的实施例也可设想其他分配。
在一些特定实现方式中,R和P分别对应于失败率概率F和H,其中F可以小于或等于H。例如,参考图6,当第一冗余码的长度R为208字节时,它对应于约10^-23的失败率概率,并且当第二冗余码的长度P为12字节时,它对应于约10^-5的失败率概率。在其他示例中(但并非限于此),长度分别为200字节和20字节的第一和第二冗余码分别对应于约10^-20和约10^-12的失败率概率。应当明白,根据本发明的实施例,也可设想其他失败率概率。
在其他实施例中,对元数据编码的方法还可包括利用长度为S的第三冗余码对元数据编码的步骤。例如,元数据可被:(i)与用户数据联合编码一次,(ii)利用较弱的冗余码、独立于用户数据地编码一次,以及(iii)利用较强的冗余码,还是独立于用户数据地编码一次。在其他实施例中,元数据可被:(i)与用户数据联合编码一次,(ii)独立于用户数据地编码一次,以及(iii)与用户数据的一个或多个部分联合编码一次。在一些实现方式中,R、S和P可分别对应于失败率概率F、G和H,其中F小于G,并且G小于H。例如,R(即,第一冗余码的长度,其对应于联合编码的用户数据和元数据)可以是190字节,S(即,第三冗余码的长度,其在一些示例中可对应于对元数据的较“强”的独立编码(但并非限于此))可以是20字节,并且P(即,第二冗余码的长度,其在一些示例中可对应于对元数据的较“弱”的独立编码(但并非限于此))可以是10字节。按照所分配的,参考图6所示的16比特BCH失败概率曲线,在一些示例中(但并非限于此),第一、第二和第三冗余码的失败率概率可以分别约为10^-17、10^-12和10^-3。然而,应当明白,根据本发明的实施例也可设想其他分配。
用于恢复元数据的示例性方法
本发明的一些方面涉及对至少已被独立地编码一次并且与用户数据一起编码一次的元数据进行恢复的方法。在一些实施例中,(i)元数据和用户数据被用第一冗余码联合编码,(ii)元数据被用第二冗余码编码,并且(iii)元数据、用户数据、第一冗余码和第二冗余码被一起写在存储系统中,该方法可包括:从存储系统读取元数据和第二冗余码;利用第二冗余码对元数据进行解码;以及指示出元数据是否被成功解码。
图8示出了恢复元数据的示例性方法270,其包括在步骤271中从存储系统读取包括元数据的一部分数据和包括第二冗余码的一部分数据。在利用第二冗余码对元数据解码之后,方法270随后在步骤272中判定元数据是否被成功恢复。在一些实施例中,指示出元数据是否被成功解码的步骤可包括对经过解码的元数据进行差错校验。例如(但并非限于此),当第二冗余码包括奇偶校验比特时,经过解码的元数据的奇偶校验被计算并与该奇偶校验比特相比较。在其他示例中,可利用能够检测和/或纠正特定数目的差错的纠错和检测码(例如(但不限于)Hamming码)来对元数据编码。应用这些和其他判定元数据是否被成功解码的方式是在本领域技术人员的能力范围内的。如果元数据已被成功解码,则在步骤273中它被以传统的方式输出(例如,显示给用户)。
在示例性实施例中,当未利用第二冗余码对元数据成功解码时,该方法还包括以下步骤:从存储系统中读取存储在该页或扇区中的用户数据、元数据和第一冗余码(步骤274);利用第一冗余码对用户数据和元数据联合解码(步骤275);以及判定是否利用第一冗余码对用户数据和元数据进行了成功解码(步骤276)。从而,示例性方法270还可包括通过利用第一冗余码对元数据和用户数据联合解码来尝试恢复元数据的额外步骤。在一些示例中(但并非限于此),在解码步骤275中可以再次使用在步骤271中读取的元数据。在其他实施例中,在步骤274中可以重新读取元数据。
在联合解码275之后,元数据可被恢复,并且如步骤275所示,该方法可包括在元数据被成功恢复时输出元数据的步骤273。如上所述,在一些示例中(但并非限于此),步骤276可包括对所恢复的元数据进行奇偶校验,或者类似的差错检测方法。在其他实施例中,当没有利用第一冗余码对元数据成功解码时,该方法可包括指示(扇区)读取失败(步骤277)。
现在参考图9所示的示例,恢复元数据的示例性方法280可包括步骤281,即从存储系统读取包括元数据的一部分数据和包括“弱”冗余码的一部分数据,如上所述。示例性方法280在步骤282中利用弱冗余码对元数据解码并且在步骤283中指示出元数据是否被成功恢复。在一些实施例中,如上所述,指示出元数据是否被成功解码的步骤可包括对经过解码的元数据进行差错校验。如果元数据被成功解码,则元数据被输出(例如,通过将元数据或其表示显示给用户)。
在各种实施例中,当未利用弱冗余码对元数据成功解码时,方法280还可包括从存储系统中读取包括“强”冗余码的一部分数据;利用强冗余码对元数据解码;并且指示出元数据是否被成功解码。从而,示例性方法280还可包括通过利用相对较强的第三冗余码对元数据解码来尝试恢复元数据。在一些示例中(但并非限于此),在解码步骤285中可再次使用在步骤281中读取的元数据。在其他示例中,在步骤284中可以可选地重新读取元数据。如上所述,指示出元数据是否被成功解码的步骤可包括对经过解码的元数据进行差错校验。如果元数据被成功解码,则元数据被输出(例如,通过将元数据或其表示显示给用户)。
然而,当未利用强冗余码对元数据成功解码时,方法280还包括在步骤287中从存储系统中读取包括用户数据的一部分数据和包括第一冗余码的一部分数据;在步骤288中利用第一冗余码对用户数据和元数据联合解码;以及在步骤289中指示出用户数据和元数据是否被成功解码。从而,示例性方法280还包括通过利用固定的联合冗余码对元数据和用户数据联合解码来尝试恢复元数据。在一些示例中,在解码步骤285中可再次使用在步骤281中读取的元数据。在其他示例中,在步骤284中可以可选地重新读取元数据。
在步骤288中的联合解码之后,可以恢复元数据,并且可以判定元数据是否被成功恢复。如上所述,在一些示例中,判定步骤289可包括对经过恢复的元数据进行奇偶校验或使用类似的差错检测方法。在一些实施例中,当未利用第一冗余码对元数据成功解码时,该方法可在步骤290中指示出读取失败。
从而,在一些实施例中,可对元数据进行多于两次编码。从而,恢复元数据的方法可包括对元数据进行任意次解码。例如,元数据可被:(i)独立于用户数据地编码,一次利用“弱”冗余码,一次利用“强”冗余码,以及(ii)利用“联合”冗余码与用户数据一起编码。结果,在一些示例中,恢复元数据的方法可包括顺序地利用弱、强和联合冗余码来尝试恢复元数据。
从而,可以看出,本发明使得能够对元数据进行独立访问和恢复,而无需读取用户数据部分。在一些示例中,仅在未能独立于用户数据地成功恢复元数据之后才读取用户数据。
用于对元数据编码的示例性装置
本发明的一些方面涉及用于至少对元数据进行一次独立的编码和一次与用户数据一起的编码的装置。应当明白,(一个或多个)电路、(一个或多个)算法和/或软件可被配置为实现体现了以下描述的发明构思的这种编码器。在一些示例中,现在参考图10,可利用一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立模拟或数字元件、处理器和/或微控制器来实现编码器300。在其他示例中,可以用软件或固件来实现编码器。另外,编码器可被结合到存储设备350中或者与存储设备350通信,在存储设备350中存储了经过编码的用户数据和元数据。例如(但并非限于此),编码器可被结合到诸如硬盘驱动器、致密盘或DVD驱动器或者基于闪存的存储器控制器之类的存储设备中。在其他示例中,编码器可以与一个或多个存储设备分开但与之通信。
在一些实施例中,编码器300可包括:至少一个输入302,其接收将被写入到存储介质370中的用户数据和元数据;逻辑330,其被配置为生成与用户数据和元数据两者相对应的第一冗余码;逻辑320,其被配置为生成与元数据而不是用户数据相对应的第二冗余码;以及输出304,其将经过编码的数据提供到用于存储介质370的数据记录机构360,其中,经过编码的数据包括用户数据、元数据、第一冗余码和第二冗余码。虽然示例性编码器300被示为两个并行的编码器320和330,但将编码器300实现为单个编码器或者多于两个编码器(这些编码器可被串行地和/或并行地布置),也是在本领域技术人员的能力范围内的。
在一些示例中(但并非限于此),存储设备350可以是硬盘驱动器,并且存储介质370可以是一个或多个磁盘片。在其他示例中,存储设备350可以是诸如致密盘驱动器或数字多功能盘驱动器之类的光盘驱动器,并且存储介质370可以是诸如致密盘或数字多功能盘之类的光盘。然而,应当明白,根据本发明的实施例也可设想其他存储设备和介质。
当希望将用户数据和元数据写入到存储设备350时,数据可被传递到“元数据冗余”编码器320以及联合元数据和用户数据编码器330的至少一个输入302或被该输入302所接收。在一些示例中(但并非限于此),编码器输入302可以是用于接收数据波形的物理输入,例如但不限于并行总线、串行总线等等。在其他示例中,编码器输入可以是用于访问存储器310中存储的数据的逻辑输入。例如(但并非限于此),编码器可被配置为访问共享的存储器空间并且从中检索出要被编码的用户数据和元数据。然而,应当明白,根据本发明的实施例也可设想其他类型的输入。
在一些示例中(但并非限于此),编码器逻辑(例如,编码逻辑334)可被配置为通过对用户数据和元数据两者执行一个或多个逻辑和/或数学运算来生成第一冗余码。类似地,在一些示例中(但并非限于此),编码器逻辑(例如,元数据编码逻辑325)可被配置为通过仅对元数据执行一个或多个逻辑和/或数学运算来生成第二冗余码。或者,在其他示例中(但并非限于此),编码逻辑324可被配置为元数据提供相对较“弱”的第二冗余码,并且编码逻辑325可被配置为通过仅对元数据执行一个或多个逻辑和/或数学运算来生成相对较“强”的第二冗余码。
在一些示例中(但并非限于此),可通过使要编码的数据(例如,用户数据和元数据一起和/或元数据独立地)顺序地经过一系列存储器寄存器(例如,联合编码器330中的寄存器332和333)来对数据进行卷积编码。在其他示例中,可通过分离要编码的数据并且使分离后的数据经过两个或更多个并行的一系列存储器寄存器(例如,使用寄存器322和323,它们在一个实施例中可以分别分开存储用户数据和元数据),来对数据进行卷积编码。在一些示例中(但并非限于此),编码逻辑可以是非递归式的(例如,不存在存储器寄存器的反馈组件)。在其他示例中,编码逻辑可以是递归式的。实现与这里设想类型的冗余码相对应的编码逻辑是在本领域技术人员的能力范围内的。
在各种实现方式中,如这里概括描述地,第一和第二冗余码可以独立地包括Bose-Chaudhuri-Hocquenghem码、Reed-Solomon码、低密度奇偶校验码、Hamming码、Reed-Muller码、二进制Golay码、Viterbi码、Turbo码、最优矩形码、迭代码、或其组合。例如,第一和第二冗余码可包括相同或不同类型的纠错码,并且第二冗余码可包括一个或多个奇偶校验比特、校验和、循环冗余校验(CRC)或其组合。在一种实现方式中,第二冗余码可包括CRC码,以减轻可能由第二冗余码引起的潜在纠正差错。在另一种实现方式中,第二冗余码可具有9比特的总长度,其中8比特被分配给纠错码(例如但不限于Hamming码),1比特被分配给奇偶校验比特。应当明白,存在根据本发明的实施例可以设想的其他组合和配置的纠错和差错检测码。
一般地,第一冗余码具有小于第二冗余码的失败率概率。从而,如这里概括描述的,与用于第二冗余码的相比,编码逻辑可被配置为利用提供更高可靠性的可用冗余存储空间分配和/或编码技术来生成第一冗余码。
同样如这里所述,编码器300可被配置为在输出304处提供第一经编码数据信号并且在输出306处单独提供第二经编码数据信号到用于存储介质370的数据存储机构360,其中第一经编码数据信号包括经编码的用户数据、经编码的元数据以及第二(例如,仅限元数据的)冗余码,第二经编码数据信号包括联合编码的用户数据和元数据以及第一冗余码(例如,用于用户数据和元数据两者)。在一些示例中(但并非限于此),数据存储机构360可包括被配置为选择性地磁化铁磁盘片或盘的一个或多个区域的写磁头。在其他示例中,数据存储机构360可包括被配置为选择性地对光盘的染料层的一些部分加热的激光器。在其他示例中,数据存储机构360可包括用于对存储元件阵列进行选择性的充电或放电(例如,编程)的一个或多个感测和/或充电电路。
在一些示例中(但并非限于此),元数据冗余编码器320可被配置为将用户数据和元数据存储在临时存储器(例如多端口存储器、先进先出存储器、或其他缓冲器321)中,然后通过读该临时存储器来构造经编码的数据信号。在某些实施例中,时钟或其他定时电路(例如,326和/或336)可向编码器320或330的各种组件提供适当的定时信号。编码器300(或者第一编码器320和第二编码器330)可包括输出电路(例如,327和/或338),该输出电路被配置为将经编码的数据传送到另外的电路和/或数据/信号处理块(例如,数据记录机构360)。输出电路可包括一个或多个输出缓冲器、一个或多个输出驱动器,并且在输出电路327的情况下,可以包括被配置为选择多个输入之一以从第一编码器320输出的数据或输入选择电路(例如多路复用器)。这种选择电路可被输出控制块328所控制,其适合于响应于相应的预定事件(例如,同步或者标识经编码用户数据或经编码元数据的其他比特或样式)的发生而选择预定的输入。
在图10所示的示例中,第一编码器320可对用户数据和元数据单独编码,并且第二编码器330可对用户数据和元数据一起编码。从而,编码逻辑324、325和334中的每一个可充当一CRC计算器或奇偶校验计算器,从而向将要被记录的经编码数据添加ECC/CRC码和/或一个或多个奇偶校验比特。一般地,第一编码器320可被配置为通过将数据放置在被配置为将数据传送到存储设备350中的总线304上来将单独编码的用户数据、单独编码的元数据以及单独的用户数据和元数据冗余码中的每一个提供给数据存储机构360,而第二编码器330可被配置为通过将数据放置在被配置为将数据传送到存储设备350中的总线306上来将联合编码的用户数据和元数据以及第一冗余码(用于用户数据和元数据两者)提供给数据存储机构360。实现用于将经编码的数据信号提供给数据存储机构的电路和/或其他硬件是完全在本领域技术人员的能力范围内的。
用于对元数据解码的示例性装置
本发明的其他方面涉及用于已至少被进行一次独立的编码以及一次与用户数据一起的编码的元数据进行解码的装置。应当明白,(一个或多个)电路、(一个或多个)算法和/或软件可被配置为实现体现了以下描述的发明构思的解码器。在一些实施例中,参考图11,解码器400可包括:一个或多个输入402、404,其从用于存储介质470的数据读取机构460接收所存储的数据,其中所存储的数据包括(i)利用第一冗余码联合编码的用户数据和元数据两者的表示以及(ii)利用第二冗余码编码的元数据的表示;以及被配置为对所存储的数据进行解码并且提供来自存储介质470的元数据的逻辑。联合编码的用户数据和元数据、第一冗余码、单独编码的用户数据、单独编码的元数据以及第二冗余码可以各自被单独存储在存储介质470上,并且它们可被串行地或者并行地从存储介质470中检索出或读出。在各种实施例中,联合编码的用户数据和元数据以及第一冗余码被从第一存储介质中串行读取,并且单独编码的用户数据、单独编码的元数据以及第二冗余码被从同一个或者一个不同的存储介质中串行读取,并且在后一种情况下,不同的串行数据流可以被并行读取。
在一些示例中(但并非限于此),可利用一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立模拟或数字元件、处理器和/或微控制器来实现解码器400。在其他示例中,可以用软件或固件来实现解码器400。另外,应当明白,解码器可被结合到存储设备450中或者与存储设备450通信。例如(但并非限于此),解码器400可被结合到诸如硬盘驱动器、致密盘或DVD驱动器或者基于闪存的存储器或随机访问存储器控制器之类的存储设备450中。在其他示例中,解码器400可以与一个或多个存储设备450分开但与之通信。虽然示例性的解码器400被示为两个并行的解码器420和430,但将解码器实现为单个解码器或者多于两个解码器(这些解码器可被串行地和/或并行地布置),也是在本领域技术人员的能力范围内的。
在一些示例中(但并非限于此),存储设备450可以是硬盘驱动器,并且存储介质470可以是一个或多个磁盘片。在一些示例中(但并非限于此),数据读取机构460可包括被配置为选择性地感测磁化铁磁盘片的一个或多个区域的磁化的读磁头。在其他示例中,存储设备450可以是诸如致密盘驱动器或数字多功能盘驱动器之类的光盘驱动器,并且存储介质470可以是诸如致密盘或数字多功能盘之类的光盘。在一些示例中,数据读取机构460可包括被配置为选择性地感测光盘的染料层的坑和岸的激光器和光电二极管。在其他示例中,存储设备450可包括多个固态存储元件,并且数据读取机构460可包括用于选择性地感测固态存储元件中的存储元件的电荷的一个或多个感测和/或检测电路。然而,应当明白,根据本发明的实施例也可设想其他存储设备、介质和数据读取机构。
解码逻辑400可被配置为执行与在数据被写到存储介质470之前为了对数据编码而执行的逻辑和/或数学运算互补的逻辑和/或数学运算。在图11所示的示例中,第一解码器420可以对用户数据和元数据单独解码(在对后者解码时利用第二冗余码),并且第二解码器430可根据第一冗余码对用户数据和元数据一起解码。例如(但并非限于此),解码逻辑424、425和434中的每一个可充当差错校验和/或纠正电路,从而使用任何接收到的ECC/CRC码和/或(一个或多个)奇偶校验比特来判定接收到的数据中是否存在差错,并且如果存在则纠正这种差错。另外,解码逻辑424和425可被配置为分别利用已知的编码约束和第二冗余码来对存储的用户数据和元数据进行解码。或者,解码逻辑324可被配置为利用相对较“弱”的第二冗余码对元数据解码,并且解码逻辑325可被配置为利用相对较“强”的第二冗余码对元数据解码。在一些示例中(但并非限于此),解码逻辑可以是非递归式的(即,不存在存储器寄存器的反馈组件)。在其他示例中,解码逻辑可以是递归式的。在其他示例中(但并非限于此),解码器可包括实现概率性解码算法(例如Viterbi算法)的分立逻辑和/或软件。
在一些示例中(但并非限于此),解码器可被配置为接收可具有用户数据、元数据和冗余码部分的所存储数据,并将接收到的数据存储到临时存储器(例如,输入缓冲器431和/或缓冲器421)中。临时存储器可以与图10中的缓冲器321相同。返回参考图11,在一些示例中,解码逻辑400可接收并存储与硬盘驱动器的整个扇区相对应的数据。当存储在临时存储器(例如,缓冲器421)中时,解码逻辑400可包括被配置为识别与用户数据、元数据和第二冗余码相对应的那些数据部分的存储器控制器或其他逻辑和/或控制电路(例如,存储器控制器429)。
在一些示例中(但并非限于此),第一解码器420可识别所接收数据的可具有已知的固定数据长度的部分(例如(但并非限于此),可对应于用户数据的前4千字节,可对应于元数据的接下来的80字节,以及可对应于第二冗余码的20比特)。在其他示例中,所存储数据信号的每个部分的开始和/或结束可具有诸如头部、尾部和/或同步比特之类的样式标记(例如,它们可由存储器控制器429识别)。应当明白,根据本发明的实施例也可设想其他所存储的数据信号。
解码逻辑(例如,424、425和434)可被配置为通过对用户数据、元数据和冗余码的表示执行一个或多个逻辑或数学运算来对所存储的数据信号(或者其一个或多个部分)进行解码。在一些示例中(但并非限于此),冗余码可对应于卷积纠错码的多项式系数。在其他示例中,冗余码可对应于复制或奇偶校验数据。在一些示例中(但并非限于此),可以通过使数据经过一系列存储器寄存器(例如,寄存器432和433)来对数据进行卷积解码。在其他示例中,可以通过使数据通过两个或更多个并行的存储器寄存器(例如,寄存器422和423)来对要解码的数据进行卷积解码。
在一些示例中,解码逻辑400可被配置为例如利用第二解码逻辑425,通过利用所存储数据的对应于第二冗余码的部分来对所存储数据的仅对应于元数据的部分进行独立解码,来提供元数据。例如(但并非限于此),解码逻辑400可从数据读取机构460接收所存储的数据信号,并且将元数据部分和第二冗余码部分提供给实现概率性解码算法的分立电路(例如,解码逻辑425)。在其他示例中,所存储的数据信号的元数据部分和第二冗余码部分可被提供给实现Hamming解码功能的分立电路。类似地,解码逻辑400可被配置为例如利用解码逻辑434,通过利用所存储数据的对应于第一冗余码的部分对所存储数据的对应于用户数据和元数据两者的部分进行联合解码,来提供元数据。例如(但并非限于此),第二解码器430可被配置为将从数据读取机构460接收的与用户数据、元数据和第一冗余码相对应的数据提供给实现Hamming解码功能的分立电路(例如,解码逻辑434)。
在一些实施例中,解码逻辑400还可被配置为通过首先利用第二冗余码对元数据的表示进行解码,然后利用第一冗余码对用户数据和元数据两者的表示进行联合解码,来提供元数据。例如,解码器420可被配置为首先通过利用所存储数据信号的包括第二冗余码的部分仅对所存储数据信号的包括元数据的部分解码来尝试从经编码的数据信号中恢复元数据。如果解码不成功(即,在输出406处的经解码的元数据中检测到差错),那么然后,联合解码器430可通过利用所存储数据信号的包括第一冗余码的部分对数据的包括用户数据和元数据的部分联合解码来尝试恢复元数据。设计适当的控制信号(例如,到存储器控制器429和输入缓冲器431,或者到输出控制器427和输出缓冲器438)来实现本段落中描述的解码序列,也是在本领域技术人员的能力范围内的。
在一些示例中(但并非限于此),解码逻辑400可包括时钟或其他定时电路(例如,426和/或436),其可向解码器420或430的各种组件提供适当的定时信号。解码器400(或者第一解码器420和第二解码器430)可包括被配置为将经解码的数据传送到另外的电路或数据/信号处理块的输出电路(例如,427和/或438)。输出电路可包括一个或多个输出缓冲器、一个或多个输出驱动器,并且在输出电路427的情况下,可包括被配置为选择多个输入之一的数据或输入选择电路(例如多路复用器)。这种选择电路可由输出控制块428控制,其适合于响应于相应的预定事件的发生而选择预定的输入。
在图11所示的示例中,元数据解码器420可被配置为通过将数据放置在被配置为将数据传送到下游电路或设备的总线406上来将经过解码和纠错的用户数据和元数据提供给下游电路或设备,而联合解码器430可被配置为通过将数据放置在被配置为将数据传送到下游电路或设备的总线408上来将经过联合解码和纠错的用户数据和元数据提供给下游电路或设备。实现用于将经解码的数据提供给下游电路或设备的电路和/或其他硬件是完全在本领域技术人员的能力范围内的。
用于存储和检索元数据的示例性系统
本发明的其他方面涉及用于存储具有第一部分和第二部分的数字数据的系统。现在参考图12,在一些实施例中,该系统可具有:数据存储介质577,该数据存储介质577具有多个可写扇区;编码逻辑520,该编码逻辑520生成与数字数据相对应的至少两个冗余码,其中第一冗余码包括与数字数据的第一部分和第二部分两者相对应的第一纠错码,并且第二冗余码包括与数字数据的第二部分相对应而不与数字数据的第一部分相对应的第二纠错码;数据记录机构572,该数据记录机构572被配置为将数字数据和冗余码写在可写扇区之一中;读取器574,该读取器被配置为从该可写扇区中读取数字数据的表示和冗余码的表示;以及解码逻辑540,该解码逻辑被配置为对来自可写扇区的数字数据进行解码。
图12示出了用于存储和检索用户数据和元数据的示例性数据存储系统570。在一些示例中(但并非限于此),数据存储系统570可以是硬盘驱动器。在其他示例中,数据存储系统570可以是光盘驱动器。在其他实施例中,数据存储系统570可以是固态存储设备,例如闪存(例如,基于闪存的记忆棒)。然而,根据本发明的实施例也可设想其他类型的数据存储系统。
在一些示例中(但并非限于此),数据存储系统570可包括一个或多个数据存储介质577、数据记录机构572以及读取器574。在一些特定实现方式中,数据存储系统570可以是硬盘驱动器,并且数据存储介质可包括一个或多个磁盘。在其他示例中,数据存储系统570可以是包含一个或多个光盘的光盘驱动器。然而,应当明白,根据本发明的一些实施例,数据存储介质可包括至少一个磁盘、光盘、磁光盘、存储器存储元件、或其组合。还应当明白,存储介质577可被固定在存储系统570内(当存储系统570是硬盘驱动器时就通常是这种情况),或者存储介质577可以被从存储系统570中去除(当存储系统570是光盘驱动器或磁带驱动器时就通常是这种情况)。
如上所述,存储系统570还可包括被配置为将数据写入到存储介质577的扇区的数据记录机构572。在一些示例中(但并非限于此),数据记录机构572可以是磁存储系统570的写磁头,其被配置为选择性地磁化磁盘片的一个或多个区域。在其他示例中,数据记录机构572可以是光存储系统570的激光器,并且可被配置为选择性地对光盘的染料层的一些部分进行照射和/或加热。在其他示例中,数据记录机构572可包括固态存储器存储系统570的感测和/或充电电路,用于选择性地对固态存储元件阵列(例如,基于闪存的系统,例如记忆棒)中的存储单元进行充电或放电。
类似地,数据存储系统570还可包括读取器574。在一些示例中(但并非限于此),读取器574可以是读磁头、激光和/或光电二极管,或者感测和/或检测电路。对于特定的存储系统570实现存储介质577、数据记录机构572和读取器574的不同组合是在本领域技术人员的能力范围内的。
在一些示例中(但并非限于此),数据记录机构572可与包括编码逻辑的编码器520通信。类似地(但并非限于此),读取器574可与包括解码逻辑的解码器540通信。在一些示例中,如图12所示,编码器520和解码器540可包括不同的电路。例如(但并非限于此),编码器520可包括第一专用集成电路(ASIC),并且编码器520可包括第二ASIC。然而,应当明白,编码器520和解码器540两者可被包括在单个编解码器510中。在一些示例中(但并非限于此),编解码器510可包括单个ASIC或现场可编程门阵列(FPGA)。在其他示例中,编解码器510可包括若干个不同的数字和/或模拟组件。在一些示例中(但并非限于此),编码器520可包括用于从数据写入缓冲器560接收数字数据的输入。类似地,在一些示例中(但并非限于此),解码器540可包括用于将所恢复的数据提供到数据读取缓冲器580的输出。在其他示例中,解码器540可包括用于将数据提供到存储单元的输出。还应当明白,结合以上和以下描述的本发明实施例利用各种电路、算法、输入、输出、固件、软件等等来实现编码器520和/或解码器540,这是在本领域技术人员的能力范围内的。
在一些示例中(但并非限于此),编码器520可被配置为接收具有至少两部分的数字数据521,并且响应于此向数据记录机构572提供写信号数据527。如上所述,编码器520可被配置为生成与数字数据521的一个或多个部分相对应的至少两个冗余码。在一些示例中,第一冗余码可对应于数字数据521的第一部分或从第一部分导出,并且第二冗余码可对应于数字数据521的第二部分或从第二部分导出。在一些示例中(但并非限于此),写信号527除了冗余码外还可包括数字数据521的第一和第二部分的表示。在其他示例中(但并非限于此),解码器540可从读取器接收数据541,其中数据541可对应于先前已被写入到存储介质577中的数字数据的第一和第二部分以及相应的冗余码。解码器540可被配置为对数据541进行解码并且响应于此提供读信号547。在另一种示例中,解码器540可从读取器接收数据541,其中数据541可对应于数字数据的第二部分(例如,元数据)以及第二冗余码(例如,从元数据中导出的)。在一些特定实现方式中,编码器可被配置为使得第一冗余码和第二冗余码可具有根据本文中别处描述的失败率概率。
在一些实施例中,解码器540可被配置为通过(i)利用第一冗余码对数字数据的第一部分以及(ii)利用第二冗余码对数字数据的第二部分独立地解码来对数字数据进行解码。例如(但并非限于此),解码器540可利用其相应的冗余码(即,第一冗余码)对从读取器574接收(并且先前被写入到存储介质577)的数据541的第一部分进行解码。解码器540还可被配置为利用相应的第二冗余码对从读取器574接收(并且先前被写入到存储介质577)的数据541的第二部分进行解码。在一些特定的实现方式中,解码逻辑可被配置为首先对数字数据的第二部分进行解码,并且如果解码失败,则对数字数据的第一部分进行解码。例如(但并非限于此),解码器540首先只需要接收数据541的第二部分及其相应的冗余码。如果对先前由编码器520编码并写入到存储介质577的数据541的第二部分的解码不成功,则解码器随后可接收数据541的第一部分及其相应的冗余码。在此情况下,解码器540可尝试利用“较强”的冗余码来恢复数据541。在一些特定的实现方式中,数字数据的第一部分可包括数字数据的第二部分。
例如(但并非限于此),数据的第二部分可包括数据Y(例如,元数据),并且数据的第一部分可包括与数据Y复用的数据X。从而,应当明白,在一些实施例中,数据Y可利用“较弱”的第一冗余码来被独立地编码和解码,并且再利用“较强”的第二冗余码来与数据X一起被联合编码和解码。在一些特定的实现方式中,根据本发明的一个或多个实施例,数字数据的第一部分可包括用户数据和元数据两者,数字数据的第二部分可仅包括元数据。
示例性软件
本发明还包括可在配备有传统的数字信号处理器的通用计算机或工作站中实现和/或执行的算法、(一个或多个)计算机程序和/或软件,其被配置为执行(一个或多个)方法的一个或多个步骤和/或硬件的一个或多个操作。从而,本发明的另一个方面涉及实现以上的(一个或多个)方法的算法和/或软件。例如,本发明还可涉及包含被配置为执行上述方法和/或算法的、可由通用计算机和/或适当的处理设备(例如,信号处理设备,例如微控制器、微处理器或DSP设备)执行的一组指令的计算机程序或计算机可读介质。
例如,计算机程序可以在任何种类的可读物理介质上,并且计算机可读介质可以包括被配置为读介质并执行其上或其中存储的代码的处理设备可读的任何介质,例如软盘、CD-ROM、DVD、磁带或硬盘驱动器。这种代码可包括目标代码、源代码和/或二进制代码。
代码一般被配置用于通过适当的介质传输,所述介质例如是铜线、传统的双绞线、传统的网络线缆、传统的光数据传输线缆、或者甚至是用于无线信号传输的空气或真空(例如,外太空)。用于实现这里的(一个或多个)方法的波形和/或代码一般是数字的,并且一般被配置来供传统的数字数据处理器(例如,微处理器、微控制器或者诸如可编程门阵列、可编程逻辑电路/器件或专用(集成)电路之类的逻辑电路)处理。
结论/总结
从而,本公开的实施例提供了用于对元数据进行至少两次编码的方法、装置、系统和体系结构,其中至少一次是独立的编码,至少一次是与用户数据一起联合的编码,从而提供了仅对元数据的迅速、独立和可靠的检索,其中,用户数据的可靠性的降低达到最低限度。
以上对本公开实施例的描述是出于说明和描述的目的而给出的。它们并不意图是穷尽性的或者将本发明限制到所公开的确切形式,很明显在考虑到上述教导后可以进行许多修改和变化。选择和描述实施例是为了最好地说明本发明的原理及其实际应用,以便使得本领域的技术人员能够在进行适合于所设想的特定用途的各种修改的情况下最好地利用本发明和各种实施例。希望本发明的范围由所附权利要求及其等同物来限定。
本申请要求2008年7月14日提交的美国临时申请No.61/080,532和2009年7月10日提交的美国专利申请No.12/__,___(代理案卷号No.MP2694)的优先权,上述每个申请通过引用被完全结合于此。
Claims (15)
1.一种在存储系统中存储具有第一部分和第二部分的数据的方法,所述方法包括:
利用长度为R的第一冗余码将所述第一部分和所述第二部分联合编码;
利用长度为P的第二冗余码将所述第二部分编码,其中R和P分别对应于解码失败率概率F和H,并且F小于H,从而响应于确定利用所述第二冗余码解码以恢复所述第二部分失败,所述第一冗余码被用于一起恢复所述第一部分和所述第二部分;以及
将所述第一部分、所述第二部分、所述第一冗余码和所述第二冗余码中的每一个一起写在所述存储系统中。
2.如权利要求1所述的方法,其中,所述第二部分包括元数据。
3.如权利要求2所述的方法,其中,所述第一部分包括用户数据。
4.如权利要求1所述的方法,其中,所述第一冗余码包括第一纠错码,并且所述第二冗余码包括第二纠错码。
5.如权利要求4所述的方法,其中,所述第一纠错码和所述第二纠错码中的每一个独立地为Bose-Chaudhuri-Hocquenghem码、Reed-Solomon码、低密度奇偶校验码、Hamming码、Reed-Muller码、二进制Golay码、Viterbi码、Turbo码、最优矩形码、迭代码、或其组合。
6.如权利要求1所述的方法,还包括利用长度为S的第三冗余码对所述第二部分进行编码。
7.如权利要求6所述的方法,其中所述第三冗余码包括从由以下各项构成的组中选择出来的纠错码:一个或多个奇偶校验比特、校验和、循环冗余校验、及其组合。
8.如权利要求6所述的方法,其中,R、S和P分别对应于失败率概率F、G和H,其中F小于G,并且G小于H。
9.一种恢复具有第一部分和第二部分的数据的一部分的方法,包括:
从存储系统中读取包括所述第二部分的数据的一部分,其中,
所述数据的所述第一部分和所述第二部分被利用长度为R的第一冗余码来联合编码;
所述第二部分被利用长度为P的第二冗余码来编码,其中R和P分别对应于解码失败率概率F和H,并且F小于H;并且
所述第一部分和第二部分、所述第一冗余码和第二冗余码被一起写在所述存储系统中;
从所述存储系统中读取包括所述第二冗余码的所述数据的一部分;
利用所述第二冗余码对所述第二部分进行解码;
指示出是否利用所述第二冗余码对所述第二部分进行了成功解码;以及
响应于确定利用所述第二冗余码解码以恢复所述第二部分失败:
利用所述第一冗余码解码以一起恢复所述第一部分和所述第二部分。
10.如权利要求9所述的方法,其中,所述指示出是否对所述第二部分进行了成功解码的步骤包括对经过解码的第二部分进行差错校验。
11.一种编码器,包括:
至少一个输入,该至少一个输入接收将要被写入到存储介质的第一部分和第二部分;
逻辑,该逻辑被配置为(i)从所述第一部分和所述第二部分两者联合生成长度为R的第一冗余码,以及(ii)从所述第二部分而不从所述第一部分生成长度为P的第二冗余码,其中R和P分别对应于解码失败率概率F和H,并且F小于H,从而响应于确定利用所述第二冗余码解码以恢复所述第二部分失败,所述第一冗余码被用 于一起恢复所述第一部分和所述第二部分;以及
输出,该输出将经编码的数据提供到用于所述存储介质的数据记录机构,其中,所述经编码的数据包括所述第一部分、所述第二部分、所述第一冗余码和所述第二冗余码。
12.如权利要求11所述的编码器,其中,所述第一冗余码和所述第二冗余码中的每一个独立地包括Bose-Chaudhuri-Hocquenghem码、Reed-Solomon码、低密度奇偶校验码、Hamming码、Reed-Muller码、二进制Golay码、Viterbi码、Turbo码、最优矩形码、迭代码、或其组合,并且所述第二冗余码还包括一个或多个奇偶校验比特、校验和、循环冗余校验、或其组合。
13.如权利要求11所述的编码器,其中,所述逻辑包括:第一存储器存储元件,该第一存储器存储元件被配置为存储所述第一部分和第二部分;第一编码逻辑,该第一编码逻辑被配置为对所述第一部分和第二部分编码并且生成所述第一冗余码;第二存储器存储元件,该第二存储器存储元件被配置为至少存储所述第二部分;以及第二编码逻辑,该第二编码逻辑被配置为对所述第二部分编码而不对所述第一部分编码并且生成所述第二冗余码。
14.一种解码器,包括:
输入,该输入从存储介质的数据读取机构接收所存储数据,其中所述所存储数据包括:(i)利用长度为R的第一冗余码联合编码的第一部分和第二部分两者的表示,以及(ii)利用长度为P的第二冗余码编码的所述第二部分的表示,其中R和P分别对应于解码失败率概率F和H,并且F小于H;以及
逻辑,该逻辑被配置为:
对所述所存储数据进行解码并提供来自所述存储介质的所述第二部分;
通过首先利用所述第二冗余码对所述第二部分的所述表示进行解码来提供所述第二部分;以及
在利用所述第二冗余码对所述第二部分的所述表示的解 码失败时,通过利用所述第一冗余码对所述第一部分和所述第二部分两者的所述表示进行联合解码来提供所述第二部分。
15.如权利要求14所述的解码器,其中,所述逻辑包括:第一存储器存储元件,该第一存储器存储元件被配置为存储被联合编码的所述第一部分和第二部分以及所述第一冗余码;第一解码逻辑,该第一解码逻辑被配置为根据所述第一冗余码对所述第一部分和第二部分进行解码;第二存储器存储元件,该第二存储器存储元件被配置为至少存储利用所述第二冗余码解码的所述第二部分;以及第二解码逻辑,该第二解码逻辑被配置为根据所述第二冗余码对所述第二部分进行解码。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8053208P | 2008-07-14 | 2008-07-14 | |
US61/080,532 | 2008-07-14 | ||
US12/501,380 US8495454B2 (en) | 2008-07-14 | 2009-07-10 | Methods, apparatuses, systems, and architectures for quickly and reliably encoding and/or decoding system data |
US12/501,380 | 2009-07-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101635158A CN101635158A (zh) | 2010-01-27 |
CN101635158B true CN101635158B (zh) | 2014-10-22 |
Family
ID=41506197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910159482.4A Expired - Fee Related CN101635158B (zh) | 2008-07-14 | 2009-07-14 | 编码和/或解码系统数据的方法、装置、系统和体系结构 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8495454B2 (zh) |
CN (1) | CN101635158B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539924B1 (en) | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
JP2010204828A (ja) * | 2009-03-02 | 2010-09-16 | Renesas Electronics Corp | データ保護回路及び方法、並びにデータ処理装置 |
US8335970B2 (en) * | 2009-09-28 | 2012-12-18 | Broadcom Corporation | Encoder/decoder with unfolding error correction |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
DE102010006876B4 (de) * | 2010-02-04 | 2012-10-31 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Kodierung von Daten |
US8194340B1 (en) | 2010-03-18 | 2012-06-05 | Western Digital Technologies, Inc. | Disk drive framing write data with in-line mapping data during write operations |
US8856438B1 (en) | 2011-12-09 | 2014-10-07 | Western Digital Technologies, Inc. | Disk drive with reduced-size translation table |
US8687306B1 (en) | 2010-03-22 | 2014-04-01 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones |
US8693133B1 (en) | 2010-03-22 | 2014-04-08 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format |
US9330715B1 (en) | 2010-03-22 | 2016-05-03 | Western Digital Technologies, Inc. | Mapping of shingled magnetic recording media |
US8699185B1 (en) | 2012-12-10 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks |
US8954664B1 (en) | 2010-10-01 | 2015-02-10 | Western Digital Technologies, Inc. | Writing metadata files on a disk |
US8756361B1 (en) | 2010-10-01 | 2014-06-17 | Western Digital Technologies, Inc. | Disk drive modifying metadata cached in a circular buffer when a write operation is aborted |
US8615023B2 (en) * | 2010-10-27 | 2013-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for transmitting/receiving data in communication system |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8756382B1 (en) | 2011-06-30 | 2014-06-17 | Western Digital Technologies, Inc. | Method for file based shingled data storage utilizing multiple media types |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9213493B1 (en) | 2011-12-16 | 2015-12-15 | Western Digital Technologies, Inc. | Sorted serpentine mapping for storage drives |
US8819367B1 (en) | 2011-12-19 | 2014-08-26 | Western Digital Technologies, Inc. | Accelerated translation power recovery |
US8612706B1 (en) | 2011-12-21 | 2013-12-17 | Western Digital Technologies, Inc. | Metadata recovery in a disk drive |
US8799598B2 (en) * | 2012-02-17 | 2014-08-05 | Spansion Llc | Redundancy loading efficiency |
CN103326756A (zh) * | 2012-03-19 | 2013-09-25 | 中兴通讯股份有限公司 | 正交频分多址接入系统中的编码传输方法和系统 |
US8805855B2 (en) | 2012-08-17 | 2014-08-12 | International Business Machines Corporation | Efficiently storing and retrieving data and metadata |
CN103839594A (zh) * | 2012-11-27 | 2014-06-04 | 建兴电子科技股份有限公司 | 固态储存装置及其联合编解码方法 |
US9026888B2 (en) * | 2012-12-21 | 2015-05-05 | Intel Corporation | Method, system and apparatus for providing access to error correction information |
US8953269B1 (en) | 2014-07-18 | 2015-02-10 | Western Digital Technologies, Inc. | Management of data objects in a data object zone |
US9875055B1 (en) | 2014-08-04 | 2018-01-23 | Western Digital Technologies, Inc. | Check-pointing of metadata |
US9553611B2 (en) * | 2014-11-27 | 2017-01-24 | Apple Inc. | Error correction coding with high-degree overlap among component codes |
KR20170009554A (ko) * | 2015-07-17 | 2017-01-25 | 에스케이하이닉스 주식회사 | 테스트 시스템 및 테스트 방법 |
US10162537B2 (en) | 2015-09-10 | 2018-12-25 | Samsung Electronics Co., Ltd. | Methods and systems to detect silent corruption of data |
US10592336B1 (en) * | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1947120A (zh) * | 2004-06-25 | 2007-04-11 | 苹果电脑有限公司 | 数据管理方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4715623B2 (ja) * | 2006-05-08 | 2011-07-06 | ソニー株式会社 | データ記録装置及びデータ記録方法、並びにコンピュータ・プログラム |
US20070268905A1 (en) * | 2006-05-18 | 2007-11-22 | Sigmatel, Inc. | Non-volatile memory error correction system and method |
-
2009
- 2009-07-10 US US12/501,380 patent/US8495454B2/en active Active
- 2009-07-14 CN CN200910159482.4A patent/CN101635158B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1947120A (zh) * | 2004-06-25 | 2007-04-11 | 苹果电脑有限公司 | 数据管理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100011275A1 (en) | 2010-01-14 |
US8495454B2 (en) | 2013-07-23 |
CN101635158A (zh) | 2010-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101635158B (zh) | 编码和/或解码系统数据的方法、装置、系统和体系结构 | |
US9063875B2 (en) | Error recovery storage along a memory string | |
US5805799A (en) | Data integrity and cross-check code with logical block address | |
US7653862B2 (en) | Error detection and correction for encoded data | |
JP4709485B2 (ja) | オンドライブ統合化セクタ・フォーマットraidの誤り訂正符号システムおよび方法 | |
CN103577274B (zh) | 管理存储器阵列的方法和装置 | |
US20070198890A1 (en) | Method for creating an error correction coding scheme | |
CN101211667A (zh) | 降低误纠概率的纠错电路和方法和包括该电路的存储设备 | |
CN102017425A (zh) | 用于执行级联纠错的方法和系统 | |
KR20040093748A (ko) | 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치 | |
CN108370252A (zh) | 对乘积码诊断的后解码错误检查 | |
JP4988418B2 (ja) | 回転する記憶媒体の複数の層にデータを読み書きする方法、プログラム及びデータ記憶装置 | |
Deal | Trends in NAND flash memory error correction | |
CN101452722B (zh) | 错误检测码产生电路和使用该电路的编码电路及相关方法 | |
US11831333B2 (en) | Encoding for data recovery in storage systems | |
US6694473B1 (en) | Parallel signal decoding method | |
JPH02502330A (ja) | 第1コードシーケンスと第2コードシーケンスを組み合わせることによりコードワードを形成することより成るエンコード方法及び装置 | |
Al-Shahrani et al. | An efficient multiple-errors and multiple-erasures decoding algorithm for multitrack magnetic recording channels | |
Al-Shahrani et al. | Array codes with error detection for efficient multitrack magnetic recording channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141022 Termination date: 20190714 |