错误检测码附加电路、错误检测电路和方法及盘片设备

申请号 CN200510128907.7 申请日 2005-12-01 公开(公告)号 CN1815609A 公开(公告)日 2006-08-09
申请人 恩益禧电子股份有限公司; 发明人 竹内浩毅;
摘要 一种错误检测器,包括:替代值输出部件,用于通过 访问 存储如下值作为替代值的表,来输出与输入的字节数据的编码字节序列Q相对应的特定替代值,其中所述值是通过将替代代码串输入到移位寄存器来获得的,移位寄存器在以编码字节序列Q输入代码串时产生错误检测值;位处理运算部件,用于计算每字节的错误检测值;以及字节处理运算部件,用于输出代码串的错误检测值。替代代码串包含K个字节的字节数据,其中在与编码字节序列Q相对应的字节数据中只有预定的位数据表示“1”,而所有其它的位数据表示“0”。位处理运算部件以不同于编码序列的处理序列对每个字节数据及其替代值进行处理。
权利要求

1.一种错误检测器,用于通过计算添加有错误检测码的代码串 的错误检测值来检测错误,其中被进行错误检测的检测目标代码串包 含K个字节,每个字节数据与第一序列有关,当通过预定运算方法以 第一序列处理检测目标代码串时获得错误检测值,其中K是自然数, 该错误检测器包括:
替代值输出部件,用于输出检测目标代码串的每个字节数据的与 第一序列相对应的特定替代值,以及
错误检测值计算部件,用于根据替代值输出部件的输出结果,来 计算检测目标代码串的错误检测值,
其中错误检测值计算部件通过以不同于第一序列的第二序列处理 检测目标代码串的每个字节数据和与第一序列相对应的特定替代值, 来计算错误检测值。
2.如权利要求1所述的错误检测器,其中
与第一序列相对应的每个特定替代值是通过以预定运算方法处理 与第一序列有关的每个替代代码串来获得的,以及
每个替代代码串包含K个字节,其中与第一序列相对应的预定字 节数据中只有预定的位数据表示“1”而所有其它的位数据表示“0”。
3.如权利要求1所述的错误检测器,其中与第一序列相对应的 每个特定替代值是通过以预定运算方法处理与第一序列有关的每个替 代代码串而获得的值,并且当K个字节的代码串中只有1个位数据发 生错误时,替代代码串是校正子。
4.如权利要求1所述的错误检测器,其中
第一序列表示与检测目标代码串有关的序列,并且
第二序列表示与由多个检测目标代码串组成的记录单元有关的 序列。
5.如权利要求4所述的错误检测器,其中第一序列与记录单元 块的字节数据的阵列中的列方向有关而第二序列与行方向有关。
6.如权利要求4所述的错误检测器,其中记录单元块具有第一 位序列,该第一位序列是第一序列中的检测目标代码串的每个字节数 据的位的序列,其中数据以列方向中的第一位序列排列在阵列中,并 且第二序列相对于字节数据与行方向有关,字节数据在列方向中每个 都具有8位。
7.如权利要求4所述的错误检测器,其中记录单元块是以第二 序列记录和/或重放的。
8.如权利要求5所述的错误检测器,其中
替代值输出部件包括用于存储至少一部分特定替代值的表,并且 每当以第二序列输入字节数据时,输出字节数据的与第一序列相对应 的特定替代值,
错误检测值计算部件包括用于以位数据为单位处理每个字节数据 的位处理运算部件,以及用于根据位处理运算部件的运算结果来计算 错误检测值的字节处理运算部件,
位处理运算部件包括:
转换部件,用于将以第二序列输入的字节数据转换成位数据,
替代值转换部件,用于将从替代值输出部件读取的特定替代值转 换成与从转换部件输出的位数据相对应的替代值,以及
字节错误检测值运算部件,用于根据从转换部件输出的位数据和 由替代值转换部件转换的替代值,来计算每个字节的字节错误检测 值。
9.如权利要求8所述的错误检测器,其中字节处理运算部件包 括用于保持与检测目标代码串相同数量的错误检测值的保持部件,并 计算每个错误检测目标代码串的错误检测值。
10.如权利要求8所述的错误检测器,其中
检测目标代码串的每个字节数据具有作为第一序列并表示位序列 的第一位序列,
替代值与第一位序列相对应,并且
替代值转换部件将与输入的字节数据相对应的特定替代值转换成 与由转换部件转换的位数据的第一位序列相对应的替代值。
11.如权利要求10所述的错误检测器,其中在处理一个字节数 据期间,替代值转换部件设置通过对与第i位数据相对应的替代值执 行预定运算而获得的值,作为与第(i+1)位数据相对应的替代值,其 中0≤i≤7。
12.如权利要求5所述的错误检测器,其中
替代值输出部件包括用于存储包含在一行中的特定替代值的表, 并且每当以第二序列输入字节数据时,将包含在一行中的特定替代值 转换成字节数据的与第一序列相对应的特定替代值,并且将转换的值 输出,
错误检测值计算部件包括用于以位数据为单位处理每个字节数据 的位处理运算部件,以及用于根据位处理运算部件的运算结果来计算 错误检测值的字节处理运算部件,
位处理运算部件包括:
转换部件,用于将以第二序列输入的字节数据转换成位数据,
替代值转换部件,用于将从替代值输出部件读取的特定替代值转 换成与从转换部件输出的位数据相对应的替代值,以及
字节错误检测值运算部件,用于根据从转换部件输出的位数据和 由替代值转换部件转换的替代值,来输出每个字节的字节错误检测 值。
13.如权利要求5所述的错误检测器,其中
记录单元块具有多个检测目标代码串集,每个集具有两个或多个 检测目标代码串,
替代值输出部件包括特别的特定替代值表,用于存储与一个检测 目标代码串集的一行相对应的特定替代值,作为特别的特定替代值, 并且每当以第二序列输入字节数据时,将特别的特定替代值转换成字 节数据的与第一序列相对应的特定替代值,并且将转换的值输出,
错误检测值计算部件包括用于以位数据为单位处理一个字节数据 的位处理运算部件,以及用于根据位处理运算部件的运算结果来计算 错误检测值的字节处理运算部件,
位处理运算部件包括:
转换部件,用于将以第二序列输入的字节数据转换成位数据,
替代值转换部件,用于将从替代值输出部件读取的特定替代值转 换成与从转换部件输出的位数据相对应的替代值,以及
字节错误检测值运算部件,用于根据从转换部件输出的位数据和 由替代值转换部件转换的替代值,来输出每个字节的字节错误检测 值。
14.一种错误检测器,用于通过计算添加有错误检测码的代码串 的错误检测值来检测错误,其中被进行错误检测的检测目标代码串包 含k个位,每个位数据与第一位序列有关,当通过预定运算方法以第 一位序列处理检测目标代码串时获得错误检测值,其中k是自然数, 该错误检测器包括:
替代值输出部件,用于输出检测目标代码串的每个位数据的与第 一位序列有关的每个特定替代值的至少一部分,以及
错误检测值计算部件,用于根据替代值输出部件的输出结果,来 计算检测目标代码串的错误检测值,
其中错误检测值计算部件通过以不同于第一位序列的序列处理检 测目标代码串的每个位数据和与第一位序列相对应的特定替代值,来 计算错误检测值。
15.如权利要求14所述的错误检测器,其中与第一位序列相对 应的每个替代值是通过以预定运算方法处理与第一位序列有关的每个 替代代码串来获得的,并且
每个替代代码串包含k个字节,其中只有与第一位序列相对应的 预定的位数据表示“1”而所有其它的位数据表示“0”。
16.一种错误检测方法,包括:
以不同于第一序列的第二序列输入检测目标代码串以计算错误检 测值,该错误检测值是在通过预定运算方法以第一序列来处理被进行 错误检测的检测目标代码串时获得的,其中检测目标代码串包含K个 字节,每个字节数据与第一序列有关,K是自然数;
通过访问用于存储与第一序列有关的K个特定替代值的至少一部 分的表,来生成每个字节数据的与第一序列相对应的特定替代值;以 及
通过以第二序列处理检测目标代码串的每个字节数据和与第一序 列相对应的特定替代值来计算错误检测值。
17.一种错误检测码附加电路,用于根据包含用户数据的K个字 节的处理目标代码串,来生成由添加有错误检测码的用户数据组成的 K个字节的错误检测码附加代码串,K是自然数,其中处理目标代码 串具有与第一序列有关的每个数据,并且错误检测码附加代码串是通 过由预定运算处理以第一序列对处理目标代码串进行处理而获得的, 该错误检测码附加电路包括:
替代值输出部件,用于输出处理目标代码串的每个字节数据的与 第一序列相对应的特定替代值,以及
代码串生成部件,用于根据替代值输出部件的输出结果,来计算 错误检测码附加代码串,
其中代码串生成部件通过以不同于第一序列的第二序列对处理目 标代码串的每个字节数据和与第一序列相对应的特定替代值进行处 理,来生成错误检测码附加代码串。
18.一种盘片设备,包括:
读取部件,用于读取添加有错误检测码的错误检测码附加代码 串,
错误检测部件,用于通过计算错误检测码附加代码串的错误检测 码来检测错误,
其中错误检测码附加代码串包含K个字节,每个字节数据与第一 序列有关,K是自然数,
错误检测值是当由预定运算方法以第一序列来处理检测目标代码 串时而获得的,
错误检测部件包括:
替代值输出部件,用于输出错误检测码附加代码串中的每个字节 数据的与第一序列相对应的特定替代值,以及
错误检测值计算部件,用于根据替代值输出部件的输出结果,来 计算错误检测码附加代码串中的错误检测值,并且
错误检测值计算部件通过以不同于第一序列的第二序列处理错误 检测码附加代码串的每个字节数据和与第一序列相对应的特定替代 值,来计算错误检测值。
19.一种盘片设备,包括:
错误检测码附加部件,用于根据包含用户数据的K个字节的处理 目标代码串,来生成由添加有错误检测码的用户数据组成的K个字节 的错误检测码附加代码串,其中K是自然数;以及
记录部件,用于记录基于错误检测码附加代码串生成的记录数 据,
其中处理目标代码串具有与第一序列有关的每个字节数据,
错误检测码附加代码串是通过由预定运算方法以第一序列对处理 目标代码串进行处理而获得的,
错误检测码添加部件包括:
替代值输出部件,用于输出处理目标代码串的每个字节数据的与 第一序列相对应的特定替代值,以及
代码串生成部件,用于根据替代值输出部件的输出结果来计算错 误检测码附加代码串,
其中代码串生成部件通过以不同于第一序列的第二序列对处理目 标代码串的每个字节数据和与第一序列相对应的特定替代值进行处 理,来生成错误检测码附加代码串。
20.一种盘片设备,包括:
去扰器,用于通过使用字节数据的与第一序列相对应的加扰值对 加扰代码串进行去扰来生成去扰代码串,该加扰代码串是基于K个字 节的代码串的每个字节数据和加扰值来获得的,其中每个字节与第一 序列有关,K是自然数;以及
错误检测器,用于通过计算去扰代码串的错误检测值来检测错 误,
其中与第一序列相对应的每个加扰值是通过对初始值执行与第一 序列相对应的预定运算来获得的,
去扰代码串的每个字节数据与第一序列有关,并且
当由预定运算方法以第一序列处理去扰代码串时获得错误检测 值,
去扰器包括:
加扰值生成部件,用于生成去扰代码串中的每个字节数据的与第 一序列相对应的加扰值,该去扰代码串是以不同于第一序列的第二序 列输入的,以及
代码串运算部件,用于根据输入的字节数据和字节数据的与第一 序列相对应的加扰值来计算去扰数据,并且
错误检测器包括:
替代值输出部件,用于输出去扰代码串的每个字节数据的与第一 序列相对应的特定替代值,以及
错误检测值计算部件,用于通过根据替代值输出部件的输出结 果,以第二序列处理去扰代码串的每个字节数据和与第一序列相对应 的特定替代值,来计算错误检测值。

