首页> 中国专利> 用数据行和列译码错误标记来对数据译码的设备和方法

用数据行和列译码错误标记来对数据译码的设备和方法

摘要

一种在比ECC数据块小的单元中设置内插标记的译码设备和方法。PI1标记表明对于第一纠错结果产生的以一行接一行形式的错误,而PI2标记表明对于在ECC数据块中的第二纠错结果产生的一行接一行形式的错误。PO标记表示对于在ECC数据块中的纠错结果进一步产生的一列接一列形式的错误。在这些处理的操作后,这些PI1、PI2和PO标记被用于产生内插标。

著录项

  • 公开/公告号CN1175771A

    专利类型发明专利

  • 公开/公告日1998-03-11

    原文格式PDF

  • 申请/专利权人 索尼公司;

    申请/专利号CN97118563.8

  • 申请日1997-08-13

  • 分类号G11B20/18;

  • 代理机构柳沈知识产权律师事务所;

  • 代理人马莹

  • 地址 日本东京都

  • 入库时间 2023-12-17 13:04:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2005-10-12

    专利权的终止未缴年费专利权终止

    专利权的终止未缴年费专利权终止

  • 2003-11-05

    授权

    授权

  • 1999-09-22

    实质审查请求的生效

    实质审查请求的生效

  • 1998-03-11

    公开

    公开

说明书

本发明涉及译码设备和方法,尤其是指用于对在数据行和列的方向上进行译码的数据执行纠错处理,从而根据该纠错处理来产生表明数据行和列中的译码错误的错误标记的译码设备和方法。

在一光盘再现设备中通过一光束而被再现的信息可能具有由于例如盘上的刻痕而导致的读数错误。因此,在再现信息上应执行纠错处理。

图33示出了一种典型的光盘再现设备。光盘1存储诸如图像和声音之类的数据。光拾取器2利用一激光束读取在光盘1上存储的信息。从拾取器2输出的再现信号通过解调电路3而被解调并被提供给用于根据该再现信号来检测一扇区的扇区检测电路4。如果未检测到在光盘1上的一扇区的指定的扇区数,则由扇区检测电路4产生一扇区数错误信号以输出到光道跃变(track jump)鉴别电路18。

ECC(纠错码)电路5对从扇区检测电路4接收的再现信号执行检错和纠错。如果出现一不可恢复的错误,则ECC电路5向光道跃变鉴别电路18输出一不可恢复错误信号。否则,纠错数据从ECC电路5传送到环形缓冲存储器7并存储于此。

根据扇区检测电路4的输出,环形缓冲器控制电路6读取每个扇区的地址,并指定相应于在环形缓冲存储器7中读地址的写地址(通过一写指针WP)。如果接收到来自多路数据分离电路8的一码请求信号,则环形缓冲器控制电路6规定(通过一读指针RP)预先写入环形缓冲存储器7的数据的读地址,根据该读指针RP读取该数据,并将读取的数据送到多路数据分离电路8。

标题分离电路9分离来自该数据的压缩(pack)标题和信息包(packet)标题,并将分离出的压缩标题和信息包标题提供给分离器控制电路11。根据该信息包标题的一个流ID(流识别符),分离器控制电路11通过在转换电路10中的输出端H1和H2之间顺序切换输入端G而从音频码数据中分离出时分多路视频码数据。所分离的数据随后被送到相应的码缓冲器13或15。

根据保留在该缓冲器中的数据,视频码缓冲器13向多路数据分离电路8产生一码请求。另外,视频码缓冲器13存储自多路数据分离电路8提供的数据,并接收来自视频译码装置14的一码请求。为了再现视频信号,视频译码装置14对该视频数据译码,这样可从输出端91输出经译码的视频信号。

类似地,音频码缓冲器15向多路数据分离电路8提供一码请求,并存储自分离电路8提供的数据。另外,音频码缓冲器15接收来自音频译码装置16的一码请求。为了再现音频信号,该音频译码装置对该音频数据译码并从输出端92输出经译码的音频信号。

因此,通过来自后级相应电路的传送请求而从前级相应电路适应地提供视频和音频数据。例如,视频译码装置14请求视频码缓冲器13传送数据,多路数据分离电路8请求环形缓冲器控制电路6传送数据。所请求的数据以与已做出的该传送请求方向相反的方向从环形缓冲存储器7传送到视频译码装置14。

下面,将说明记录数据格式。在下面的例子中,数据以一组(32k字节)为单元记录。下面将详细介绍一典型的组构形。    

如图34所示,从一组中提取2k字节(2048字节)的数据,再加上由16字节构成的附加项,则构成总的2064字节。除其它之外,该附加项包括一扇区地址和一检错码(EDC)。    

该2064字节的扇区数据是按12×172字节排列的。如图35所示,16个扇区被累加以提供192×172字节的行×列结构。然后,将在垂直方向上16字节的外层奇偶校验(PO)加到每一列,将在水平方向上10字节的内层奇偶校验(PI)加到每一行。如图35所示,结果形成208(即,192+16)×182(即,172+10)字节数据的数据块。

16×182字节的外层奇偶校验部分被分成16行,每行为1×182字节。如图36所示,这16行随后间插在每扇区为12×182字节的16个扇区(0到15)中。以13(即,12+1)×182字节排列的数据构成一扇区。

如图37所示,208×182字节的数据(如图36中所示)被分成二帧,结果形成一91字节帧。在该帧的开始部分附加有2字节的帧同步信号(FS)。因此,如图37所示,在水平方向上一帧包括93字节,其结果是一组(即,一ECC数据块)是208×(93×2)字节的一数据块。通过消除附加项部分所得到的实际数据的宽度是32字节(即,2048×16/1024k字节)。在光盘1上以一组接一组的形式记录整个数据。

下面说明在图33的例子中用于产生一插入标记以在数据纠错之后插入错误数据的操作。

图38的流程图说明了该处理操作,在该操作中,ECC电路5使用内层奇偶校验PI沿行(水平)方向执行第一校正(这种校验操作后面称之为PI1校正),然后利用外层奇偶校验PO沿列(垂直)方向执行另一校正(这种校正操作后面称之为PO校正),最后利用内层奇偶校验PI执行第三校正(这种校正操作后面称之为PI2校正)。

根据这种处理,在步骤S1中,在PI1校正之后校验一ECC数据块中是否有一不可恢复错误。如果未发现不可恢复错误,则程序进入步骤S4;如果发现不可恢复错误,则程序进入步骤S2。

在步骤S2中,判断该光盘是否被重读(数据再次被再现)。即检测是否:

(1)具有不可恢复错误的ECC数据块被再次从光盘1读取;或

(2)一内插标记被附加到ECC数据块,并且输出该结果数据。

如果选择项(1)被选择,则程序进入步骤S3,此时光盘1被再次读取。随后程序返回到步骤S1。在选择项(2)中,该内插标记(即,该标记表明需要插入)被附加到此数据块的数据中,并且接下来执行步骤S4。

在步骤S4,判断该扇区EDC检验的结果(利用如图34所示的插入在每个扇区的检错码来检验)是否正常。即,检查每个扇区的错误。如果发现该结果正常(即,该扇区无错误),则程序进入步骤S7,并且输出该数据而不改变。如果该扇区EDC检验的结果发现异常(即,该扇区有错误),则执行步骤S5。

在步骤S5,判断光盘1是否被再次读取。即,检测是否:

(1)该有误的扇区被再次从光盘1中读取;或

(2)一内插标记被附加到该有误的数据扇区,并输出该结果数据。

如果选择项(1)被选择,则处理进到步骤S6,在这种情况下该有误的扇区被再次从光盘1读取。随后,程序返回到步骤S1。在选择项(2)中,一内插标记被附加到这个扇区的数据,并且程序进入步骤S7。在步骤S7,输出所处理的数据(在这种情况中,该数据带有内插标记),直至该处理结束。

在上述例子中,如果ECC电路5检测到数据具有一不可恢复错误,则该内插标记被附加到在这个数据块中的所有数据。构成该ECC数据块的每个数据单元的长度是8位(1字节),并且该内插标记的长度是1位。因此,与该内插标记组合后的数据的长度是9位。存储该9位数据需一按9位基本形式存储数据的存储器件。但是,这样一种存储器件通常不易得到,因此比一般存储器件要昂贵的多,从而产生了译码设备制造成本增加的问题。

另外,如果利用一预选长度数据作为一处理单元(例如,诸如一ECC数据块)来执行ECC译码,则该内插标记产生操作被应用到此整个处理单元。因此,出现了这样一个问题,即在小于该处理单元的单元中,例如一ECC数据块,不可能改变该内插标记产生操作。例如,在一扇区的单元中不可能改变该内插标记产生操作。

本发明的一个目的是降低译码装置的制造成本,并通过将该内插标记产生操作变换到一扇区单元来在较小单元中有效使用数据。

