专利名称:数据读取方法
技术领域:
本发明提供一种用于储存装置的数据读取方法,尤其是提供一种在光电系统中,先将已验证为正确的部分数据另行储存,用以在重新读取数据时可覆写其对应部分以提高所读取数据正确度的数据读取方法。
背景技术:
光盘储存装置(optical disc storage device)近年来一直是广为使用的计算机外设设备,其技术与相关规格也不断有所进展。这其中,数字视频光盘(digital video disc,简称DVD)作为新一代光盘储存规格的主流已是相当明显的趋势,其应用也日趋广泛。在对DVD读取速度要求日益提升的情况下,如何同时加强数据读取的正确性,并兼顾一理想的价格/效能比,就成为非常重要的课题。
以下先对DVD的数据储存方式做个简要说明。首先,DVD以2064个字节组成一数据区段(data sector),其格式如图1所示。图1中,该数据区段包含12列,每一列为172字节长,内容依序包含4字节的ID、2字节的ID错误检测(ID Error Detection,IED)码、6字节的版权处理信息(CopyrightManagement Information,CPR MAI)、2048个字节的主要数据(D0到D2047)以及4字节的错误检测码(Error Detection Code,EDC)。其中,EDC是以循环冗余检查(Cyclic Redundancy Check,CRC)的方式进行编码,用于检测此数据区段的正确性。
其次,为提供数据更好的保护,DVD将16个数据区段,以RSPC(ReedSolomon Product Code)的编码方式,组成一数据区块(data block),如图2所示。图2中,该数据区块包含了16个区段,共192(=12×16)列、172行的数据,再加上由RSPC编码方式所产生的PO与PI。其中,PO为外码同位(outer-code parity)数据,是以每一行为单位逐行产生,长度为16字节;PI为内码同位(inner-code parity)数据,则以包含PO数据在内共208(=192+16)列的每一列为单位逐列产生,长度为10字节。此处整个数据区块(B0,0到B207,181)是作为一错误更正码(error correction code,ECC)区块来处理,PO与PI即是错误更正码,用于数据错误的修正。
在常用的DVD技术中,是采用如图3的结构来进行数据读取。图3中,DVD盘片310上的数据,由读取头311读取后,依序经过模拟信号处理器312、EFMPLUS解调器314的处理,成为列数据315,再由内存控制器320通过列数据接口316将其存入内存321中。当内存321中的数据可构成一ECC数据区块时,RSPC译码器317即经由内存控制器320存取内存321中的数据区块,执行PO与PI数据的译码,进而更正错误的数据。接着,错误检测码处理器318读取该数据区块内的数据区段,并计算每一区段的错误检测码。若错误检测码皆正确,即经由主机接口319将主要数据传送至主机322。因此,在读取一DVD数据区块的过程中,会先进行该数据区块的对应PO与PI数据的译码及错误的更正,再验证每一数据区段的错误检测码,以确保所读取数据的正确性。
若发现16个错误检测码中有任何一个不正确,则有两种常用的处理方法。第一种是利用原已读取的数据区块,重新执行整个译码与验证的过程,直至所有错误检测码皆为正确为止。第二种方法则是从DVD上重新读取该数据区块,再加以译码与验证,若仍有错误则再次重新读取,如此反复进行,直到所有错误检测码皆为正确为止。前述的常用DVD技术有两项主要缺点,一为内存321的存取次数过多;二为其修正数据错误时,是采用重新读取及译码整个数据区块的方式。此二者皆会严重影响DVD的数据读取速率及效能。
中国台湾第88121259号专利,名称为“DVD数据读取装置及方法”,即针对前述常用技术问题提出改进。请参阅图4,其为该专利所提的改良装置的方框图。如图4所示,其主要通过特殊的硬件设计,首先由列数据接口及第一次内码同位译码器416、错误检测码产生器417与列数据缓冲区418进行PI数据的译码,及产生每一数据区段的错误检测码,接着才存至内存421中,如此即避免了前述公知技术于译码PI数据与计算错误检测码时,皆须存取内存所造成的负担。其次,再藉由错误检测码文件422、错误检测码处理器424与RSPC译码器426的设计,于进行PO数据译码及错误更正的同时,利用错误更正结果来修改先前所产生的错误检测码。最后,若所有错误检测码都正确,则将所读取数据经由主机接口428传送给主机430。另外,若错误检测码并非完全正确,而导致需重复读取数据区块时,该专利还提供一种数据读取方法,可将要重读的数据区块中,已验证为正确的数据区段跳过不读,用以提高数据读取的效率。虽然该专利可对前述公知技术的问题加以改进,但就如图4的结构所示,其需要额外的硬件与较复杂的电路结构,于是不仅提高芯片设计的困难度,更增加芯片的面积与成本。
有鉴于此,本发明提出一种数据读取方法,能在沿用图3较简单的结构下,以固件(firmware)的方式达到修正错误数据的目的,同时可提升错误修正的效能。
发明内容
本发明的主要目的,是提供一种数据读取方法,用于一计算机对一储存装置的读取作业。较佳实施例中的储存装置包含多个数据区块,每一数据区块包含多个数据区段,且具有一错误更正码,用以对该数据区块进行错误更正,每一数据区段则包含一错误检测码,用于检测该数据区段的正确性。较佳实施例的方法是利用一特定的存储区块,来储存一数据区块中经验证为正确的数据区段,并于数据区块包含不正确的数据区段,而导致要重读数据区块时,可将先前所储存的正确数据区段覆写过去,如此,可保护先前已验证为正确的数据区段,用以提升正确读取数据的机率。此外,在较佳实施例的实际操作上,可沿用公知的硬件结构,搭配固件的方式来完成,因此不需额外的硬件设计,所以可同时节省制造的成本。为了达到上述目的,本发明提供的在光电系统中,用以在读取到不正确数据时仍可确保数据正确性的数据读取方法,其中包含以下步骤读入一数据区块,其中该数据区块包含多个数据区段,且该数据区块包含至少一个不正确的数据区段;储存该数据区块中的正确数据区段;重新读入该数据区块;及将所储存的该正确数据区段覆写至重新读入的该数据区块的对应位置上。
为了对本发明能有更进一步的了解,现配合附图详述本发明的实施方式如下。
图1是DVD数据区段格式的示意图。
图2是DVD数据区块格式的示意图。
图3是常用的DVD数据读取结构的方框图。
图4是一改良的DVD数据读取结构的方框图。
图5是本发明较佳实施例用于DVD数据读取错误的修正方法的操作流程图。
其中,附图标记说明如下310-盘片311-读取头312-模拟信号处理器 313-EFM数据314-EFMPLUS解调器 315-列数据316-列数据接口 317-RSPC译码器318-错误检测码处理器319-主机接口320-内存控制器 321-内存322-主机410-盘片411-读取头412-模拟信号处理器 413-EFM数据414-EFMPLUS解调器 415-列数据416-列数据接口及第一次内码同位译码器417-错误检测码产生器418-列数据缓冲区420-内存控制器 421-内存422-错误检测码文件 424-错误检测码处理器426-RSPC译码器 428-主机接口430-主机50~57-本发明用于DVD数据读取错误的修正方法的操作流程具体实施方式
以DVD为例,详述本发明的数据读取方法的实施方式。必须强调,本发明的实施并不限于DVD。任何储存装置,若其包含多个数据区块,每一数据区块包含多个数据区段,且具有一错误更正码,用以对整个数据区块进行错误更正,每一数据区段则另包含一错误检测码,用于检测该数据区段的正确性。只要具有如上的数据储存与错误修正方式,本发明都可有效提升正确读取数据的效率。
如前所述,DVD是以2064个字节组成格式如图1的一数据区段,其中包含4字节的错误检测码,用以检测数据区段的正确性。此外,DVD更进一步以RSPC编码方式,将16个数据区段组成如图2所示的一ECC数据区块,其包含由RSPC编码方式所产生的PO与PI数据,用于数据错误的更正。因而,可运用本发明所提供的方法,对读取DVD数据所产生的错误进行修正。
图5为本发明较佳实施例用于DVD数据读取错误的修正方法的操作流程图,其是在图3结构下进行以下的步骤于内存321中提供一特定的存储区块;将盘片310上一新的数据区块读入内存321;利用该新数据区块的PO与PI数据,对新数据区块进行错误更正,并利用新数据区块内各数据区段的错误检测码,检测各数据区段的正确性;判断各数据区段是否皆为正确;若各数据区段皆为正确,则传送该新数据区块至主机322,并回到步骤51;若数据区段并非全部正确,则将正确的数据区段存入该特定存储区块中;重新将该新数据区块读入内存321内同一位置;以及将存入该特定存储区块中的正确数据区段,覆写至内存321中重读的新数据区块的对应位置,再回到步骤52。
应注意的是,因在步骤57中已将正确的数据区段覆写在内存321中,所以当重回步骤52后,可直接跳过这些正确的数据区段(不管重新执行一次的错误检测码是否正确),而专注在发生错误数据区段的处理上,于是能进一步缩短运算的时间。此外,在实际的实施方面,可将上述步骤转换成相对应的固件程序后,即可在图3的硬件结构中执行,而不需如公知技术般,必须增加错误检测码文件422等硬件组件后才能实施。此外,本发明可应用于具读取数据能力的光电系统,诸如只读光驱(CD-ROM drive)、只读式数字视频光驱(DVD-ROM drive)、DVD播放机(DVD player)、DVD-RW碟机等系统中,用以确保所读取数据的正确性;而较佳实施例中的特定的存储区块则可以是内存中的任意区块,只要该区块不会被其它程序所存取,而使储存在其中的内容遭致破坏即可。至于该固件程序的实际内容,则可依据实际的应用来加以修饰,熟悉本发明技术人员当可依据其需求做变更。
以上所述是利用较佳实施例详细说明本发明,而非限制本发明的范围。凡熟知此项技术人员皆能适当作些细微的改变及调整,然而这些依据本发明实施例在不脱离本发明的精神和范围内所作的改变及调整,均应属于本发明的权利要求书所要求保护的范围内。
权利要求
1.一种数据读取方法,其用于在光电系统中在读取到不正确数据时仍可确保数据的正确性,其中包含以下步骤读入一数据区块,其中该数据区块包含多个数据区段,且该数据区块包含至少一个不正确的数据区段;储存该数据区块中的正确数据区段;重新读入该数据区块;及将所储存的该正确数据区段覆写至重新读入的该数据区块的对应位置上。
2.如权利要求1所述的方法,还包含检测每个该数据区段正确性的方法,其中包含下列步骤利用该数据区块的错误更正码以对该数据区块进行错误更正;及利用该数据区块内每个该数据区段的错误检测码以检测每个该数据区段的正确性。
3.如权利要求2所述的方法,还包含重复执行重新读入该数据区块、储存该数据区块中的该正确数据区段、覆写该正确的数据区段、检测每个该数据区段正确性,直到全部该数据区段皆正确为止的步骤。
4.如权利要求1所述的方法,其中该光电系统是只读光驱、只读式数字视频光驱、DVD播放机、或DVD-RW碟机。
5.如权利要求2所述的方法,其中该错误更正码包含以RSPC方式编码的外码同位数据与内码同位数据。
6.如权利要求1所述的方法,其中当所有的该数据区段皆正确后,即传送该正确的数据区块至与该光电系统耦合的主机。
7.如权利要求1所述的方法,其中重新读入该数据区块的步骤,是将该数据区块重新读入该数据区块所占用内存的同一位置上。
8.如权利要求7所述的方法,其中该正确数据区段是储存于该内存的特定位置中。
全文摘要
本发明提供一种数据读取方法,用于一主机对一储存装置的读取操作,该储存装置是用以储存多个数据区块,每一数据区块包含多个数据区段,且具有一错误更正码,用以对该数据区块进行错误更正;每一数据区段则包含一错误检测码,用于检测该数据区段的正确性。该方法利用一特定的存储区块,来储存一数据区块中经验证为正确的数据区段。之后,若因有不正确的数据区段,导致要重读该数据区块时,可利用先前所储存的正确数据区段来覆写该不正确数据区段,除了能保护已验证为正确的数据区段之外,还可提升数据读取的效能。
文档编号G11B7/004GK1514440SQ20031012042
公开日2004年7月21日 申请日期2003年12月11日 优先权日2003年2月10日
发明者郭道宁, 陈庆宇, 朱孟煌, 胡培杰 申请人:威盛电子股份有限公司