说明书全文

技术领域

发明涉及将错误检测码添加到存储在盘片中的数据的错误检测 码附加电路、检测从盘片读取的数据中的错误的错误检测电路和方 法、以及包括错误检测码添加电路和/或错误检测电路的盘片设备。

背景技术

继诸如CD、CD-R/RW和CD-ROM等所谓的第一代光盘和诸如 数字通用光盘(DVD)等第二代光盘之后,产生了作为具有405nm(蓝 紫光)的更短光源波长的Blu-ray盘片的所谓第三代光盘(参见“Next generation optiacal disc”,Nikkei Electronics Books,2003年10月7 日)。除了缩短光源波长之外,通过将物镜的数值孔径(NA)增大到 0.85以将射束点面积减小到DVD的约1/5,来以DVD的大约5倍的 记录密度对Blu-ray盘片读取和写入记录标记。此外,Blu-ray盘片具 有其上覆盖有0.1mm厚的透明覆盖层并且位于盘片衬底上的相变记录 层,从而减小因盘片和激光的相对倾斜而引起的偏差。
尽管具有较高记录密度并且包括薄覆盖层的第三代光盘具有大的 记录容量,但是与第二代光盘等相比,尽管例如缺陷大小相等,突发 错误的影响却更为显著。
通常,当在光盘上记录数字数据时,为了便于重放,添加错误校 正码(ECC)并且执行记录编码处理。在以高密度来记录数据的Blu-ray 盘片的情况下,为了准确读取数据,需要进行用于错误校正等的复杂 处理。
错误校正在下文中被称为ECC块,它是由以64K字节用户数 据为单位组成的。输入的用户数据为2052字节的逻辑扇区,其中4 字节的错误检测码(EDC)被添加到2048字节的用户数据中。ECC 块是由32个逻辑扇区(代码串)和为了防止突发错误而以规则间隔 嵌入的辅助数据(标示代码(picket code))组成的(参见日本未核 专利申请公开No.2003-242728)。然后通过被称为1-7PP(极性保持/ 禁止RMTR(Parity Preserve/Prohibit RMTR))调制的调制机制来对 ECC块进行调制以限制游程长度,并且将ECC块记录在盘片上。
包含在Blu-ray盘片的ECC块中的记录数据的排列如图2所示。 记录数据还没有被旋转,也没有与辅助数据一起来组成ECC块。这里 将其称为记录单元块。当添加EDC时如果列方向为数据输入序列(以 下被称为编码序列),则记录数据以行方向被记录在盘片上。
在Blu-ray盘片中,添加到2048字节用户数据的4字节EDC是 通过将添加有4字节0数据的2048字节数据(代码串)依次输入到 上述编码序列中的移位寄存器以执行预定运算来计算的。可以通过将 代码串输入到相同序列中的相同移位寄存器来检测由2048字节用户 数据和计算的4字节EDC组成的代码串中的错误。
但是,由于执行复杂交错处理以准确重放Blu-ray盘片中的以高 密度记录在盘片上的数据,因此以与编码序列不同的序列来记录代码 串,这里将其称为记录序列。因此,读数据的序列与编码序列不对应, 因此不可能按原样执行诸如错误检测等处理。
因此,现有盘片设备读取一个记录单元块中的所有数据,将其临 时存储在缓存器中,然后以与编码相同的序列将其读出,以便编码序 列与错误检测序列相同,从而能够进行校正操作。
但是,本发明认识到,通过将ECC块中包含的所有代码串(记 录单元块)一次性加载到缓存器中、将以记录序列排列的数据重新排 列成编码序列、然后将重新排列的数据输入到移位寄存器中以获得错 误检测值的处理,需要具有大缓冲存储器的设备,以存储记录单元块 中的所有数据。另外,错误检测时发生的存储器访问减小了缓冲存储 器访问的吞吐量。

发明内容

根据本发明的实施例,提供一种错误检测器,用于通过计算添加 有错误检测码的代码串的错误检测值来检测错误,其中被进行错误检 测的检测目标代码串包含K(K是自然数)个字节,每个字节数据与 第一序列有关,当通过预定运算方法以第一序列处理检测目标代码串 时获得错误检测值。该错误检测器包括:替代值输出部件,用于输出 检测目标代码串的每个字节数据的与第一序列相对应的特定替代值; 以及错误检测值计算部件,用于根据替代值输出部件的输出结果,来 计算检测目标代码串的错误检测值。错误检测值计算部件通过以不同 于第一序列的第二序列处理检测目标代码串的每个字节数据和与第一 序列相对应的特定替代值,来计算错误检测值。
由于本发明使用输入的字节数据的与第一序列相对应的特定替代 值,因此即使数据输入序列是第二序列也能够计算错误检测值。
根据本发明的另一个实施例,提供一种错误检测码附加电路,用 于根据包含用户数据的K(K是自然数)个字节的处理目标代码串, 来生成由添加有错误检测码的用户数据组成的K个字节的错误检测码 附加代码串,其中处理目标代码串具有与第一序列有关的每个数据, 并且错误检测码附加代码串是通过由预定运算处理以第一序列对处理 目标代码串进行处理而获得的。该错误检测码附加电路包括:替代值 输出部件,用于输出处理目标代码串的每个字节数据的与第一序列相 对应的特定替代值;以及代码串生成部件,用于根据替代值输出部件 的输出结果,来计算错误检测码附加代码串。代码串生成部件通过以 不同于第一序列的第二序列对处理目标代码串的每个字节数据和与第 一序列相对应的特定替代值进行处理,来生成错误检测码附加代码 串。
由于本发明使用输入的字节数据的与第一序列相对应的特定替代 值,因此即使数据输入序列是第二序列也能够计算包含错误检测码的 错误检测码附加代码串。
根据本发明的再一个实施例,提供一种盘片设备,包括:去扰器, 用于通过使用字节数据的与第一序列相对应的加扰值对加扰代码串进 行去扰来生成去扰代码串,该加扰代码串是基于K(K是自然数)个 字节的代码串的每个字节数据和加扰值来获得的,其中每个字节与第 一序列有关;以及错误检测器,用于通过计算去扰代码串的错误检测 值来检测错误。与第一序列相对应的每个加扰值是通过对初始值执行 与第一序列相对应的预定运算来获得的。去扰代码串的每个字节数据 与第一序列有关。当由预定运算方法以第一序列处理去扰代码串时获 得错误检测值。该去扰器包括:加扰值生成部件,用于生成去扰代码 串中的每个字节数据的与第一序列相对应的加扰值,该去扰代码串是 以不同于第一序列的第二序列输入的;以及代码串运算部件,用于根 据输入的字节数据和字节数据的与第一序列相对应的加扰值来计算去 扰数据。错误检测器包括:替代值输出部件,用于输出去扰代码串的 每个字节数据的与第一序列相对应的特定替代值;以及错误检测值计 算部件,用于通过根据替代值输出部件的输出结果,以第二序列处理 去扰代码串的每个字节数据和与第一序列相对应的特定替代值,来计 算错误检测值。
由于本发明使用输入的字节数据的与第一序列相对应的特定替代 值,因此能够与数据输入序列无关地计算错误检测码。此外,由于本 发明生成输入的字节数据的与第一序列相对应的加扰值,因此能够对 输入的数据执行去扰运算并以第二序列计算错误检测值,其中输入的 数据是以不同于第一序列的第二序列输入的。
如上所述,本发明以预定序列处理数据,由此允许向数据添加错 误检测码,即使在以不同于预定序列的序列处理数据时也能够计算错 误检测值,并允许进行错误的检测。
附图说明
下面结合附图进行讲述将使本发明的上述和其他目的、优点和特 征更加清楚,其中:
图1为框图,示意性地示出了根据本发明实施例的重放单元的信 号处理器的一部分;
图2是示出了在Blu-ray盘片的记录单元块中包含的以字节为单 位的数据的排列序列的图;
图3为两个代码串(D0,D1)的放大图;
图4为模式图,示出了字节数据的位在编码方向和记录方向上的 排列序列;
图5是示出了移位寄存器作为加扰器来生成加扰数据Si的图;
图6为框图,示出了根据本发明实施例的重放单元中的去扰器;
图7是示出了图6的去扰器的细节的图;
图8为电路图,示出了图7的去扰器中的108次SFR 41
图9为电路图,示出了图7的去扰器中的216次SFR 42;
图10为流程图,示出了根据本发明实施例的重放单元中的去扰 处理;
图11是示出了错误检测码和用于错误检测的运算单元的图;
图12是示出了Blu-ray盘片的记录单元块中包含的以位为单位的 数据的排列序列的图;
图13为两个代码串(D0,D1)的放大图;
图14是示出了根据本发明实施例的错误检测值计算方法的图;
图15为框图,示出了根据本发明实施例的重放单元中的错误检 测器的具体构造;
图16是示出了错误检测器中的除法部件205的图;
图17为流程图,示出了根据本发明实施例的重放单元中的错误 检测处理;以及
图18为框图,示意性地示出了根据本发明实施例的重放单元的 信号处理器的一部分。

具体实施方式

