错误检测码产生方法和对多个区段产生错误检测码的方法

文档序号:7506386阅读:181来源:国知局
专利名称:错误检测码产生方法和对多个区段产生错误检测码的方法
技术领域
本发明涉及一种错误检测码产生方法,特别是有关于一种产生DVD光盘的错误检测码产生方法。
背景技术
图1、图2及图3表示数据写入至光盘的格式化以及其错误修正程序(error correcting process)。DVD的错误修正程序。
如图1所示,记录在DVD的信息的实体架构包括多个数据区段20。由起始位置开始,一个数据区段20依序包括此数据区段20的起始位置的识别信息(ID)21、用以修正在识别信息21的识别信息错误检测码(IDE)22、储备数据(RSV)23、主数据(DATA)24、被记录的构成数据以及用来检测识别信息21、识别信息错误检测码22、储备数据23以及主数据24错误的错误检测码(EDC)25。被记录的数据包括依序排列的多个数据区段20。
图2表示在藉由多个数据区段(如图所示一个数据区段标示为20)以建立ECC(error correction code)区块30的编码程序。如图所示,当藉由16个数据区段建立一个ECC区块30时,每一个包含ID、IED、RSV、DATA以及EDC总共2064位的数据区段首先被划分成12个数据列并以数组的形式排列,其中,每一个数据列包括172字节(byte)。而第一数据列以ID、IED以及RSV开始,其后接有160字节的数据;而下10个数据列则分别包含有172字节的数据;最后一个数据列则包含有168字节的数据并后接4字节的EDC。
对于每一数据列而言,具有10字节的ECC内码(inner-code Parity,PI)31被加在数据列的末端,以构成一个修正区块34,如图2右侧所示。在此阶段,ECC内码31所加入的修正区块34沿着Y轴方向排列成12列。在这之后,以16个数据区段来重复此程序。因此,可以获得192(=12×16)列的修正区块34。
接下来,沿着Y轴方向,以每一字节来将192列的修正区块34分割,使得修正区块34分别沿着Y轴方向排列。然后,16个ECC外码(outer-codeparity,PO)32被加入每一垂直分割的数据行。这里需注意,ECC内码32也被加入至修正区块34中的部分ECC内码31。
根据上述的程序,产生了包括16个数据区段的ECC区块30,如图2所示。此时,包含在一个ECC区块30内的信息总量,以下列式子表示(172+10)字节×(192+16)列=37856字节其中的数据24由下列式子表示2048字节×16=32768字节在图2的ECC区块30中,由16个数据区段排列成192列,每一列172字节,而此192列每个分别还有10字节的内码PI附加其后,因此形成182行,此外还有另外16列每列16位的外码PO附加其后。因此,形成了一208列每列182字节的ECC区块30。在此ECC区块30中,每一个字节以Bi,j来表示(其中i为列数,j为行数)。例如,B1,0是指示位在第1列及第0行,B190,170是指示位在列190及行170。因此,i从0至207,j从172至181的Bi,j为内码31;而i从192至207,j从0至171的Bi,j为外码32。修正区块34连续地记录于一光盘片中。
ECC区块30包括内码PI 31及外码PO 32,如第1B的右侧所示,图2中沿着X轴方向排列的数据由内码PI 31所修正,且沿着Y轴方向排列的数据由外码32所修正。因此,可以实现沿着ECC区块30内的两轴来执行错误修正。
更具体的说明,例如,假使包括外码31而一共具有182 byte且连续地记录至光盘片的某些修正区块43,因光盘的物理性损伤而被破坏时,以Y轴方向而言,在一行中只有一个与外码32相关的字节数据遗失。因此,藉由使用在每一行的外码32来完成错误修正,既使是一个修正区块34完全地被破坏,也能够正确地由损坏位置来重制信息。
图3是说明实际记录一包含于ECC区块30的数据区段20的方法。在图3中,以Bi,j所指示的数据对应至图2中右侧的数据。在图3中,记录数据区段20的时间上的程序,是藉由编码器来执行。
当记录ECC区块30至一光盘片中时,首先,ECC区块30中的修正区块34沿着X轴方向形成一列,如图3的最上层所示,且ECC区块30接着被分散以分割成16个记录区段40(如图3的第二上层)。此时,一个记录区段40具有2366字节(=37856字节/16),是包含数据区段20、外码PO 31及内码PI 32的总字节。然而,数据区段20内的识别信息21(参阅图1)为在每一记录区段40的起始位置。
记录区段40被划分成多个数据节41且标头H附加于每一数据节41,其中,每一数据节41包括数据及具有91字节。接着,藉由将具有多对数据节41及标头H的记录区段40由8位调制为16位,使得由一个数据节41产生一个同步帧42。此时,一个同步帧42是由标头H’及数据节43所组成(如图3的中层所示)。更进一步地,一个同步帧42的数据量如下式所表示91字节×8×(16/8)=1456字节然后,数据是以连续同步帧42的方式写入光盘。此时,一个纪录区段40包括26个同步帧42。
使用所披露的实体格式以储存至一光盘片,当重制数据时,执行8至16解调器及结合(图3),以有效执行错误修正来重制原本的ECC区块30,以实现正确地重制数据。
如上所述,错误检测码EDC为一4字节的检查码附加于先前2060字节(包括ID、IED、RSV的12个字节的区段数据讯息以及2048字节的主数据(maindata))的数据之后,用以检查区段数据讯息以及主数据是否有错误。若以位(bit)为单位考虑数据区段,则最高有效位MSB(most significant bit)为ID的第一个字节的第一个位,而最低有效位LSB(least significant bit)则为EDC最后一个字节的最后一位。因此MSB即为b16511,而LSB即为b0。而EDC的每一个位即可写成EDC(x)=Σi=310bixi=I(x)mod{g(x)}]]>whereI(x)=Σi=3216511bixi----Eq.(1)]]>g(x)=x32+x31+x4+1图4是表示传统光盘的编码流程。首先,自主机读取2048字节的主数据,并将主数据写入至DRAM中(步骤S1)。接着,产生2字节的识别信息错误检测码(IDE)以修正在4字节的识别信息(ID)的错误(步骤S2)。然后,产生了代表著作权的6字节储备数据(RSV)(步骤S3)。接下来,上述识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV)以及主要数据是储存至DRAM中(步骤S4)。接下来,由DRAM读取上述识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV)以及主数据(步骤S5)。根据上述识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV)以及主数据计算出4字节的错误检测码(EDC)(步骤S6)。
然而,用以产生错误检测码(EDC)的信息,包括识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV)以及主数据,总共为2060字节。因此,在产生错误检测码(EDC)时,大量的数据传送于光驱驱动IC以及数据缓存器(DRAM)之间,造成DRAM频宽的浪费。
因此,使用传统错误检测码(EDC)产生方法的光盘烧录速度将受限于存储缓冲器的频宽。藉由增加内存总线的时脉速度可增加光盘的记录速度,但是却增加了能量消耗。

