專(zhuān)利名稱(chēng):數(shù)據(jù)讀取方法
技術(shù)領(lǐng)域:
本發(fā)明提供一種用于儲(chǔ)存裝置的數(shù)據(jù)讀取方法,尤其是提供一種在光電系統(tǒng)中,先將已驗(yàn)證為正確的部分?jǐn)?shù)據(jù)另行儲(chǔ)存,用以在重新讀取數(shù)據(jù)時(shí)可覆寫(xiě)其對(duì)應(yīng)部分以提高所讀取數(shù)據(jù)正確度的數(shù)據(jù)讀取方法。
背景技術(shù):
光盤(pán)儲(chǔ)存裝置(optical disc storage device)近年來(lái)一直是廣為使用的計(jì)算機(jī)外設(shè)設(shè)備,其技術(shù)與相關(guān)規(guī)格也不斷有所進(jìn)展。這其中,數(shù)字視頻光盤(pán)(digital video disc,簡(jiǎn)稱(chēng)DVD)作為新一代光盤(pán)儲(chǔ)存規(guī)格的主流已是相當(dāng)明顯的趨勢(shì),其應(yīng)用也日趨廣泛。在對(duì)DVD讀取速度要求日益提升的情況下,如何同時(shí)加強(qiáng)數(shù)據(jù)讀取的正確性,并兼顧一理想的價(jià)格/效能比,就成為非常重要的課題。
以下先對(duì)DVD的數(shù)據(jù)儲(chǔ)存方式做個(gè)簡(jiǎn)要說(shuō)明。首先,DVD以2064個(gè)字節(jié)組成一數(shù)據(jù)區(qū)段(data sector),其格式如圖1所示。圖1中,該數(shù)據(jù)區(qū)段包含12列,每一列為172字節(jié)長(zhǎng),內(nèi)容依序包含4字節(jié)的ID、2字節(jié)的ID錯(cuò)誤檢測(cè)(ID Error Detection,IED)碼、6字節(jié)的版權(quán)處理信息(CopyrightManagement Information,CPR MAI)、2048個(gè)字節(jié)的主要數(shù)據(jù)(D0到D2047)以及4字節(jié)的錯(cuò)誤檢測(cè)碼(Error Detection Code,EDC)。其中,EDC是以循環(huán)冗余檢查(Cyclic Redundancy Check,CRC)的方式進(jìn)行編碼,用于檢測(cè)此數(shù)據(jù)區(qū)段的正確性。
其次,為提供數(shù)據(jù)更好的保護(hù),DVD將16個(gè)數(shù)據(jù)區(qū)段,以RSPC(ReedSolomon Product Code)的編碼方式,組成一數(shù)據(jù)區(qū)塊(data block),如圖2所示。圖2中,該數(shù)據(jù)區(qū)塊包含了16個(gè)區(qū)段,共192(=12×16)列、172行的數(shù)據(jù),再加上由RSPC編碼方式所產(chǎn)生的PO與PI。其中,PO為外碼同位(outer-code parity)數(shù)據(jù),是以每一行為單位逐行產(chǎn)生,長(zhǎng)度為16字節(jié);PI為內(nèi)碼同位(inner-code parity)數(shù)據(jù),則以包含PO數(shù)據(jù)在內(nèi)共208(=192+16)列的每一列為單位逐列產(chǎn)生,長(zhǎng)度為10字節(jié)。此處整個(gè)數(shù)據(jù)區(qū)塊(B0,0到B207,181)是作為一錯(cuò)誤更正碼(error correction code,ECC)區(qū)塊來(lái)處理,PO與PI即是錯(cuò)誤更正碼,用于數(shù)據(jù)錯(cuò)誤的修正。
在常用的DVD技術(shù)中,是采用如圖3的結(jié)構(gòu)來(lái)進(jìn)行數(shù)據(jù)讀取。圖3中,DVD盤(pán)片310上的數(shù)據(jù),由讀取頭311讀取后,依序經(jīng)過(guò)模擬信號(hào)處理器312、EFMPLUS解調(diào)器314的處理,成為列數(shù)據(jù)315,再由內(nèi)存控制器320通過(guò)列數(shù)據(jù)接口316將其存入內(nèi)存321中。當(dāng)內(nèi)存321中的數(shù)據(jù)可構(gòu)成一ECC數(shù)據(jù)區(qū)塊時(shí),RSPC譯碼器317即經(jīng)由內(nèi)存控制器320存取內(nèi)存321中的數(shù)據(jù)區(qū)塊,執(zhí)行PO與PI數(shù)據(jù)的譯碼,進(jìn)而更正錯(cuò)誤的數(shù)據(jù)。接著,錯(cuò)誤檢測(cè)碼處理器318讀取該數(shù)據(jù)區(qū)塊內(nèi)的數(shù)據(jù)區(qū)段,并計(jì)算每一區(qū)段的錯(cuò)誤檢測(cè)碼。若錯(cuò)誤檢測(cè)碼皆正確,即經(jīng)由主機(jī)接口319將主要數(shù)據(jù)傳送至主機(jī)322。因此,在讀取一DVD數(shù)據(jù)區(qū)塊的過(guò)程中,會(huì)先進(jìn)行該數(shù)據(jù)區(qū)塊的對(duì)應(yīng)PO與PI數(shù)據(jù)的譯碼及錯(cuò)誤的更正,再驗(yàn)證每一數(shù)據(jù)區(qū)段的錯(cuò)誤檢測(cè)碼,以確保所讀取數(shù)據(jù)的正確性。
若發(fā)現(xiàn)16個(gè)錯(cuò)誤檢測(cè)碼中有任何一個(gè)不正確,則有兩種常用的處理方法。第一種是利用原已讀取的數(shù)據(jù)區(qū)塊,重新執(zhí)行整個(gè)譯碼與驗(yàn)證的過(guò)程,直至所有錯(cuò)誤檢測(cè)碼皆為正確為止。第二種方法則是從DVD上重新讀取該數(shù)據(jù)區(qū)塊,再加以譯碼與驗(yàn)證,若仍有錯(cuò)誤則再次重新讀取,如此反復(fù)進(jìn)行,直到所有錯(cuò)誤檢測(cè)碼皆為正確為止。前述的常用DVD技術(shù)有兩項(xiàng)主要缺點(diǎn),一為內(nèi)存321的存取次數(shù)過(guò)多;二為其修正數(shù)據(jù)錯(cuò)誤時(shí),是采用重新讀取及譯碼整個(gè)數(shù)據(jù)區(qū)塊的方式。此二者皆會(huì)嚴(yán)重影響DVD的數(shù)據(jù)讀取速率及效能。
中國(guó)臺(tái)灣第88121259號(hào)專(zhuān)利,名稱(chēng)為“DVD數(shù)據(jù)讀取裝置及方法”,即針對(duì)前述常用技術(shù)問(wèn)題提出改進(jìn)。請(qǐng)參閱圖4,其為該專(zhuān)利所提的改良裝置的方框圖。如圖4所示,其主要通過(guò)特殊的硬件設(shè)計(jì),首先由列數(shù)據(jù)接口及第一次內(nèi)碼同位譯碼器416、錯(cuò)誤檢測(cè)碼產(chǎn)生器417與列數(shù)據(jù)緩沖區(qū)418進(jìn)行PI數(shù)據(jù)的譯碼,及產(chǎn)生每一數(shù)據(jù)區(qū)段的錯(cuò)誤檢測(cè)碼,接著才存至內(nèi)存421中,如此即避免了前述公知技術(shù)于譯碼PI數(shù)據(jù)與計(jì)算錯(cuò)誤檢測(cè)碼時(shí),皆須存取內(nèi)存所造成的負(fù)擔(dān)。其次,再藉由錯(cuò)誤檢測(cè)碼文件422、錯(cuò)誤檢測(cè)碼處理器424與RSPC譯碼器426的設(shè)計(jì),于進(jìn)行PO數(shù)據(jù)譯碼及錯(cuò)誤更正的同時(shí),利用錯(cuò)誤更正結(jié)果來(lái)修改先前所產(chǎn)生的錯(cuò)誤檢測(cè)碼。最后,若所有錯(cuò)誤檢測(cè)碼都正確,則將所讀取數(shù)據(jù)經(jīng)由主機(jī)接口428傳送給主機(jī)430。另外,若錯(cuò)誤檢測(cè)碼并非完全正確,而導(dǎo)致需重復(fù)讀取數(shù)據(jù)區(qū)塊時(shí),該專(zhuān)利還提供一種數(shù)據(jù)讀取方法,可將要重讀的數(shù)據(jù)區(qū)塊中,已驗(yàn)證為正確的數(shù)據(jù)區(qū)段跳過(guò)不讀,用以提高數(shù)據(jù)讀取的效率。雖然該專(zhuān)利可對(duì)前述公知技術(shù)的問(wèn)題加以改進(jìn),但就如圖4的結(jié)構(gòu)所示,其需要額外的硬件與較復(fù)雜的電路結(jié)構(gòu),于是不僅提高芯片設(shè)計(jì)的困難度,更增加芯片的面積與成本。
有鑒于此,本發(fā)明提出一種數(shù)據(jù)讀取方法,能在沿用圖3較簡(jiǎn)單的結(jié)構(gòu)下,以固件(firmware)的方式達(dá)到修正錯(cuò)誤數(shù)據(jù)的目的,同時(shí)可提升錯(cuò)誤修正的效能。
發(fā)明內(nèi)容
本發(fā)明的主要目的,是提供一種數(shù)據(jù)讀取方法,用于一計(jì)算機(jī)對(duì)一儲(chǔ)存裝置的讀取作業(yè)。較佳實(shí)施例中的儲(chǔ)存裝置包含多個(gè)數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包含多個(gè)數(shù)據(jù)區(qū)段,且具有一錯(cuò)誤更正碼,用以對(duì)該數(shù)據(jù)區(qū)塊進(jìn)行錯(cuò)誤更正,每一數(shù)據(jù)區(qū)段則包含一錯(cuò)誤檢測(cè)碼,用于檢測(cè)該數(shù)據(jù)區(qū)段的正確性。較佳實(shí)施例的方法是利用一特定的存儲(chǔ)區(qū)塊,來(lái)儲(chǔ)存一數(shù)據(jù)區(qū)塊中經(jīng)驗(yàn)證為正確的數(shù)據(jù)區(qū)段,并于數(shù)據(jù)區(qū)塊包含不正確的數(shù)據(jù)區(qū)段,而導(dǎo)致要重讀數(shù)據(jù)區(qū)塊時(shí),可將先前所儲(chǔ)存的正確數(shù)據(jù)區(qū)段覆寫(xiě)過(guò)去,如此,可保護(hù)先前已驗(yàn)證為正確的數(shù)據(jù)區(qū)段,用以提升正確讀取數(shù)據(jù)的機(jī)率。此外,在較佳實(shí)施例的實(shí)際操作上,可沿用公知的硬件結(jié)構(gòu),搭配固件的方式來(lái)完成,因此不需額外的硬件設(shè)計(jì),所以可同時(shí)節(jié)省制造的成本。為了達(dá)到上述目的,本發(fā)明提供的在光電系統(tǒng)中,用以在讀取到不正確數(shù)據(jù)時(shí)仍可確保數(shù)據(jù)正確性的數(shù)據(jù)讀取方法,其中包含以下步驟讀入一數(shù)據(jù)區(qū)塊,其中該數(shù)據(jù)區(qū)塊包含多個(gè)數(shù)據(jù)區(qū)段,且該數(shù)據(jù)區(qū)塊包含至少一個(gè)不正確的數(shù)據(jù)區(qū)段;儲(chǔ)存該數(shù)據(jù)區(qū)塊中的正確數(shù)據(jù)區(qū)段;重新讀入該數(shù)據(jù)區(qū)塊;及將所儲(chǔ)存的該正確數(shù)據(jù)區(qū)段覆寫(xiě)至重新讀入的該數(shù)據(jù)區(qū)塊的對(duì)應(yīng)位置上。
為了對(duì)本發(fā)明能有更進(jìn)一步的了解,現(xiàn)配合附圖詳述本發(fā)明的實(shí)施方式如下。
圖1是DVD數(shù)據(jù)區(qū)段格式的示意圖。
圖2是DVD數(shù)據(jù)區(qū)塊格式的示意圖。
圖3是常用的DVD數(shù)據(jù)讀取結(jié)構(gòu)的方框圖。
圖4是一改良的DVD數(shù)據(jù)讀取結(jié)構(gòu)的方框圖。
圖5是本發(fā)明較佳實(shí)施例用于DVD數(shù)據(jù)讀取錯(cuò)誤的修正方法的操作流程圖。
其中,附圖標(biāo)記說(shuō)明如下310-盤(pán)片311-讀取頭312-模擬信號(hào)處理器 313-EFM數(shù)據(jù)314-EFMPLUS解調(diào)器 315-列數(shù)據(jù)316-列數(shù)據(jù)接口 317-RSPC譯碼器318-錯(cuò)誤檢測(cè)碼處理器319-主機(jī)接口320-內(nèi)存控制器 321-內(nèi)存322-主機(jī)410-盤(pán)片411-讀取頭412-模擬信號(hào)處理器 413-EFM數(shù)據(jù)414-EFMPLUS解調(diào)器 415-列數(shù)據(jù)416-列數(shù)據(jù)接口及第一次內(nèi)碼同位譯碼器417-錯(cuò)誤檢測(cè)碼產(chǎn)生器418-列數(shù)據(jù)緩沖區(qū)420-內(nèi)存控制器 421-內(nèi)存422-錯(cuò)誤檢測(cè)碼文件 424-錯(cuò)誤檢測(cè)碼處理器426-RSPC譯碼器 428-主機(jī)接口430-主機(jī)50~57-本發(fā)明用于DVD數(shù)據(jù)讀取錯(cuò)誤的修正方法的操作流程具體實(shí)施方式
以DVD為例,詳述本發(fā)明的數(shù)據(jù)讀取方法的實(shí)施方式。必須強(qiáng)調(diào),本發(fā)明的實(shí)施并不限于DVD。任何儲(chǔ)存裝置,若其包含多個(gè)數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包含多個(gè)數(shù)據(jù)區(qū)段,且具有一錯(cuò)誤更正碼,用以對(duì)整個(gè)數(shù)據(jù)區(qū)塊進(jìn)行錯(cuò)誤更正,每一數(shù)據(jù)區(qū)段則另包含一錯(cuò)誤檢測(cè)碼,用于檢測(cè)該數(shù)據(jù)區(qū)段的正確性。只要具有如上的數(shù)據(jù)儲(chǔ)存與錯(cuò)誤修正方式,本發(fā)明都可有效提升正確讀取數(shù)據(jù)的效率。
如前所述,DVD是以2064個(gè)字節(jié)組成格式如圖1的一數(shù)據(jù)區(qū)段,其中包含4字節(jié)的錯(cuò)誤檢測(cè)碼,用以檢測(cè)數(shù)據(jù)區(qū)段的正確性。此外,DVD更進(jìn)一步以RSPC編碼方式,將16個(gè)數(shù)據(jù)區(qū)段組成如圖2所示的一ECC數(shù)據(jù)區(qū)塊,其包含由RSPC編碼方式所產(chǎn)生的PO與PI數(shù)據(jù),用于數(shù)據(jù)錯(cuò)誤的更正。因而,可運(yùn)用本發(fā)明所提供的方法,對(duì)讀取DVD數(shù)據(jù)所產(chǎn)生的錯(cuò)誤進(jìn)行修正。
圖5為本發(fā)明較佳實(shí)施例用于DVD數(shù)據(jù)讀取錯(cuò)誤的修正方法的操作流程圖,其是在圖3結(jié)構(gòu)下進(jìn)行以下的步驟于內(nèi)存321中提供一特定的存儲(chǔ)區(qū)塊;將盤(pán)片310上一新的數(shù)據(jù)區(qū)塊讀入內(nèi)存321;利用該新數(shù)據(jù)區(qū)塊的PO與PI數(shù)據(jù),對(duì)新數(shù)據(jù)區(qū)塊進(jìn)行錯(cuò)誤更正,并利用新數(shù)據(jù)區(qū)塊內(nèi)各數(shù)據(jù)區(qū)段的錯(cuò)誤檢測(cè)碼,檢測(cè)各數(shù)據(jù)區(qū)段的正確性;判斷各數(shù)據(jù)區(qū)段是否皆為正確;若各數(shù)據(jù)區(qū)段皆為正確,則傳送該新數(shù)據(jù)區(qū)塊至主機(jī)322,并回到步驟51;若數(shù)據(jù)區(qū)段并非全部正確,則將正確的數(shù)據(jù)區(qū)段存入該特定存儲(chǔ)區(qū)塊中;重新將該新數(shù)據(jù)區(qū)塊讀入內(nèi)存321內(nèi)同一位置;以及將存入該特定存儲(chǔ)區(qū)塊中的正確數(shù)據(jù)區(qū)段,覆寫(xiě)至內(nèi)存321中重讀的新數(shù)據(jù)區(qū)塊的對(duì)應(yīng)位置,再回到步驟52。
應(yīng)注意的是,因在步驟57中已將正確的數(shù)據(jù)區(qū)段覆寫(xiě)在內(nèi)存321中,所以當(dāng)重回步驟52后,可直接跳過(guò)這些正確的數(shù)據(jù)區(qū)段(不管重新執(zhí)行一次的錯(cuò)誤檢測(cè)碼是否正確),而專(zhuān)注在發(fā)生錯(cuò)誤數(shù)據(jù)區(qū)段的處理上,于是能進(jìn)一步縮短運(yùn)算的時(shí)間。此外,在實(shí)際的實(shí)施方面,可將上述步驟轉(zhuǎn)換成相對(duì)應(yīng)的固件程序后,即可在圖3的硬件結(jié)構(gòu)中執(zhí)行,而不需如公知技術(shù)般,必須增加錯(cuò)誤檢測(cè)碼文件422等硬件組件后才能實(shí)施。此外,本發(fā)明可應(yīng)用于具讀取數(shù)據(jù)能力的光電系統(tǒng),諸如只讀光驅(qū)(CD-ROM drive)、只讀式數(shù)字視頻光驅(qū)(DVD-ROM drive)、DVD播放機(jī)(DVD player)、DVD-RW碟機(jī)等系統(tǒng)中,用以確保所讀取數(shù)據(jù)的正確性;而較佳實(shí)施例中的特定的存儲(chǔ)區(qū)塊則可以是內(nèi)存中的任意區(qū)塊,只要該區(qū)塊不會(huì)被其它程序所存取,而使儲(chǔ)存在其中的內(nèi)容遭致破壞即可。至于該固件程序的實(shí)際內(nèi)容,則可依據(jù)實(shí)際的應(yīng)用來(lái)加以修飾,熟悉本發(fā)明技術(shù)人員當(dāng)可依據(jù)其需求做變更。
以上所述是利用較佳實(shí)施例詳細(xì)說(shuō)明本發(fā)明,而非限制本發(fā)明的范圍。凡熟知此項(xiàng)技術(shù)人員皆能適當(dāng)作些細(xì)微的改變及調(diào)整,然而這些依據(jù)本發(fā)明實(shí)施例在不脫離本發(fā)明的精神和范圍內(nèi)所作的改變及調(diào)整,均應(yīng)屬于本發(fā)明的權(quán)利要求書(shū)所要求保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)讀取方法,其用于在光電系統(tǒng)中在讀取到不正確數(shù)據(jù)時(shí)仍可確保數(shù)據(jù)的正確性,其中包含以下步驟讀入一數(shù)據(jù)區(qū)塊,其中該數(shù)據(jù)區(qū)塊包含多個(gè)數(shù)據(jù)區(qū)段,且該數(shù)據(jù)區(qū)塊包含至少一個(gè)不正確的數(shù)據(jù)區(qū)段;儲(chǔ)存該數(shù)據(jù)區(qū)塊中的正確數(shù)據(jù)區(qū)段;重新讀入該數(shù)據(jù)區(qū)塊;及將所儲(chǔ)存的該正確數(shù)據(jù)區(qū)段覆寫(xiě)至重新讀入的該數(shù)據(jù)區(qū)塊的對(duì)應(yīng)位置上。
2.如權(quán)利要求1所述的方法,還包含檢測(cè)每個(gè)該數(shù)據(jù)區(qū)段正確性的方法,其中包含下列步驟利用該數(shù)據(jù)區(qū)塊的錯(cuò)誤更正碼以對(duì)該數(shù)據(jù)區(qū)塊進(jìn)行錯(cuò)誤更正;及利用該數(shù)據(jù)區(qū)塊內(nèi)每個(gè)該數(shù)據(jù)區(qū)段的錯(cuò)誤檢測(cè)碼以檢測(cè)每個(gè)該數(shù)據(jù)區(qū)段的正確性。
3.如權(quán)利要求2所述的方法,還包含重復(fù)執(zhí)行重新讀入該數(shù)據(jù)區(qū)塊、儲(chǔ)存該數(shù)據(jù)區(qū)塊中的該正確數(shù)據(jù)區(qū)段、覆寫(xiě)該正確的數(shù)據(jù)區(qū)段、檢測(cè)每個(gè)該數(shù)據(jù)區(qū)段正確性,直到全部該數(shù)據(jù)區(qū)段皆正確為止的步驟。
4.如權(quán)利要求1所述的方法,其中該光電系統(tǒng)是只讀光驅(qū)、只讀式數(shù)字視頻光驅(qū)、DVD播放機(jī)、或DVD-RW碟機(jī)。
5.如權(quán)利要求2所述的方法,其中該錯(cuò)誤更正碼包含以RSPC方式編碼的外碼同位數(shù)據(jù)與內(nèi)碼同位數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其中當(dāng)所有的該數(shù)據(jù)區(qū)段皆正確后,即傳送該正確的數(shù)據(jù)區(qū)塊至與該光電系統(tǒng)耦合的主機(jī)。
7.如權(quán)利要求1所述的方法,其中重新讀入該數(shù)據(jù)區(qū)塊的步驟,是將該數(shù)據(jù)區(qū)塊重新讀入該數(shù)據(jù)區(qū)塊所占用內(nèi)存的同一位置上。
8.如權(quán)利要求7所述的方法,其中該正確數(shù)據(jù)區(qū)段是儲(chǔ)存于該內(nèi)存的特定位置中。
全文摘要
本發(fā)明提供一種數(shù)據(jù)讀取方法,用于一主機(jī)對(duì)一儲(chǔ)存裝置的讀取操作,該儲(chǔ)存裝置是用以?xún)?chǔ)存多個(gè)數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包含多個(gè)數(shù)據(jù)區(qū)段,且具有一錯(cuò)誤更正碼,用以對(duì)該數(shù)據(jù)區(qū)塊進(jìn)行錯(cuò)誤更正;每一數(shù)據(jù)區(qū)段則包含一錯(cuò)誤檢測(cè)碼,用于檢測(cè)該數(shù)據(jù)區(qū)段的正確性。該方法利用一特定的存儲(chǔ)區(qū)塊,來(lái)儲(chǔ)存一數(shù)據(jù)區(qū)塊中經(jīng)驗(yàn)證為正確的數(shù)據(jù)區(qū)段。之后,若因有不正確的數(shù)據(jù)區(qū)段,導(dǎo)致要重讀該數(shù)據(jù)區(qū)塊時(shí),可利用先前所儲(chǔ)存的正確數(shù)據(jù)區(qū)段來(lái)覆寫(xiě)該不正確數(shù)據(jù)區(qū)段,除了能保護(hù)已驗(yàn)證為正確的數(shù)據(jù)區(qū)段之外,還可提升數(shù)據(jù)讀取的效能。
文檔編號(hào)G11B7/004GK1514440SQ20031012042
公開(kāi)日2004年7月21日 申請(qǐng)日期2003年12月11日 優(yōu)先權(quán)日2003年2月10日
發(fā)明者郭道寧, 陳慶宇, 朱孟煌, 胡培杰 申請(qǐng)人:威盛電子股份有限公司