本发明的另一个目的是增强不可执行内插的扇区数据的纠错操作,并且可得到没有任何错误的扇区数据。

为了实现本发明和根据本发明的第一方面,用于对编码数据进行译码的设备包括:存储装置,用于以行和列存储编码数据;纠错电路,用于对所存储的数据沿行和列执行纠错处理;第一标记产生电路,用于根据沿一数据行的纠错处理来产生指明在该数据行中的一错误的第一标记;和第二示记产生电路,用于根据沿一数据列的纠错处理来产生指明在该数据列中的一错误的第二标记。    

为了实现本发明和根据本发明的第二方面,用于对编码数据进行译码的方法包括:以行和列存储该编码数据的步骤;对所存储的数据沿行和列执行纠错处理;根据沿一数据行的纠错处理来产生用于指明在一数据行中的一错误的第一标记;和根据沿一数据列的纠错处理来产生用于指明在一数据列中的一错误的第二标记。

参照附图,本发明的上述和其它目的、特征和优点将变得更为明显,在附图中相同的标号用于指明相同或相似的部分,附图中:

图1是表示出本发明错误标记和数据之间的关系的示意图;

图2是表示本发明译码设备的主要部分的框图;

图3是表示在光盘上的一物理扇区的结构的示意图;

图4表示在光盘上的一数据扇区的示意图;

图5是表示在一RAM中存储数据、错误标记和内插标记的典型操作的示意图;

图6A-6F是表示将EFM+解调电路的输出写入RAM的时序图;

图7是EFM+解调电路的锁定检测处理的流程图;

图8是EFM+解调电路的SCSY信号产生处理的流程图;

图9是EFM+解调电路的MAIN-FMSY信号内插处理的流程图;

图10A-10H表示数据块顶部(block-top)检测的时序图;

图11A-11H表示在数据块顶部检测之后的处理的时序图;

图12A-12F表示与SUB转移相关的主要部分的信号的时序图;

图13是各扇区信息位的示意图;

图14是SBCD电路的IEC正常连续性处理的流程图;

图15是SBCD电路的地址连续性判断处理的流程图;

图16是SBCD电路的SALK信号产生处理的流程图;

图17A-17D表示与ECC处理结果的输出有关的主要部分的信号的时序图;

图18A-18I表示与ECC处理结果的输出有关的主要部分的信号的时序图;    

图19A-19E表示当执行ECC处理时所执行的时序控制的时序图;

图20是在纠错期间数据流动的框图;

图21是构成纠错结果ER的位的示意图;    

图22A-22G表示与对RAM访问有关的总线判优的时序图;

图23是在一数据块数据的处理期间访问RAM次数的示意图;

图24A-24F表示从OCTL电路输出的校正结果ER的时序图;

图25是用于错误标记读取的电路的框图;

图26是内插标记存储或读取的电路的框图;

图27是ECC电路的输入和输出端的示意图;

图28表示PI标记产生的示意图;

图29表示PO标记产生的示意图;

图30表示内插标记产生模式的示意图;

图31是在本发明译码设备中执行的操作的流程图;

图32是图31的流程图的继续;

图33是一典型译码设备的框图;

图34表示一扇区的数据格式的示意图;

图35表示32k字节数据的结构的示意图;

图36表示一种在其中间插了图35的外部码的状态的示意图;

图37表示32k字节数据块的示意图;和

图38是描述由图33的译码设备执行的处理的流程图。

现在将结合附图以举例方式对本发明作进行详细描述。

图1示出了用于本发明译码设备中的错误标记和内插标记。在图33的例子中,作为PI2校正或扇区EDC检验的结果,立即产生由ECC处理得到的用于指明有必要插入错误数据的一内插标记,但是,在本发明的一优选实施例中,PI1标记(即,由208位组成的错误标记)是根据PI1校正,即在行方向上的第一纠错处理的结果产生的,PO标记(由172位组成的错误标记)是根据PO校正,即在列方向上的纠错处理的结果产生的,和PI2标记(由208位组成的错误标记)是根据PI2校正,即在列方向上的第二纠错处理的结果产生的。随后,如图1所示,根据这些标记(PI1标记,PI2标记和PO标记)的状态,进一步产生相应于ECC数据块的主数据(即,除奇偶校验外的192×172字节的数据)的192×172位的内插标记。    

将会了解到的是,本发明译码设备的主要部分与图33所示的译码设备的主要部分基本上相同。如图2所示,解调电路3包括RF处理电路30和EFM+解调电路31。扇区检测电路4包括:SBCD电路34、RAM控制电路35和RAM 37。ECC电路5包括:RAM控制电路35、ECC控制电路36、RAM 37、ECC内核电路38和OCTL电路39。为了说明与译码器主要部分的上述电路有关的附加部件,可参见图33。

在图2中,RF处理电路30自图33的拾取器2接收RF信号。所接收的RF信号被数字化,并随后被作为数字信号输出到EFM+解调电路31以执行EFM+解调和同步图形检测。根据从EFM+解调电路31接收的同步图形,CLV控制电路32控制驱动接口33。SBCD(子码)电路34检测自EFM+解调电路31输出的扇区。RAM控制器35控制在RAM 37中的读/写操作。

应注意的是,图2中RAM 37的表示与图33中的环形缓冲存储器7(一种存储器件)有所不同,并具有不同的结构。另一方面,RAM 37和环形缓冲存储器7可具有基本上相同的结构。

当ECC控制电路36执行纠错处理时,RAM 37暂时存储数据。如图2所示,ECC内核电路38(即,第一和第二标记产生电路)利用Reed-Solomon码(PI和PO)产生将在后面叙述的ECA、ECD和SFLG数据,并向ECC控制电路输出所产生的码以执行纠错。OCTL电路39执行解扰处理操作、ECD检验,并输出数据控制。主CPU 40控制译码设备的每一部分。

下面说明本发明的上述实施例的操作。

从光盘1再现的模拟信号由RF处理电路30转换成数字信号。EFM+解调电路31检测这个数字信号的同步图形。随后,CLV控制电路32根据所检测的同步图形进行粗略的伺服控制。根据所检测的同步码(SY0至SY7),来自一PLL(锁相环)的相位伺服控制被通过驱动接口33应用到光盘1的旋转运动。

