加扰器、去扰器和方法,以及盘片设备的制作方法

文档序号:6773969阅读:237来源:国知局
专利名称:加扰器、去扰器和方法,以及盘片设备的制作方法
技术领域
本发明涉及用于对记录在盘片上的数据进行加扰的加扰器和加扰方法,用于对从盘片读取的数据进行去扰的去扰器和去扰方法,以及具有加扰器和/或去扰器的盘片设备。
背景技术
继诸如CD、CD-R/RW和CD-ROM等所谓的第一代光盘和诸如数字通用光盘(DVD)等第二代光盘之后,产生了作为具有405nm(蓝紫光)的更短光源波长的Blu-ray盘片的所谓第三代光盘(参见“Nextgeneration 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为自然数)字节错误检测码附加代码串;以及加扰部件,用于生成加扰数据,该加扰数据是根据错误检测码附加代码串的每一字节数据和与第一序列相对应的加扰值进行加扰的并且通过使用加扰值进行去扰。在该盘片设备中,错误检测码附加代码串是通过以预定运算方法以第一序列对处理目标代码串进行处理获得的。每一个与第一序列相对应的加扰值是通过对初始值执行与第一序列相对应的预定运算来获得的。错误检测码附加部件包括替代值输出部件,用于输出处理目标代码串的每一字节数据的与第一序列相对应的特定替代值;以及代码串生成部件,用于根据替代值输出部件的输出结果,通过以不同于处理目标代码串的每一字节数据的第一序列的第二序列对每一个字节数据和与每一字节数据相对应的特定替代值进行处理,来生成错误检测码附加代码串。加扰部件包括加扰值生成部件,用于生成以第二序列输入的错误检测码附加代码串的每一字节数据的与第一序列相对应的加扰值;以及代码串运算部件,用于根据输入的字节数据和输入的字节数据的与第一序列相对应的加扰值来计算加扰数据。
本发明通过使用输入的字节数据的与第一序列相对应的特定替代值,也能够以第二序列来计算错误检测码附加代码串。此外,本发明可以通过生成输入的字节数据的与第一序列相对应的加扰值,来计算加扰数据,作为对以第二序列输入的错误检测码附加代码串执行加扰操作的结果。
因此,本发明可以生成加扰数据,该加扰数据甚至在进行了以不同于现有编码序列的序列的处理之后也能够通过现有编码序列的处理来进行去扰,并且还能够以不同于现有编码序列的序列来对可以通过现有编码序列的处理进行去扰的加扰数据执行去扰操作。