发明内容
有鉴于此,本发明提供了一种储存数据至光盘的错误检测码产生方法。首先当由主机读取主数据时,根据未知的区段数据讯息(以一取代数据代入未知的区段数据讯息)以及主数据而产生第一错误检测码PEDC。接下来,根据已知的区段数据讯息以及主数据(此时以另一取代数据代入主数据)而产生第二错误检测码MEDC。最后,对于第一错误检测码与第二错误检测码执行逻辑运算以得到最终错误检测码EDC。


图1表示记录数据的数据格式。
图2表示在记录数据中,ECC区块的配置。
图3表示记录数据的实体格式。
图4表示传统DVD编码程序的流程图。
图5表示根据本发明实施例所述的错误检测码产生方法。
附图符号说明20~数据区段;21~识别信息;24~数据;23~储备数据;22~识别信息错误检测码;25~错误检测码;31~内码;
30~ECC区块;32~外码;33~数据区段;34~修正区块;40~记录区段;41~数据节;42~同步帧;43~数据节。
具体实施例方式
有一于2004/02/19已申请的发明名称为“光学记录方法”的申请案为本申请案的相关发明。其中在上述申请案中已披露了一种以较少内存存取次数而产生同位检查码(parity code)的方法。
而在上述的申请案中提供了垂直混编(vertically scrambling)的方法用以在产生PI之前先产生PO,如此,产生所需要ECC区块的内存的存取次数可以大为减少(只需3次),同时内存频宽较先前技术可以被更有效的利用。为了实现上述申请案的目的,本发明提供了一种在产生同位检查码之前产生错误检测码的方法。
图5表示根据本发明实施例所述的错误检测码产生方法。首先,当主数据从主机中被读出时,利用将未知的12字节的区段数据讯息(包括ID、IED以及RSV)以及2048位的主数据代入上述Eq(1)中,以得到第一错误检测码PEDC(步骤510)。其中值得注意的是,当主数据从主机中读出时,此一12字节的区段数据讯息并不知道(因为还不知道主数据会被写到哪一个区块中),因此这12字节未知的区块数据讯号可被视为“0”代入Eq(1)中(亦即数据区段中的b16511-b16416视为“0”)。接着,当主数据被写入一个ECC区块的其中一个数据区段中时,此时将已知的12字节区段数据讯息(包括ID、IED以及RSV)以及2048位的主数据代入上述的Eq(1)中,以得到第二错误检测码MEDC(步骤520)。其中值得注意的是,当主数据写入所要的数据区段时,区段数据讯息可以得到,同时此时2048字节的主数据会被视为”0”代入Eq(1)中(亦即数据区段中的b16415-b32视为“0”)。最后,将第一错误检测码PEDC以及第二错误检测码MEDC执行异或(exclusive-OR)运算以得到真正的错误检测码EDC(步骤530),并将真正的错误检测码EDC写入DRAM中。而错误检测码EDC的表达式如下EDC=PEDCMEDC;Eq.(2)其中“”表示为异或运算。
如上所述,可以发现到因为第一错误检测码PEDC是在当主数据从主机中读取时同时产生的,因此内存的存取次数可减少。此外当计算第二错误检测码MEDC时,只需存取12字节的区段数据讯号即可,也就是说内存存取的频宽使用减少(因为不用存取2048字节的主数据)。
此外,如上所述当计算第一错误检测码PEDC时的12字节区段数据讯息以及当计算第二错误检测码MEDC时的2048字节主数据分别再计算时被视为“0”而代入Eq(1)中,但事实上用任何其它的数值代入也可以,而同时也不限定要用相同的数值代入。如此则EDC的表达式可以改写成EDC=PEDCMEDCC;Eq.(3)其中C表示为一个修正常数,举例来说,当改用“1”代入时,则修正常数C即为使得经过异或运算之后可以得到与用“0”代入相同EDC结果的一个可预期的常数。
在本发明中计算第二错误检测码MEDC时,主数据顺序被一取代数值所代入(例如“0”),亦即总计算时间还是一样。举例来说,假设1字节的计算时间为1T,则产生第二错误检测码MEDC的总计算时间为2060T(包括计算12字节区段数据讯息需要12T以及计算2048字节设定为“0”(假设)的主数据需要2048T)。
因此,为了节省计算的时间,本发明同时提供了另一种计算第二错误检测码MEDC的方法。上面所提到的计算错误检测码所使用的表达式Eq(1)是以位(bit)为单位,将所需要的数据依序1位1位的代入Eq(1)中,因此,同样的当主数据在以“0”代入的情况下,Eq(1)可以改写成一次以2048字节为单位代入的型式,如此一来就可以一次跳过依序计算2048字节的时间,亦即计算第二错误检测码MEDC的时间可以减少。相同地假设计算1字节所需要的时间为1T,如此一来利用此一方法之后,则只需要13T的时间即可以计算出第二错误检测码MEDC(包括计算12字节区段数据讯息需要12T以及利用运算试跳过依序计算2048字节所需1T的时间)。
相较之下,传统错误检测码产生方法必须计算识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV)以及主要数据。因此,大量的数据传送于光驱驱动IC以及数据缓存器(DRAM)之间,造成DRAM频宽的浪费。然而根据本发明所披露的错误检测码产生方法,当由主机存取主数据的同时,根据未知的区段数据讯息(以一取代数据代入)以及主数据产生第一错误检测码PEDC。接下来,当主数据写入数据区段时,再根据区段数据讯息(包括识别信息(ID)、识别信息错误检测码(IDE)、储备数据(RSV))其结果与传统错误检测码产生方法所得的错误检测码相同。
根据本发明实施例所述的错误检测码产生方法的优点在于有效的减少由存储缓存器的数据存取量。根据本发明,于自主机读取主数据时所产生的第一错误检测码时,识别信息(ID)、识别信息错误检测码(IDE)以及储备数据(RSV)等区段数据讯息并不知道。而产生第二错误检测码时,并不需要存取数据缓存器的主数据。再者,最终错误检测码仅需根据分别为4字节的第一错误检测码以及第二错误检测码即可产生,无须存取整个2060字节的数据。
再者,在特定的情况中,当相同的主数据需被重复写入不同数据区段(ID不同)时(例如有关固件的程序)。则因为主数据均相同的关系,因此第一错误检测码PEDC均相同。因此具有相同主要数据的不同数据区段的最终错误检测码可根据个别的第二错误检测码以及单一第一错误检测码而得,因此,有效提升产生错误检测码的运算速度。
本发明虽以较佳实施例披露如上,然其并非用以限定本发明的范围,本领域的技术人员在不脱离本发明的精神和范围的前提下,可做若干的更动与润饰,因此本发明的保护范围视本发明的权利要求为准。
权利要求
1.一种数据区段错误检测码产生方法,其中该数据区段包含有区段数据讯息以及主数据,包括有根据该区段数据讯号以及该主数据产生一第一错误检测码,其中该区段数据讯号以一第一取代数据代入;根据该区段数据讯号产生一第二错误检测码;以及对该第一错误检测码以及该第二修正码以及一修正常数执行一逻辑运算以产生该错误检测码,其中该修正常数由该第一取代数据以及该第二取代数据产生;其中当产生该第二错误检测码时,该主数据以零代入。
2.如权利要求1所述的数据区段错误检测码产生方法,其中当该主数据从一主机读取时,产生该第一错误检测码。
3.如权利要求1所述的数据区段错误检测码产生方法,其中该逻辑运算为异或运算。
4.如权利要求1所述的数据区段错误检测码产生方法,其中提供一表达式用以当计算该第二错误检测码时跳过计算该主数据。
5.如权利要求1所述的数据区段错误检测码产生方法,其中当该第一取代数据以零代入时,则不对该修正常数执行该逻辑运算。
6.一种对多个数据区段分别产生错误检测码的方法,其中该多个数据区段包含有个别的区段数据讯息以及相同的主数据,包括有根据相同的该主数据产生一第一错误检测码,其中该多个数据区段个别的该多个区段数据讯息分别以一对应的第一取代数据代入;根据该多个数据区段的该多个区段数据讯号分别产生对应的第二错误检测码;以及分别对该第一错误检测码以及对应的该第二错误码以及一修正常数执行一逻辑运算,用以分别产生该多个错误检测码;其中当该主数据由一主机中读取时,产生该第一错误检测码。
7.如权利要求6所述的对多个数据区段分别产生错误检测码的方法,其中该逻辑运算为异或运算。
8.如权利要求6所述的对多个数据区段分别产生错误检测码的方法,其中每一个该第二错误检测码的产生只根据对应的该区段数据讯息,并且藉由提供一表达式跳过计算该主数据。
9.如权利要求6所述的对多个数据区段分别产生错误检测码的方法,其中分别根据对应的该区段数据讯息以及该相同的主数据产生该第二错误检测码,且其中该相同的主数据在计算该第二错误检测码时以一第二取代数据取代。
10.如权利要求9所述的对多个数据区段分别产生错误检测码的方法,其中该修正常数由该第一取代数据以及该第二取代数据得到。
11.如权利要求9所述的对多个数据区段分别产生错误检测码的方法,其中当第一取代数据以及该第二取代数据同时为零时,则不对该修正常数执行该逻辑运算。
全文摘要
一种错误检测码产生方法。首先当由主机读取主要数据时,根据一取代数据以及主数据而产生第一错误检测码。接下来,当写入数据区段时产生主数据的区块数据讯息,并根据此一区块数据讯息以及此时主数据用另一取代数据而产生第二错误检测码。最后,对第一错误检测码与第二错误检测码执行逻辑运算以得到最终错误检测码。
文档编号H03M13/09GK1534622SQ20041002839
公开日2004年10月6日 申请日期2004年3月11日 优先权日2003年3月11日
发明者彭炯颖, 陈庆宇 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1