图3示出了在光盘1上一物理扇区的结构。该扇区包括在水平方向上的2个同步帧和在垂直方向上的13个同步帧,总共26个同步帧。每个同步帧包括32个通道位(调制之前数据的16位(2字节))的一同步码(SY0至SY7)和1456个通道位(调制之前数据的728位(91字节)的数据部分。开始同步帧的数据部分包括ID信息(一扇区数)、IEC(ID的ECC)信息和主数据。

在32个通道位的同步图形中,例如低阶22位被置为“0001000000000000010001”作为未呈现在该数据中的唯一图形。

图3中左侧的每个同步帧的数据部分存储主数据。在左侧最后同步帧的数据部分存储PO信息(外层奇偶校验)。右侧的每个同步帧的数据部分存储主数据和PI信息(内层奇偶校验)。在右侧紧接最后同步帧之前的同步帧的数据部分存储EDC信息和PI信息。在右侧最后同步帧的数据部分存储PO信息和PI信息,如图3所示。

也就是说,在这个实施例中,ECC数据块如像图37所示构成,PO信息被插入在每个扇区中。

扇区的数据配置(除PI信息和PO信息之外)如图4所示。该扇区数据包括4字节的ID(扇区数)、2字节的IEC数据(ID的ECC)、6字节的RSV数据(保留区域)、主数据和4字节的EDC数据。值得注意的是,该主数据已被量化。

如像前面参照图35所述那样,16个扇区被组成附加一16字节的PO码和一10字节的PI码。另外,包含PO码的16行被插入16个数据扇区中。如图37所示,同步码SYx(x=0,1,2,...,7)被加到该结果数据中,并在其上执行EFM脉冲调制。因此,该ECC数据块中的物理扇区包括2个同步帧,如图3所示。因为一ECC数据块包括16个扇区,所以该物理扇区地址的低阶4位被排列在0000和1111之间的范围。该ECC数据块中开始扇区的物理地址是0000。

应当了解的是,通过在由该物理扇区地址的低阶4位产生的数据和该主数据之间执行一异或操作而对主数据加扰。

这里所使用的信号符号如下所述:

数据块顶部(Block Top):在SYLK信号处于HIGH状态下从扇区的开始变成HIGH的信号。

C11M(11.2896MHz时钟):具有11.2896MHz频率的系统时钟。

DSTB(数据选通脉冲):当主数据作为流数据SD输出时变成HIGH的数据选通脉冲信号。

ECA(ERR校正地址):表明错误位置(地址)的一纠错地址信号。

ECCK(ECC时钟):用于ECC内核电路38的工作时钟。

ECD(纠错数据):当在错误数据和纠错数据之间执行异或操作时提供正确数据的纠错数据。    

ECDE(ECC码数据结束):表明输入数据结束的控制信号。

ECOD(ECC码有误):当不可执行纠错时变成HIGH的信号。

ECOR(ECC校正):表明错误可恢复数据的输出的选通脉冲信号。

ECYE(ECC周期结束):表示输入码数据结束的控制信号。

EDT(ECC数据):从RAM 37读取以纠错并被传送到ECC控制电路36的数据。

ESTB(错误选通脉冲):当纠错结果ER被传送时变成HIGH的纠错结果选通信号。

ESTT(ECC开始):表明输入数据的开始的控制信号。

EFM+WFRAME(EFM+写帧计数器):表明待写入RAM 37的主帧的信号。

HDEM(标题数据启动):扇区标题数据的选通脉冲信号。

MAIN-FMSY(主帧同步):在每个PI的主同步(开始同步)处变成HIGH的信号。

MWEN(存储器写启动):用于向RAM 37写EFM+解调数据的写启动信号。

MWRQ(EFM写请求):用于向RAM 37写EFM+解调数据的写请求信号。

OUTF(输出标记);插入标记(输出标记)。

OSTT(ECC输出开始):在一预定码串中477时钟周期(ECCK)的ESTT之后延迟输出的信号。

RDT(读数据):在RAM 37的数据总线上的数据。

SALK(扇区地址锁定):用于表明一扇区地址(ID)已被正常检测的信号。

SAUL(扇区地址解锁):具有与SALK信号相反极性的信号。

SCSY(扇区同步):用于确定一扇区的开始的在SYO帧处变成HIGH的信号。

SD(流数据):流数据(被译码的输出数据)。

SDCK(流数据时钟):流数据的时钟。

SFLG(扇区标记):PI1校正的ECC不可校正标记。

SINF(扇区信息):在该扇区的开始处变成HIGH的扇区信息选通脉冲信号。    

SUB(SUB数据):包括待传送到SBCD电路34的ID数据和IEC数据的数据。

SYLK(同步锁定):当同步码被顺序检测三次时变成HIGH的信号。

SYUL(同步解锁):具有与该SYLK信号相反极性的信号。

WDT(写数据):在RAM 37的数据总线上的数据。

XHWE(扇区标题写启动):用于从SBCD电路34向RAM 37写入扇区信息的输出启动信号。

如图5所示,在RAM控制器35的控制下,由图2的EFM+解调电路31解调的数据被存储在RAM 37中。图5中示出了一ECC数据块。在从RAM37中读数据时,RAM控制器35指定行和列数值(如图5所示)以重新得到所期望的数据。即,在图5中,位于第M行第N字节处的数据x可通过指定两个数值(M和N)而从RAM 37中得到。

图5中进一步示出了以字节×字节的基本形式相应于每个PI行的扇区信息(以后详细说明),该扇区信息被存储在相应于从顶部行开始的16PI行中。PI1和PI2标记被存储在相应的208PI行的每一行中。PO标记被相应地从顶部开始顺序地存储在172PI行。

图5还示出了按字节排列的208×172位的内插标记。26×22字节(实际21.5字节)的内插标记被以字节×字节的基本形式存储在该ECC数据块中与主数据区域不同的一区域中。即,1位内插标记相应于1字节的主数据。

上述的结构防止了为存储内插标记所需的存储容量的不必要增大。

当根据同步码的类型和连续性来识别记录在光盘1上的一数据扇区的开始时,由EFM+解调电路31解调的数据由该开始数据为起点而被顺序记录在RAM 37中。图6A-6F示出了与这种操作相关的各信号的时序图。

即,如图7所示,EFM+解调电路31检测一同步锁定状态。首先,在步骤S1,确定在每一同步帧中同步码(SY0-SY7)是否已被检测到。如果该同步码已被检测到,则程序进入步骤S2,这里变量SClock被递增1,而变量SCunlock被置为0。变量SClock表明该同步码已被连续检测到的次数,而变量SCunlock表明该同步码尚未被连续检测到的次数。

接着,在步骤S3,确定变量SClock是否等于3。即,确定该同步码是否已被连续地检测3次。如果变量SClock小于3,则程序返回到步骤S1以由此重复该处理。如果在步骤S3中发现变量SClock等于3,则确定已设置了一锁定状态,在步骤S4,该SYLK信号被置于HIGH电平。然后,在步骤S5,变量SClock被置为2,以确定该同步码是否已被连续地检测3次。之后,该程序返回到步骤S1以由此重复其处理操作。    

如果在步骤S1中该同步码尚未被检测到,则执行步骤S6中的操作,在步骤S6中变量SCunlock被递增1,而变量SClock被置为0。在步骤S7,确定变量SCunlock是否等于3。即,确定该同步码是否未被连续地检测3次。如果该同步码未被检测到的次数是2或更小,则该程序返回到步骤S1。如果该同步码连续未被检测3次,则程序进入步骤S8,此时SYL信号被置为LOW电平。随后,在步骤S9,如果在下一同步码产生时序期间没有同步码被检测到,则将变量SCunlock置为2,以便将SYLK信号保持为LOW电平。程序然后返回到步骤S1。

因此,EFM+解调电路31检测同步码连续地监视是否设置锁定状态。

在上述的优选实施例中,该同步码已被检测的次数是被任意地设置为3的。应了解的是,同步码被连续检测的参考次数(Nlock)和该同步码未被连续地检测的参考次数可以是任意予选的值。

当SYLK信号为HIGH时(即,在如上所述的锁定状态时),EFM+解调电路31执行如图8的流程图所示的处理。详细地说,在步骤S21中,确定被排列在每个扇区开始部分的同步码SYO是否已被检测到。如果同步码SYO已被检测到,则程序继续到步骤S22,在该步骤中表明该扇区的开始的SCSY信号被设置到一预定时间H。接着,在步骤S23,确定该SYLK信号是否改变成LOW。如果不是(即,该SYLK信号保持为HIGH),则程序返回到步骤S21以此重复处理。在步骤S21,如果确定该同步码SYO未被检测到,则跳过步骤S22的处理。

因此,在每个扇区的开始处,EFM+解调电路31产生SCSY信号(图6A所示)。

另外,当SYLK信号变成HIGH时,EFM+解调电路31执行图9的流程图所示的处理。首先,在步骤S31,确定一主帧(在图3的水平方向上的2同步帧统称为主帧)的同步码(在图3左侧的同步码称之为主帧同步)是否已被检测到。如果主帧同步已被检测到,则程序进到步骤S32,在该步骤中EFM+解调电路31产生如图6B所示的MAIN-FMSY信号。在步骤S31,如果没有主帧同步被检测到,则跳过步骤S32的处理。    

随后,程序到达步骤S33,此时确定该SYLK信号是否已被变成LOW。如果检测出没有变化(即,该SYLK信号保持为HIGH),则操作返回到步骤S3 1以由此重复其处理。如果该SYLK信号变为LOW,则中止MAIN-FMSY信号的产生。

因此,EFM+解调电路31在该主帧同步的每个周期(在图3中水平方向的2同步帧的周期)中产生MAIN-FMSY信号。

如图6D所示,当从EFM+解调电路31接收到SCSY信号时,RAM控制器35将该MWEN信号置为HIGH。因此,用于将所检测到的扇区的数据写到RAM 37的写处理操作开始。即,此时,如图6E所示,RAM控制器35利用EFM+W帧计数器(未示出)对主帧(图3中所示)进行计数。表明来自顶部的主帧数的结果计数值如图3所示。

另外,如图6F所示,RAM控制器35利用PI1帧计数器(未示出)控制待传送到RAM 37的主帧数。

详细地讲,当图3的第一主帧被写入RAM 37时,在RAM控制器35的控制下ECC控制电路36接收主帧数据。之后,ECC控制电路36将这个数据传送到ECC内核电路38,以执行纠错处理(PI1处理)。经PI1处理的数据随后被存储在RAM 37中。

在PI1校正之后,RAM控制器35从在RAM 37中存储的主帧数据中读取ID和IEC数据,并通过数据总线将该主帧的ID和IEC数据传送到SBCD电路34,如像由图6C中数0所指出的那样。如图3所示,因为ID和IEC数据是排列在每个扇区的开始,所以这种传送处理仅仅在具有数0的主帧中执行。在SBCD电路34中,每个物理扇区的地址(ID)是被如上所述地检测的。

随后,根据所检测到的物理扇区的地址的低阶4位,检测ECC数据块的开始扇区。

图10A-10H是紧接上述ID数据传送的用于检测信号数据块顶部的时序图。图11A-11H是说明在检测该信号数据块顶部之后所执行的处理的时序图。这些图中所示的操作将在后面说明。

图12A-12F所示的时序图更详细地说明了上述ID传送。根据图12A,RAM控制器35向SBCD电路34输出HDEN信号,以指明在从RAM 37读出的ID和IEC数据处的时序。此时,该ID数据(4字节)和IEC数据(2字节)被作为包括8位(7到0位)的读数据RDT(图12C)与11.2896MHz频率的时钟C11M(图12F)同步传送。作为PI1校正的结果,由从ECC内核电路38提供给ECC控制电路36的SFLG信号(在这种情况中,SFLG信号是HIGH)指明该ID数据和IEC数据不处在错误不可恢复状态。在接收ID(扇区地址)之后,SBCD电路34响应于由主机CPU 40发出的一命令(诸如插入产生模式、开始扇区,或结束扇区)而产生该ID(扇区地址)的扇区信息SI。例如,在具有由主机CPU 40指定的ID的扇区中,该扇区信息的位5被置1,位4被置0。

图13示出了该扇区信息(SI)的结构。如图所示,构成扇区信息的各位具有以下的含意:

位7:内插标记(OUFT)产生模式(1=内插标记产生模式)。

位6:ECC数据块的开始扇区(当该物理扇区地址的低阶4位均为0时为1,1=开始扇区)。

位5:检测该开始扇区(当该物理扇区地址与由主机CPU 40指定的开始扇区地址相匹配时为1,1=开始扇区)。

位4:检测结束扇区(当该物理扇区地址与由主机CPU 40指定的结束扇区地址相匹配时为1,1=结束扇区)。

位3:解扰初始地址的位3(物理扇区地址的位7)。

位2:解扰初始地址的位2(物理扇区地址的位6)。

位1:解扰初始地址的位1(物理扇区地址的位5)。

位0:解扰初始地址的位0(物理扇区地址的位4)。

下面将参照附图14到16来说明利用4字节ID和2字节IEC执行的检验处理,图12D中所示的XHWE信号由ECC控制电路36置为LOW。此时,该扇区信息SI被作为8位写数据WDT从SBCD电路34传送到RAM 37。如图5所示,16个扇区的扇区信息被存储在相应的上面16个PI行中。因此,通过指定所期望的PI行的数,就可得到相应的扇区信息。

下面,参照图14到16的流程图来说明由SBCD电路34进行的ID和IEC检验处理。

在图14中,SBCD电路34判断IEC为正常的(即,ID没有错误)扇区数是N(在本实施例中是3)还是连续地更高。因此,在第一步骤S41中,判断IEC俘获的数据是否正常。如果发现该IEC正常,则程序进到步骤S42,在该步骤中,表明具有正常IEC的扇区数的变量SAlock被递增1。随后,表明具有错误IEC(即,具有错误的ID)的扇区已被连续检测到次数的变重SAunlock被置为0。

然后,在步骤S43,判断该变量SAlock是否等于3。如果在步骤S42中递增的变量SAlock不等于3,则程序返回到步骤S41以由此重复处理。如果在步骤S43发现变量SAlock等于3(即,具有一正常IEC的扇区被连续地再现三次),则执行步骤S44的处理,在该步骤中标记IECOK被置为HIGH。在步骤S45中,变量SAlock被重置为2,程序返回到步骤S41以由此重复处理。

在步骤S41,如果发现IEC异常,则程序进到步骤S46,在该步骤变量SAunlock被递增1,同时,变量SAlock被置为0。随后,在步骤S47,判断变量SAunlock是否等于3;如果这个变量不等于3,则程序返回到步骤S41以由此重复处理。

在步骤S47,如果变量发现SAunlock等于3(即,如果扇区IEC不正常的扇区已被连续地检测三次),则程序进到步骤S49,此时标记IECOK被置为LOW。接着,在步骤S49,将变量SAunlock置为2。以便检测IEC不正常的连续次数为3。然后,该程序返回到步骤S41以由此重复处理。

因此,如果该IEC是连续正常三次,则SBCD电路34将标记IECOK置为HIGH,如果IEC不是连续正常三次,则将标记置为LOW。

另外,通过图15所示的处理,SBCD电路34确定ID(地址)的连续性。即,在一ECC数据块中每一扇区的ID按顺序递增1。因此,连续性如下测定。

首先,在步骤S61,判断ID是否已被检测到。如果ID已被检测到,则程序进入步骤S62,此时存储所检测的ID以与下一个ID比较。之后,在步骤S63,判断本次检测到的ID是否比在前面步骤中所存储的ID大1。如果本次检测到的ID比所存储的ID大1,则程序执行步骤S64,此时用于表明正确的ID已被连续检测到的变量被递增1。如果未检测到ID或未连续地检测到多个ID,则用于表明ID不连续的次数的变量Nns被置为0。

接着,在步骤S65,判断变量Ns是否等于3。如果不是(如果递增1的ID未被连续三次检测到),则程序返回到步骤S61以由此重复处理。如果发现该变量Ns等于3,则程序进入步骤S66,此时用于表明ID是连续处于正常状态中的标记AS被置为HIGH。接着,在步骤S67,变量Ns被置为2,如果下一个ID已被检测到,则可确定正确的ID已被连续地检测到三次。随后,程序返回到步骤S61以由此重复处理。    

在步骤S61中,如果ID来被检测到或者发现这次检测的ID比上一次所检测的ID不是大于1(即,如果ID是不连续的),则程序进入步骤S68,这时判断标记SALK是否为HIGH。如果该IEC是连续三次或更多次正常,则将待参照附图16说明的标记SALK置为HIGH,并且该ID的连续性保持三次或重多次。

在步骤S68,如果发现标记SALK是HIGH,则程序进到步骤S69,此时执行插入该ID的处理。即,因为没有ID被检测到或者ID是不连续的,所以通过对所产生的上一次的ID加1而得到一ID,并且所得到的ID用于所检测到的ID。如果标记SALK被置为LOW,则不执行这种插入操作,因此跳过步骤S69的处理。

之后,在步骤S70,变量Nns被递增1,并且变量Ns被置为0。接着,在步骤S71,判断为量Nns是否等于3。如果不等于3,则程序返回到步骤S61以由此重复处理。如果变量Nns是3,则程序进入步骤S72,此时标记AS被置为LOW。接着,在步骤S73,变量Nns被置为2,从而如果下一个ID未被检测到,则可确定ID未被连续地检测到三次。之后,程序返回到步骤S61以由此重复处理。

因此,当保持ID的连续性时,SBCD电路34将标记AS置为HIGH,反之,将标记AS置为LOW。

SBCD电路34使用如上所述的两个标记IECOK和AS来产生标记SALK。

详细地讲,在图16的步骤S81,判断标记IECOK是否为HIGH。如果发现标记IECOK是HIGH,则程序进入步骤S82,此时判断标记AS是否为HIGH。在步骤S82中,如果标记AS是HIGH,则执行在步骤S83中的程序,此时标记SALK被置为HIGH。

在步骤S81中,如果标记IECOK为LOW或如果在步骤S82中标记AS为LOW,则程序进入步骤S84,在步骤S84中将标记SALK置为LOW。

因此,在SBCD电路34中,如果IEC连续三次或更多次是正常,并且ID被连续三次或更多次递增1,则标记SALK被置为HIGH;如果该IEC连续三次或更多次不正常,或者如果该ID三次或更多次不连续,则标记SALK被置为LOW。

如上所述,主CPU 40通过参照标记SALK和ID数据的状态来检测激光束当前照射的位置(在光盘1上的访问位置)。

将会了解到的是,PI1校正的结果可被加到图14的变量SAlock或变量SAunlock的条件。此外,由这些变量所规定的次数是3。很显然,其次数可由主CPU 40设置成任意值。

当标记SYLK被置为LOW(当标记SYUS变成HIGH时)并且标记SALK也为LOW时(当标记SAUL为HIGH时),从EFM+解调电路31向RAM37的EFM+解调数据的写入被复位。之后,当通过将标记SYLK设置成HIGH来消除解锁状态时,重新开始向RAM 37写入EFM+解调数据。

将要了解到的是,通过主CPU 40强制执行解锁操作。例如,在执行了两光道之间的跳转操作之后,由主CPU 40设置该解锁状态可使ECC控制复位。

还将要了解的是,通过由主CPU 40执行的清除操作或自动执行的清除操作有选择地清除该解锁状态。

当该标记SYLK是HIGH(锁定状态)和扇区信息的位6是1(扇区的开始)时,SBCD电路34将信号数据块顶部保持在HIGH电平(如图10所示)直至标记SYLK变为LOW(即,该锁定状态被清除)。如果该信号数据块顶部为LOW,当SCSY和MAIN-FMSY二者均变为HIGH(该扇区的开始)时,EFM+W FRAME的值在12之后被置为0。即,在这种情况下,对于每一主帧该EFM+W帧的值重复0到12。

如果信号数据块顶部为HIGH,则当其值如图11所示变为13或更高时,该EFM+W帧的值保持增加。结果,ECC数据块的主帧数据以不同地址顺序地存储在RAM 37中。

随后,类似地向RAM 37写入EFM+解调数据,同时,执行PI1校正。当ECC数据块数据(对于208行的数据)的PI1校正结束时,开始在PO列方向的ECC处理(PO校正)。

应注意的是,在PO列方向上的读出数据要求消除在PO列中的交错(图36)。因此,为了读取例如图5所示的第N字节处的列,从顶部向下的第N字节处列的数据通过跳过该交错的PO列而被首先读取,并且随后仅仅在相同的第N字节处的码被再次读取以便将其提供给ECC内核电路38。

当ECC内核电路38结束该PO校正时(即当除图5右侧10PI列之外的所有172列均已被处理时),则该电路执行PI2校正。将会了解到的是,在该PI行方向上的ECC处理的执行两次以提高纠错能力。

在该PO校正中,根据基于该PI1校正而产生的错误标记(PI1标记)执行删除校正。另外,在该PI2校正中,通过使用根据PO校正的结果而产生的错误标记(PO标记)来执行删除校正。与ECC处理一样,删除校正的执行增强了纠错能力。

PI2校正之后PI数据被从RAM 37传送到OCTL电路39,此时利用该扇区信息的3到0位以扇区接扇区的基本形式对该主数据执行解扰处理,如图13所示。同时,在OCTL电路39中执行与EDC有关的算术运算。根据该算术运算的结果和附加到主数据的错误标记的存在或不存在,判断该扇区是否有错误。根据这个判断的结果,主CPU 40确定是否再次从光盘1中读取数据。如果该数据再次被读取,则重复对该光盘1的访问。如果不必再次读取该数据,则向多路数据分离电路8输出具有错误的扇区数据。

ECC内核电路38由一通用Reed-Solomon码纠错LSI组成,其中码长度、奇偶校验数和校正模式(普通校正和删除校正两种模式)可被编程。ECC内核电路38还可实时地对多码连续编码数据(具有不同码长度的多个码串)进行译码。应注意的是,上述LSI电路采用了SONY(注册商标)的CXD307-111G。由这种LSI构成的ASIC(专用集成电路)称之为ECC内核。这种ECC内核典型地用于图2的ECC内核电路38。

下面描述纠错操作。图17A-17D是纠错操作期间的时序图。ESTT(图17A)是用于表明一码(PI或PO)开始的控制信号,和ECDE(图17B)是表明该码(PI或PO)结束的控制信号。ECYE(图17C)是表明一码周期结束的控制信号。这些控制信号被通过ECC控制电路36从RAM控制器35提供给ECC内核电路38。根据这些控制信号,ECC内核电路38识别从RAM 37提供的数据。

如图17A-17D所示,该PI码被在ESTT和ECDE脉冲之间在182时钟周期(ECCK)期间传送。该PO码在ESTT和ECDE脉冲之间在208时钟周期(ECCK)期间被传送。

如果在PI和PO串中的各码长度不同,则该码周期长度与在每一PI或PO串(在本实施例中,在PO行中的208个码)中较长的码长度相匹配。因此,待校正的数据(EDT)和用于删除校正的错误标记(PI1、PI2和PO)可以与图17A-17D基本类似的时序被输入而不管该码串。应注意的是,可以对参量设置任何值,例如码长度和奇偶校验数。即,为了改变设置位,当ESTT信号为HIGH时新的数据被提供给ECC内核电路38。根据新提供的数据,ECC内核电路38自动地改变内部设置。    

在477个时钟周期(ECCK)中输出的数据校正的结果,由如下关系所示:

全部=2×NCYC+3×PCYC+13

    =2×208+3×16+13=477(ECC)

在上述关系中,NCYC表示在PI和PO中较长的码长度。PCYC表示较长码的奇偶校验数。如图17D所示,通过将ESTT(图17A)的时序延迟数据输出周期来将OSTT从ECC内核电路38提供给ECC控制电路。在本实施例中,OSTT自ESTT延迟477时钟(ECCk)周期。

当检错处理已被执行并且所检测的错误可校正时,当OSTT=HIGH(图18E)时ECC内核电路38向ECC控制电路36输出O.CODEERR=LOW(图18G)。随后当ECOR=HIGH(图18F)时,表示一错误图形的8位数据(即,当与错误数据进行异或运算时导致正确数据的数据)ECD[7∶0](图18H)和表示错误位置的8位数据(表示具有错误的位置(地址)的8位数据)ECA[7∶0](图18I)被输出。

应注意的是,在删除校正模式中,对应于错误标记EFLG(图18C)已被输入位置的错误位置ECA[7∶0]数据始终被输出;如果在这个位置上的数据是正确的,则该错误图形变为ECD[7∶0]=0。

如果不可执行纠错,则OSTT(图18E)变成HIGH,并且同时O.CODEERR(图18G)变为HIGH。O.CODEER(图18G)的输出保持锁存状态直至OSTT(图18E)再次变成HIGH为止,同时ECOR(图18F)、ECD[7∶0](图18H)和ECA[7∶0](图18I)被输出直至OSTT(图18E)下一次变成HIGH为止。

图19A-19E示出了在ECC处理期间的时序控制图。在图19B中的PI1-R、PO-R或PI2-R表示待校正的数据EDT[7∶0]以及被通过ECC控制电路36从RAM 37传送到ECC内核电路38的PI1、PO或PI2串的EFLG(图18C)的时序图。

如图19A所示,为了将在一PI行中的数据EFM+W(182字节)从EFM+解调电路31写入RAM 37,MWRQ信号被提供182次。当该MWRQ信号被提供时,一PI行的EFM+解调数据被写入RAM 37。在一PI行的数据被写入的同时,已写入RAM 37的ECC数据块的数据被读取并被通过控制电路36传送到ECC内核电路38。即,在一PI行的数据被写入RAM 37的同时,已写入的另外PI行或PO列的数据被迅速地读取三次。另外,当在该扇区的开始处的PI行的数据被传送时,该子码数据(ID和IEC)也被读取。在执行写操作的同时,读操作被中止,反之亦然。

例如,当在一ECC数据块中执行PI1校正时,一PI行的数据被读取,同时一PI行的数据被写入。即,用于一PI行的数据被从RAM 37读取并被通过ECC控制电路36传送到ECC内核电路38。在图19B中,采用了208个时钟周期(ECCK)来读取用于PI1校正的PI1-R数据。时钟周期(ECCKs)的这个数目与该PO列的长度相匹配。在传送该PI行数据过程中,基本上只使用182个周期,而余下的ECCK未被使用。

当PI1-R的传送未完成时,禁止PO串的PO-R数据或PI2中的PI2-R数据的传送。在这种情况下,在下一个2×208时钟周期(ECCK)期间没有数据传送。

在下一个182-MWRQ间隔,仅传送PI1-R。接着,当已经完成了整个208PI行的数据传送时,在下一个182-MWRQ间隔首先传送PI1-R数据,接着再传送PO-R数据(传送2行的PO数据)两次。但是,该PI1-R数据(在相同的182-MWRQ间隔内被作为PO-R传送)提供下一ECC数据块PI行的数据。

在该182-MWRQ间隔内执行上述操作,并且当总共172列的PO数据被传送时,传送PI2串的PI2-R数据。PI2-R数据是根据与如图19(b)所示的PO-R数据的传送时序相同的时序来传送的。在该时序期间的PI1-R数据提供下一ECC数据块的数据。

应注意的是,仅在该数据传送间隔期间内ECCK(图18A)才从RAM控制器35输出到ECC内核电路38。另外,如上所述,被传送数据的校正结果是在该数据输入之后的477时钟周期(ECCKs)输出。因此,当这些串之后的第二串的数据被输出时(图19B),输出某些串的数据是否含有一错误的判断结果(图19C)。该输出被存储在将后述的ERR FIFO电路36b(图20)中。

如上所述,当待纠错的数据从RAM 37输入到ECC控制电路36时,该ECC控制电路在例如一PI行的数据中执行PI1校正,并在477时钟周期(ECCK)之后输出该校正结果(图19C)。该校正结果被传送到为ECC控制电路36提供缓冲器的ERR FIFO 36b,将并被暂时存储于此。这个数据进而被从ERR FIFO 36b中读取并将与如图19D中所示PI1-W数据一样被作为纠错数据再次写到RAM 37中。同样,将在PO校正或PI2校正之后的数据作为PO-W或PI2-W数据分别写入RAM 37中。    

因此,写入RAM 37的纠错数据在如图19E所示的182时钟周期(SDCKS)期间被进一步以每一PI行读取,并从OCTL电路39中输出。

图20的框图示出了在该纠错处理期间的信号流动。应注意的是,图20中与图2中类似的部件用相同的标号来表示,并省略对这些部件的描述。

如图20所示,ECC控制电路36包括:ERR COUNT 36a、ERR FIFO36b、FLAG RAM 36c和EX-OR(异或)电路36d。在RAM控制器35的控制下,从EFM+解调电路31输出的解调数据被写入RAM 37中。存储在每一扇区的开始的SUB数据(ID和IEC)被从RAM 37中读取并被传送到SBCD电路34。SBCD电路34产生如图13所示的扇区信息SI。该扇区信息SI被从SBCD电路传送以存储在RAM 37中。

通过ECC控制电路36(纠错装置),RAM控制器35将在RAM 37中存储的一PI行的数据作为8位形式的纠错数据EDT提供给ECC内核电路38(在图20中,为了简化起见,该EDT数据被直接提供给ECC内核电路38)。当接收到一PI行的数据时,ECC内核电路38使用PI码来产生8位纠错数据ECD(图18H)和8位纠错地址ECA(图18I)。该纠错ECD数据和ECA地址被从ECC内核电路38传送到ERR FIFO36以写入其内。

接着,为了执行纠错,RAM控制器35读取该PI行的EDT数据,并将该所读取的数据提供给EX-OR电路36d。该纠错数据ECD和纠错地址ECA被从ERQ FIFO 36b提供给EX-OR电路36d。对于纠错,EX-OR电路36d在由RAM控制器35读取的纠错数据ECD和数据EDT之间的纠错地址ECA指定的位中执行异或运算。已被执行这种纠错的数据随后通过RAM控制器35被从EX-OR电路36d写回RAM 37中。

根据该ECD和ECA数据,ECC内核电路38产生由如图21所示的8位数据组成的一纠错结果ER,并将该ER提供给该ECC控制电路的ERRCOUNT 36a以存储在其内。随后,如图5所示,相应于该PI行,这个1字节的纠错结果ER被通过RAM控制器35写入RAM 37。

如图21所示,构成纠错结果ER的各位表示如下的信息。

位7∶0=可校正;1=不可校正(当不可执行对该串的纠错时为1)。

位6∶0=PI∶1=PO(用于判断该串是PI或是PO的信息位)。

位5∶0=PI1∶1=PI2(用于判断该串是PI1或是PI2的信息位)。

位4:纠错计数(纠错数的位5(MSB)的值)。    

位3:纠错计数(纠错数的位4的值)。

位2:纠错计数(纠错数的位3的值)。

位1:纠错计数(纠错数的位2的值)。

位0:纠错计数(纠错数的位1(LSB)的值)。

表示通过该PI1校正判断数据是否不可校正的结果的错误标记(该纠错结果ER的位7)被作为该纠错结果ER的部分不仅存储在ERR COUNT 36a中还存储在FLAG RAM 36c中。

如上所述的PI1校正在图5所示的208 PI行中执行。

接着,RAM控制器35从RAM 37中读取第一PO列的208字节,并通过ECC控制电路36将这个数据(如EDT)提供给ECC内核电路38。写到FLAGRAM 36c的PI1标记也被读取,并被提供给ECC内核电路38。通过使用该奇偶校验PO和PI1标记,ECC内核电路38产生用于常规校正和删除校正的ECD和ECA。该ECD和ECA数据被从ECC内核电路38提供给ECC控制电路36的ERR FIFO 36b以存储在其内。另外,ECC内核电路38将由ECC内核电路(根据ECD和ECA数据)产生的PO列的纠错结果ER传送给ERRCOUNT 36a以存储在其内。相应于该纠错结果的位7的PO标记也被写入FLAG RAM 36c中。

从RAM 37读取的PO列的EDT数据被输出到EX-OR电路36d。该ECD和ECA也被从ERR FIFO 36b输出到EX-OR电路36d。为了纠错,EX-OR电路36d在ECD和EDT之间执行异或运算。该纠错数据随后被写回RAM 37。

该PO行的纠错结果被从ERR COUNT 36a读取以存储在RAM 37中。如图5所示,该PO列的纠错结果ER被从顶部顺序写入相应于172PI行的位置。

上述的PO校正是在172PO列上执行的。

在PI2校正期间,第一PI行的数据被从RAM 37读取(在PI1校正和PO校正之后)以提供给ECC内核电路38。在预先写入FLAGRAM 36c的PO标记也被读取并被提供给ECC内核电路38。利用PO标记和奇偶校验PI,ECC内核电路38产生ECD、ECA数据,并将所产生的ECD和ECA数据提供给ECC控制电路36的ERR FIFO 36b。

提供给ERR FIFO 36b的ECD和ECA数据被输出到EX-OR电路36d,以便执行用于在自RAM 37恢复的PI行数据和ECD数据之间进行纠错的异或运算。该纠错数据随后被通过RAM控制器35从EX-OR电路36d返回到RAM 37。

ECC内核电路38还根据ECD和ECA数据产生纠错结果ER,并将所产生的ER提供给ECC控制电路36的ERR COUNT 36a以存储在其内。相应于位7的PI2标记还被写到FLAG RAM 36c。

写入ERR COUNT 36a的PI2行的纠错结果ER从ERR COUNT 36a读取以存储在RAM 37中。该PI2行的纠错结果ER被写入相应于ECC数据块的208PI行的位置。

上述PI2校正是在所有208PI行上执行的。

图22A-22G是在RAM 37访问期间总线判优的时序图。EFMREQ(图22A)表示当EFM+解调电路31请求向RAM 37写入EFM+解调数据时被输出到RAM控制器35的信号。OUTREQ(图22B)表示当OCTL电路39请求从RAM 37读取ECC处理的数据时被输出到RAM控制器35的信号。ECCREQ(图22C)表示当ECC控制电路36向ECC内核电路38传送数据并且访问RAM 37以纠错、访问RAM 37以获得纠错数据、或访问RAM 37以向SBCD电路34执行SUB传送(ID和IEC的传送)时,从ECC控制电路36向RAM控制器35输出的信号。

RAM控制器35设置用于这三个前述信号的优先级。如果上述请求是同时提出的,则该RAM控制器根据该优先级顺序地输出用于许可对RAM 37进行访问的ACK(确认)信号。EFMACK(图22D)、OUTACK(图22E)和ECCACK(图22F)分别表示用于EFMREQ、OUTREQ和ECCREQ的确认信号。在本实施例中,最高优先级给予OUTREQ、次级优先级给予EFMREQ、最低优先级给予ECCREQ。因此,如图22A-22G所示,RAM控制器35根据这些优先级输出用于REQ信号的ACK信号。这些信号与系统时钟C11M(图22G)同步传送。

因此,在本实施例中,在每个预定周期期间对RAM 37访问的权利被赋给EFMREQ、ECCREQ和OUTREQ信号其中之一。应注意的是,根据RAM37的构成和/或类型、或者其访问速度,这个周期可被变更。

图23示出了当在一ECC数据块中执行PI1校正、PI2校正和PO校正时RAM 37被访问的次数。为了执行PI1校正、PO校正和PI2校正,需要对RAM 37访问的次数是每一ECC数据块214716次,对于一主帧来说平均为1033次。例如,因为ECC的执行周期长度是208字节(208主帧),所以当写入该EFM+解调数据时RAM 37被访问的次数是每主帧182次和每数据块37856次(即182×208)。如图23所示,计算每一操作所需的访问次数,并且计算总和提供了上述各值。

图24A-24F示出了通过OCTL电路39从RAM 37输出纠错结果ER期间的时序图。图19E所示的182时钟周期(SDCK)区间之前的部分用延长的时间轴表示。SDCK(图24A)表示待作为流数据输出的ER数据的时钟信号。SINF(图24B)表示一扇区信息选通脉冲信号,该信号在一扇区的开始处变成HIGH并指明待传送的数据是扇区信息(SI)。ESTB(图24C)是一纠错结果选通脉冲信号,当该信号置为HIGH时表明该纠错结果ER已被传送。应注意的是,在每一PI行中,该纠错结果ER的一字节被赋予每一PI1校正、PO校正和PI2校正,总计三字节。这个数据以如图5所示存储的次序输出,从而纠错结果ER位5和6(图21)的校验可以判定这个结果(数据)属于哪个串。

当信号SD[7∶0](图24E)是主数据时,DSTB(图24D)为达到HIGH的数据选通脉冲信号。三个信号SINF、ESTB和DSTB由OCTL电路39产生。应当指出的是,如图24E所示,在182时钟周期(SDCKS)期间,在PI行方向上设置数据之前,扇区信息SI和纠错结果ER被立即输出。

OUTF(图24F的内插标记)是一用于主数据的错误标记,并且对应于错误主数据,根据存储在图20所示的FLAG RAM 36c中的不可校正PI和PO标记输出。

根据由SBCD电路34产生的扇区信息的位4和5(图13),OCTL电路39判断被译码的扇区数据是否被输出。如图13中所示,该扇区信息的位4和5分别表示结束扇区和开始扇区。因此,OCTL电路39输出具有位4=0和b5=1的扇区数据,作为被输出的扇区数据。

另外,OCTL电路39还判断主数据的错误标记是否存在以及EDC的结果是否满足由主CPU 40预定的条件。如果满足预定条件,则OCTL电路39输出被译码的数据。如果不满足,则OCTL电路39中止输出被译码数据并将异常条件通知主CPU 40。

例如,该数据输出条件设置如下:

(1)指明输出的一扇区的数据。    

(2)根据ECD的结果未检测到错误。

(3)没有错误标记被附加到主数据。

符合这些条件的数据最终被输出。应注意的是,除了上述条件之外,数据的输出还可由主CPU 40来强制限定。很明显,该输出条件并不限于上述条件。

下面,将描述内插标记。相应于PI1校正、PI2校正和PO校正而分别产生的PI1标记、PI2标记和PO标记被存储在ECC控制电路36的FLAG RAM 36c中。图25的框图示出了用于将FLAG RAM 36c中的数据存储到RAM 37的预定8位宽度区域中的部分的ECC电路36的构成。

在图25中一1-8变换电路50将从FLAG RAM 36c中读取的每行或列的1位PI或PO标记(图21中位7)变成成8位并行数据。RAM 37存储所变换的8位并行数据。触发器52-1到52-26以FIFO方式保持该数据。8-1变换电路53将8位数据变换成1位数据。WE产生电路56控制用于将数据写到触发器52-1至52-26的操作。OE产生电路55控制用于将数据从触发器52-1至52-26读出的操作。

下面根据图25说明该操作。从FLAG RAM 36c输入的1位PI标记(PI1或PI2标记)或PO标记由1-8变换电路50变换为8位数据。即数据被按8行的基本形式从每个ECC数据块的PI行的开始收集并被转换成字节数据。结果字节数据被存储在RAM 37中,这样就可与每一ECC数据块的数据一起被访问。

一ECC数据块具有208PI行,并且每一PI行的PI标记是1位长。因此,存储这些PI标记需要26字节(208/8)的存储区域。一ECC数据块具有172 PO列。因此,存储这些PO标记需要大约22字节(即,等于21.5=172/8)的存储区域。

因此,在WE产生电路56的控制下,由RAM控制器35读取以8位形式存储在RAM38中的数据,并将其存储在触发器52-1至52-26中。在OE产生电路55的控制下,8-1转换电路53将从触发器52-1至52-26输出的8位数据转换成1位数据。所得到的1位数据被提供给EFLG端,该EFLG端是相应于所传送数据串的PI行(或PO列)的ECC内核电路38的错误标记输入端。

当该PO校正和PI2校正被执行时执行删除校正。因为PO校正和PI2校正以一ECC数据块的基本形式被顺序执行,所以图25的电路可由PO校正和PI2校正共享。但是,由OE产生电路55自触发器52-1至52-26读取的数据的时序和自8-1变换电路53读取数据的时序需要在PI2校正和PO校正之间改变。

图26是说明用于产生和读取一内插标记(OUTF)的ECC控制电路36部分的典型构成。如图所示,该内插标记读取电路包括:用于以FIFO方式存储来自RAM 37的8位数据的触发器71-1至71-22;用于将来自触发器71-1至71-22的8位数据转换为1位数据的8-1变换电路72;用于产生OUTF标记(即,内插标记)的OUTF产生电路73;用于控制向触发器71-1至71-22写入数据的WE产生电路75;和用于控制从触发器71-1至71-22读取数据的OE产生电路74。

图26的实施例的操作如下所述。在WE产生电路75的控制下,由RAM控制器35读取的PO标记的8位数据被提供给触发器71-1至71-22,以按8位基本形式存储。然后,在OE产生电路74的控制下,PO标记数据被读取,并由8-1变换电路72从8位数据变换成1位数据。

从RAM 37中读取的8位PI2纠错结果ER和8位扇区信息SI也被提供给OUTF产生电路73。OUTF产生电路73根据PO标记、PI2标记(位7)、纠错计数(位4到0)和自8-1变换电路72提供的PI2纠错结果ER的扇区信息SI的内插标记产生模式(位7)来产生内插标记(OUTF)。将在后面参照图31和32详细说明用于产生内插标记的操作。

应了解的是,在图25和26的优选实施例中,错误标记可存储在除RAM37之外的一存储装置中。在这些优选实施例中,使用了FIFO型存储装置(触发器51-1至52-26和71-1至71-22)。同样应了解的是,也可使用其它类型的存储装置。另外,如果RAM 37是1位宽度,则在ECC控制电路36中可不必使用1-8变换电路50和8-1变换电路53和72。

下面说明ECC内核电路38的操作模式的设置方法和判断数据是否不可校正的方法。

首先,将说明ECC内核电路38的操作模式(纠错模式)。如图27所示,ECC内核电路38具有与操作模式相应的输入端子EUP、EFLG、P、PCYC、X、Y和T,和用于输出与该操作模式相应的信号的端子O.YOVER和O.CODEERR。    

ECC内核电路38的纠错模式可由加到EUP端的信号来改变。即,当加到EUP端的信号为LOW时,仅执行纠错(syndrome correction)(即,普通校正)。当该信号为HIGH时,首先执行删除校正,如果该校正能力具有足够的余量,则接着执行普通校正。

当输入到EFLG端的标记数超过一预定值时,O.YOVER端的输出变成HIGH,因此表明不能执行纠错。应注意的是,如果当EUP端的输出为HIGH时该O.YOVER端的输出变成HIGH(即,选择了删除校正+普通校正模式的状态),则执行普通校正而不表明不可执行的纠错。因此,由于通过普通纠错可使一错误被纠错,所以设置用于一错误标记的数据。

应注意的是,如将后述,ECC控制电路36根据错误数对通过ECC内核电路38的EFLG端(图35和27)输出的EFLG信号(相应于错误标记的信号)的各状态进行转换。

因为ECD包括一空标记(ECD=0),所以ECD全部为0的数据被作为正确数据,因而不对这种数据执行校正。因此,该数据被校正的次数是通过从错误位置ECA或错误图形ECD的输出数中减去空标记ECD数而得到的。

如果在该删除校正模式中出现错误的校正,则ECC内核电路38输出为HIGH的O.CODEERR信号和为LOW的O.YOVER。因此,可通过参考这些信号而确定错误的校正的出现。

例如,如果在PI2校正中删除校正被执行8次并且PO标记的输入数为7,则O.CODEERR被置为HIGH,而O.YOVER被置为LOW。这表明存在未附加标记的一个或多个数据错误。

如果在未设置标记的位置处存在一不可校正的错误,则表明在PO校正中会导致错误的校正。因而,由于在未设置PO标记的位置上出现错误而使OUTF置为1。

O.CODEERR和O.YOVER的信号电平(逻辑电平)被记录在RAM 37中,以作为待用于由ECC控制电路36产生一内插标记的标记。例如,如果执行PI1校正、PO校正和PI2校正,则可以通过如下设置PI2校正的纠错结果ER的校正计数(图21的位4到0)来确定错误的校正。    

(A)如果O.CODEERR=“LOW”和O.YOVER=“LOW”,则校正结果的校正计数是一实际的纠错计数(校正被执行)。

(B)如果O.CODEERR=“HIGH”和O.YOVER=“HIGH”,则该校正结果的校正计数是0(校正未被执行)。

(C)如果O.CODEERR=“HIGH”和O.YOVER=“LOW”,则该校正结果的校正计数是1F(H)(出现错误的校正)。

应当注意的是,1F(H)的设置表示一禁止的校正计数,其最大值可用5位表示。

下面将参照图28和29来详细说明根据ECC内核电路38的输出由ECC控制电路36产生错误标记的方法。

在图28和29中所示的参数(即待提供给ECC内核电路38的端子的信号)为:

输入侧:

P=PI或PO串的奇偶校验数。

PCYC=在每一串中的奇偶校验数的最大值。

X,Y,T=正常时的校正符号数的最大值的两倍值。

输出侧:

O.CODEERR=表明该串是否可校正的信号的输出端(LOW:包括一可校正错误或不包括错误,HIGH:不可校正)。

O.YOVER=当该串的ERROR信号总数(标记输入的数)通过校正能力的限制时变成HIGH的端子。

校正结果:

O=根据O.CODEERR和O.YOVER的输出状态执行的纠错。

X=未执行纠错。

在“X”的情况下,来执行校正,从而这种串的错误标记是HIGH。

如图28所示,当执行PI1校正时,ECC控制电路36将用于输出到ECC内核电路38的EFLG端子的ERROR标记置为LOW。这时,执行普通校正。当执行PO校正时,ECC控制电路36将ERROR标记置为PO标记,并执行删除校正。因此,当ERROR=LOW时,PI标记(如图28所示)变为PI1标记,当ERROR=PO标记时PI标记变为PO标记。

ECC控制电路36将参数P、PCYC、X、Y和T设置为如图28所示。如果从O.CODEERR和O.YOVER端的输出为LOW,则通过ECC控制电路36将PI或PO标记置为LOW。如果从O.CODEERR端的输出为HIGH,而从O.YOVER端的输出为LOW,则ECC控制电路36不执行纠错并且将PI或PO标记置为HIGH。这表明出现了错误的校正。另外,如果从O.CODEERR和O.YOVER端的输出为HIGH,则ECC控制电路不执行纠错并且将PI或PO标记置为HIGH。这表明不能执行纠错。

参见图28,对于该校正能力可将参数X、Y和T置为10。另外,如图28所示,这些参数可置为8。

当如图28所示执行PO校正(删除校正)时,ECC控制电路36将ECC内核电路38的EFLG端的ERROR标记置为PI1标记。然后,如果O.CODEERR和O.YOVER端的输出均为LOW,则ECC控制电路36执行纠错并将PO标记置为LOW(图29)。如果ECC内核电路38的二个输出分别为HIGH和LOW(错误的校正)或为HIGH和HIGH(不可校正),则ECC控制电路36不执行纠错并将PO标记置为HIGH。

图30示出了用于产生内插标记的方法。即,在图30的优选实施例中,可选择以下的方法:[1]一种在PO标记和PI2标记之间作与运算来提供一内插标记的方法;[2]一种在PO标记和PI2标记之间作或运算来提供一内插标记的方法;[3]一种在PO标记和PI2标记之间作与运算来提供一内插标记(如果PI2校正没有引起错误的校正),和在PO标记和PI2标记之间作或运算来产生一内插标记(如果PI2校正引起错误的校正)的方法。

上述三种方法中的两种方法相应于内插标记产生模式设置位(图13中的扇区信息SI的位7)的1和0。因此,根据相应于该扇区信息SI的位7的模式产生一内插标记。

如上所述,通过使用在PO标记和PI2标记之间的与运算或者或运算来产生内插标记,可使用没有错误的数据,而不使用内插。

在上述实施例中,模式选择是根据该扇区信息的位7进行的。应了解的是,模式可由主CPU 40来强行改变。

图31和32中的流程图示出了用于产生内插标记的顺序步骤。在步骤S21中,对于不可执行纠错的一位数据,ECC控制电路36将1位PO标记置为1,反之将PO标记置为0。该标记被存储在RAM 37中。然后,在步骤S22,对于不可执行纠错的数据,ECC控制电路36将PI2标记置为1,反之将PO标记置为0。这个标记也被存储在RAM 37中。

此外,在步骤S23中,表明在PI2校正中是否出现错误的校正的检测结果被存储在RAM 37中。即,如图28中所示,如果在PI2校正(删除校正)中已经出现了错误的校正,则O.CODEERR端输出HIGH信号电平,而O.YOVER端输出LOW信号电平,这样ECC控制电路36读取这些信号的状态并将其存储在RAM 37中。

在步骤S24,OCTL电路39检验扇区的ECD。如果在扇区中未发现错误,则程序继续进行到步骤S25。在步骤S25中,这个扇区的内插标记被置为0。如果该内插标记预先已被置为0并且仅当发现错误时置为1,则在该步骤中不需要特殊的处理。然后,在步骤S26中,该数据与内插标记一起被输出。

即,如图1所示,对于1位主数据输出1位内插标记。在一ECC数据块中,有192×172位主数据,因而有192×172个内插标记。

在步骤S24,如果扇区的ECD的检验表明在该扇区内有一错误,则执行步骤S27中的程序。在步骤S27中,主CPU 40在两者之间进行选择,即(1)再次读取光盘1;和(2)输出具有一内插标记的错误数据。在步骤S28中,在选择项(1)中,主CPU 40再次再现包括该扇区的数据。然后,在该再现数据上执行步骤S21及其后面的处理。

在步骤S27,如果选择项(2)被选择,则执行步骤S29的程序。在步骤S29,在相应于该扇区的所有主数据(12×172字节)的PO标记和PI2标记之间执行与运算,并用判断是否所有与运算的结果为0。在步骤S29,如果在该主数据的PO标记和PI2标记之间的与运算是0,则因为该扇区的ECD的检验已表明这个扇区有错误,所以即使该错误存在也不设置表明错误存在的标记。即,在这种情况下,已在PI1校正、PO校正和PI2校正中执行纠错。因此,在这种情况下,程序进行到步骤S30,此时这个扇区的所有PI行(12)的内插标记被置为1。也就是说,12×172位的内插标记被全部置为1。然后,在步骤S26,主数据与来自OCTL电路39的内插标记一起输出。

在步骤S29,如果判定在所有主数据的PO标记和PI2标记之间的与运算不为0(即,如果在主数据的最后一字节处的PO标记和PI2标记之间的与运算为1),则执行步骤S31的程序。在步骤S31中,判断PI2校正的校正计数是否为1F(H)。即,如参照图25和27所述,如果ECC内核电路38的O.CODEERR端输出HIGH信号电平,并且O.YOVER端输出LOW信号电平,则表明是错误的校正,从而使得高于实际校正能力的预定值(在这种情况下为1F(H))被置为纠错结果ER的校正计数(图21的位4到0)。如果在PI2校正中出现了错误的校正,则该PI2校正的校正值被置为1F。在步骤S31中,如果在第一PI行中PI2校正的校正计数为1F(即,如果在PI2校正中已出现错误的校正),则程序继续进入步骤S32。在步骤S32中,PI行(PI2校正的校正计数被置为1F)的内插标记(1×172位)被置为1。

随后,在步骤S33中,判断包括错误的扇区的所有12PI行是否均已被处理。如果尚未完成对所有PI行的处理,则程序进入步骤S34,此时选择下一个PI行。随后,在步骤S31中,对新的被选择PI行执行与前述相同的处理。

在步骤S33,如果已完成了对这个扇区的所有PI行的处理,则执行在步骤S26中的程序。在步骤S26中,主数据同内插标记一起输出。

在步骤S31中,PI2校正的校正计数不是1F表明一错误,但表明错误的校正。即,在这种情况中,该标记是可靠的,从而程序进入步骤S35,此时PO标记和PI2标记之间的与运算的结果被置为该PI行的主数据的内插标记。

具体地讲,在步骤S32中,PI行的所有内插标记均被置为1。在步骤S35中,因为PO标记和PI2标记是可靠的,所以在这些标记之间的与运算的结果被用作内插标记。如果该内插标记被置为1,则与内插标记一同输出的主数据被插入后面的级中。如果根据步骤S35的处理来设置内插标记,则仅有实际上具有错误的数据被插入,这样一来无错误数据被原样使用。

随后,处理操作从步骤S35转到S33,此时判断是否该扇区的所有的PI行均已被处理。如果至少有一PI行未被处理,则在步骤S34中选择一新的PI行,并随后在步骤S31中对新选择的PI行执行与上述相同的处理。

根据上述的优选实施例,根据按照ECC校正结果而产生的错误标记来执行的删除校正提高了纠错能力。另外,通过根据每个串的错误标记将译码数据随同该译码数据的每一字节的错误标记一起传送到译码设备14和16(图33),允许错误数据的插入。

即,在例如象TOC数据不适于错误插入的数据的情况下,纠错模式可设置成使错误的校正的概率降低。另外,在例如象音频数据和图像数据可被插入的数据的情况下,纠错模式可设置成使得错误不可校正的概率降低和使检错变弱的概率得以抑制。这种设定可以一扇区的形式执行与记录在每一扇区内的数据性质匹配的纠错。    

在本实施例中,在OCTL电路39中执行解扰处理、EDC检验和输出条件判定。应了解的是,还可由其它的电路执行用于根据来自多路数据分离电路8的请求来输出符合输出条件的纠错数据的控制。

还应了解的是,在ECC控制电路36执行PI2校正之前,仅可参照扇区信息的位4和5(图13)对被请求输出的扇区数据执行这种校正。利用环形缓冲器控制电路6的读指针,未被请求输出的数据被通过位4和5跳转。即,当从环形缓冲存储器7(RAM37)将数据传送到OCTL电路39时,如上所述,可利用该读指针仅选择被请求从OCTL电路39输出的数据。

在上述实施例中,在列方向的校正处理(PO校正)被执行一次,而在行方向的校正处理(PI1校正和PI2校正)被执行两次。应了解的是,本发明并不仅限于这种排列,在每一方向上的校正处理可以被执行比上述典型数更多的次数。

根据上述的译码设备和方法,待译码数据被存储,在行和列的方向上对所存储的数据执行纠错,根据在行方向上的纠错结果产生第一标记,和根据在列方向上的纠错结果产生第二标记。这就消除了立即产生内插标记的必要性,因而允许内插标记产生操作以一小于诸如ECC数据块之类的纠错处理单元的单元变化。

另外,根据本发明,内插标记以字节存储,因此降低了用于存储内插标记的存储容量并降低了译码设备的成本。

尽管使用特定的术语对本发明实施例作了描述,但这种描述仅用于说明之用,应当了解的是,在不违背所附权利要求的精神和范围的前提下可作各种变化和改型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号