专利名称:有多组纠错码的数据的利记博彩app
技术领域:
本发明总体上涉及数据存储,更具体而言,涉及检错和纠错。
背景技术:
计算机数据存储器系统和数据存储器系统经常包括对检测和纠正错误的规定。通常数据的最小的可寻址单元被称为扇区,并且通常多个扇区进一步逻辑地归并成块,其中各块都包含用于该块的错误纠正。这些逻辑块被称为纠错码(ECC)块。对大多数应用而言,在一个纠错码块中错误可以保持未被检测和未被纠正的概率可接受地低。然而,有时对数据完整性的高得多的保证存在需求。需要能与现有标准格式兼容的、可选的附加检错和纠错。
发明内容
对至少一个纠错码块而言,该纠错码块中的数据区域包含有用于至少一个其他纠错码块的纠错码数据。
图1是一个纠错码块的示例性实施例。
图2说明比图1中纠错码块具有更多纠错码数据的示例性概念纠错码块。
图3A-3C说明介质上的数据轨道,及辅助纠错码块的备选排列示例。
图4A是一种方法的示例性实施例的流程图。
图4B是一个为图4A中的方法提供附加详述的,在读取或接收数据时的一个示例性替换方法的流程图。
图5是一种系统的一个示例性实施例的一个框图。
具体实施例方式
图1说明编码前的示例性纠错码块100。在图1的示例中,扇区(102)包含2,048个字节的原始数据。在某些现有的光盘标准中,一个纠错码块包含16个扇区的原始数据,如图1所示。在一些推荐标准中,一个纠错码块包含32个扇区的原始数据。在图1的示例中,每一扇区(加上16字节的标识和其他开销数据)在逻辑上被格式化为12行,每行172字节。对包含16扇区原始数据的纠错码块,为上述172列(每列一个字节)原始数据中的各列计算16字节的列纠错码数据106,并且做为结果的16行的列纠错码数据与上述行原始数据相互交错。10字节的行纠错码数据(104)被添加到172字节的原始数据的各行和16行的列纠错码的各行。对于一个有16扇区的纠错码块,有2,752字节的列纠错码数据(16行,每行172字节)和2,080字节的行纠错码数据(每行10字节,每扇区12行,16扇区,加上16行的列纠错码),总计4,832个字节的纠错码数据。
对于至少一个纠错码块(至少部分区域被指定为原始数据(图1,102)),为在至少一个其他纠错码块中的原始数据至少包含一些纠错码数据。一个仅包含原始数据的纠错码块是“原始纠错码块”,在一个为原始数据指定的区域内包含纠错码数据的纠错码块是“辅助纠错码块”。假设,仅作为举例,每一纠错码块有16个扇区,每4个原始纠错码块有一辅助纠错码块。而且假设每一辅助纠错码块由纠错码数据充分填充。每一辅助纠错码块为相关联的4个原始纠错码块中的每一个提供可达8,192字节的纠错码数据(与每一原始纠错码块中的4,832字节的纠错码数据相比)。使用上述示例数字,一个辅助纠错码块能纠正的错误比特是原始纠错码块的1.7倍。
每4个原始纠错码块有一个辅助纠错码块只是一个示例。通过为每一个辅助纠错码块提供少于4个原始纠错码块,包括为每一原始纠错码块提供多个辅助纠错码块,能获得强得多的纠错能力。另外,辅助纠错码块中的所有数据不必都是纠错码数据。例如,数据的16个扇区中的一些可以是纠错码数据,剩余的可以是原始数据。
使用上述示例中的假设,图2说明包含相当于1/4的辅助纠错码块中可用的纠错码数据比特数的概念纠错码块200(编码前)。换句话说,图2没有说明实际的纠错码块,而是说明原始纠错码块中的原始数据的数量和由辅助纠错码块的1/4提供的纠错码数据的数量(假设一个辅助纠错码块对应4个原始纠错码块)。在图2中,有16个原始数据扇区202。每一行有17字节的行纠错码数据(204),而在图1中有10字节的行纠错码数据。有26行的列纠错码数据(206),而在图1中有16行的列纠错码数据。图2中说明的纠错码数据物理上位于辅助纠错码块的原始数据区域,并占用将近1/4的可用原始数据区域。图2中的纠错码数据自身被其他的纠错码数据保护,如图1所示。
为原始纠错码块中的原始数据分配在辅助纠错码块中的纠错码比特是任意的。下面只是辅助纠错码块中纠错码数据的一种可能排列的示例,基于图2的纠错码数据,假设每个纠错码块有16个扇区,每个辅助纠错码块对应4个原始纠错码块,并且假设辅助纠错码块中的数据区域被纠错码数据充分填充列纠错码,字节列1(26字节)··列纠错码,字节列172(26字节)行纠错码,行1(17字节)··行纠错码,行218(17字节)上述示例假设纠错码数据是基于行和列被计算的,正如几个光盘标准中指定的。然而,辅助纠错码块中的纠错码数据必须遵照光盘标准。也就是说,辅助纠错码块的格式最好能遵照标准,但是辅助纠错码块的原始数据区域中的纠错码数据可以与这些标准指定的不同。例如,纠错码数据可以基于对角线而不是基于行和列进行计算。如果有一串错误导致多个行和列中有无法纠正的错误,则使用对角线可以导致各对角线上的可纠正数量的错误。
在一些多级纠错码算法中,如果第一级纠正确定一组字节是错误的和无法纠正的,则该第一级通过将这一组所有字节赋值为一擦除符号来擦除该组字节。于是,下一级纠正除了纠正某些错误字节外,还能够纠正某些擦除。在一个可选择的实施例中,只有当错误不能被原始纠错码块纠正时才使用辅助纠错码块,该原始纠错码块中的错误纠正擦除所有不能纠正的行,然后擦除所有不能纠正的列,然后把该辅助纠错码块中的纠错码数据施加到产生的有擦除的数据。
辅助纠错码块占用通常会被原始纠错码块占用的空间。从而,辅助纠错码块减少介质的数据容量。如果原始纠错码块中的纠错码数据独立于辅助纠错码块中的纠错码数据,那么在需要额外容量时辅助纠错码块可以被改写。如果是独立的,即使在辅助纠错码块不可用的情况下(出错或被改写),原始纠错码块中的纠错码数据仍然可用。一个使用的示例是仅在相关联的原始纠错码块不能纠正错误时才使用辅助纠错码块。当然,还有原始纠错码块中的错误不被发现的一定概率,所以如果辅助纠错码块可用的话,则可以通过仅使用辅助纠错码块获得额外的数据完整性的保证。
图3A-3C说明光盘上的一个轨道300的示例,包括辅助纠错码块。光盘(例如数据CD和DVD)通常在一个轨道的开始处有一块称为导入区域(302)的保留区域,以及在轨道的结尾处有一块称为导出区域(304)的保留区域。导入区域和导出区域之间的任何部分都可用于数据(306)。通常,导入区域和导出区域包括指定扇区或块的物理位置的数据结构。导入区域和导出区域可能也包括扇区或块的控制结构。一般地,逻辑文件目录位于数据区域中。在图3A中,原始纠错码块308位于数据可用的区域。辅助纠错码块可以被放置在数据区域的结尾,所以,如果没有额外的数据容量需求,它们都应保持原状。在图3A和3B中,辅助纠错码块310被放置在数据区域306的结尾。
可选择地,辅助纠错码块可以被放置在原始纠错码块间的规律性间隔中。例如,每第5个纠错码块可以是一个辅助纠错码块,或者每第9个和第10个纠错码块可以是一个辅助纠错码块,等等。在图3C中,辅助纠错码块318被放置在原始纠错码块316和320之间的规律性间隔中。
并非所有的原始纠错码块都需要辅助纠错码块。也就是说,只有选中的原始数据才可能需要数据完整性的附加保证。更优选地,对每个原始纠错码块,有一个关于是否存在有相关联的辅助纠错码块的指示。该指示可以位于每一原始纠错码块内,或可以位于单独的数据结构或控制结构中,或者可能是一种格式所固有的(位于固定位置或与相关联的原始纠错码块相关的固定位置中的辅助纠错码块)。该指示可以仅仅是一个比特,以指示存在相关联的辅助纠错码块,或者该指示可能包含指向相关辅助纠错码块的一个地址或指针。在图3A中,原始纠错码块中的数据域312,指示相关联的辅助纠错码块的块地址。在图3B的示例中,导入区域中的数据结构或其他盘信息中的数据域314把原始纠错码块和辅助纠错码块关联起来。可选择地,该原始纠错码块中的一些或所有扇区中的一个或多个比特可能串连起来为辅助纠错码块创建一绝对或相对地址。例如,如果每个纠错码块有16个扇区,每个扇区一个比特可以为关联的辅助纠错码块提供16比特的地址。
在图3C中,辅助纠错码块被分布于原始纠错码块之间。第一组4个原始纠错码块316具有相关联的辅助纠错码块318,第二组4个原始纠错码块320拥有相关联的辅助纠错码块322。图3A和3B中说明的指示选项的任何一个可以用来关联原始纠错码块和图3C中的辅助纠错码块。可选择地,如果使用固定的比率(例如,每第5个纠错码块有一个辅助纠错码块),则关联被嵌入格式中,不再需要单独的指示。在图3C中,辅助纠错码块位于相关联的原始纠错码块之后,但它们也可以可选择地位于相关联的原始纠错码块之前,并且可被首先写入。
如果原始纠错码块和辅助纠错码块中的纠错码数据是独立的,那么按照图3A-3C任一所示而写入的介质都能够被不懂辅助纠错码块的系统读取。也就是说,原始纠错码块可以被读取,原始纠错码块中的纠错码数据可以用来进行错误纠正,而不需要参考任何辅助纠错码块。因此,可以为兼容系统提供额外的数据完整性,而在其他系统保持读取的兼容性。
既然辅助纠错码块和原始纠错码块被分别写入,那么对于原始纠错码块而言指示相关联的辅助纠错码块是可能的,在这里,相关联的辅助纠错码块可能是出错的或丢失的(写入过程中的掉电或其他问题,或后来被重写)。一个关联原始纠错码块和辅助纠错码块的指示可以在该辅助纠错码块被成功写入之后再写入。可选择地,一个辅助纠错码块可以先于相关联的原始纠错码块被写入。或者,一个或多个匹配的比特可以被写入原始和相关的辅助纠错码块中,并且该比特可能被要求相匹配,或者假定将发生错误。可选择地,一个原始纠错码块(或者目录或者控制结构)可以包含一个指示即辅助纠错码块将要被写入,并且该指示可以在辅助纠错码块被成功写入后加以清除或者变更。另外,如果一个辅助纠错码块被改写,优选地,关联该辅助纠错码块与一个或多个原始纠错码块的任何指针或指示符应该被清除。
图4A说明在介质上写入数据的示例性方法。在步骤400,第一纠错码块被转移(被读、写、接收或传送)。在步骤402,包括第一纠错码块的纠错码数据的第二纠错码块被转移。在步骤404,该步骤是可选的,关联第二纠错码块与第一纠错码块的指示被转移。步骤400,402和404可按任何顺序执行。另外,步骤404可以包含在步骤400或402中。
在读取或接收数据时,一个系统可以选择去在第一纠错码块中一直使用原始数据上的第二纠错码数据,忽略该第一纠错码数据。然而,总是处理两个块可能影响性能。可选择地,一个系统可以总是首先尝试使用第一纠错码数据,然后仅在第一纠错码数据不能纠正错误时才读取和使用第二纠错码数据。这种可选方式在图4B中说明。在步骤406,如果第一纠错码块中的数据是正确的,或者第一纠错码块中的数据已被第一纠错码数据成功地纠正,那么第二纠错码数据就不需要了。在步骤408,第一纠错码数据还未能纠正错误时,第二纠错码数据被使用。
图5说明一个示例性系统。在图5中,一个第一系统500可以包括一个驱动器502。一个数据介质504可以嵌在驱动器(例如,硬盘)内部,或是可拆卸的(例如,DVD)。图3A-3B所示的数据轨道可以被该驱动器502记录在该数据介质504上。当在数据介质504上记录时图4的方法可以被驱动器502实现。可选择地,或另外,在逻辑上被格式化成图1所示的纠错码块的数据,但是有辅助纠错码块,可以通过I/O系统在该第一系统500和一个第二系统508之间通信(被接收或发送)。可以经过线路导线、光缆进行通信或无线地通信。该第一系统500可以是任何存储、读取、写入、记录、接收或发送数据的系统,例如,可以是计算机、服务器、工作站、数字设备、娱乐系统、蜂窝电话或数码相机,但并不局限于这些。该驱动器或第一系统可以包括执行图4中方法的处理器510。可选择地,驱动器502或者I/O系统506可以包括一个执行图4中方法的处理器。
权利要求
1.一种数据存储介质,包括原始数据(308,316,320),在逻辑上被格式化成第一块和第二块(310,318,322),第一块包括用于原始数据的第一纠错码,第二块包括用于第一块中原始数据的第二纠错码。
2.如权利要求1所述的数据存储介质,还包括第二块,包含用于第二纠错码的第三纠错码。
3.如权利要求1所述的数据存储介质,进一步包括第一块,包含将第二块和第一块关联起来的指示(312)。
4.如权利要求1所述的数据存储介质,进一步包括标识数据的物理位置的数据结构;和在数据结构中的、将第二块和第一块关联起来的指示(314)。
5.如权利要求1所述的数据存储介质,进一步包括数据区域(306),该数据区城具有开头和结尾,第一块在数据区域内,第二块接近数据区域的结尾。
6.如权利要求1所述的数据存储介质,进一步包括包含原始数据的多个块(316,320);包含用于原始数据的纠错码的多个块(318,322);和包含纠错码的被块分布于包含原始数据的块之间。
7.如权利要求1所述的数据存储介质,进一步包括第一纠错码和第二纠错码为原始数据提供独立纠错。
8.一种方法,包括转移(400)第一块中的原始数据;在第一块中转移用于第一块中的原始数据的第一纠错码;在第二块中转移(402)用于第一块中的原始数据的第二纠错码。
9.一种系统,包括用于传送在第一块中被格式化的原始数据的装置;用于在第一块中传送用于原始数据的第一纠错码的装置;用于在第二块中传送用于第一块中的原始数据的第二纠错码的装置。
10.一种系统(500),包括一个处理器(510),该处理器被编程以便执行如下方法转移第一块中的原始数据;在第一块中转移用于第一块中的原始数据的第一纠错码;在第二块中转移用于第一块中的原始数据的第二纠错码。
全文摘要
数据被格式化为逻辑的纠错码块以便于通信或记录。对于第一块中的原始数据(308,316,320),在第一块中有纠错码数据,在第二块(310,318,322)中有附加纠错码数据。当第一和第二块中的纠错码数据相互独立时,兼容设备可以使用来自任一块的纠错码数据,而其它设备可使用仅来自第一块的纠错码数据。
文档编号H05K10/00GK1581339SQ20041004782
公开日2005年2月16日 申请日期2004年5月31日 优先权日2003年7月31日
发明者C·R·魏劳赫 申请人:惠普开发有限公司