这里将参照讲解性实施例来讲述本发明。本领域的一般技术人员 都知道,使用本发明的讲述可以实现许多可选实施例,并且本发明并 不限于用于讲解目的的实施例。
下面参照附图来详细讲述本发明的具体实施例。实施例将本发明 应用于特别是在去扰和错误检测计算上处理性能有所提高的光盘重放 单元。它适用于当将错误检测码添加到用户数据时的编码序列和当在 光盘上记录添加有错误检测码的用户数据时的记录序列不同的光盘重 放单元。
以下实施例将Blu-ray盘片作为编码序列和记录序列不同的光盘 的例子;但是,盘片并不限于Blu-ray盘片,也可以是诸如其他光盘 和磁光盘等介质。因此,本发明也可应用于将特定数据写到介质或者 从介质读取该特定数据的数据处理,该特定数据是能够通过对数据的 预定序列执行计算来逆向计算并获得的。虽然以下实施例选取重放单 元作为例子,但是显然本发明也可以应用于记录单元或者记录/重放单 元。
1.光盘重放单元
图1为框图,示意性地示出了根据本发明实施例的重放单元的信 号处理器的一部分。为重放单元的信号处理器1提供解调数据,该解 调数据是通过对从盘片(图中未显示)中读取的数据进行解调所获得 的。信号处理器1包括:分离器11,用于分离主数据和辅助数据;旋 转器12,用于旋转由分离器11分离的主数据;以及去交错器13,用 于对辅助数据进行去交错。信号处理器1还包括主校正子(syndrome) 生成器14,用于生成去交错的主数据的校正子;主存储器15,用于 存储校正子;BIS存储器16,用于存储去交错的辅助数据;以及BIS 校正子生成器17,用于根据辅助数据生成校正子。信号处理器l进一 步包括去扰器18,用于从旋转器12接收主数据并且对数据进行去扰; 以及错误检测器19,用于检测数据的错误。信号处理器1进一步包括 错误校正器20,用于校正每一个数据的错误。用于从错误校正器20 接收错误位置和错误值的输入/输出部件21和用于输出去扰数据的输 出部件22通过总线23被连接到存储器24。主机接口25被连接到总 线23,并且通过主机接口25读出的数据被转移到诸如PC等主机26 上。
在Blu-ray盘片中,错误校正(ECC)块为以64K字节用户数据 为单位进行编码的错误校正。ECC块包含下面将要讲述的长距离代码 (LDC)块和被称为标示代码的辅助数据。辅助数据是由突发指示器 子码(BIS)校正的错误,以便可以通过检测辅助数据的错误状态来 检测突发错误。
用户数据是以2048字节为单位来读取或写入的。将4字节错误 检验码EDC添加到用户数据上,以便每一个逻辑扇区是由2052字节 组成。逻辑扇区分组成8个扇区,被分成76份,每一份为216字节, 并且采用Reed-Solomon码来对其进行编码。该数据排列在38字节×496 (496=(2*216)+(2*32))字节的区域(LDC)中。因此,LDC是 由304个码字组成,并且每一个码字是由码字长度包含有216个信息 符和32个奇偶符的248个字符组成的。码字在ECC块的纵向方向上 每2*2进行交错,从而构成了152字节×496字节的ECC块。
从盘片读取的数据被解调并且被提供给光盘设备的信号处理器1 的分离器11。分离器11将读数据分离成LDC(这里被称为主数据) 和辅助数据,并且将它们分别提供给旋转器12和去交错器13。由于 主数据是在ECC块中的列方向上进行旋转,因此旋转器12将ECC块 中包含的32个逻辑扇区设定回旋转前的状态,并且将它们提供给主 校正子生成器14和去扰器18。
主校正子生成器14对主数据执行预定计算以生成校正子,并且 将其提供给例如由静态随机存储器(SRAM)实现的主存储器15。辅 助数据由去交错器13进行去交错,并且被存储到由静态RAM等实现 的BIS存储器16中。然后对于每一个码字,将辅助数据提供给BIS 校正子生成器17,以生成辅助数据的校正子。将辅助数据的校正子提 供给错误校正器20,以校正存储在BIS存储器16中的辅助数据。如 果存在突发错误,则根据信息来校正主数据。
另一方面,主存储器15存储主数据的校正子。对于每一个码字, 将校正子提供给错误校正器20。将存储在存储器24中的主数据的错 误位置和错误值提供给输入/输出电路21,以执行错误校正。
另一方面,主数据由去扰器18进行去扰,并且错误是通过错误 检测器19进行检测的。特别地,本实施例的去扰器能够以不同于编 码序列的序列来读取数据,该数据是以不同于记录前执行的加扰的序 列(这里被称为编码序列)的序列进行记录的,并且以不同于编码序 列的序列(这里被称为处理序列)来执行去扰。此外,本实施例的错 误检测器19为一电路,用于根据以上述处理序列输入的数据来计算 每一个代码串的错误检测值。由于能够以不同于编码序列的处理序列 来执行去扰和错误检测值计算,因此没有必要在处理前将读数据重新 排列成编码序列。这减小了对用于重新排列序列的缓存器的需要,该 缓存器是在图1的存储器24中使用的工作区域。
2.数据排列
下面来讲述本实施例的记录单元中的去扰器和错误检测器。首先 来讲述Blu-ray盘片中的记录单元块的数据的排列序列。图2是描述 以字节为单位的数据(这里被称为字节数据)的排列序列的视图。图 2示出了在通过图1的分离器11从Blu-ray盘片的ECC块中分离出辅 助数据并且对主数据进行去旋转之后的数据结构。在以下讲述中,将 图2所示的2052×32字节的数据称为记录单元块。记录单元块100是 由这里也用D0~D31表示的32个代码串(扇区)D(x)组成。一个 代码串D(x)是由其中4字节EDC代码被添加到2048字节用户数据 中的2052字节数据组成。图3为两个代码串(D0,D1)的放大图。 其中所示的值显示了以字节为单位的去扰序列(编码序列)。记录单 元块包含304列和216字节行。在图3中,N表示列数(0≤N≤303), M表示行数(0≤M≤215)。
在代码串D(x)中,216个字节排列在一列中,并且连续地排列 在下一列中。因此,例如N=第9列具有代码串D0的第1944到第2051 字节数据,其占据了M=第0到第107行。N=第9列中的M=第108 到第215行是由下一个代码串D1的第0到第107字节数据占据的。 这样,记录单元块的排列使得偶数代码串和奇数代码串形成一个单元 (代码串集)。换句话说,在每两个由19列组成的代码串中,数据 是以相同的序列重复排列的。
代码串D0~D31是通过以图2和3所示的编码序列执行预定计算 来进行加扰的,以形成ECC块,并且被记录在盘片上。当记录时,以 图2中的箭头所示的行方向来记录单元块中的数据,该方向与作为编 码方向的列方向是垂直的。
图2和3中的列方向中的字节序列为编码序列。在本申请中,列 方向中的字节数据与图2和3中用数值所示的编码字节序列(第一序 列)Q有关。编码字节序列Q为编码序列。此外,以位为单位的数据 序列根据需要可以被称为编码位序列q。在该序列的字节数据是以行 和列的阵列形式排列的记录单元块中,行方向上的字节序列为在盘片 上记录数据的序列。在本申请中,行方向上的字节数据如记录字节序 列(第二序列)P所示。编码字节序列Q表示在Blu-ray盘片中的初 始去扰处理和错误检测处理的处理序列。记录字节序列P表示在Blu- ray盘片上记录数据的序列,它表示本实施例中的去扰处理和错误检 测处理的处理序列。因此,虽然本实施例以与常规Blu-ray盘片中的 记录字节序列P相同的序列来执行在盘片上的数据记录和重放,但是 它以与现有的编码字节序列(=Q)不同的序列来执行去扰和错误检测。 本实施例使得去扰和错误检测处理的序列与记录字节序列P相同,因 此减小了将读数据一次性加载到缓存器中并且对其重新排列的需要, 从而能够按照原样处理数据。
图4为模式图,示出了在编码方向和记录方向上的字节数据中包 含的位的排列序列。如图4所示,列方向上的编码字节序列Q中的一 个字节数据包含编码位序列q中的最高有效位MSB到最低有效位 LSB。当记录单元块是以位为单位来看时,则记录方向上的一个字节 数据与图13所示的编码方向上的8位数据相对应。因此,当记录编 码字节序列Q或编码位序列q中的数据时,数据是以记录位序列p来 排列的,如图4的右部分所示。因此记录方向上的每一个字节数据的 MSB到LSB都与编码方向上的每一个字节数据的MSB到LSB相对 应。在本申请中,记录方向上的位数据与记录位序列p有关。
本实施例中的去扰处理是以沿着行方向(记录字节序列P)上的 字节序列的字节为单位来执行的。编码字节序列Q与一个编码列有 关,以满足0≤Q≤2051。记录字节序列P与一个记录单元块有关,以 满足0≤P≤65663。
3.去扰器
由于记录在盘片上的数据是以记录序列来读取的,因此读数据所 处的序列与编码序列Q不同。但是,由于加扰是这样的处理,即其可 以通过以编码序列Q对数据执行预定运算被去扰,因此不能通过以读 序列P执行的预定运算来对数据进行去扰。本实施例提出了用于即使 当数据是以不同于编码序列Q的记录序列P来处理时也可以对数据进 行去扰的一种运算电路和方法。
首先来讲述去扰处理,以便于对本发明的理解。当对代码串进行 加扰和去扰时,可以采用相同的方法。当对数据进行加扰时,8位输 入数据Di和在加扰器中生成的8位加扰数据(加扰值)Si的模2相加 (异或运算)给出了加扰数据DSi,如以下表达式所示:
表达式1:DSi=Si+Di
其中“+”表示异或运算EOX(XOR)。符号“+”在以下讲述 中也表示XOR运算。
类似地,当对数据进行去扰时,加扰的输入数据Di和在加扰器 中生成的8位加扰值Si的模2相加产生了去扰数据DSi。在两种情况 中,加扰值Si与输入数据Di相对应。下面将讲述去扰。
图5示出了作为加扰器的例子的移位寄存器,以生成加扰数据Si。 图5所示的移位寄存器30被初始化为预定值。对8次移位之后的b7~b0 的值Si和输入数据Di的XOR运算产生了去扰数据DSi。因此,获得 去扰数据DSi需要获得加扰值Si。
在图2和3所示的记录单元块中包含的数据是在记录单元块的行 方向(记录方向)上读取的。以记录字节序列P将数据输入到去扰器。 因此,上述表达式1的运算表达式如下:
表达式2:DSi=Si+Di
            =S(P*216)mod 2052+Di
