CN103238139B - 解码包含集成的数据和信头保护的编码数据 - Google Patents
解码包含集成的数据和信头保护的编码数据 Download PDFInfo
- Publication number
- CN103238139B CN103238139B CN201180057805.4A CN201180057805A CN103238139B CN 103238139 B CN103238139 B CN 103238139B CN 201180057805 A CN201180057805 A CN 201180057805A CN 103238139 B CN103238139 B CN 103238139B
- Authority
- CN
- China
- Prior art keywords
- row
- letter
- letter head
- ecc parity
- data
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
这里公开了一种用于解码包括集成的数据和信头保护的编码数据的方法。在一种实施方式中,这种方法包括接收扩展的数据阵列。扩展的数据阵列包括被组织成行和列的数据阵列、被附加到所述数据阵列的行的信头、保护所述数据阵列的列的列ECC奇偶校验、以及保护组合的行和信头的行ECC奇偶校验。然后,该方法解码扩展的数据阵列。除其它操作之外,这个解码步骤包括校验与每一行相关联的信头以确定信头是否合法。如果信头合法,则该方法确定信头对相应的行ECC奇偶校验所起的作用。然后,该方法撤消信头对相应的行ECC奇偶校验所起的作用。在此还公开了相应的装置(即,被配置成实现上述方法的磁带驱动器)。
Description
技术领域
本发明涉及磁带驱动器,而且更特别地,涉及用于解码包含集成的数据和信头保护的编码数据的装置和方法。
背景技术
在有些磁带驱动器中,诸如当前的线性磁带开放(LTO)和企业级磁带驱动器,从主机接口接收可变长度数据块并转换成被称为数据集的固定单元。这些数据一般被分解成被称为子数据集(SDS)的更小的固定单元。然后,以这些子数据集为单位执行纠错编码,以便保护其中包含的数据。
为了保护SDS中的数据,传统的磁带驱动器可把子数据集组织成由行和列组成的两维阵列。两维阵列中的每一行可由多个(例如,2或者4个)交织的数据字组成。然后,可为阵列中的每一行和阵列中的每一列生成纠错奇偶校验位或符号,以便保护其中包含的数据,其中所述符号包括多个位。这从根本上提供了对阵列中的数据的两维保护,因为对行和列都提供了保护。一旦生成,纠错奇偶校验位或符号就可被附加到阵列,用于最终存储在磁带介质上。
一旦纠错奇偶校验位或符号被附加到阵列,就可生成一个或多个信头并附加到阵列中的每一行。这些信头通常存储寻址信息和与阵列中的数据字相关联的其它元数据。尽管这些信头可以包含例如循环冗余校验(CRC)的检错码,但是它们一般不受纠错码的保护。在信头中生成并存储纠错奇偶校验位或符号会增加信头的大小并且不期望地降低存储格式的效率。
随着磁带存储介质的线性记录密度持续增加,预期存储在磁带上的数据和信头的出错率也会增加。数据中的差错可以利用附加到阵列的纠错奇偶校验位或符号来校正。然而,信头中的差错可能会更有问题,因为它们可能不受纠错码的保护。如果一个信头被破坏而且不能被恢复,那么该信头所引用的数据的全部或部分可能丢失。用于利用沿轨道和跨轨道插值来确定和校正信头差错的传统技术不足以在高线性密度和轨道密度的情况下保护磁带信头。此外,允许沿轨道和跨轨道插值的格式的灵活性被局限于重写在边写边读操作过程中检测到差错的数据。
鉴于以上所述,所需要的是一种更有效地保护当前或未来磁带存储格式中的信头的编码方案。更具体地说,需要一种为数据和信头生成纠错奇偶校验位或符号的编码方案,这种方案将对二者都提供足够的保护,同时不导致对重写灵活性的约束。这种编码方案还将理想地保留存储格式效率。进一步所需要的是一种可靠地解码利用上述编码方案编码的数据的解码方案。理想地,即使在存在差错的情况下,例如动态随机存取存储器(DRAM)差错,这种解码方案也将可靠地解码编码数据。
发明内容
已经响应于本领域的现状,以及更特别地,响应于本领域中还没有被当前可用的装置与方法完全解决的问题和需求,开发出了本发明。相应地,已经开发出了本发明,以提供解码包含集成的数据和信头保护的编码数据的装置和方法。本发明的特征和优点将从以下描述和所附权利要求变得更加完全显而易见,或者可以通过如下所述本发明的实践来学习。
继续以上所述,在此公开了一种用于解码包含集成的数据和信头保护的编码数据的方法。在一种实施方式中,这种方法包括接收扩展的数据阵列。扩展的数据阵列包括被组织成行和列的数据阵列、被附加到数据阵列的行的信头、保护数据阵列的列的列纠错码(ECC)奇偶校验、以及保护组合的行和信头的行ECC奇偶校验。然后,该方法解码扩展的数据阵列。除其它操作之外,这个解码步骤包括校验与每一行相关联的信头,以确定信头是否合法。如果信头合法,则该方法确定信头对相应的行ECC奇偶校验所起的作用。然后,该方法撤消信头对相应的行ECC奇偶校验所起的作用。
在此还公开并保护相应的装置(即,被配置成实现上述方法的磁带驱动器)。
附图说明
为了更容易理解本发明的优点,将参考附图中说明的具体实施方式给出以上简单描述过的本发明的更特定的描述。应当理解,这些图仅仅绘出了本发明的典型实施方式而且不能因此就认为是对其范围的限制,本发明将通过附图的使用以附加的特殊性和细节来描述和解释。
图1是示出用于集成数据和信头保护的编码方案的一种实施方式的高级流程图;
图2示出了如何利用图1的编码方案来生成ECC奇偶校验和信头并附加到数据阵列;
图3是示出用于集成数据和信头保护的编码方案的一种备选实施方式的高级流程图;
图4和5示出了如何利用图3的编码方案来生成ECC奇偶校验和信头并附加到数据阵列;
图6是示出用于解码具有集成的数据和信头保护的编码数据的解码方案的一种实施方式的高级流程图;
图7是示出用于并入图6的解码方案中的方法的一种实施方式的流程图;以及
图8是示出在编码和解码过程中都使用的Reed-Solomon电路的一种实施方式的高级框图。
具体实施方式
很容易理解,如在这里附图中总体上描述和说明的,本发明的部件可以在广泛变化的不同配置中布置和设计。因而,如附图中所表示的,以下对本发明实施方式的更具体描述不是要像所阐述的那样限定本发明的范围,而仅仅是代表根据本发明的目前预期实施方式的某些例子。目前所描述的实施方式将通过参考附图得到最好的理解,其中相同的部分贯穿所有附图都用相同的标号来指定。
如本领域技术人员将认识到的,本发明可以体现为装置、系统、方法或计算机程序产品。此外,本发明可以采取硬件实施方式、配置成操作硬件的软件实施方式(包括固件、驻留软件、微代码等)或者结合软件和硬件元素的实施方式的形式。这些实施方式中的每一种都可以由一个或多个模块或块来表示。此外,本发明可以采取体现在任何有形介质的表达中的计算机可用存储介质的形式,在所述介质中存储了计算机可用的程序代码。
可以使用一种或多种计算机可用或计算机可读存储介质的任意组合来存储计算机程序产品。计算机可用或计算机可读存储介质可以是例如,但不限于,电、磁、光、电磁、红外线或者半导体系统、装置或设备。计算机可读存储介质的更具体例子(非穷尽列表)可以包括以下:具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或者闪存存储器)、光纤、便携式光盘只读存储器(CDROM)、光学存储设备或磁性存储设备。在本文档的背景下,计算机可用或计算机可读存储介质可以是可以包含、存储或传输由指令执行系统、装置或设备使用或者与其联合使用的程序的任何介质。
用于执行本发明操作的计算机程序代码可以用一种或多种编程语言的任意组合来写,包括面向对象的编程语言,例如Java、Smalltalk、C++等,及传统的过程编程语言,例如“C”编程语言或者类似的编程语言。用于实现本发明的计算机程序代码还可以用例如汇编语言的低级编程语言来写。
以下参考根据本发明各种实施方式的方法、装置、系统和计算机程序产品的流程图说明和/或框图来描述本发明。将理解,所述流程图说明和/或框图的每个方框及流程图说明和/或框图中方框的组合可以由计算机程序指令或代码来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或者其它可编程数据处理装置的处理器,来产生一种机器,使得当所述指令经计算机或者其它可编程数据处理装置的处理器执行时,产生用于实现在所述流程图和/或框图的方框中所指定的功能/动作的装置。
计算机程序指令还可以存储在计算机可读存储介质中,所述指令可以指示计算机或其它可编程数据处理装置以特定的方式起作用,使得存储在计算机可读存储介质中的指令产生一种制造物品,该物品包括实现在所述流程图和/或框图方框中所指定的功能/动作的指令装置。计算机程序指令还可以加载到计算机或其它可编程数据处理装置上,使得一系列操作步骤在计算机或其它可编程装置上执行,产生一种计算机实现的过程,使得在所述计算机或者其它可编程装置上执行的指令提供用于实现在所述流程图和/或框图方框中所指定的功能/动作的过程。
参考图1,同时总体上还参考图2,说明了示出用于集成数据和信头保护的编码方案的一个例子的流程图。如图所示,处理过的(例如,加密和/或压缩的)主机数据以被称为子数据集(SDS)102(见图2)的固定单元被列ECC编码器110接收。每个SDS102都被组织成由行和列组成的数据阵列102。在接收到数据阵列102时,列ECC编码器110为阵列102中的每一列生成ECC奇偶校验106并把列ECC奇偶校验106附加到阵列102。扩展后的阵列(即,SDS数据102以及列ECC奇偶校验106)被写到DRAM缓冲器114。
然后,列校验器122校验扩展后的阵列的每一列的差错,这种差错可以包括DRAM差错。这可以通过例如为每一列重新计算列ECC奇偶校验并且比较这个列ECC奇偶校验和DRAM缓冲器114中所存储的列ECC奇偶校验106来实现。如果新计算的列ECC奇偶校验与所存储的列ECC奇偶校验106匹配,则可以假定列没有差错。如果新计算的列ECC奇偶校验与所存储的列ECC奇偶校验106不匹配,则可以假定列包含差错。如果在列中检测到差错,那么,所存储的列ECC奇偶校验106可被用于校正列中的若干差错,直到列ECC奇偶校验106的校正能力。
然后,多路复用器112把信头108附加到阵列102的行。信头108的位置是任意的,这意味着信头108可被放在每一行的开始、每一行的结束、与每一行交织,等等。然后,扩展后的阵列(即,SDS数据102、信头108和列ECC奇偶校验106)被传递到行ECC编码器116,行ECC编码器116为每一行(包括SDS数据102、列ECC奇偶校验106和信头108)生成ECC奇偶校验104并且把ECC奇偶校验104附加到扩展后的阵列。因而,行ECC编码器116为组合的SDS数据102、列ECC奇偶校验106和信头108生成行ECC奇偶校验104。这从根本上对SDS数据提供了两维保护(即,通过提供行和列ECC奇偶校验104、106),同时对信头108提供了单维保护(通过只提供行ECC奇偶校验104)。这种技术保留了格式效率,同时对信头108提供了足够的ECC保护。扩展后的阵列被写到DRAM缓冲器118,这个缓冲器118可与DRAM缓冲器114相同或不同。
一旦扩展后的阵列被写到DRAM缓冲器118,行校验器120就校验扩展后的阵列的每一行的差错,这种差错可以包括DRAM差错。这可以通过例如为每一行重新计算行ECC奇偶校验并且比较这个行ECC奇偶校验与DRAM缓冲器118中所存储的行ECC奇偶校验104来实现。如果新计算的行ECC奇偶校验与所存储的行ECC奇偶校验104匹配,则可以假定行没有差错。如果新计算的行ECC奇偶校验与所存储的行ECC奇偶校验104不匹配,则可以假定行包含差错。如果在行中检测到差错,那么,所存储的行ECC奇偶校验104可被用于校正行中的若干差错,直到行ECC奇偶校验104的校正能力。
为了说明集成数据和信头保护的效率,假定SDS数据102和信头108是按上述方式保护的。如果SDS数据102、行ECC奇偶校验104、列ECC奇偶校验106和信头108被写到磁带并且在边写边读过程中在信头108中检测到差错,则数据102、列ECC奇偶校验106、行ECC奇偶校验104和信头108可被重写到磁性介质。然而,在执行重写之前,信头108和行ECC奇偶校验104可能需要被修改,以更新其中包含的寻址和元数据。另一方面,数据102和列ECC奇偶校验106可以保持不变。因为信头108是由单维的ECC奇偶校验来保护的(即,只受到行ECC奇偶校验104的保护),因此,与需要重新计算行和列ECC奇偶校验104、106两者形成对比,只有行ECC奇偶校验104需要被重新计算用于更新后的信头108。此外,只需要对那些信头108改变了的行重新计算行ECC奇偶校验104。因而,利用单维的ECC保护来保护信头108在仍然保留格式效率的同时对信头108提供了足够的保护。
应当认识到,在有些实施方式中,SDS阵列102的每一行可由多个交织的数据字组成。作为例子,SDS阵列102中的每一行可以包括四个交织的数据字,每一个数据字是234字节,使得每行936字节长。数据字可在逐个字节的基础上或者其它适当基础上被交织。类似地,与行相关联的行ECC奇偶校验104和信头108也可被交织。例如,四个每一个都是3字节的交织的信头108(行中的每个数据字一个)可以与阵列102中的每一行相关联,使得每一行的信头108是12字节长。信头108可在逐个字节的基础上或者其它适当基础上被交织。类似地,四个每一个都是12字节的交织的行ECC奇偶校验位或符号104(行中的每个数据字一个)可与阵列102中的每一行相关联,使得每一行的行ECC奇偶校验码104是48字节长。行ECC奇偶校验码104可在逐个字节基础上或者其它适当基础上被交织。利用以上所提供的数字,每一行(包括信头108、SDS数据102和行ECC奇偶校验104)将是996字节长。这些数字仅仅是作为例子提供的而不是要作为限制。而且,交织不一定在所有实施方式中都使用。
本发明人已经发现,使用以上提供的数字(即,每个数据字102是234字节,每个信头108是3字节,而行ECC奇偶校验104是12字节),可以利用12字节的行ECC奇偶校验104来校正多达5个字节的组合的信头108和数据字102。此外,信头108中的所有3个字节可以利用12字节的行ECC奇偶校验104来校正。如果数据是交织的,那么,假定1个字节的纠错能力余量被用于减小误校正概率,则多达20个连续的交织字节可被校正。简而言之,集成信头和数据保护显著地比利用ECC奇偶校验独立地保护信头108和数据102更加有效。
参考图3,同时总体上还参考图4和5,说明了用于集成数据和信头保护的编码方案的一种备选实施方式。在这种实施方式中,当接收到SDS阵列102时,行ECC编码器116a为SDS数据102生成行ECC奇偶校验104a并把它附加到阵列102,如图4中所示。扩展后的阵列被写到DRAM缓冲器114。然后,列ECC编码器110为SDS阵列102(包括行ECC奇偶校验104)中的每一列生成ECC奇偶校验106,如图4中进一步示出的。这种扩展后的阵列被写到DRAM缓冲器118,其中DRAM缓冲器118可与DRAM缓冲器114相同或者不同。一旦扩展后的阵列被写到DRAM缓冲器118,行校验器120就校验扩展后的数据阵列的每一行的差错。如果发现差错,则行校验器120校正差错,直到行ECC奇偶校验104a的校正能力。
然后,多路复用器112把信头108附加到行,如图5中所示。然后,扩展后的阵列102(即,SDS数据102、信头108、列ECC奇偶校验106和行ECC奇偶校验104)可被传递到相同或不同的行ECC编码器116b,以便为现在包括信头108的每一行更新行ECC奇偶校验104a。这产生了图5中所说明的更新后的行ECC奇偶校验104b。以这种方式,为SDS数据102提供了两维的ECC保护,并且为信头108提供了单维的ECC保护。与图1中所说明的编码方案形成对比,使用图3中所说明的编码方案的一个潜在优点是:它可能更容易利用传统的ECC编码硬件来实现编码方案。此外,在图3中只有一个行校验器就足以检测并校正DRAM差错,而在图1中需要一个列校验器和一个行校验器来检测并校正DRAM差错。不过,其它编码方案与附带硬件也能够以上述方式集成数据和信头保护。此类编码方案与附带硬件要包括在本发明的范围之内。
参考图6,说明了用于解码具有集成的数据和信头保护的编码数据的解码方案的一种实施方式。如图所示,存储在磁带上的编码数据(例如,图5中所说明的扩展的数据阵列)由行ECC解码器600接收。利用扩展的数据阵列中的行ECC奇偶校验104b,行ECC解码器600校正行(包括SDS数据102、列ECC奇偶校验106和信头108)中的差错,直到行ECC奇偶校验104b的校正能力。
当行ECC解码器600解码扩展的数据阵列的一行时,信头校验器602校验与该行相关联的信头108,以确定信头108是否合法。例如,信头校验器602可以校验与信头108相关联的CRC或者其它差错检测码,以确定信头108是否包含差错并因此是非法的。可选地,或者附加地,信头校验器602可以校验信头108的内容以确定内容是否合法。例如,可以建立定义信头108中的某些位或位组可以具有什么值或值范围的规则。如果位或者位组(即,信头108的内容)符合这些规则,就可以认为信头108是合法的。如果位或者位组不符合这些规则,就可以认为信头108是非法的。
如果信头108合法,则信头行奇偶校验发生器604计算与信头108相关联的行奇偶校验。用于计算这种信头行ECC奇偶校验的一种方法联系图8来讨论。这种计算确定信头108对行ECC奇偶校验104b的影响。不同地说,即信头行奇偶校验发生器604确定信头108对行ECC奇偶校验104b所起的作用。一旦计算出信头行ECC奇偶校验,该信头行ECC奇偶校验就(利用逐位XOR)在行ECC解码器600的输出被添加到行ECC奇偶校验104b,以便撤消信头108对行ECC奇偶校验104b所起的作用。换句话说,利用图4和5作为例子,如图5中所说明的更新后的行ECC奇偶校验104b将被恢复成图4中所说明的原始行ECC奇偶校验104a。
一旦信头108所起的作用被从行ECC奇偶校验104b撤消,信头剥离器606就从扩展的数据阵列中剥离信头108。这将产生像图4中所说明的扩展的数据阵列。这种扩展的数据阵列被写到DRAM缓冲器608。包含太多差错而不能由行ECC奇偶校验104b校正的行或者包括非法信头108的行不被传输到DRAM缓冲器608。然后,扩展的数据阵列被传递到列ECC解码器610。利用列ECC奇偶校验106,列ECC解码器610重构任何缺失的行,直到列ECC奇偶校验106的校正能力。校正后的扩展数据阵列被写到DRAM缓冲器612,该DRAM缓冲器612可与DRAM缓冲器608相同或不同。然后,利用行ECC奇偶校验104a,行校验器614校验扩展的数据阵列的差错,例如DRAM差错,并且校正在其中发现的任何差错。然后,校正后的(即,解码的)SDS数据102可被传递到主机设备。
应当认识到,图6中所说明的解码方案是作为例子给出的,而不是要作为限制。在其它实施方式中,图6中所说明的功能性方框是不同地组织或配置的。例如,在有些实施方式中,解码方案被重新组织,使得列ECC解码在行ECC解码之前执行。其它变化或修改也是可能的。因而,图6中所说明的解码方案仅仅是作为例子给出的而不是限制。
参考图7,说明了示出用于并入图6的解码方案的方法700的一种实施方式的流程图。这种方法700可对扩展的数据阵列中的每一行执行。如图所示,方法700首先解码702一行中的码字并且利用相关联的行ECC奇偶校验104b来校正702该行中的差错。如果需要,方法700级联704信头段(例如,与一行中的数据字相关联的3字节信头108)以获得完整信头108(例如,12字节信头108)。然后,方法700确定信头108是否合法。这可以包括校验706与信头108相关联的CRC或者其它差错检测码以确定信头是否包含差错。如果信头包含差错,则该行不被修改或传输到DRAM缓冲器608,如在步骤708所反映的。确定信头108是否合法还可以包括确定710信头108的内容是否合法。这可以包括确定信头108中的各个字段(例如,位或者位组)是否包含允许的值或者是否在允许值的范围内。如果信头内容的全部或部分非法,则与该信头108相关联的行不被修改或者传输到DRAM缓冲器608,如在步骤708中所反映的。
在信头108合法的情况下,方法700修改712行ECC奇偶校验104b,以撤消信头108对行ECC奇偶校验104b所起的作用。如前面所提到的,这可以通过只对信头计算行ECC奇偶校验,然后把信头行ECC奇偶校验(利用逐位XOR)添加到行ECC奇偶校验104b以去除信头108所起的作用来实现。与保护数据102和信头108两者形成对比,这将修改行ECC奇偶校验104b,使得它只保护数据102。然后,方法700剥离714信头108并且把带有修改后的行ECC奇偶校验104a的修改后的行存储714到DRAM缓冲器608中。如前面所提到的,列ECC奇偶校验106可被用于重构因为具有非法信头108或者具有太多差错而不能由行ECC奇偶校验104b校正而没有被传输到DRAM缓冲器608的行。
参考图8,说明了Reed-Solomon电路800的一种实施方式。这种电路800在编码和解码过程中都可以使用。例如,电路800可被用于在编码过程中为数据102和信头108计算行ECC奇偶校验104b。电路800还可被用于在解码过程中计算信头108对行ECC奇偶校验104b所起的作用。如图所示,编码器电路800包括多个寄存器802,在这个例子中是十二个寄存器802(被标记为R0、R1、…、R11),每个寄存器存储一个符号,例如一个字节的数据。寄存器802依次与反馈连接。编码器电路800还包括以所说明的方式与寄存器802交互的十一个乘法器804(每个表示为升高到某次幂的α)。每个乘法器804都用某个固定的值αn去乘输入值。其乘积被添加到寄存器的值并存储在下一个寄存器中。
在集成的信头编码基于首先被馈送到编码电路中的数据字节的情况下,为了在解码过程中确定信头108对行ECC奇偶校验104b所起的作用,寄存器802中的值可被初始化成零。然后,与234字节数据字相关联的三字节信头108被依次逐字节地馈送到电路800中。一旦这些字节已被馈送到电路800中(这应当花费3个时钟循环),十二个寄存器802将包含十二个ECC奇偶校验字节,这些奇偶校验字节代表三字节信头108对行ECC奇偶校验104b所起的作用。然后,信头所起的作用可(利用逐位XOR)被添加到行ECC奇偶校验104b。这将修改行ECC奇偶校验104b,使得与组合的数据102(或者列ECC奇偶校验106)和信头108形成对比,它只保护数据102(或者列ECC奇偶校验106)。
在集成的信头编码基于首先被馈送到编码电路中的信头字节的情况下,为了在解码过程中确定信头108对行ECC奇偶校验104b所起的作用,寄存器802中的值可被初始化成零。然后,与234字节数据字相关联的三字节信头108被依次逐字节馈送到电路800中,后面跟着234个零字节。一旦这些字节已被馈送到电路800中(这应当花费237个时钟循环),十二个寄存器802将包含十二个ECC奇偶校验字节,这些奇偶校验字节代表三字节信头108对行ECC奇偶校验104b所起的作用。然后,信头所起的作用可(利用逐位XOR)被添加到行ECC奇偶校验104b。这将修改行ECC奇偶校验104b,使得与组合的数据102(或者列ECC奇偶校验106)和信头108形成对比,它只保护数据102(或者列ECC奇偶校验106)。
附图中的流程图和框图显示了根据本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能性与操作。在这点上,流程图或框图中的每个方框可以代表一个模块、片段或者代码部分,所述模块、片段或代码部分包含用于实现规定的逻辑功能的一条或多条可执行指令。还应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依赖所涉及的功能性而定。也要注意的是,框图和/或流程图中的每个方框以及框图和/或流程图中方框的组合可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (18)
1.一种用于解码包括集成的数据和信头保护的编码数据的方法,该方法包括:
接收扩展的数据阵列,所述扩展的数据阵列包括被组织成行和列的数据阵列、被附加到所述数据阵列的行的信头、保护所述数据阵列的列的列ECC奇偶校验、以及保护组合的行和信头的行ECC奇偶校验;
解码所述扩展的数据阵列,其中,解码所述扩展的数据阵列包括:
校验与每一行相关联的信头以确定信头是否合法;
如果信头合法,则确定信头对相应的保护组合的行和信头的行ECC奇偶校验所起的作用;以及
撤消信头对相应的行ECC奇偶校验所起的作用,其中,撤消信头对相应的行ECC奇偶校验所起的作用包括:生成与信头相关联的信头行ECC奇偶校验,并且把所述信头行ECC奇偶校验添加到相应的行ECC奇偶校验。
2.如权利要求1所述的方法,其中,解码所述扩展的数据阵列还包括从行中剥离信头。
3.如权利要求1所述的方法,其中,校验信头包括校验信头的内容。
4.如权利要求1所述的方法,其中,校验信头包括对信头执行循环冗余校验。
5.如权利要求1所述的方法,还包括:如果信头合法,则把行传输到DRAM缓冲器。
6.如权利要求5所述的方法,还包括:如果信头不合法,则不把行传输到DRAM缓冲器。
7.如权利要求1所述的方法,其中,所述数据阵列是被组织成阵列格式的子数据集(SDS)。
8.如权利要求1所述的方法,其中,所述行ECC奇偶校验和列ECC奇偶校验包括Reed-Solomon奇偶校验。
9.如权利要求1所述的方法,其中,每一行包括至少一个数据字。
10.一种用于解码包括集成的数据和信头保护的编码数据的磁带驱动器,该磁带驱动器包括:
解码器,接收扩展的数据阵列,所述扩展的数据阵列包括被组织成行和列的数据阵列、被附加到所述数据阵列的行的信头、保护所述数据阵列的列的列ECC奇偶校验、以及保护组合的行和信头的行ECC奇偶校验;
所述解码器被配置成解码所述扩展的数据阵列,其中,解码所述扩展的数据阵列包括:
校验与每一行相关联的信头以确定信头是否合法;
如果信头合法,则确定信头对相应的保护组合的行和信头的行ECC奇偶校验所起的作用;以及
撤消信头对相应的行ECC奇偶校验所起的作用,其中,撤消信头对相应的行ECC奇偶校验所起的作用包括:生成与信头相关联的信头行ECC奇偶校验,并且把所述信头行ECC奇偶校验添加到相应的行ECC奇偶校验。
11.如权利要求10所述的磁带驱动器,其中,解码所述扩展的数据阵列还包括从行中剥离信头。
12.如权利要求10所述的磁带驱动器,其中,校验信头包括校验信头的内容。
13.如权利要求10所述的磁带驱动器,其中,校验信头包括对信头执行循环冗余校验。
14.如权利要求10所述的磁带驱动器,其中,所述解码器被进一步配置成:如果信头合法,则把行传输到DRAM缓冲器。
15.如权利要求14所述的磁带驱动器,其中,所述解码器被进一步配置成:如果信头不合法,则不把行传输到DRAM缓冲器。
16.如权利要求10所述的磁带驱动器,其中,所述数据阵列是被组织成阵列格式的子数据集(SDS)。
17.如权利要求10所述的磁带驱动器,其中,所述行ECC奇偶校验和列ECC奇偶校验包括Reed-Solomon奇偶校验。
18.如权利要求10所述的磁带驱动器,其中,每一行包括至少一个数据字。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/957,651 | 2010-12-01 | ||
US12/957,651 US8762805B2 (en) | 2010-12-01 | 2010-12-01 | Decoding encoded data containing integrated data and header protection |
PCT/EP2011/068006 WO2012072330A1 (en) | 2010-12-01 | 2011-10-14 | Decoding encoded data containing integrated data and header protection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103238139A CN103238139A (zh) | 2013-08-07 |
CN103238139B true CN103238139B (zh) | 2016-09-14 |
Family
ID=44910185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180057805.4A Expired - Fee Related CN103238139B (zh) | 2010-12-01 | 2011-10-14 | 解码包含集成的数据和信头保护的编码数据 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8762805B2 (zh) |
EP (1) | EP2646914B1 (zh) |
JP (1) | JP5363686B2 (zh) |
KR (1) | KR101531774B1 (zh) |
CN (1) | CN103238139B (zh) |
WO (1) | WO2012072330A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8869011B2 (en) * | 2013-01-03 | 2014-10-21 | International Business Machines Corporation | Unequal error protection scheme for headerized sub data sets |
US9455745B2 (en) * | 2013-02-21 | 2016-09-27 | Microsoft Technology Licensing, Llc | Encoding with integrated error-detection |
US9064541B2 (en) | 2013-08-26 | 2015-06-23 | International Business Machines Corporation | Tape header format having efficient and robust codeword interleave designation (CWID) protection |
US9712188B2 (en) | 2015-05-04 | 2017-07-18 | International Business Machines Corporation | Decoding data stored with three orthogonal codewords |
US9606868B2 (en) | 2015-05-04 | 2017-03-28 | International Business Machines Corporation | Encoding and writing of data on multitrack tape |
JP6479638B2 (ja) * | 2015-12-09 | 2019-03-06 | 株式会社東芝 | ビデオサーバ装置およびデータ書き込み/読み出し方法 |
KR102557993B1 (ko) * | 2018-10-02 | 2023-07-20 | 삼성전자주식회사 | 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법 |
KR20200140074A (ko) | 2019-06-05 | 2020-12-15 | 에스케이하이닉스 주식회사 | 휘발성 메모리 장치 및 이의 동작 방법 |
KR20210045875A (ko) * | 2019-10-17 | 2021-04-27 | 에스케이하이닉스 주식회사 | 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법 |
US11657889B2 (en) * | 2020-03-23 | 2023-05-23 | Intel Corporation | Error correction for dynamic data in a memory that is row addressable and column addressable |
CN113238799B (zh) * | 2021-04-07 | 2022-06-28 | 南京交通职业技术学院 | 一种用于智能汽车的车载芯片安全防护系统及方法 |
US11967342B2 (en) | 2022-09-14 | 2024-04-23 | International Business Machines Corporation | Header decoding mechanism for tape storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438573A (en) * | 1991-09-13 | 1995-08-01 | Sundisk Corporation | Flash EEPROM array data and header file structure |
US5978958A (en) * | 1995-04-03 | 1999-11-02 | Matsushita Electric Industrial Co., Ltd. | Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code |
US6490243B1 (en) * | 1997-06-19 | 2002-12-03 | Kabushiki Kaisha Toshiba | Information data multiplex transmission system, its multiplexer and demultiplexer and error correction encoder and decoder |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US543857A (en) * | 1895-08-06 | Twine-holder | ||
JPS55122213A (en) | 1979-03-08 | 1980-09-19 | Nec Corp | Error detection system of magnetic tape unit |
JPS6346660A (ja) | 1986-08-13 | 1988-02-27 | Nec Corp | 磁気テ−プ媒体へのデ−タ書込み誤り防止方式 |
JP2576512B2 (ja) | 1987-06-29 | 1997-01-29 | ソニー株式会社 | デ−タレコ−ダ |
US5369532A (en) | 1991-11-12 | 1994-11-29 | Storage Technology Corporation | Method and apparatus for managing data on rewritable media to define read/write operational status |
US5369641A (en) | 1991-11-12 | 1994-11-29 | Storage Technology Corporation | Method and apparatus for detecting and correcting errors in data on magnetic tape media |
US5375127A (en) | 1992-03-25 | 1994-12-20 | Ncr Corporation | Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries |
JP3357374B2 (ja) | 1995-04-03 | 2002-12-16 | 松下電器産業株式会社 | それぞれエラー訂正符号のデータ構造を有するデータ伝送システム、データ記録再生装置及び記録媒体 |
IL128257A (en) | 1997-05-30 | 2006-10-05 | Macrovision Europ Ltd | Method for protecting a list from copying, carrying a list protected from copying and means for discovering access control information |
US5946328A (en) | 1997-11-17 | 1999-08-31 | International Business Machines Corporation | Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords |
JP3775154B2 (ja) | 1999-04-08 | 2006-05-17 | 日本ビクター株式会社 | 情報記録方法、記録装置、記録再生方法、再生装置及び記録媒体 |
JP2002074862A (ja) | 2000-08-25 | 2002-03-15 | Toshiba Corp | データ処理方法及び装置及び記録媒体及び再生方法及び装置 |
TW569188B (en) | 2001-02-07 | 2004-01-01 | Media Tek Inc | Method and apparatus for error processing in optical disk memories |
US6978414B2 (en) | 2001-07-17 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for protecting against errors occurring in data storage device buffers |
US6903887B2 (en) | 2002-01-03 | 2005-06-07 | International Business Machines Corporation | Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems |
CN100539445C (zh) | 2002-04-05 | 2009-09-09 | 皇家飞利浦电子股份有限公司 | 将纠错附加层嵌入纠错码的方法和装置 |
US7046610B2 (en) | 2002-04-24 | 2006-05-16 | Ricoh Company, Ltd. | Recording medium suitable for recording/reproducing multi-level data |
KR100698620B1 (ko) | 2003-06-16 | 2007-03-21 | 삼성전자주식회사 | 강건한 에러 정정 부호화 장치를 가지는 디지털 송/수신시스템 및 그의 에러정정부호화/정정방법 |
JP2005267719A (ja) | 2004-03-17 | 2005-09-29 | Sanyo Electric Co Ltd | 符号化装置 |
JP4112520B2 (ja) | 2004-03-25 | 2008-07-02 | 株式会社東芝 | 訂正符号生成装置、訂正符号生成方法、誤り訂正装置、および誤り訂正方法 |
US7376888B2 (en) | 2004-10-19 | 2008-05-20 | International Business Machines Corporation | Interleaved recording of separated error correction encoded information |
US7546515B2 (en) | 2005-12-27 | 2009-06-09 | Sandisk Corporation | Method of storing downloadable firmware on bulk media |
US8196019B2 (en) | 2007-01-30 | 2012-06-05 | International Business Machines Corporation | Error correction in codeword pair headers in a data storage tape format |
US8055982B2 (en) | 2007-02-21 | 2011-11-08 | Sigmatel, Inc. | Error correction system and method |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
US20090177943A1 (en) | 2008-01-09 | 2009-07-09 | Broadcom Corporation | Error correction coding using soft information and interleaving |
US8276045B2 (en) | 2009-01-09 | 2012-09-25 | International Business Machines Corporation | ECC interleaving for multi-track recording on magnetic tape |
EP2234305B1 (en) | 2009-03-27 | 2017-08-02 | Nokia Solutions and Networks Oy | Method of reliable communications by splitting redundant data into CRC sub-blocks best reassembled at the receiver |
-
2010
- 2010-12-01 US US12/957,651 patent/US8762805B2/en not_active Expired - Fee Related
-
2011
- 2011-10-14 CN CN201180057805.4A patent/CN103238139B/zh not_active Expired - Fee Related
- 2011-10-14 JP JP2013525327A patent/JP5363686B2/ja active Active
- 2011-10-14 WO PCT/EP2011/068006 patent/WO2012072330A1/en active Application Filing
- 2011-10-14 EP EP11770758.8A patent/EP2646914B1/en active Active
- 2011-10-14 KR KR1020137013244A patent/KR101531774B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438573A (en) * | 1991-09-13 | 1995-08-01 | Sundisk Corporation | Flash EEPROM array data and header file structure |
US5978958A (en) * | 1995-04-03 | 1999-11-02 | Matsushita Electric Industrial Co., Ltd. | Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code |
US6490243B1 (en) * | 1997-06-19 | 2002-12-03 | Kabushiki Kaisha Toshiba | Information data multiplex transmission system, its multiplexer and demultiplexer and error correction encoder and decoder |
Also Published As
Publication number | Publication date |
---|---|
JP5363686B2 (ja) | 2013-12-11 |
JP2013543159A (ja) | 2013-11-28 |
EP2646914B1 (en) | 2014-02-26 |
WO2012072330A1 (en) | 2012-06-07 |
US20120144271A1 (en) | 2012-06-07 |
KR101531774B1 (ko) | 2015-06-25 |
EP2646914A1 (en) | 2013-10-09 |
US8762805B2 (en) | 2014-06-24 |
CN103238139A (zh) | 2013-08-07 |
KR20130112897A (ko) | 2013-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103238139B (zh) | 解码包含集成的数据和信头保护的编码数据 | |
CN103392172B (zh) | 纠正存储阵列中的擦除 | |
CN101635158B (zh) | 编码和/或解码系统数据的方法、装置、系统和体系结构 | |
CN102834866B (zh) | 用于磁带驱动器的集成的数据与头保护 | |
CN105340022B (zh) | 用于校正数据错误的电路、设备及方法 | |
US8139304B2 (en) | Tape layout design for reliable ECC decoding | |
US6877128B2 (en) | Weighted error/erasure correction in a multi-track storage medium | |
JPH02189032A (ja) | エラー訂正方法 | |
US6631485B1 (en) | Methods and apparatus for data storage on magnetic media including error correction codes | |
JP2016503938A (ja) | 不均一誤り保護を備えたヘッダ付サブ・データ・セットを復号するためのシステム、方法、及びプログラム | |
US20100017682A1 (en) | Error correction code striping | |
JP2002509331A5 (zh) | ||
Wolf | An introduction to tensor product codes and applications to digital storage systems | |
JP2792670B2 (ja) | 誤り訂正符号の復号方法 | |
US11831333B2 (en) | Encoding for data recovery in storage systems | |
EP2715726B1 (en) | Track-dependent data randomization mitigating false vfo detection | |
US20240087604A1 (en) | Header decoding mechanism for tape storage | |
Al-Shahrani et al. | Array codes with error detection for efficient multitrack magnetic recording channels | |
JPH11163739A (ja) | 消失誤り訂正方法とその装置 | |
Al Jabri et al. | Array Codes with Error Detection For E cient Storage Systems | |
JPS5848936B2 (ja) | 誤り検出訂正方式 | |
JP2009064554A (ja) | エラー訂正コードを含む磁気媒体上へのデータの格納のための方法及び装置 |
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: 20160914 Termination date: 20201014 |