下面结合附图进行讲述将使本发明的上述和其他目的、优点和特征更加清楚,其中图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,用于根据辅助数据生成校正子。信号处理器1进一步包括去扰器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,如以下表达式所示表达式1DSi=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的运算表达式如下表达式2DSi=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相同的结构的加扰更新SFR43接收扇区加扰初始值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 mod19)=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 mod19)=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次SFR42,之后以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和加扰更新SFR43,并且控制用于在图2和3的行方向上输入的记录字节序列P的输入数据的输出的选择,从而执行等价于在编码字节序列Q上通过移位寄存器30执行的运算的移位运算。这可以在没有将整个记录单元块加载到缓存器中并且将数据重新排列成编码字节序列Q的情况下,对以记录字节序列P输入的记录单元块进行顺序处理。
由于图3所示的记录单元块中的数据循环了216或108次,因此组合例如108次SFR 41是可行的。在这种情况下,需要216次移位运算的处理可以执行两次108次移位寄存器SFR中的运算。此外,由于移位寄存器需要的移位次数为108,因此使用能够执行如下次数的移位运算的SFR的组合可以计算以记录字节顺序P输入的数据的加扰值,其中所述次数是108的约数中的2的幂次方(exponential of 2 indivisors of 108)。
5.错误检测器下面来讲述根据本实施例的重放单元的错误检测器。在Blu-ray盘片中,将4字节(32位)错误检测码(EDC)添加到图2所示的每一个代码串D0~D31中的2048字节(16384位)数据I(x)上。32位错误检测码可以通过16384位代码串I(x)除以以下生成多项式来获得表达式4G(x)=X32+X31+X4+1添加到16384位代码串I(x)的错误检测码EDC(x)是由以下表达式来表示的表达式5EDC(x)=∑bt*Xt=I(x)mod G(x)(∑t=31~0)其中I(x)=∑bt*X1(∑t=16415~32)结果,添加有错误检测码EDC(x)的代码串D(x)是由以下表达式来表示的表达式6D(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→...→14680→...相对应(参见图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是通过以下表达式来计算的表达式7E0=B16415X16415mod G(x)+B14687X14687mod G(x)+B12959X12959modG(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位数据组成。例如,如果保持每一个位的上述Xqmod G(x),以参考在输入输入位数据“1”时与编码位序列q相对应的Xqmod G(x),则可以通过执行XOR运算来计算代码串D(x)的32位移位寄存器值。计算32位移位寄存器值的最简单的方法是存储与代码串D(x)的每一个位相对应的16416个Xqmod G(x)并且以输入数据的编码位序列对所有的XqmodG(x)执行XOR运算。这里将Xqmod G(x)称为替代值。
一个代码串D(x)是由(q+1)=k(1≤k)位组成的。每一个位具有与其编码位序列q相对应的替代值Xqmod G(x)。替代值XqmodG(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)之后的余数为替代值Xqmod G(x)。错误检测值E(x)可以通过对与输入代码串D(x)中具有代码“1”的位相对应的所有替代值Xqmod G(x)执行XOR运算来计算。虽然本实施例预先计算替代值Xqmod 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位移位寄存器值为替代值Xqmod G(x)=Rq。替代值Xqmod G(x)=Rq与编码位序列q相对应。
然后,当由位数与代码串相同并且与代码串的位序列相同的位序列有关的位数据组成时,与位序列相对应的替代代码串就是只有位序列中的字节数据表示“1”而所有其他的位数据都表示“0”的那一个。代码串中的每一个位数据的替代值为将位数据的编码位序列中的替代代码串输入到移位寄存器200中的结果(运算值)。因此,通过将代码串D’(x)输入到移位寄存器200而获得的32位移位寄存器值(错误检测值E’(x))为对所有32位移位寄存器值(替代值Rq)执行XOR运算的结果,其中32位移位寄存器值是通过将每一个替代代码串d(x)q输入到移位寄存器200而获得的。
如上所述,通过将个数与代码串D(x)的位数相同的替代值XqmodG(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相对应的替代值(特定替代值)用RP,i来表示。确切地说,字节数据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+6Xqmod G(x)+bq+7Xq+1mod G(x)=(bq+6Xq+bq+7Xq+1)modG(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的XOR221,并且在计算了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输出校正的替代值(Xqmod 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,0mod 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=0,7时,位错误检测值保持部件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=XqmodG(x)=F81FF949h被从更新特定替代值表206加载。这是字节数据DP=32537,i=Dq=7至Dq=0,在代码串D0中它是编码字节序列Q=2051的最后一个字节。校正的替代值RP=Xqmod 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,因此校正的替代值Xqmod G(x)=F81FF949h被加载到位错误检测值保持部件217中,然后作为字节错误检测值EP=32537/Q=2051被输出,并且与合并的过去字节错误检测值进行XOR。由于代码串D0中的所有其它位都是“0”,因此输出了E(x)=E0+EQ=2051,其中“+”表示XOR,它是X16415的modG(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的需要。
本发明并不局限于上述实施例,而是在不偏离本发明的范围的情况下可以进行各种改变。例如,每一个处理和逻辑结构之间的关系并不限于上述例子。设计者可以设计具有有效功能和电路结构的每一个电路和盘片设备。
很明显,本发明并不限于上述实施例,并且在不偏离本发明的范围和精神的情况下,可以对其进行修正和改变。
权利要求
1.一种去扰器,用于通过使用与第一序列相对应的加扰值对根据与第一序列有关的未加扰数据和加扰值生成的加扰数据进行去扰,来生成去扰数据,其中加扰数据与第一序列有关,并且与第一序列相对应的每个加扰值都是通过对初始值执行与第一序列相对应的预定运算来获得的,该去扰器包括加扰值生成部件,用于生成以不同于第一序列的第二序列输入的加扰数据的与第一序列相对应的加扰值;以及代码串运算部件,用于根据加扰数据和加扰数据的与第一序列相对应的加扰值来计算去扰数据。
2.如权利要求1所述的去扰器,其中第一序列表示相对于由多个加扰数据组成的加扰代码串的序列,并且第二序列表示相对于由多个加扰代码串组成的记录单元块的序列。
3.如权利要求2所述的去扰器,其中第二序列是通过根据预定转换规则对第一序列进行转换来获得的。
4.如权利要求2所述的去扰器,其中记录单元块包括由X行和Y列构成的矩阵,X和Y为自然数,其中第一序列与列方向有关,并且第二序列与行方向有关。
5.如权利要求4所述的去扰器,其中加扰值生成部件包括转换移位寄存器,用于在一个移位运算中执行与通过标准移位寄存器进行的预定次数的移位运算相同的运算,其在一个移位运算中输出对应于第一序列的加扰值。
6.如权利要求5所述的去扰器,其中记录单元块的X行和Y列是2的幂次方,并且预定次数为作为2的幂次方的X的约数之一。
7.如权利要求5所述的去扰器,其中加扰值生成部件包括更新移位寄存器,用于在一个移位运算中执行与标准移位寄存器相同的运算,以及控制部件,用于控制加扰数据的与第一序列相对应的加扰值的输出,其中转换移位寄存器在一个移位运算中执行与通过标准移位寄存器进行X次移位运算相同的运算,并且控制部件根据与输入的加扰数据有关的第二序列来控制更新移位寄存器和转换移位寄存器的移位运算的时序,并且选择输出运算结果。
8.如权利要求5所述的去扰器,其中记录单元块包括由两个加扰代码串组成并且具有偶数列的加扰代码串集,加扰值生成部件包括第一和第二转换移位寄存器;更新移位寄存器,用于在一个移位运算中执行与标准移位寄存器相同的运算,以及控制部件,用于控制加扰数据的与第一序列相对应的加扰值的输出,其中第一转换移位寄存器在一个移位运算中执行与通过标准移位寄存器进行X/2次移位运算相同的运算,其中X/2为整数,并且第二转换移位寄存器在一个移位运算中执行与通过标准移位寄存器进行X次移位运算相同的运算,并且控制部件根据与输入的加扰数据有关的第二序列来控制每一个移位寄存器的移位运算的时序,并且选择输出每一个移位寄存器的运算结果。
9.如权利要求8所述的去扰器,其中控制部件在输入紧接着一个加扰代码串的相同行中的下一个加扰代码串的加扰数据之时选择输出第一转换移位寄存器的运算结果,在输入相同行中的相同加扰代码串的加扰数据之时选择输出第二转换移位寄存器的运算结果,并且在输入紧接着一行的下一行的加扰数据之时选择输出更新移位寄存器的运算结果。
10.如权利要求8所述的去扰器,其中控制部件对记录单元块中的输入加扰数据的列数和行数进行计数,并且根据计数结果来选择输出运算值。
11.一种去扰方法,用于通过使用与第一序列相对应的加扰值对根据与第一序列有关的未加扰数据和加扰值生成的加扰数据进行去扰,来生成去扰数据,其中加扰数据与第一序列有关,与第一序列相对应的每个加扰值都是通过对初始值执行与第一序列相对应的预定运算来获得的,该去扰方法包括生成以不同于第一序列的第二序列输入的加扰数据的与第一序列相对应的加扰值;以及根据加扰数据和加扰数据的与第一序列相对应的加扰值来计算去扰数据。
12.一种加扰器,用于生成如下加扰数据,该加扰数据是根据与第一序列有关的未加扰数据和与第一序列相对应的加扰值进行加扰的并且通过使用加扰值进行去扰的,其中未加扰数据与第一序列有关,并且与第一序列相对应的每个加扰值是通过对初始值执行与第一序列相对应的预定运算来获得的,该加扰器包括加扰值生成部件,用于生成以不同于第一序列的第二序列输入的未加扰数据的与第一序列相对应的加扰值;以及代码串运算部件,用于根据未加扰数据和未加扰数据的与第一序列相对应的加扰值来计算加扰数据。
13.一种盘片设备,包括读取部件,用于以不同于第一序列的第二序列来读取记录数据,该记录数据是基于根据与第一序列有关的未加扰数据和与第一序列相对应的加扰值生成的加扰数据而生成的;以及去扰部件,用于根据加扰数据和加扰值来生成去扰数据,其中与第一序列相对应的每个加扰值是通过对初始值执行与第一序列相对应的预定运算来获得的,并且去扰部件包括加扰值生成部件,用于生成加扰数据的与第一序列相对应的加扰值,以及代码串运算部件,用于根据加扰数据和加扰数据的与第一序列相对应的加扰值来计算去扰数据。
14.一种盘片设备,包括加扰部件,用于生成加扰数据,该加扰数据是根据与第一序列有关的未加扰数据和与第一序列相对应的加扰值进行加扰的并且通过使用加扰值来去扰的;以及记录部件,用于对基于加扰数据生成的记录数据进行记录,其中与第一序列相对应的每个加扰值是通过对初始值执行与第一序列相对应的预定运算来获得的,并且加扰部件包括加扰值生成部件,用于生成以不同于第一序列的第二序列输入的未加扰数据的与第一序列相对应的加扰值,以及代码串运算部件,用于根据未加扰数据和未加扰数据的与第一序列相对应的加扰值来计算加扰数据。
15.一种盘片设备,包括错误检测码附加部件,用于根据包含有用户数据的K字节处理目标代码串,来生成K字节错误检测码附加代码串,其由附加有每一字节数据都与第一序列有关的错误检测码的用户数据组成,其中K为自然数;以及加扰部件,用于生成加扰数据,该加扰数据是根据错误检测码附加代码串的每一字节数据和与第一序列相对应的加扰值进行加扰的并且通过使用加扰值进行去扰的,其中错误检测码附加代码串是通过以预定运算方法以第一序列对处理目标代码串进行处理获得的,与第一序列相对应的每个加扰值是通过对初始值执行与第一序列相对应的预定运算来获得的,并且错误检测码附加部件包括替代值输出部件,用于输出处理目标代码串的每一字节数据的与第一序列相对应的特定替代值,以及代码串生成部件,用于根据替代值输出部件的输出结果,通过以不同于处理目标代码串的每一字节数据的第一序列的第二序列来对每一个字节数据和与每一字节数据相对应的特定替代值进行处理,来生成错误检测码附加代码串,并且加扰部件包括加扰值生成部件,用于生成以第二序列输入的错误检测码附加代码串的每一字节数据的与第一序列相对应的加扰值,以及代码串运算部件,用于根据输入的字节数据和输入的字节数据的与第一序列相对应的加扰值来计算加扰数据。
全文摘要
去扰器以处理序列P接收根据与编码序列Q有关的字节数据和与序列Q相对应的加扰值来生成的加扰数据。去扰器包括加扰值生成部件,用于生成输入数据的编码序列Q的加扰值,并且根据加扰值和输入的字节数据来计算去扰数据。编码序列Q与代码串的每一个字节数据有关。与编码序列Q相对应的加扰值是通过对与代码串的每一个编码序列Q相对应的字节数据执行预定操作来获得的。
文档编号G11B7/00GK1819046SQ20051012890
公开日2006年8月16日 申请日期2005年12月1日 优先权日2004年12月1日
发明者竹内浩毅 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1