如果将记录字节序列P(去扰序列)输入到去扰器中并且编码字 节序列Q是相同的,则加扰值Si可以通过对每一个数据输入时钟都移 位一次移位寄存器30来获得。另一方面,如果输入数据是以作为不 同于编码字节序列Q的去扰序列的记录字节序列P来输入的,则加扰 值Si不能通过简单地对移位寄存器30进行移位来获得。如图3所示, 记录字节序列P为:DQ=0→DQ=216→DQ=432→DQ=648等。因此,从移位 寄存器30输出的移位寄存器值(加扰值)为:移位0次的值→移位216 次的值→移位432次的值等。因此,如果M=行(行:0~303)并且N= 列(列:0~215),则当数据是以记录字节序列P输入时的输出的加 扰值为移位了((216*N)mod 2052+M)次的值。这表示需要对于每 一个输入的1字节数据都对移位寄存器30进行216次移位。这需要 用于每一个计算的216个时钟,这会导致较长的去扰处理时间。为了 防止这一问题,需要将整个记录单元块一次性加载到缓存器中,以编 码字节序列Q对数据进行重新排列,并且将其输入移位寄存器30。 这需要诸如RAM等存储区域来一次性加载记录单元块,并且恶化了 可以分配到别处的RAM访问性能。
为了克服这一缺陷,本实施例利用了编码字节序列Q和记录字节 序列P的规则性。它将可以对数据进行多次移位的两个移位寄存器结 合起来,同时移位寄存器30对数据进行一次移位,以记录字节序列P 计算与移位寄存器30中的加扰值相类似的加扰值Sk。这就可以对以 不同于编码字节序列Q的序列来输入的数据执行去扰。
在此详细讲述本实施例的去扰器。如图3所示,在记录字节序列 P中,记录单元块100的字节数据为处于编码字节序列Q的每216字 节或108字节的数据。因此,本实施例采用了可以在一个时钟内计算 在移位寄存器30中移位108次的值的108次移位寄存器(SFR)和可 以在一个时钟内计算在移位寄存器30中移位216次移位的值的216 次SFR。108次SFR和216次SFR是通过使用特定乘法器对移位寄存 器30的每16位执行XOR运算来实现的。本实施例通过在包括有一 套108次SFR和216次SFR的加扰值生成器中计算以记录字节序列P 输入的字节数据的加扰值,来减小1字节数据所需的处理时间。
图6为框图,示出了图1的去扰器18。图7是示出了图6的去 扰器的细节的视图。去扰器18通过使用加扰值Si对与编码序列Q有 关的加扰数据和与编码序列Q相对应的加扰值进行去扰来生成去扰数 据。加扰数据与编码序列Q有关,并且与编码序列Q有关的每一个加 扰值是通过对初始值执行与编码序列Q相对应的预定运算来获得的。
去扰器18以读取序列(读取字节序列P)来接收记录单元块的 每一个数据DQ。如图6所示,去扰器18包括:加扰值生成部件(加 扰值生成器)40,用于生成加扰值SQ,对处于记录字节序列P的字节 数据DQ进行去扰,对应于以不同于编码序列Q的记录字节序列P输 入的加扰数据SQ的编码序列Q;以及逻辑电路(这里被称为XOR)60, 用于根据加扰数据和与加扰数据的编码序列Q相对应的加扰值SQ来 计算去扰数据。代码串运算部件包括控制器50和XOR 60。控制器50 根据数据DQ对加扰值生成器40进行控制。XOR 60输出数据DSQ, 该数据是通过对加扰值SQ和输入数据DQ执行XOR运算并且以记录 字节序列P对结果进行去扰而得到的。
加扰值生成器40包括108次SFR 41、216次SFR 42、加扰更新 SFR 43、扇区加扰初始值存储器44、行加扰初始值存储器45、下一 行加扰初始值存储器46,以及开关47~49。控制器50包括:计数器51, 用于对输入数据DQ的列和行进行计数;以及控制信号生成器52,用 于根据计数器的计数值来生成控制信号。
扇区加扰初始值存储器44存储与一个代码串中的第Q=0数据DQ=0 相对应的加扰值S0。加扰值S0为用于加扰的图4的移位寄存器30的 初始值。
行加扰初始值存储器45存储与当前列(N=0~303)和行 (M=0~215)相对应的初始值,这里将其称为行加扰初始值。加扰更 新SFR 43根据行加扰初始值生成与当前行的下一行相对应的初始值, 来作为更新的加扰值。加扰更新SFR 43的结构与图5的移位寄存器30 的相同,并且能够在一个时钟内执行与移位寄存器30的一次移位运 算相同的运算。
开关47从控制信号生成器52接收控制信号S1,从行加扰初始 值和更新的加扰值中选择一个,并且输出选择的值。下一行加扰初始 值存储器46存储由开关47选择并且输出的值,来作为下一行加扰初 始值。
开关48从控制信号生成器52接收控制信号S2,从扇区加扰初 始值和下一行加扰初始值中选择一个,并且输出选择的值。行加扰初 始值存储器45存储由开关48选择并且输出的值,来作为当前行加扰 初始值。
108次SFR 41接收当前行加扰初始值,并且输出将该值移位108 次之后的值。216次SFR 42输出前一个数据DQ-1中的加扰值SQ-1移位 216次之后的值。开关49从控制信号生成器52接收控制信号S3,从 当前行加扰初始值、移位了108次的值和移位了216次的值中选择一 个,并且输出选择的值来作为加扰值SQ。
每一次输入数据DQ时,计数器51将列数值N从0增加到303。 然后,当列数值N从303变成0时,计算器51将行数值M从0增加 到215。当行数值M从215变成0时的时刻为一个记录单元块的处理 结束时刻。
在根据控制信号S1增加行数值M时的时刻的前一个时钟的时 刻,控制信号生成器52对加扰更新SFR 43进行一次移位。从而,加 扰更新SFR 43将与当前行相对应的第N=0列中的加扰值更新成与下 一行相对应的加扰值(更新的加扰值)。后面对该运算进行详细讲述。
此外,控制信号生成器52输出控制信号S2以控制开关48,以 便当(N mod 19)=9并且(M mod 216)=108或者当(N mod 19)=0 并且(M mod 216)=0时选择和输出扇区加扰初始值S0,以及在其他 时刻选择下一行加扰初始值和输出存储的值。
此外,控制信号生成器52输出控制信号S3以控制开关49,以 便当(N mod 19)=0时选择行加扰初始值存储器45,当(N mod 19) =10并且M=0~107时以及当(N mod 19)=9并且M=108~215时选择 108次SFR 41,以及在其他时刻选择216次SFR 42和输出存储的值。
图8示出了108次SFR 41,图9示出了216次SFR 42。图8和 9的上部分别示出了108次SFR 41和216次SFR 42的电路图。图8 和9的下部分别示出了存储在108次SFR 41和216次SFR 42的寄存 器中的位b0~b15的算术表达式。108次SFR 41和216次SFR 42为16 位(b0~b15)的两个并行SFR,并且输出图5的移位寄存器30中的分 别等于移位了108次和216次的值的值。移位寄存器30是通过以下 多项式来获得的:
表达式3:(x)=X16+X15+X13+X4+1
其中X表示当移位寄存器是由生成多项式表示时的元素。分别用 于图8和9的下部中所示的108次和216次移位运算的算术表达式是 根据多项式(x)给出的。108次SFR 41和216次SFR 42为用于执 行算术表达式的移位寄存器。
4.去扰处理
下面来讲述图7所示的去扰器的去扰处理。图10为流程图,示 出了根据本实施例的去扰处理。如图10所示,首先,处理对扇区加 扰初始值存储器44进行初始化,以存储加扰值S0(步骤SP1)。然 后,通过控制信号S1~S3对所有的开关47~49进行初始化(步骤SP2)。 通过初始化,开关48选择扇区加扰初始值存储器44的输出,以输出 加扰初始值S0。此外,开关49选择行加扰初始值存储器45的输出, 以输出行加扰初始值。此外,开关47选择加扰更新SFR 43的输出。 由于开关48选择扇区加扰初始值存储器44,因此不会选择也不会输 出加扰更新SFR 43的值。
通过每一个开关的选择,具有与图5相同的结构的加扰更新SFR 43接收扇区加扰初始值S0。加扰更新SFR 43生成更新加扰值(加扰 值S1),其是扇区加扰初始值S0一次移位之后的值(步骤SP3)。只 在增加行数值M的时刻选择更新加扰值。然后,处理重复步骤 SP4~SP18,以便加扰值生成器40输出与输入数据DQ相对应的加扰值 SQ,然后以输入数据DQ的输入序列来输出通过对加扰值SQ和输入数 据DQ进行去扰而得到的数据DSQ。
然后,输入字节数据DQ(步骤SP4)并且增加列数值N(步骤SP5)。 输入的字节数据DQ为DQ=0~DQ=65663,并且在一个时钟内以记录字节 序列P输入1字节数据。当输入记录单元块100的第一数据DQ=0时, 计数器将列数值N和行数值M设定为0并且开始计数。列数值N的 计数从0增加到303(步骤SP5)。然后,行数值M是根据列数值N 的值来更新的。只在当列数值N从303变成0的时刻增加行数值M 并且计数到215。然后,处理判定输入的字节数据DQ属于哪一行。当 行数值M等于或小于107(在步骤SP7中为“是”)时,判定值H1 被设定为10(步骤SP8)。另一方面,当行数值M大于107(在步骤 SP7中为“否”)时,判定值H2被设定为9(步骤SP9)。处理进一 步判定列数值N除以19(N mod 19)之后的余数是否为判定值H1或 H2(步骤SP12)。
如果(N mod 19)为判定值H1或H2(N=9,10,28,29,...,294,295), 也就是说,如果输入了邻近奇数代码串的偶数代码串的最后一列或者 邻近偶数代码串的奇数代码串的第一列中的数据DQ,则开关49通过 控制信号S2来选择108次SFR 41的输出(步骤SP11)。另一方面, 如果列数值N除以19之后的余数为0(步骤SP12),也就是说,如 果输入了偶数代码串的第一列中的数据,则开关49通过控制信号S2 输出行加扰初始值(步骤SP13)。
此外,如果列数值N=0,也就是说,如果列数值N除以304之后 的余数为0(步骤SP14),则开关47~49进行以下选择,并且加扰更 新SFR 43对值进行一次移位(步骤SP15)。确切地说,开关47选择 加扰更新SFR 43的输出,以将更新的加扰值输出到下一行加扰初始 值存储器46。开关48选择下一行加扰初始值存储器46的输出,以将 更新的加扰值输出到行加扰初始值存储器45。此外,开关49选择行 加扰初始值存储器45的输出,以通过OUTPUT来输出更新的加扰值。
如上所述,当列数值N变成0或者当行数值M增加时的时刻, 通过开关47、下一行加扰初始值存储器46、开关48、行加扰初始值 存储器45和开关49从OUTPUT输出来自加扰更新SFR 43的更新的 加扰值。然后,加扰更新SFR 43对与当前行相对应的更新的加扰值 进行一次移位,以生成与下一行相对应的更新的加扰值。每次增加行 数值M时,加扰更新SFR 43都首先对从扇区加扰初始值存储器44提 供的扇区加扰初始值(S0)进行移位,从而在图3所示的第0列中生 成从第1行到第215行的加扰值S0→S1→…→S214→S215。
然后,如果列数值N除以19之后的余数不为0,9或10且N不 为0,则开关49选择216次SFR 42来对前面的值进行216次移位并 且通过OUTPUT输出移位的值(步骤SP16)。从而,从OUTPUT输 出加扰值SQ。然后,XOR 60执行用于对加扰值SQ和数据DQ进行去 扰的XOR运算,从而从去扰器18输出去扰数据DSQ(步骤SP17)。 如果输入了下一个数据DQ,则从步骤SP4开始重复该处理。
通过上述一系列运算,通过OUTPUT输出与输入数据DQ相对应 的加扰值SQ。确切地说,如果输入了记录单元块的第一数据DQ=0,则 通过开关48、行加扰初始值存储器45和开关49从OUTPUT输出来 自扇区加扰初始值存储器44的加扰值S0。之后,通过适当地切换开 关47~49来输出与输入数据DQ相对应的加扰值SQ。将输出的加扰值 SQ输入到XOR 60。XOR 60对加扰值SQ和数据DQ执行XOR运算, 从而输出加扰数据DSQ。
下面就图3所示的数据SQ从DQ=0依次输入的情况来对上述去扰 处理进行详细讲述。如上所述,在输入数据DQ=0/P=0(DQ/P:编码字节 序列Q/记录字节序列P的数据)时,扇区加扰初始值存储器44的初 始值S0由行加扰初始值存储器45存,由开关49进行选择,并且通 过OUTPUT输出。同时,将初始值S0提供给216次SFR 42。在输入 了下一个数据DQ=216/P=1一个时钟之后,处理计算值S216,并且输出结 果,其中间值S216是S0被移位216次的值。在不同于当(N mod 19) =10并且M=0~107和当(N mod 19)=9并且M=108~215以及当(N mod 19)=0时的时刻,开关49选择216次SFR 42的输出。换句话说,在 输入了数据DQ=0之后一直到列数值N到达9的相同列和相同代码串 中的字节数据的处理时段期间,选择216次SFR 42的输出,并且通 过OUTPUT输出选择的值。
从而,OUTPUT依次输出S0被移位216次的值(S0→S216→ S432→…→S1944(S(N*216)mod 2052))。然后,在输入N=10并且M=0 的数据DQ=108/P=10时,开关49选择108次SFR 41的输出。在当(N mod 19)=10并且M=0~107以及当(N mod 19)=9并且M=108~215时的 时刻,也就是对从相同行的一个代码串变成下一个代码串的字节数据 进行处理的时刻,开关49选择108次SFR 41的输出。108次SFR 41 输出行加扰初始值存储器45的输出,该情况下其是S0被移位108次 的S108。从而,当N=9→N=10的输入数据DQ从DQ=1944/P=9变化到 DQ=108/P=10时,可以输出恰当的加扰值。然后,切换开关49,以选择216 次SFR 42的输出。将通过OUTPUT输出的值S108也提供给216次SFR 42,之后以N=11~18输出S108被移位216次的值(S108→S324→…→ S1836)。
然后,在当列数值N=19时输入数据(N mod 19)=0时,再次输 入数据DQ=0/P=19。此时,开关49选择行加扰初始值存储器45的输出。 由于行加扰初始值存储器45如上所述存储初始值S0,因此值S0是通 过OUTPUT输出的。从而,即使当移位次数从DQ=1836/P=18到DQ=0/P=19 发生变化时,也可以通过OUTPUT输出恰当的加扰值SQ。之后,在 M=0的相同行的处理中执行相同的运算。
然后,在当行数值M从0变成1时输入第305个数据DQ=304(N=0, M=1)时,改变开关47和48的选择。如后所述固定该值,直到输入 了下一个记录单元块中的第0个数据。特别地,切换开关47,以从行 加扰初始值存储器45选择加扰更新SFR 43的输出。切换开关48,以 选择下一行加扰初始值存储器46的输出。
通过该切换,将初始值S0在加扰更新SFR 43中移位了一次的值 S1存储在下一行加扰初始值存储器46中。然后通过下一个时钟将该 值存储在行加扰初始值存储器45中,并且通过开关48和49从OUTPUT 将其输出。该处理需要两个时钟。由于直到输出了S1都需要两个时钟, 因此在输入最后一列的前一列(N=302)的数据字节之时,即在行数 值M从0变成1之前的一个时钟,将开关47切换到加扰更新SFR 43, 并且在输入最后一列(N=303)中的数据字节时,开关48选择下一行 加扰初始值存储器46。在输入下一行的顶部的数据字节(行数值M=0, DQ=1/P=304)时,通过开关49从OUTPUT输出存储在行加扰初始值存 储器45中的值S1。行加扰初始值存储器45在输入相同行中的数据时 的时段期间(在M=1时段期间)一直存储值S1。之后,重复根据列 数值N的值的处理,如M=1的时段期间所述。重复相同的处理,直 到行数值M到达215,从而产生了以记录字节序列P输入的字节数据 DQ的加扰值SQ。
本实施例组合了108次SFR 41、216次SFR 42和加扰更新SFR 43,并且控制用于在图2和3的行方向上输入的记录字节序列P的输 入数据的输出的选择,从而执行等价于在编码字节序列Q上通过移位 寄存器30执行的运算的移位运算。这可以在没有将整个记录单元块 加载到缓存器中并且将数据重新排列成编码字节序列Q的情况下,对 以记录字节序列P输入的记录单元块进行顺序处理。
由于图3所示的记录单元块中的数据循环了216或108次,因此 组合例如108次SFR 41是可行的。在这种情况下,需要216次移位 运算的处理可以执行两次108次移位寄存器SFR中的运算。此外,由 于移位寄存器需要的移位次数为108,因此使用能够执行如下次数的 移位运算的SFR的组合可以计算以记录字节顺序P输入的数据的加扰 值,其中所述次数是108的约数中的2的幂次方(exponential of 2in divisors of 108)。
5.错误检测器
下面来讲述根据本实施例的重放单元的错误检测器。在Blu-ray 盘片中,将4字节(32位)错误检测码(EDC)添加到图2所示的每 一个代码串D0~D31中的2048字节(16384位)数据I(x)上。32 位错误检测码可以通过16384位代码串I(x)除以以下生成多项式来 获得:
表达式4:G(x)=X32+X31+X4+1
添加到16384位代码串I(x)的错误检测码EDC(x)是由以下 表达式来表示的:
表达式5:EDC(x)=∑bt*Xt=I(x)mod G(x)(∑:t=31~0)
其中I(x)=∑bt*Xt(∑:t=16415~32)
结果,添加有错误检测码EDC(x)的代码串D(x)是由以下表 达式来表示的:
表达式6:D(x)=I(x)+EDC(x)
当在Blu-ray盘片上记录数据时,由添加了由表达式5计算的EDC (x)的32个代码串D(x)或逻辑扇区组成的记录单元块和辅助数 据作为一个ECC块被交错并且被记录在盘片上,以防止突发错误等。 当读取并且重放ECC块时,将上述数据去交错成由32个代码串D(x) 组成的记录单元块。然后按照需要对每一个记录单元块进行错误校 正,并且计算用于每一个代码串D(x)的错误检测值。
由表达式5表示的错误检测码EDC(x)可以通过将代码串D(x) 输入到图11所示的32位移位寄存器中获得。在输入了代码串D(x) 的所有代码之后32位移位寄存器的值用作错误检测码EDC(x)(=0)。 通常,用于检测从盘片读取的数据的错误的错误检测器计算32位移 位寄存器值,其是通过将读代码串D(x)的所有代码输入到与用于 添加错误检测码的单元相似的运算单元来获得的,并且当32位移位 寄存器值不为0时检测到错误。因此,将D(x)输入到图11所示的 32位移位寄存器可以判定D(x)除以G(x)之后的余数是否为0(D (x)mod G(x)=0或者不为0),从而检测错误。
另一方面,在Blu-ray盘片中,为了防止突发错误,添加了错误 检测码EDC(x)代码串D(x)是以不同于编码序列的顺序来记录的。 因此,读数据的序列(记录序列)与初始序列(编码序列)不同。因 此,当通过图11所示的移位寄存器200计算错误检测值时,不能以 相同的记录序列输入从光盘读取的读数据。这增加了预先将数据重新 排列成编码序列的需要。
为了克服该弱点,本实施例提出了错误检测方法,其可以在不使 用图11所示的移位寄存器的情况下以不同于编码序列的处理序列来 计算错误检测值。错误检测器具有的电路允许以字节为单位输入的数 据被以位为单位进行处理。图12和13是分别以位为单位示出了图2 和3所示的以字节位单位的数据格式的图。
本实施例讲述了作为记录序列的行方向上的字节序列和作为编码 序列的列方向上的字节序列。图12是示出了以位为单位的记录单元 块中的数据的排列顺序的图。图13为两个代码串的放大图。图12和 13中的数值表示每一个位的编码位序列。如果列方向上的位与图12 和13所示的编码位序列q有关,则编码位序列q中的从MSB到LSB 的位以行方向进行重新排列的序列为在盘片上实际记录数据的序列 (记录位序列p)。
一个代码串D(x)由16416位(2052字节)组成。在每一个代 码串D(x)中,与记录方向垂直的列方向上的字节数据与编码字节 序列Q有关。编码序列中的字节数据的位与16415→16414→…→ 14689→14688→14687→…→1→0的编码位序列q有关。32个代 码串D(x)构成65664字节的记录单元块F(x)。从盘片读取的数 据处于记录位序列p,并且上述的去扰处理和在该错误检测器中的错 误检测处理是以具有包含处于记录位序列p的8位的1字节的记录字 节序列P来执行的。当在列方向上重新排列数据以便编码位序列q是 连续的时,记录位序列p为在每一列上具有8位的行方向上的序列。 因此,记录位序列p=0→1→…→7→8→9→…→15→…与编码 位序列q=16415→16414→…16408→14687→14686→…→1 4680→…相对应(参见图4)。
本实施例的错误检测器以由图13所示的每一列中的8位数据组 成的字节为单位以记录字节序列P来接收记录单元块100。因此,以 每一行包含有由每一列具有8位的304列组成的304字节(2432位) 的记录字节序列P来输入以记录位序列p从盘片读取的位数据,该数 据是在行方向上排列的。在本实施例中,以记录字节序列P输入的数 据是由依次从第0个字节开始的DP,i来表示的,其中“i”满足0≤i≤7, 并且表示在记录位序列p中的1字节中所包含的8位的处理顺序。
此外,在记录块F(x)中,列数由N表示,位行数由m表示, 并且行数由M表示。例如,N=0并且M=0(编码位序列q=16415~16408) 的字节数据处于记录字节序列P=0,以第0个顺序被输入到错误检测 器,并且被表示成DP=0,i。类似地,N=18并且M=0的字节数据处于记 录字节序列P=18,并且处于编码位序列q=1726中的m=1位数据是作 为记录字节序列P=18中的字节数据的第2位输入的,并且被表示成 DP=18,1。这样,N=0并且M=215的数据处于记录字节序列P=65360, 处于编码位序列q=14688中的位数据是作为记录字节序列P=65360中 的字节数据的第8位输入的,并且被表示成DP=65360,7。
为了促进对本实施例的错误检测器的理解,现在首先来讲述原 理。在Blu-ray盘片中,错误检测值是通过将代码串D(x)(编码位 序列q=16415~0)输入到图11所示的移位寄存器200而获得的移位寄 存器值。例如,将代码串D(x)=D0输入到移位寄存器200,并且只 对如下所述的3位D0取“1”,而对于其他值都取“0”。这3位为: 记录位序列p=0中的第16415个顺序数据,即以第0个顺序(q=16415) 输入的数据;记录位序列p=1728中的第14687个顺序数据,即以第1728 个顺序(q=14687)输入的数据;以及记录位序列p=3456中的第12959 个顺序数据,即以第3456个顺序(q=12959)输入的数据。满足B16415= B14687=B12959=1。
在这种情况下,通过将移位寄存器200初始化为“00000001h”、 分别获得该值经过16415次、14687次和12959次移位之后的值,并 且对这些值执行XOR运算,来计算将代码串D0输入到32位移位寄 存器200的结果。将代码串D0输入到32位移位寄存器200的结果E0 是通过以下表达式来计算的:
表达式7:
E0=B16415X16415mod G(x)+B14687X14687mod G(x)+B12959X12959mod G(x)=(X16415+X14687+X12959)mod G(x)
给出这一概念,通过将所有代码串D0输入到移位寄存器200获 得的结果E0,即32位移位寄存器值可以通过形成代码串的位数据为 “1”的移位寄存器值执行XOR运算来计算。确切地说,在代码串D0 的情况下,由于只有以第0个顺序输入的第16415个顺序、以第1728 个顺序输入的第14687个顺序和以第3456个顺序输入的第12959个 顺序的数据的3个位表示“1”,而其他数据都表示“0”,因此以系 数B16415,B14687和B12959执行XOR运算可以计算移位寄存器值E0。
因此,计算X16415mod G(x)、X14687mod G(x)和X12959mod G (x)可以获得作为代码串D(x)中的32位移位寄存器值的错误检 测值E(x)。
记录单元块的每一个代码串D(x)由16416位数据组成。例如, 如果保持每一个位的上述Xq mod G(x),以参考在输入输入位数据 “1”时与编码位序列q相对应的Xq mod G(x),则可以通过执行XOR 运算来计算代码串D(x)的32位移位寄存器值。计算32位移位寄 存器值的最简单的方法是存储与代码串D(x)的每一个位相对应的 16416个Xq mod G(x)并且以输入数据的编码位序列对所有的Xq mod G(x)执行XOR运算。这里将Xq mod G(x)称为替代值。
一个代码串D(x)是由(q+1)=k(1≤k)位组成的。每一个位 具有与其编码位序列q相对应的替代值Xq mod G(x)。替代值Xq mod G(x)表示除了第q个顺序位之外k位代码串D’(x)的所有位都为 0的代码串(下面作为替代代码串d(x))除以G(x)之后的余数, 其中G(x)是替代代码串d(x)的错误检测值。当初始代码串的相 应位对于根据初始代码串计算的错误校正码发生了错误时,也就是说 当初始代码串D(x)只有一位数据发生错误时,替代代码串为校正 子。
k位代码串D(x)与k个替代代码串d(x)相对应。替代代码 串d(x)除以G(x)之后的余数为替代值Xq mod G(x)。错误检 测值E(x)可以通过对与输入代码串D(x)中具有代码“1”的位相 对应的所有替代值Xq mod G(x)执行XOR运算来计算。虽然本实施 例预先计算替代值Xq mod G(x)并且将这些值存储在表格中,但是 当需要时计算该值也是可行的。
图14是讲述通过使用该概念来计算错误检测值的方法。假设k 位代码串D(x)的位都是“1”的代码串{111…1}为基本代码串D’(x)。 通过将代码串D’(x)输入到图11所示的移位寄存器200而获得的32 位移位寄存器值表示代码串D’(x)的错误检测值E’(x)。下面的 描述讲述k=q+1=16416位的代码串D’(x)。
如上所述,基本代码串D’(x)与k个替代代码串d(x)相对应。 如果k位代码串与编码位序列q=16415~0有关,则一个代码串与编码 位序列的某个顺序中的位数据为“1”而所有其他的位数据为“0”的 k个替代代码串d(x)相对应。在每一个替代代码串d(x)中,每一 个编码位序列的不同位置上的一位表示“1”。确切地说,替代代码 串d(x)包括只有最高有效位(q=16415)为“1”的替代代码串d(x) 16415={100…0},只有第16414顺序的位为“1”的替代代码串d(x) 16414={010…0},其中只有第16413顺序的位为“1”的替代代码串d(x) 16413={001…0},以及只有第0个顺序的位为“1”的替代代码串d(x) 0={000…1}。通过将替代代码串d(x)q输入到移位寄存器200而获 得的32位移位寄存器值为替代值Xq mod G(x)=Rq。替代值Xq mod G (x)=Rq与编码位序列q相对应。
然后,当由位数与代码串相同并且与代码串的位序列相同的位序 列有关的位数据组成时,与位序列相对应的替代代码串就是只有位序 列中的字节数据表示“1”而所有其他的位数据都表示“0”的那一个。 代码串中的每一个位数据的替代值为将位数据的编码位序列中的替代 代码串输入到移位寄存器200中的结果(运算值)。因此,通过将代 码串D’(x)输入到移位寄存器200而获得的32位移位寄存器值(错 误检测值E’(x))为对所有32位移位寄存器值(替代值Rq)执行XOR 运算的结果,其中32位移位寄存器值是通过将每一个替代代码串d(x) q输入到移位寄存器200而获得的。
如上所述,通过将个数与代码串D(x)的位数相同的替代值Xq mod G(x)=Rq存储在表格中,并且对具有输入代码串D(x)的代码“1” 为1的位的替代值Rq执行XOR运算,可以获得代码串D(x)的错误 检测值E(x),在本实施例中所述替代值是k=16416的替代值Rq。 由于本方法消除了将代码串D(x)输入到移位寄存器200的需要, 因此即使当代码串D(x)的输入序列与编码位序列不同时也可以计 算错误检测值E(x)。
数据以记录单元块为单位进行处理。由于记录单元块F(x)包 含32个代码串D(x)并且对每一个代码串D(x)都计算错误检测值 E(x),因此从一个记录单元块F(x)获得32个错误检测值E(x)。
现在,下面来讲述采用个数小于总位数k的与每一个位数据相对 应的替代值来计算错误检测值E(x)的方法。通过使用记录单元块中 的位数据的排列序列和字节数据的排列的规则性,本实施例形成了带 有个数小于上述的k=16416的19个替代值的错误检测器。
在将记录单元块F(x)设定成旋转前的状态之后,从旋转器12 (见图1)以图13所示的记录字节顺序P以字节为单位提供记录单元 块F(x)。以字节为单位的字节数据DP,i中所包含的8位位数据为编 码位序列q连续展开的列方向上的位。因此,在位行数m=j的行上的 每一个位的替代值Rq为通过将位行数m=j-1的前一行上的每一个位的 替代值Rq-1输入到图11所示的移位寄存器200并且对该值进行一次移 位而获得的移位寄存器值。因此,在不存储与输入字节数据中所包含 的位数据的所有8位相对应的替代值Rq的情况下,可以很容易地根据 与一个位数据相对应的替代值来计算每一个位数据的替代值Rq。
这可以通过对每一个字节数据只准备与一个位数据相对应的替代 值来作为该字节数据的特定替代值,之后将其称为特定替代值,来很 容易地将每一个位数据转换成与该位数据相对应的替代值。在这种情 况下,保持的替代值的个数为k/8=K,因此将替代值减小为1/8,即为 2052。
此外,参考图2~6、12和13所述,本实施例的光盘具有每一个 都是由32个代码串组成的记录单元块,在代码串中,每一列包含有 处于编码字节序列Q中的216个字节数据或处于编码位序列q中的 1728个位数据的304列都排列在列方向上。因此,如图3所示,每一 个列方向上的编码字节序列Q都是连续的。此外,如图13所示,每 一个列方向上的字节数据与从第0行逐一增加到第215行的编码位序 列q都是连续的。
一个代码串D(x)是由9列半组成的,并且记录单元块F(x) 包括一套偶数和奇数代码串。因此,19套代码串是一个接一个排列的。 如图2和3所示,每一个记录字节序列P包含19个不同的编码字节 序列Q,并且包括有偶数和奇数代码串的下一套代码串在每一个19 个记录字节顺序P中也具有相同的编码字节序列Q。如上所述,在本 实施例的光盘中,一个记录单元块具有规则地重复排列的19个编码 字节序列Q。
因此,本实施例保持被设定为特别的特定替代值U0~U18的一个 编码序列的特定行中的19个特定替代值,根据特定替代值U0~U18计 算另一行中的特定替代值RQ,然后根据每一个特定替代值RQ计算特 定值Rq,以便待保持的替代值的个数与特别的特定替代值U0~U18的 个数相同,仅为19。
因此,与一个代码串D(x)中包含的位数相对应的替代值Rq的 个数k为16416,通过利用记录单元块中包含的数据排列的规则性, 本实施例可以将作为替代值被保持的数据量的个数显著减小到19,即 1/864。
下面来详细讲述根据本发明的重放单元的错误检测器。图15为 框图,示出了错误检测器的具体结构。以记录字节顺序P将作为以字 节为单位的字节数据的读记录单元块F(x)输入到对其进行去扰的去 扰器。然后以记录字节序列P将去扰的字节数据输入到错误检测器 201。错误检测器201通过计算添加有EDC的代码串的错误检测值来 检测错误。进行错误检测的检测目标代码串包含2052字节,与每一 个字节数据都有关。错误检测值是当通过预定运算方法以编码字节序 列Q来处理检测目标代码串时而获得。
错误检测器201包括:计数器202,用于对字节数据的行数和列 数进行计数;以及替代值输出部件,用于输出与输入的字节数据相对 应的特定替代值。替代值输出部件包括数据开关203、替代值表204、 除法部件205、更新特定替代值表206、特别的特定替代值表207和 校正的替代值输出部件208。
数据开关203的输出是根据计数器202的计数值来控制的。替代 值表204保持与当前输入数据的行相对应的19个特定替代值。除法 部件205对当前替代值进行除法,并且计算与下一行相对应的19个 更新的替代值。更新特定替代值表206保持除法的结果。特别的特定 替代值表207保持19个特别的特定替代值。校正的替代值输出部件208 从替代值表204接收每一列的经过更新的替代值(下面称为校正替代 值)。每一个部件处理以8位组成的字节为单位的数据。
准备替代值、特定替代值、特别的替代值和校正的替代值的每个, 以便它们成为与每一个输入字节数据的位数据有关的编码位序列相对 应的替代值。错误检测器201根据每一个位数据和与每一个位数据有 关并且与不同于输入序列(记录字节序列P/记录位序列p)的编码序 列q相对应的替代值来计算错误检测值。下面,与记录字节序列P中 的字节数据DP,i相对应的替代值(特定替代值)用RPi来表示。确切 地说,字节数据DP,i的每一个位数据与编码位序列q有关,并且与编 码位序列q相对应的替代值Rq为特定替代值RP,i。
此外,错误检测器201包括错误检测值计算部件,用于根据替代 值输出部件的输出结果来计算检测目标代码串的错误检测值。错误检 测值计算部件通过以不同于编码序列的记录序列P来对检测目标代码 串的每一个字节数据和与编码字节序列Q相对应的特定替代值进行处 理来计算错误检测值。
错误检测值计算部件包括位处理运算部件210和字节处理运算部 件220。位处理运算部件210根据校正的替代值输出部件208的输出 和输入的字节数据来计算以位为单位的每字节的字节错误检测值。字 节处理运算部件220从位处理运算部件210接收结果,并且输出用于 一个代码串D(x)的错误检测值E(x)。字节处理运算部件220包 括逻辑电路(XOR)221、字节错误检测值保持部件222,以及重新设 置部件223,并且接收从位处理运算部件210输出的每一个字节的字 节错误检测值EP。逻辑电路(XOR)221对当前输入的字节数据的错 误检测值EP和之前输入的字节数据的错误检测值EP的XOR运算结果 进行XOR运算。字节错误检测值保持部件222保持XOR 221的输出, 并且将在第2051次中所保持的值作为代码串D(x)的错误检测值E(x) 输出。每次有新的记录单元块F(x)输入时,重新设置部件223重新设 置错误检测值保持部件222的数据。尽管图中只示出了一个字节处理 运算部件220,但是提供了与包含在记录单元块F(x)中的代码串D(x) 的个数具有相同数目的字节错误检测值保持部件222,并且位处理运 算部件210将对应于每一代码串D(x)的字节数据的字节错误检测值提 供给每一字节错误检测值保持部件222。除字节错误检测值保持部件 222之外的部件可以共用。
计数器202接收以字节为单位的去扰的记录单元块F(x),并且对 其进行计数,以更新列号N的计数值N和行号M的计数值M。计数 器202还将字节数据DP,i提供给位处理运算部件210。如上所述,在 输入的字节数据DP,i中,“P”表示记录字节序列,其中在一个记录单 元块F(x)的代码串D(x)中,记录字节序列P=0~16415,并且“i”表示 包含在一个字节数据中的第0~7位数,它是由具有连续编码位序列的 8位数据构成的。
代码串D(x)以字节为单位,它接收如图3中所示的记录字节序列 P中的字节数据,顺序为:DP=0,i→DP=1,i→DP=2,i→…→DP=65662,i→ DP=65663,i。每次输入数据DP,i时,计数器202增加列计数号N。当计数 器202将列计数值N数到303时,把计数值N重新设置为0。当将列 计数值N重新设置为0时,其增加字节行计数值M。此外,计数器202 输出控制信号,以便根据列计数值N和字节行计数值M来控制数据 开关203的切换。生成和输出每一个控制信号,以便根据计数值N和 M来控制特定替代值表204、位处理运算部件210和字节处理运算部 件220的输出是可行的。
例如,可以在更新列计数值N的时刻,也就是输入字节数据的数 据输入时刻,将控制信号提供给特定替代值表204,以便选择和输出 存储在特定替代值表204中的19个特别指定的替代值RM=0(=U0~U18) 之一。还可以在数据输入时刻将控制信号输出到位处理运算部件210, 从而重新设置错误检测中间值,这将在后面描述。另外,还可以在一 个记录单元块F(x)的所有代码串D(x)的输入都结束时,将控制信号输 出到字节处理运算部件220,以便将重新设置部件223的输出重新设 置为0。
数据开关203从特定替代值表204接收对应于列计数值M的、 包括有当前输入的字节数据的特定替代值(U0~U18),对应于存储在 更新特定替代值表206中的下一行的更新替代值R’M,以及存储在特 别的特定替代值表207中的特别的特定替代值RM=0。除法部件205接 收来自替代值表204的替代值,并且执行下面要讲到的预定的运算, 以计算出作为与当前行相邻的行中的替代值的更新替代值R’M。更新 替代值R’M存储在更新特定替代值表206中。
数据开关203在字节行计数值M从215变为0时选择特别的特 定替代值RM=0并且将该值输出到替代值表204。在与字节行计数值M 从215变为0的时刻不同的另一个时刻,数据开关203从更新特定替 代值表206中选择对应于下一行的更新替代值R’M,并且每次字节行 计数值M增加和有更新信号输入时,将选择的值输出到替代值表204。 在列计数值N增加或有数据输入时,替代值表204从对应于第0行的 替代值中依次选择当前存储的19个特别的特定替代值RM,并且将选 择的值作为校正的替代值RP输出到校正的替代值输出部件208。
更新特定替代值表206保持更新替代值R’M并且在每次行计数值 M被更新时,将该值输出,其中更新替代值R’M是通过除法部件205 从当前替代值生成的对应于下一行中的输入字节数据的特定替代值。 该实施例的特别的特定替代值表207存储对应于记录字节序列P=0~19 的第7位数据(数据DP=1,7至DP=19,7)的替代值U0~U18,作为16416 位的代码串D(x)中的特别的特定替代值RM=0。
尽管该实施例讲述了特别的特定替代值是与以第0至第18个顺 序输入的每个字节数据的第7位相对应的替代值RM=0=R0,7~R18,7的情 况,但是特别的特定替代值并不限于此。其可以是对应于任何代码串 集的任何一行的特别的特定替代值RP。特定替代值RP可以是对应于 字节数据中的8个位数据的任何一个的替代值。
该实施例通过执行更新运算产生了更新替代值R’M,使得19个 特别的特定替代值RM=0是每一行的特定替代值RM,从而将预先存储 的替代值的个数减少到只有19个特别的特定替代值RM=0。
除法部件205是执行移位运算的移位寄存器,它与移位寄存器200 相反。图16示出了除法部件205。接收到19个特定替代值RP,7后, 除法部件205将该值移位8次,并且输出紧接着的下一行的替代值。 例如,在第0行中的特别的特定替代值RM=0通过8次移位运算变成第 1行中的特别的特定替代值RP=304,i=7至RP=322,i=7。
位处理运算部件210包括并/串转换器(下文中称之为P/S转换器) 211、开关212、错误检测中间值保持部件213、逻辑电路(XOR)214、 除法部件215、开关216和位错误检测值保持部件217。P/S转换器211 接收作为输入数据DP,i并行提供的8位数据,并且将该数据作为串行 位数据输出。开关212根据P/S转换器211的输出来选择校正的替代 值输出部件208的输出。XOR 214执行开关212的输出和错误检测中 间值保持部件213的XOR运算。除法部件215对XOR 214的输出进 行除法。开关216选择除法部件215和0的输出之一,并且将选择的 值输出。每当从XOR 214输出的位错误检测值被更新8次时,位错误 检测值保持部件217输出字节错误检测值。
下面来进一步详细地讲述位处理运算部件210。P/S转换器211 将8位字节数据DP,i转换为串行数据,并且一位一位地依次将其输出。 如果被串行地转换的输入位数据DP,i是“0”,则开关212输出“0”, 并且如果是“1”,则选择校正的替代值输出部件208的输出(校正 的替代值)。除法部件215是如图11所示的移位寄存器200,并且对 XOR 214的输出结果进行除法。开关216一直选择除法部件215的输 出,直到1字节的运算结束为止,然后每当1字节的运算结束时,也 就是说当运算被执行了8次以后,选择和输出0。错误检测中间值保 持部件213将除法部件215的除法结果作为错误检测中间值CP,i存储 起来。XOR 214计算出存储在错误检测中间值保持部件213中的错误 检测中间值CP,i和数据DP,i或0的校正的替代值的XOR,并且将结果 作为位错误检测值EP,i输出到位错误检测值保持部件217。
例如,如果将输入的字节数据DP,i提供给P/S转换器211,则P/S 转换器211依次输出串行数据DP,0、数据DP,1至DP,7。一个输入字节 数据的编码位序列q是例如q+7至q。在这种情况下,由对应于bq+7 至bq+0的位数据组成的字节数据被作为DP,i输入。然后,P/S转换器211 按照MSB的顺序bq+7→bq+6→bq+5→bq+4→bq+3→bq+2→bq+1→bq+0输出每 一位的位数据。校正的替代值输出部件208存储Xq mod G(x)作为校 正的替代值DP,i=7=Rq。
当从P/S转换器211输出第1位bq+7时,位错误检测值保持部件 217存储:
EP,0=bq+7Xq+1mod G(x)+CP,0。
错误检测中间值CP,0=0。
该值被除法部件215进行除法,以生成下述错误检测中间值:
CP,1=(bq+7Xq+1mod G(x))mod G(x)=bq+7Xq+1mod G(x)。
该值被存储在错误检测中间值保持部件213中。
然后,当从P/S转换器211输出第2位bq+6时,位错误检测值保 持部件217存储:
EP,1=bq+6Xq mod G(x)+bq+7Xq+1mod G(x)=(bq+6Xq+bq+7Xq+1)mod G(x)。
类似地,该值被除法部件215进行除法,以生成下述错误检测中 间值:
CP,2=((bq+6Xq+1+bq+7Xq+2)mod G(x))mod G(x)=(bq+6Xq+1+bq+7Xq+2) mod G(x)。
该值被存储在错误检测中间值保持部件213中。
这样,当第8位bq+0最终被输入之后,位错误检测值是:
EP,7=(bq+7X7+bq+6Xq+6+bq+5Xq+5+bq+4Xq+4+bq+3Xq+3+bq+2Xq+2+ bq+1Xq+1+bq+0Xq+0)mod G(x)。
该值是作为1字节数据的错误检测值的字节错误检测值EP。
字节错误检测值EP一个字节一个字节地被提供给字节处理运算 部件220。字节错误检测值EP被输入到字节处理运算部件220的XOR 221,并且在计算了2052字节的XOR之后,作为错误检测值E(x)被 输出。字节错误检测值保持部件222是由例如32个保持部件组成的, 并且根据列计数值N,以每10或9字节来存储XOR 221的结果,从 而保持对应于每一个代码串D(x)的值。然后,在一个记录单元块F(x) 的字节错误检测值EP的输入期间,每个保持部件的值被依次更新为来 自XOR 221的值。重新设置部件223根据来自计数器202的控制信号, 从字节错误检测值保持部件222的输出和0中选择一个。在输入一个 记录单元块F(x)之后和输入下一个记录单元块F(x)的每一个代码串D(x) 的第一个字节错误检测值EP之前的时刻,也就是当行计数值M=0, N=0,10,19,29,…的时刻,该实施例输出值“0”,并且在其他时 刻按原样输出字节错误检测值保持部件222的输出。可以在将保持在 字节错误检测值保持部件222的每一个保持部件中的值作为错误检测 值E(x)进行输出后,将其重新设置为0。
6.错误检测方法
下面来讲述具有上述结构的错误检测器的运算。图17为流程图, 示出了该实施例的错误检测器201的运算。为了简化讲述,下面来讲 述当输入代码串D0的16416位(Dq=0至Dq=16416= {100000000……·000000001})时的计算错误检测值的方法。符号“q” 表示编码位序列,并且代码串D0实际上是以记录字节序列P输入的。 也就是说,尽管代码串D0是以记录位序列p来处理的,但每一位数 据与不同于作为输入序列的记录位序列p的编码位序列q相关。当将 代码串D0重新排列成编码位序列q时,代码串D0是只有最高有效位 和最低有效位是“1”而其他位是“0”的代码串。计算的错误检测值 是通过将代码串D0重新排列为位序列q={100000000……·000000001} 并且将其输入到如图11所示的移位寄存器200中而获得的移位寄存 器的值。特别是,由32个代码串组成的记录单元块F(x)如前所述以 字节为单位以记录字节序列P依次输入。
首先,当输入记录单元块F(x)的记录字节序列P=0的字节时,特 别的特定替代值表207的特别的特定替代值U0~U19被加载,并通过数 据开关203存储到特定替代值表204中(步骤SP21)。如果该数据不 是记录单元块F(x)的记录字节序列P=0的数据,并且行计数值M被 更新,则存储在更新替代值表206中的更新特定替代值被加载。特定 替代值表204依次输出19个特定替代值,直到一行字节数据的输入 结束为止,也就是说,如果是例如第0行,则直到字节数据DP=0,i至 DP=304,i的输入结束为止。在这种情况下,将列号(列计数值)N除以 19之后的余数0~18是指针(N mod 19)并且特定替代值表204输出 与由指向校正的替代值输出部件208的指针所指示的行相对应的特别 的特定替代值(步骤SP22)。作为对应于记录字节顺序P=0的字节 数据的第7位中的位数据DP=0,7的替代值RP=0,7的第0个字节数据的特 定替代值等于数据的mod G(x),其中只有X的第16408阶数据(X16408) 是“1”(替代代码串={000000001……00000000}(16416字节)), 它是通过图7的移位寄存器30来对替代码进行除法所获得的32位移 位寄存器的值(18461F40h)。
然后,第0个字节数据DP=0,i={10000000(80h)}被输入到计数 器202(步骤SP23)。字节数据DP=0,i是编码位序列为q=16415~16408 的数据。错误检测中间值CP,i=C0,0被设置为0。P/S转换器211将第0 个输入数据DP=0,i转换成8位串行数据并且将转换的数据一位一位地 依次提供给开关212(步骤SP24)。XOR 214对错误检测中间值CP,i=C0,0 和开关212的输出BP,i执行XOR运算,并且更新位错误检测值保持部 件217的位错误检测值EP,0(步骤SP25)。由于在该例子中第0个位 数据DP=0,0=1,因此开关212输出校正的替代值(Xq mod G(x)=RP,7, 其中G(x)=X32+X31+X4+1)。在该例子中,位错误检测值保持部件 217存储作为对18461F40h的校正的替代值RP=0,7和错误检测中间值 CP,i=C0,0=0进行XOR运算的结果的值EP=0,0。
由于并不是所有8位都结束了(步骤SP26中的“否”),因此 通过除法部件215将XOR 214的输出EP=0,0进行除法成为错误检测中 间值(CP=0,1=EP=0,0 mod G(x)=RP=0,6)并且存储在错误检测中间值保持 部件213中。
在该例子中,当输入第0个位数据之后,计算出了 RP=0,7=EP=0,0=18461F40h的mod G(x)。结果,CP=0,1=308C3E80h ={000000010……00000000}被存储在错误检测中间值保持部件213 中。这是通过移位替代码串所获得的数据,其中通过移位寄存器30 向左移动一次时只有X16408为“1”。该值等于替代码串的mod G(x), 其中只有X16409为“1”(替代码串={000000010……00000000}(16416 字节)),它是通过除替代码串而获得的32位移位寄存器值 (308C3E80h)(=R0,6),其中在图7的移位寄存器30中只有X16409 为“1”。
首先,由于第0个字节的第1个位数据是DP=0,1=0,因此校正的 替代值RP,7没有被选择,并且错误检测中间值CP=0,1通过XOR 214被 加载到位错误检测值保持部件217(步骤SP27)。
也就是说,如果被输入到开关212的位数据DP,i是“1”,则开 关212的输出BP,i等于Rq,并且如果位数据DP,i是“0”,则开关212 的输出BP,i等于0。在第7位的输入中,除法部件215接收错误检测 中间值CP,i与开关212的输出Bq,i相加得到的值,并且错误检测中间 值保持部件213存储(CQ,i+BQ,i)mod G(x)。
在该例子中,由于其余的第1至第7个位数据是DP=0,1至DP=0,7=0, 因此通过除法部件215对错误检测中间值进行除法之后的值被依次加 载到位错误检测值保持部件217。也就是说,其中只有X16408为“1” 的替代码串的mod G(x)通过第0位的输入被加载到位错误检测值保持 部件217。该数据通过第1至第7位的输入被除法部件215重复进行 除法,成为X16408mod G(x)→X16409mod G(x)→…→X16415mod G(x)。结 果,当输入作为第0个字节的最后一位的第7个位数据DP=07时,位 错误检测值保持部件217存储X16415mod G(x)。
当完成了8次运算之后(步骤SP26中的“是”),错误检测中 间值CP,i被设置为0,并且存储在位错误检测值保持部件217中的位 错误检测值E0,7被提供给字节处理运算部件220的XOR 121(步骤 SP27)。在该实施例中,输出了位错误检测值E0,7=230F9088h。然后, 使用字节错误检测值的初始值(=0)进行XOR运算之后的值存储在 字节错误检测值保持部件222中(步骤SP28)。这样,字节错误检测 值保持部件222存储值E(x)P-1,它是对过去的位错误检测值EP,7(每8 位的运算值)进行合并之后的值。对于每一个代码串D(x),依次将值 E(x)P-1和通过位处理运算部件210计算得到的位错误检测值EP进行 XOR运算,从而更新字节错误检测值E(x)P。
在完成1字节错误检测值的运算之后,计数器202增加列计数值 N(步骤SP29)。如果列计数值N从303变为0(步骤SP30中的“是”), 则该处理更新字节行计数器M(步骤SP31);另一方面,如果列计 数值N是不同的值,则该处理重复自步骤SP22的处理。此外,如果 字节行计数值M被更新,则该处理将存储在更新特定替代值表206中 的更新特定替代值加载到替代值表204中(步骤SP21)并且从步骤SP22 重复。如果字节行计数值M从215变为0(步骤SP32中的“是”), 也就是说,当对一个记录单元块F(x)、32个代码串D(x)的错误检测值 E(x)的计算结束时,该处理输出每一个错误检测值E(x)(步骤SP33)。 然后,当执行对下一个记录单元块的错误检测值的计算时(步骤SP34 中的“是”),处理从步骤SP21重复进行。在这种情况下,替代值 表204加载特别的特定替代值表207的特别的特定替代值(步骤 SP21),并且重复从步骤SP22的处理。
在该例子中,由于在编码位序列q中不同于MSB和LSB的数据 都是“0”,因此从第0个字节至记录字节序列P=32536,存储在字节 错误检测值保持部件222中的值保持为EP=0,7=230F9088h。在代码串D0 中,如果输入了记录字节序列P=32537的字节数据 DP=32537,i=000000001b,则对应于该值的校正的替代值RP=Xq mod G(x)=F81FF949h被从更新特定替代值表206加载。这是字节数据 DP=32537,i=Dq=7至Dq=0,在代码串D0中它是编码字节序列Q=2051的最 后一个字节。校正的替代值RP=Xq mod G(x)=F81FF949h等于通过在 移位寄存器30中对只有X0为“1”(={00000000……00000001})的 替代码串进行除法而得到的值。
如果位处理运算部件210接收字节数据(DP,i),则它将数据转 换成串行数据(步骤SP3,4)。错误检测中间值CP,i被重新设置为0。 由于从第0位至第6位数据DP,0~DP,6=0,所以位错误检测值为0(步 骤SP5至步骤SP10)。由于最后的位数据DP,7=1,因此校正的替代值 Xq mod G(x)=F81FF949h被加载到位错误检测值保持部件217中,然 后作为字节错误检测值EP=32537/Q=2051被输出,并且与合并的过去字节 错误检测值进行XOR。由于代码串D0中的所有其它位都是“0”, 因此输出了E(x)=E0+EQ=2051,其中“+”表示XOR,它是X16415的mod G(x)与X0=(X16415+X0)的mod G(x)的和,其中“+”表示XOR。该值 是在移位寄存器30中对D(x)进行除法之后的余数,其等于错误检 测值E(x)。
如前所述,该实施例可以在不需要将数据以编码序列输入到移位 寄存器中的情况下计算出错误校正值。因此,它能够计算出错误检测 值,而与对记录于盘片上的数据进行读取的顺序无关。现有方法记录 添加有通过以编码序列将数据输入到移位寄存器中而获得的错误检测 码的数据,读取并且将数据输入到与移位寄存器相同的运算部件,以 计算错误检测值。因此,如果记录序列(读取序列)不同于编码序列, 则有必要对以记录块为单位一次性读取的数据重新排列成编码序列, 并且将数据输入到移位寄存器,以产生错误码并且计算错误检测值。 但是,为了改变每一个数据的排列序列,这一方法需要将记录单元块 存储到缓存器中,当处理重放数据时这会引起缓存器较高的占用率。 另一方面,本实施例在没有以编码序列将数据输入到移位寄存器的情 况下,可以通过访问表来以读取序列计算错误检测值。这消除了当计 算错误检测值时对存储记录单元块的缓存器的需要。
此外,本实施例基于数据排列的规则性只保持了重复使用的替代 值,并且通过对其更新来使用存储在表中的替代值。这节约了替代值 的个数,从而减小了表的尺寸。
7.记录单元
虽然上述实施例将本发明应用到重放单元中的错误检测器,但是 当如上所述在记录单元中添加了错误检测码时,可以使用相同的结 构,它在不使用移位寄存器200的情况下也可以执行相同的运算。另 外在这种情况下,能够以记录字节序列而不是编码序列来计算用户数 据的错误检测码,从而消除了将记录单元块一次性加载到缓存器中并 且将数据重新排列成编码字节序列的需要。
图18为框图,示出了记录单元。在记录单元中,EDC附加电路 318根据从主机提供的用户数据生成错误检测码。然后,加扰器319 对由添加有EDC的用户数据组成的代码串进行加扰。
然后将加扰的数据提供给错误校正器编码器320,其中主数据为 编码的错误检测并被存储在主存储器315中。此外,来自输入/输出部 件321的辅助数据(BIS)为编码的错误检测。加扰器319加扰的数 据通过耦合部件314与存储在主存储器315中的错误校正码耦合在一 起,并且被提供到对其进行旋转的旋转器312。然后,通过BIS存储 器316将辅助数据提供给交错器313,以便对其进行交错。耦合部件 311对旋转的主数据和交错的辅助数据进行耦合,并且将耦合的数据 作为ECC簇输出。对ECC簇进行调制并且将其写到盘片上。
本实施例的EDC附加电路318通过输入部件322以记录字节序 列Q接收从主机326提供的用户数据。EDC附加电路318将通过把用 户数据以编码字节顺序Q输入到移位寄存器200中而生成的错误检测 码EDC(x)添加到用户数据,从而产生了代码串D(x)。
EDC附加电路318可以具有与上述错误检测器相同的结构。也就 是说,它至少包括:表,用于保持特别的特定替代值;以及移位寄存 器,用于根据特别的特定替代值生成特定替代值并且将特定替代值提 供给用于以字节为单位计算错误检测码的位处理运算部件。此外,EDC 附加电路318具有字节处理运算部件,用于计算这些值的XOR并且 输出错误校正码。替代值也可以用与上述相同的方式来准备。确切地 说,替代值与用户数据的每一个位数据的每一个编码位序列q相对应, 并且可以通过将替代代码串输入到图11所示的移位寄存器来获得。 如果代码串为由2048字节用户数据和4字节0数据组成的2052字节 的数据,则可以通过与上述完全相同的处理来获得添加有错误检测码 的数据。确切地说,与上述情况一样,代码串可以为2052字节和16416 位,并且编码位序列q可以与代码串的每一个位数据有关。替代代码 串可以为如下代码串,即只有与编码位序列q相对应的预定位数据表 示“1”并且所有其他的位数据都表示“0”。
然后以记录字节序列P将从EDC附加电路318输出的代码串输 入到加扰器319中。加扰器319根据与编码字节序列Q相对应的加扰 值SQ对数据进行加扰。与编码字节序列Q有关的加扰数据SDQ是根 据添加有EDC(x)的代码串生成的。
与上述的去扰数据相类似,加扰数据SDQ是根据输入的字节数据 DQ和与输入的字节数据DQ的编码字节序列Q相对应的加扰值SQ来 计算的。加扰器319还包括加扰值生成部件,用于对以记录字节序列 P输入的字节数据生成与编码字节序列Q相对应的加扰值SQ。与上述 去扰器一样,加扰数据SDQ是根据生成的加扰数据SQ和以记录字节 序列P输入的字节数据DQ来生成的。从而以记录字节序列P将加扰 数据从加扰器319提供给错误校正器编码器320。
如果设备为记录/重放单元,则在错误代码附加电路和错误检测 器、加扰器和去扰器中,诸如运算单元等组件是相同的。由于当执行 加扰/去扰处理和错误码附加/错误检测处理时数据记录处理和数据读 取处理都不需要数据的重新排列,因此可以消除使用存储器324的需 要。
本发明并不局限于上述实施例,而是在不偏离本发明的范围的情 况下可以进行各种改变。例如,每一个处理和逻辑结构之间的关系并 不限于上述例子。设计者可以设计具有有效功能和电路结构的每一个 电路和盘片设备。
很明显,本发明并不限于上述实施例,并且在不偏离本发明的范 围和精神的情况下,可以对其进行修正和改变。
QQ群二维码
意见反馈