亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

損壞光盤片上數(shù)據(jù)存取的方法

文檔序號:6740503閱讀:261來源:國知局

專利名稱::損壞光盤片上數(shù)據(jù)存取的方法
技術(shù)領(lǐng)域
:本發(fā)明提供一種光盤機(jī)在進(jìn)行光盤片數(shù)據(jù)讀取/寫入時進(jìn)行損壞管理的方法,尤指一種以預(yù)讀的多個備用封裝區(qū)作為高速緩存以減少光盤機(jī)尋軌移動的光盤片讀取/寫入方法。
背景技術(shù)
:光盤片以其低廉的價格、輕巧的體積與重量,卻能儲存大量的數(shù)據(jù)數(shù)據(jù),已成為現(xiàn)代資訊社會使用最普遍的數(shù)據(jù)儲存媒體之一。尤其是可寫入式光盤片的研發(fā),讓使用者能按照個人的需要將個人專屬的數(shù)據(jù)寫入至光盤片中,也使光盤片成為最重要的可攜式個人儲存媒體之一。如何使光盤片數(shù)據(jù)存取更可靠、效率更高,也成為現(xiàn)代資訊產(chǎn)業(yè)研發(fā)的重點(diǎn)。光盤片上的數(shù)據(jù)要以光盤機(jī)來存取。請參考圖1。圖1為一現(xiàn)有光盤機(jī)10用來存取一光盤片22的功能方塊圖。光盤機(jī)10中設(shè)有一承載臺14、一用來帶動承載臺轉(zhuǎn)動的馬達(dá)12、一用來存取光盤片數(shù)據(jù)的讀取頭16、用來控制光盤機(jī)10操作的控制電路18以及一存儲體20(譬如說是易失性的隨機(jī)存取存儲體),用來暫存控制電路18運(yùn)作期間所需的數(shù)據(jù)。光盤片22上則設(shè)有用來記錄數(shù)據(jù)的軌跡24。當(dāng)光盤片22放置于承載臺14后,馬達(dá)12就能帶動光盤片22轉(zhuǎn)動,而光盤片22上的軌跡24就會隨著光盤片轉(zhuǎn)動而掠過讀取頭16前,控制電路18就可透過讀取頭16存取軌跡24上的數(shù)據(jù)了。至于控制電路18本身,則是根據(jù)一主機(jī)(host)26的控制以存取光盤片22上的數(shù)據(jù)。主機(jī)26可以是個人電腦等的電腦系統(tǒng)。為了使光盤片記錄數(shù)據(jù)的功能更為可靠耐用,在較為進(jìn)步的光盤片規(guī)格中,都已設(shè)定一定的損壞管理機(jī)制。最普遍的方式之一,就是在光盤片上劃定出部分的備用記錄區(qū)域,當(dāng)光盤片上有損壞而不能記錄數(shù)據(jù)的部分,原先要記錄于該損壞部分的數(shù)據(jù),就轉(zhuǎn)而記錄在備用記錄區(qū)域中,以使光盤片記錄數(shù)據(jù)的功能不受損壞部分的影響。請參考圖2A及圖2B。圖2A與圖2B分別為兩種不同光盤片規(guī)格下,備用記錄區(qū)域與一般記錄區(qū)域配置的示意圖;其中圖2A為CD-MRW(CompactDisk-MountRainierreWritable)規(guī)格下的配置,圖2B則是DVD(DigitalVersatileDisk)+MRW規(guī)格下的配置。在圖2A中,光盤片22上用來記錄數(shù)據(jù)的軌跡(track)24,被劃分為數(shù)個大區(qū)段,分別是引入?yún)^(qū)(Lead-InArea)LI、程劃區(qū)(ProgramArea)PA及引出區(qū)(Lead-OutArea)LO。引入?yún)^(qū)LI、引出區(qū)LO分別用來標(biāo)示軌跡24的開端與結(jié)尾;程劃區(qū)PA則用來記錄數(shù)據(jù)。引入?yún)^(qū)LI中還劃分出一個區(qū)域作為主表格區(qū)(MainTableArea)MTA,用來儲存一損壞記錄表(DefectTable)DT。程劃區(qū)PA中也另外細(xì)分出前閘區(qū)(pre-gap)P0、一般應(yīng)用區(qū)(GeneralApplicationArea)GAA、用來儲存損壞記錄表備份的次表格區(qū)(SecondaryTableArea)STA,另外還有多個數(shù)據(jù)區(qū)域(DataArea)DA及多個備用區(qū)域(SpareArea)SA。在圖2A中,不同的數(shù)據(jù)區(qū)域DA分別標(biāo)示為DA(1)、DA(2)…至DA(N);配合各數(shù)據(jù)區(qū)域DA,程劃區(qū)PA中也設(shè)有多個與各數(shù)據(jù)區(qū)域DA對應(yīng)的備用區(qū)域SA,不同的備用區(qū)域SA分別標(biāo)示為SA(1)、SA(2)…至SA(N)。而各數(shù)據(jù)區(qū)域DA中又更進(jìn)一步劃分出預(yù)設(shè)多個封裝區(qū)(packet)Pd,各封裝區(qū)(或稱數(shù)據(jù)封裝區(qū))Pd中又設(shè)有多個數(shù)據(jù)區(qū)塊(userdatablock)Bd;各數(shù)據(jù)區(qū)塊Bd用來記錄一批數(shù)據(jù)。同樣地,各備用區(qū)域SA(n)中也進(jìn)一步劃分出預(yù)設(shè)多個封裝區(qū)Ps,各封裝區(qū)(或稱備用封裝區(qū))Ps中設(shè)有多個備用區(qū)塊(sparedatablock)Bs。不論是數(shù)據(jù)區(qū)塊Bd或是備用區(qū)塊Bs,都是數(shù)據(jù)容量相同、可寫入數(shù)據(jù)的區(qū)塊。舉例來說,在CD-MRW規(guī)格之下,一個數(shù)據(jù)區(qū)域DA中有136個封裝區(qū)Pd,每一封裝區(qū)Pd中有32個使用者數(shù)據(jù)區(qū)塊Bd;而一個備用區(qū)域SA中具有8個封裝區(qū)Ps、各封裝區(qū)Ps中有32個備用區(qū)塊Bs。每個使用者數(shù)據(jù)區(qū)塊Bd及備用區(qū)塊Bs,都是用來記錄2k(kilo)位字節(jié)的數(shù)據(jù)。如圖2A中所示意的,軌跡24隨光盤片22轉(zhuǎn)動而掠過讀取頭16時,相對而言,讀取頭16也會依序經(jīng)過軌跡24上的各個區(qū)塊(包括數(shù)據(jù)區(qū)塊以及備用區(qū)塊)。舉例來說,當(dāng)讀取頭16沿圖2A中的箭頭A1掠過軌跡24時,會先經(jīng)過備用區(qū)域SA(1)的各個備用區(qū)塊,再依序經(jīng)過數(shù)據(jù)區(qū)域DA(1)的各個數(shù)據(jù)區(qū)塊,接下來則又會經(jīng)過另一個備用區(qū)域SA(2),等等。根據(jù)相似的配置原則,在圖2B的DVD+MRW的規(guī)格中,軌跡24上也設(shè)置有一標(biāo)示軌跡開始的引入?yún)^(qū)L12、一記錄數(shù)據(jù)的數(shù)據(jù)區(qū)間(datazone)DZ以及一標(biāo)示軌跡結(jié)束的引出區(qū)LO2。引入?yún)^(qū)L12中有一主表格區(qū)MTA2,用來儲存一損壞記錄表。數(shù)據(jù)區(qū)域DZ中又劃分出一般應(yīng)用區(qū)(GeneralApplicationArea)GAA2、用來儲存損壞記錄表備份的次表格區(qū)(SecondaryTableArea)STA2,以及使用者數(shù)據(jù)區(qū)域(UserDataArea)UDA及兩個備用區(qū)域(SpareArea)SA1、SA2。同樣地,使用者數(shù)據(jù)區(qū)域UDA中設(shè)有多個數(shù)據(jù)區(qū)塊Bd0(譬如說是139218個ECC區(qū)塊),備用區(qū)域SA1、SA2中也分別設(shè)有多個備用區(qū)塊Bs0(譬如說,分別有256及3840個ECC區(qū)塊)。不論光盤片22是采用圖2A或圖2B中的數(shù)據(jù)格式,其損壞管理的基本原理皆相同。當(dāng)光盤機(jī)10要將主機(jī)26(見圖1)傳來的數(shù)據(jù)寫入至光盤片22時,會優(yōu)先將數(shù)據(jù)寫入至軌跡24的數(shù)據(jù)區(qū)塊中;若是遭遇到損壞而無法正確記錄數(shù)據(jù)的數(shù)據(jù)區(qū)塊,就要在軌跡24上找到一替代的備用區(qū)塊,并將原本要寫入損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù),改寫入至該替代的備用區(qū)塊。在實際運(yùn)作時,各個備用區(qū)塊及數(shù)據(jù)區(qū)塊都有各自的地址(象是PBN,PhysicalBlockNumber),一損壞數(shù)據(jù)區(qū)塊和用來代替該損壞數(shù)據(jù)區(qū)塊的對應(yīng)備用區(qū)塊,其兩者的地址及對應(yīng)關(guān)系都會被記錄在光盤片22的損壞記錄表中。等到光盤機(jī)10要讀取該光盤片上數(shù)據(jù)時,一旦讀取至損壞的數(shù)據(jù)區(qū)塊,光盤機(jī)10就可根據(jù)損壞記錄表的記載,找出對應(yīng)該損壞數(shù)據(jù)區(qū)塊的替代備用區(qū)塊,并讀出該備用區(qū)塊中記錄的數(shù)據(jù)。根據(jù)上述的運(yùn)作原理,即使光盤片22上有部分損壞(譬如說是刮痕或微塵所造成的),都能通過備用區(qū)塊的設(shè)置與利用,實現(xiàn)損壞管理,維持光盤片22記錄數(shù)據(jù)的功能。以下即以CD-MRW規(guī)格下的寫入流程為例,來說明現(xiàn)有技術(shù)的實施方法。請參考圖3(并一并參考圖1)。圖3為一現(xiàn)有的光盤片數(shù)據(jù)寫入流程100的流程圖。要實際執(zhí)行前述的損壞管理機(jī)制,現(xiàn)有的光盤片寫入流程100設(shè)有下列步驟步驟102開始流程100。步驟104光盤機(jī)10由主機(jī)26接收數(shù)據(jù)寫入的指令,準(zhǔn)備要將主機(jī)26傳來的數(shù)據(jù)寫入至光盤片22。使用者可控制主機(jī)26將使用者指定的數(shù)據(jù)寫入至光盤片22中,主機(jī)26便會要求光盤機(jī)10開始進(jìn)行光盤片的數(shù)據(jù)寫入動作。由主機(jī)26傳來的數(shù)據(jù)會先暫存于存儲體20中。步驟106在光盤片的數(shù)據(jù)寫入過程中是否遭遇到損壞的數(shù)據(jù)區(qū)塊。若遭遇到損壞的數(shù)據(jù)區(qū)塊,就要進(jìn)行至步驟108;若寫入過程尚未遭遇到損壞數(shù)據(jù)區(qū)塊,就可進(jìn)行至步驟112。在實際實施時,光盤機(jī)10是以封裝區(qū)為單位,一次數(shù)據(jù)寫入至一封裝區(qū)中所有的數(shù)據(jù)區(qū)塊。在寫入流程中,主機(jī)26會控制光盤機(jī)10將數(shù)據(jù)寫入至數(shù)據(jù)區(qū)域中的哪一個封裝區(qū);而光盤機(jī)10也可藉由讀取頭16的偵測分析出寫入過程已進(jìn)行至哪一個封裝區(qū),并根據(jù)光盤片上的損壞記錄表知悉是否會在該封裝區(qū)中遭遇到損壞數(shù)據(jù)區(qū)塊。步驟108在現(xiàn)有技術(shù)中,一旦遭遇損壞數(shù)據(jù)區(qū)塊后,就要先中止原先的數(shù)據(jù)寫入,將原本要寫入至損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù),寫入至另一個替代的備用區(qū)塊。根據(jù)損壞記錄表,光盤機(jī)10可找出該損壞數(shù)據(jù)區(qū)塊對應(yīng)備用區(qū)塊的地址,并使讀取頭16尋軌移動至該替代備用區(qū)塊的位置,準(zhǔn)備將數(shù)據(jù)寫入至該備用區(qū)塊。由于光盤機(jī)10將數(shù)據(jù)寫入光盤片時,一次就要寫入一個封裝區(qū);要將對應(yīng)該損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù)寫入至該備用區(qū)塊,光盤機(jī)10要先將該備用區(qū)塊所屬封裝區(qū)的其他備用區(qū)塊的數(shù)據(jù)讀入至存儲體20,而后光盤機(jī)10的控制電路18會將要寫入至該備用區(qū)塊的數(shù)據(jù)加入該已讀入至存儲體的封裝區(qū)。步驟110將該備用區(qū)塊所屬封裝區(qū)的數(shù)據(jù)由存儲體20中回寫至光盤片22,這樣就能將原先要寫入至損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù)改寫至備用區(qū)塊,維持光盤片22記錄數(shù)據(jù)的功能。步驟112繼續(xù)進(jìn)行正常的數(shù)據(jù)寫入;也就是將數(shù)據(jù)寫入至主機(jī)26所指定的數(shù)據(jù)區(qū)塊。若是由步驟110進(jìn)行至本步驟,代表光盤機(jī)10在步驟110移動讀取頭16以將數(shù)據(jù)寫入至備用區(qū)塊后,又要將讀取頭16再度移動至對應(yīng)數(shù)據(jù)區(qū)塊的位置,繼續(xù)進(jìn)行數(shù)據(jù)寫入。步驟114是否接收到新的寫入要求;若是,則流程100迅回至步驟104,再度處理后續(xù)的數(shù)據(jù)寫入。若已無新的寫入要求,則進(jìn)行至步驟116。步驟116結(jié)束流程100,完成現(xiàn)有技術(shù)中的寫入流程。以下將進(jìn)一步說明上述的寫入流程100。請參考圖4A至4C(并一并參考圖1、圖2A)。圖4A、4B、4C為現(xiàn)有的寫入流程100進(jìn)行時,于光盤片22的軌跡24,以及存儲體20中相關(guān)數(shù)據(jù)的配置示意圖。如圖4A所示,當(dāng)主機(jī)26要將數(shù)據(jù)寫入至光盤片22的軌跡24時,控制電路18會把主機(jī)26傳來的數(shù)據(jù)暫存至存儲體20中,再由讀取頭16將數(shù)據(jù)由存儲體20中寫入至軌跡24上。假設(shè)主機(jī)26已將要連續(xù)寫入至數(shù)據(jù)封裝區(qū)Pd1至Pd3的數(shù)據(jù)傳輸至光盤杌10,光盤機(jī)10就會依序以封裝區(qū)為單位(也就是一次寫入至一封裝區(qū)中的所有數(shù)據(jù)區(qū)塊),將讀取頭16依序移動至對應(yīng)這些封裝區(qū)的位置,以將這些數(shù)據(jù)依序?qū)懭胫淋壽E24上的封裝區(qū)Pd1、Pd2等等。假設(shè)在封裝區(qū)Pd1所有數(shù)據(jù)區(qū)塊均無損壞,則當(dāng)光盤機(jī)10將數(shù)據(jù)寫入至封裝區(qū)Pd1時,在步驟108中不會遭遇任何損壞數(shù)據(jù)區(qū)塊,便可進(jìn)行至步驟112,將對應(yīng)數(shù)據(jù)寫入至數(shù)據(jù)封裝區(qū)Pd1。假設(shè)當(dāng)光盤機(jī)10要繼續(xù)將數(shù)據(jù)寫入至封裝區(qū)Pd2時,除了正常無損壞的數(shù)據(jù)區(qū)塊Bd2a、Bd2b等等,還會在封裝區(qū)Pd2中遭遇到一損壞數(shù)據(jù)區(qū)塊Bd2c。此時現(xiàn)有寫入流程100就要進(jìn)行至步驟108,準(zhǔn)備將原先要寫入至損壞數(shù)據(jù)區(qū)塊Bd2c的數(shù)據(jù),改寫至一備用區(qū)塊。如圖4B所示,假設(shè)在步驟108中,決定備用封裝區(qū)Ps1的備用區(qū)塊Bs1c來取代損壞數(shù)據(jù)區(qū)塊Bd2c,則讀取頭16就要尋軌(seek)移動至封裝區(qū)Ps1的位置,先將封裝區(qū)Ps1中所有備用區(qū)塊的數(shù)據(jù)讀入至存儲體20中(圖4B中標(biāo)示為步驟108(1)),再于存儲體20中將原本要寫入至損壞數(shù)據(jù)區(qū)塊Bd2c的數(shù)據(jù)加入(如拷貝)至已讀入存儲體20中的封裝區(qū)Ps1(圖中標(biāo)示為步驟108(2)),完成步驟108。再如圖4C所示,讀取頭16會將存儲體20中已加入數(shù)據(jù)的封裝區(qū)Ps1回寫至軌跡24上的封裝區(qū)Ps1以完成步驟110。接下來讀取頭16要在步驟112后再度尋軌移動至對應(yīng)封裝區(qū)Pd2的位置,繼續(xù)將數(shù)據(jù)寫入至封裝區(qū)Pd2,以便將對應(yīng)的數(shù)據(jù)寫入至封裝區(qū)Pd2的未損壞的數(shù)據(jù)區(qū)塊(像是數(shù)據(jù)區(qū)塊Bd2a及Bd2b),并繼續(xù)完成后續(xù)的數(shù)據(jù)寫入,將數(shù)據(jù)寫入至封裝區(qū)Pd3。在圖4B、4C的步驟108及110中,由于封裝區(qū)Ps1中可能有某些備用區(qū)塊已經(jīng)用來代替其他的損壞數(shù)據(jù)區(qū)塊(象區(qū)塊Bs1a、Bs1b),但光盤機(jī)10要將數(shù)據(jù)寫入至封裝區(qū)Ps1時,不能單獨(dú)將數(shù)據(jù)寫入至單一備用區(qū)塊,只能一次將各備用區(qū)塊的數(shù)據(jù)寫入至封裝區(qū)Ps1中的所有備用區(qū)塊,故在圖4B的步驟108中,要先將封裝區(qū)Ps1中原先的舊數(shù)據(jù)(象備用區(qū)塊Bs1a、Bs1b的數(shù)據(jù))讀入存儲體20中。這樣一來,在圖4C的步驟110中將數(shù)據(jù)回寫至軌跡24的備用封裝區(qū)Ps1時,封裝區(qū)Ps1原先的舊數(shù)據(jù)就能被完整回寫至封裝區(qū)Ps1,還能將一區(qū)塊的一批新數(shù)據(jù)(也就是原先要寫入數(shù)據(jù)區(qū)塊Bd2c的數(shù)據(jù))寫入至備用區(qū)塊Bs1c中。由以上對現(xiàn)有寫入流程100的描述可知,流程100每次遭遇到一個損壞數(shù)據(jù)區(qū)塊,就會先暫停正常的數(shù)據(jù)寫入,并讓讀取頭16尋軌移動至備用區(qū)塊的位置以將數(shù)據(jù)寫入至替代的損壞數(shù)據(jù)區(qū)塊。接下來又要將讀取頭尋軌移動至原先數(shù)據(jù)寫入中斷的地方,繼續(xù)正常的數(shù)據(jù)寫入。若后續(xù)數(shù)據(jù)寫入過程中又遭遇到別的損壞數(shù)據(jù)區(qū)塊,又要再度重復(fù)上述的損壞管理流程??上攵?,若是光盤片22上損壞處較多,現(xiàn)有的寫入流程100就會使讀取頭16頻繁地尋軌移動以補(bǔ)償損壞的數(shù)據(jù)區(qū)塊。由于跨越多個封裝區(qū)的尋軌移動要花費(fèi)較長時間等待讀取頭16穩(wěn)定,這樣一來,尋軌移動頻繁的寫入流程100,其進(jìn)行的效率就會降低,也會增加光盤機(jī)10機(jī)械部分的運(yùn)作負(fù)擔(dān)及損耗。相對于寫入流程100,現(xiàn)有技術(shù)中也有一定的讀取流程,以讀取光盤片22記錄的數(shù)據(jù)。請參考圖5(并一并參考圖1)。圖5為現(xiàn)有技術(shù)中光盤片數(shù)據(jù)讀取的流程200的流程圖。流程200中有下列步驟步驟202開始流程200。步驟204檢查是否接到主機(jī)26傳來的讀取指令。若是,就可進(jìn)行至步驟206;若否,就可進(jìn)行至步驟214。步驟206接到主機(jī)26傳來的讀取指令后,光盤機(jī)10的讀取頭16就會依照讀取指令移動至對應(yīng)的數(shù)據(jù)區(qū)域,開始讀取各數(shù)據(jù)區(qū)塊的數(shù)據(jù),以取得主機(jī)26所要求的數(shù)據(jù)。讀取頭16讀進(jìn)光盤機(jī)10的數(shù)據(jù),會先暫存于存儲體20中。步驟208依據(jù)光盤片22上的損壞記錄表,光盤機(jī)10可知道步驟206所讀取的數(shù)據(jù)區(qū)塊中,是否有損壞的數(shù)據(jù)區(qū)塊。若有,則進(jìn)行至步驟210;若沒有遭遇到損壞的數(shù)據(jù)區(qū)塊,就可進(jìn)行至步驟212。步驟210在讀取過程中讀到損壞數(shù)據(jù)區(qū)塊,光盤機(jī)10就會依據(jù)損壞記錄表查出替代的備用區(qū)塊的地址。此時讀取頭16就要依據(jù)該地址,移動到對應(yīng)的位置,以讀取該備用區(qū)塊記錄的數(shù)據(jù),并暫存于存儲體20中。步驟212將存儲體20中各區(qū)塊的數(shù)據(jù)傳輸至主機(jī)。若由步驟210進(jìn)行至本步驟,表示光盤機(jī)10已經(jīng)由備用區(qū)塊中讀入原本應(yīng)該記錄于損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù),以完整取得主機(jī)26要求的數(shù)據(jù),而光盤機(jī)10也就能將主機(jī)26要求的數(shù)據(jù)傳輸至主機(jī)26了。步驟214是否已傳輸完主機(jī)26要求的所有數(shù)據(jù)。若是,就可回到步驟204;若還有數(shù)據(jù)未傳輸,則回到步驟206。步驟216結(jié)束流程200。為進(jìn)一步說明流程200實施的情形,請參考圖6A至圖6C。圖6A至6C為流程200進(jìn)行時,光盤片22的軌跡24與存儲體20中相關(guān)數(shù)據(jù)配置情形的示意圖。如圖6A所示,假設(shè)主機(jī)26要求光盤機(jī)10連續(xù)讀取數(shù)據(jù)區(qū)域中封裝區(qū)Pd1、Pd2及Pd3的數(shù)據(jù),讀取頭16就會移動至對應(yīng)封裝區(qū)Pd1的位置,將封裝區(qū)Pd1中各數(shù)據(jù)區(qū)塊的數(shù)據(jù)讀入至存儲體20中;假設(shè)封裝區(qū)Pd1中沒有損壞記錄區(qū)塊,流程200即可順利進(jìn)行至步驟206、208,并在步驟212中依序?qū)⒆x到的數(shù)據(jù)由存儲體20中傳輸至主機(jī)16。等光盤機(jī)10開始讀取封裝區(qū)Pd2的數(shù)據(jù)時,假設(shè)封裝區(qū)Pd2中除了正常的數(shù)據(jù)區(qū)塊(如Bd2a、Bd2b)外,還有一損壞的數(shù)據(jù)區(qū)塊Bd2c。此時現(xiàn)有讀取流程200就會暫時中止后續(xù)的數(shù)據(jù)讀取,準(zhǔn)備進(jìn)行至步驟210。如圖6B所示,在步驟210中,光盤機(jī)10根據(jù)損壞記錄表得知損壞數(shù)據(jù)區(qū)塊Bd2c的備用區(qū)塊(假設(shè)為備用區(qū)塊Bs1c),就要將讀取頭16尋軌移動到備用區(qū)塊Bs2c的對應(yīng)位置(圖中標(biāo)示為步驟210(1)),將備用區(qū)塊Bs1c的數(shù)據(jù)讀入至存儲體20(標(biāo)示為步驟210(2)),并將讀入的數(shù)據(jù)加入至存儲體20中的封裝區(qū)Pd2(標(biāo)示為步驟210(3)),以完成步驟210。完整取得封裝區(qū)Pd2所記錄的數(shù)據(jù)后,光盤機(jī)10就能進(jìn)行至步驟212開始將數(shù)據(jù)傳輸至主機(jī)16。因為光盤機(jī)10還要繼續(xù)讀取封裝區(qū)Pd3的數(shù)據(jù),故在圖6C中,讀取頭16又要進(jìn)行跨越多個封裝區(qū)的尋軌移動,回到封裝區(qū)Pd3的對應(yīng)位置,繼續(xù)讀取封裝區(qū)Pd3中各數(shù)據(jù)區(qū)塊的數(shù)據(jù)。由以上描述可知,在現(xiàn)有讀取流程200中,每遭遇到一個損壞記錄區(qū)塊,流程200就必需暫時中止正常的連續(xù)讀取,并使讀取頭16尋軌移動至備用區(qū)域,以讀取代替該損壞記錄區(qū)塊的備用區(qū)塊;之后讀取頭16還要再度尋軌移動至數(shù)據(jù)區(qū)域,以繼續(xù)先前中止的連續(xù)讀取。若光盤片22的損壞處較多,現(xiàn)有讀取流程200就要頻繁地進(jìn)行反復(fù)的尋軌移動。綜合現(xiàn)有技術(shù)中的寫入流程100及讀取流程200,都要頻繁地進(jìn)行尋軌移動才能進(jìn)行光盤片損壞管理,不但增加寫入、讀取流程中所消耗的時間,降低寫入、讀取流程進(jìn)行的效率,也會增加光盤機(jī)10機(jī)械部分的運(yùn)作負(fù)擔(dān)與損耗,減損光盤機(jī)10使用的壽命。
發(fā)明內(nèi)容因此,本發(fā)明的主要目的在于提供一種在光盤片數(shù)據(jù)寫入、讀取時以預(yù)先讀取的多個備用區(qū)塊作為高速緩存以進(jìn)行損壞管理的方法,以克服現(xiàn)有技術(shù)的缺點(diǎn)。在現(xiàn)有技術(shù)中,因為要針對每個損壞數(shù)據(jù)區(qū)塊個別進(jìn)行損壞管理,連續(xù)寫入、讀取的過程會被頻繁地打斷,造成讀取頭要頻繁反復(fù)地尋軌移動,導(dǎo)致現(xiàn)有技術(shù)中寫入、讀取的效率低,并增加光盤機(jī)機(jī)械部分的運(yùn)作負(fù)擔(dān)與損耗。在本發(fā)明中,則會在連續(xù)寫入、讀取進(jìn)行前,先將多個(譬如說是一或數(shù)個封裝區(qū))備用區(qū)塊讀入至光盤機(jī)的存儲體中作為高速緩存;當(dāng)進(jìn)行損壞管理時,就可先檢查損壞管理相關(guān)數(shù)據(jù)是否已經(jīng)被讀入至存儲體中。若相關(guān)數(shù)據(jù)的確已經(jīng)被讀入至存儲體中,就能直接利用存儲體中的損壞管理相關(guān)數(shù)據(jù)來進(jìn)行損壞管理。這樣一來,本發(fā)明的技術(shù)可以在處理過多個損壞數(shù)據(jù)區(qū)塊后才實際讓讀取頭尋軌移動(以更新高速緩存),故本發(fā)明能有效減少寫入、讀取過程中因損壞管理所造成的中斷,增加寫入、讀取過程的效率,也減少光盤機(jī)機(jī)械部分的運(yùn)作負(fù)擔(dān)與損耗。圖1為一現(xiàn)有光盤機(jī)配合一主機(jī)運(yùn)作的功能方塊圖。圖2A與圖2B為流程進(jìn)行時相關(guān)數(shù)據(jù)的配置示意圖。圖3為現(xiàn)有光盤機(jī)進(jìn)行寫入流程的流程圖。圖4A至4C為圖3流程進(jìn)行時相關(guān)數(shù)據(jù)的配置示意圖。圖5為圖1中光盤機(jī)進(jìn)行讀取流程的流程圖。圖6A至6C為圖5流程進(jìn)行時相關(guān)數(shù)據(jù)的配置示意圖。圖7為本發(fā)明中光盤機(jī)配合一主機(jī)運(yùn)作的功能方塊圖。圖8為本發(fā)明中光盤片數(shù)據(jù)寫入流程的流程圖。圖9A至9E為圖8中流程運(yùn)用于圖7中光盤機(jī)時相關(guān)數(shù)據(jù)的配置圖。圖10為本發(fā)明中光盤片數(shù)據(jù)讀取流程的流程圖。圖11A至11D為圖10中流程運(yùn)用于圖7中光盤機(jī)時相關(guān)數(shù)據(jù)的配置圖。具體實施例方式請參考圖7;圖7為一光盤機(jī)30配合一主機(jī)46運(yùn)作的功能方塊圖。本發(fā)明的方法可使用于圖7中的光盤機(jī)30。使用者可透過主機(jī)46(象個人電腦等的電腦系統(tǒng))控制光盤機(jī)30存取光盤片22上的數(shù)據(jù)。光盤機(jī)30中設(shè)有一承載臺34、用來帶動承載臺34轉(zhuǎn)動的馬達(dá)32、用來存取光盤片22數(shù)據(jù)的讀取頭36、用來控制光盤機(jī)30運(yùn)作的控制電路38、以及用來暫存控制電路38運(yùn)作期間所需數(shù)據(jù)的存儲體40(象隨機(jī)存取存儲體)。當(dāng)馬達(dá)32帶動承載臺34轉(zhuǎn)動時,置于承載臺34上的光盤片22也會隨之轉(zhuǎn)動,使光盤片22上用來記錄數(shù)據(jù)的軌跡24經(jīng)過讀取頭36前,而讀取頭36就能存取軌跡24上的數(shù)據(jù)。軌跡24上記錄數(shù)據(jù)的規(guī)格可以是圖2A、圖2B中所示的CD-MRW或是DVD+MRW的規(guī)格;換句話說,本發(fā)明的方法可適用于設(shè)有備用區(qū)塊以進(jìn)行損壞管理的光盤片規(guī)格。配合本發(fā)明的技術(shù),存儲體40中除了一般用來記錄數(shù)據(jù)的存儲空間外,還包含有另外兩個存儲區(qū)M2、M3。在本發(fā)明中,存儲區(qū)M2、M3用來暫存多個備用區(qū)塊的數(shù)據(jù),以當(dāng)做高速緩存(cache)數(shù)據(jù)。存儲區(qū)M2、M3可以是實體的存儲體電路(譬如說是隨機(jī)存取存儲體),或是存儲體40中配置(allocate)出來的兩個存儲空間。本發(fā)明的目的,是要在損壞管理的機(jī)制下,提高光盤片數(shù)據(jù)寫入、讀取的效率。請參考圖8;以CD-MRW規(guī)格的光盤片為例,圖8為本發(fā)明進(jìn)行光盤片數(shù)據(jù)寫入流程300的流程圖。流程300中有下列步驟步驟302開始。開始數(shù)據(jù)寫入流程300。步驟304預(yù)先將多個備用區(qū)塊的數(shù)據(jù)讀入存儲區(qū)M3作為高速緩存。在實際實施時,可讀取多個(譬如說是八個)備用封裝區(qū)來當(dāng)作高速緩存(每個備用封裝區(qū)都有多個備用區(qū)塊)。步驟306光盤機(jī)30接收主機(jī)46傳來的寫入指令,要將數(shù)據(jù)寫入至光盤片22上。主機(jī)46會指定要將數(shù)據(jù)寫入至光盤片上的哪些數(shù)據(jù)區(qū)塊。步驟308光盤機(jī)30檢查要寫入數(shù)據(jù)的數(shù)據(jù)區(qū)塊中,是否會遭遇到損壞數(shù)據(jù)區(qū)塊。在光盤片22上的損壞記錄表中,會記錄損壞數(shù)據(jù)區(qū)塊的地址,而光盤機(jī)30可根據(jù)光盤片上的損壞記錄表來判斷要寫入數(shù)據(jù)的數(shù)據(jù)區(qū)塊中是否有損壞的數(shù)據(jù)區(qū)塊。若會遭遇到損壞數(shù)據(jù)區(qū)塊,就進(jìn)行至步驟310;若不會遭遇到損壞數(shù)據(jù)區(qū)塊,就進(jìn)行至步驟318。步驟310既然會遭遇到損壞數(shù)據(jù)區(qū)塊,在本步驟中就進(jìn)一步檢查用來代替損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊及其所屬的備用封裝區(qū)是否已經(jīng)被讀入至存儲區(qū)M3中。若存儲區(qū)M3中已儲存有該備用區(qū)塊(及其所屬備用封裝區(qū)的其他備用區(qū)塊),就可進(jìn)行至步驟312;若否,則進(jìn)行至步驟314。步驟312若步驟308中損壞數(shù)據(jù)區(qū)塊的替代備用區(qū)塊及其所屬的備用封裝區(qū)已儲存于存儲區(qū)M3中,就可將原本要寫入至損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù)直接加入存儲區(qū)M3中的備用封裝區(qū),讀取頭36也就不必實際尋軌移動去讀取備用區(qū)塊所屬的備用封裝區(qū)了。步驟314若步驟308中代替損壞數(shù)據(jù)區(qū)塊的備用數(shù)據(jù)區(qū)塊及其所屬的備用封裝區(qū)未儲存于存儲區(qū)M3中,則根據(jù)存儲區(qū)M3中備用封裝區(qū)是否被更新過(是否已加入新的數(shù)據(jù)),來決定要如何處理存儲區(qū)M3中的備用封裝區(qū)。若存儲區(qū)M3中的備用封裝區(qū)已經(jīng)被更新過,代表在流程300進(jìn)行時已在先前進(jìn)行過步驟312,也利用了存儲區(qū)M3中備用封裝區(qū)的備用區(qū)塊來代替步驟308中發(fā)現(xiàn)的損壞數(shù)據(jù)區(qū)塊。在這種情況下,就要將更新過的備用封裝區(qū)回寫至光盤片22上。若存儲區(qū)M3中備用封裝區(qū)的數(shù)據(jù)未曾更新,代表流程300進(jìn)行時不需使用該備用封裝區(qū)中的備用區(qū)塊來代替損壞數(shù)據(jù)區(qū)塊;既然該備用封裝區(qū)的數(shù)據(jù)沒有改變,也就不必將該備用封裝區(qū)回寫至光盤片22。此時也可將存儲區(qū)M3中用來儲存該備用封裝區(qū)的存儲空間釋放(release),以便將這些存儲空間空出來儲存別的高速緩存數(shù)據(jù)。步驟316若在步驟310中發(fā)現(xiàn)用來代替損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊(及其所屬的備用封裝區(qū))未儲存于存儲空間M3中,就要將代替該損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊及其所屬的備用封裝區(qū)讀入至存儲空間M3中。另外,也可進(jìn)一步將前述備用封裝區(qū)鄰近的備用封裝區(qū)一并讀入至存儲區(qū)M3中。對相鄰的多個損壞數(shù)據(jù)區(qū)塊來說,用來代替他們的備用區(qū)塊也會放在同一封裝區(qū)或鄰近的封裝區(qū);因此將鄰近的備用封裝區(qū)一并讀入存儲區(qū)M3后,則對后續(xù)寫入過程中所遭遇到的損壞數(shù)據(jù)區(qū)塊來說,其對應(yīng)的備用區(qū)塊很可能也已經(jīng)被讀入至存儲區(qū)M3中了。這樣一來就能經(jīng)由步驟312減少讀取頭36尋軌移動的次數(shù)。步驟318將數(shù)據(jù)正常寫入至數(shù)據(jù)區(qū)塊中。步驟320若還有數(shù)據(jù)要寫入光盤片22,則迅速返回至步驟306;若已經(jīng)沒有數(shù)據(jù)要寫入至光盤片22,就可進(jìn)行至步驟322。步驟322結(jié)束數(shù)據(jù)寫入流程300。為詳細(xì)說明上述流程進(jìn)行的情況,請參考圖9A至圖9E的示意例(并一并參考圖7)。圖9A至9E為本發(fā)明中寫入流程300進(jìn)行時,光盤片22的軌跡24及存儲體40、存儲區(qū)M3中數(shù)據(jù)配置的示意圖。如圖9A所示,假設(shè)在流程300一開始時,讀取頭36已經(jīng)在步驟304中將備用封裝區(qū)Ps1所有備用區(qū)塊的數(shù)據(jù)讀入存儲區(qū)M3中當(dāng)做高速緩存。而主機(jī)46則要求光盤機(jī)30將數(shù)據(jù)連續(xù)寫入至軌跡24的數(shù)據(jù)封裝區(qū)Pd1至Pd5;而光盤機(jī)30也已將要寫入的數(shù)據(jù)存入存儲體40中。假設(shè)在軌跡24的數(shù)據(jù)封裝區(qū)Pd1至Pd5中,數(shù)據(jù)封裝區(qū)Pd2除了正常的數(shù)據(jù)區(qū)塊(像是Bd2a、Bd2d),還有兩個損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c;數(shù)據(jù)封裝區(qū)Pd4除了正常的數(shù)據(jù)區(qū)塊(像是Bd4a),還有一個損壞的數(shù)據(jù)區(qū)塊Bd4b。當(dāng)光盤機(jī)30將數(shù)據(jù)寫入至數(shù)據(jù)封裝區(qū)Pd1時,因為封裝區(qū)Pd1并無損壞處,故光盤機(jī)30在步驟318中順利將數(shù)據(jù)寫入至軌跡24。當(dāng)光盤機(jī)30要將數(shù)據(jù)寫入至數(shù)據(jù)封裝區(qū)Pd2時,因為數(shù)據(jù)封裝區(qū)Pd2中除了正常的數(shù)據(jù)區(qū)塊如Bd2a、Bd2d之外,還有兩個損壞的數(shù)據(jù)區(qū)塊Bd2b、Bd2c。光盤機(jī)30在步驟308中遭遇到損壞數(shù)據(jù)區(qū)塊后,就會在步驟310中檢查替代這兩個損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊是否已經(jīng)儲存在存儲區(qū)M3中。假設(shè)分別用來替代這兩個損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c的備用數(shù)據(jù)區(qū)塊Bs1b、Bs1c均屬備用封裝區(qū)Ps1,而備用封裝區(qū)Ps1則已經(jīng)在步驟304中被讀入至存儲區(qū)M3,所以在圖9B中,光盤機(jī)30會進(jìn)行步驟312,將兩批原本要寫入至損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c的數(shù)據(jù),分別加入(拷貝)至存儲區(qū)M3中的備用區(qū)塊Bs1b、Bs1c。請注意,由于備用封裝區(qū)Ps1已經(jīng)被讀入至存儲區(qū)M3中,讀取頭36不必尋軌移動至備用封裝區(qū)Ps1的對應(yīng)位置,就可以進(jìn)行必要的損壞管理。進(jìn)行完步驟312,光盤機(jī)就可繼續(xù)進(jìn)行步驟318,將數(shù)據(jù)寫入至軌跡24的數(shù)據(jù)封裝區(qū)Pd2、Pd3。如圖9C所示,當(dāng)光盤機(jī)30要寫入數(shù)據(jù)至數(shù)據(jù)封裝區(qū)Ps4時,又遭遇到損壞數(shù)據(jù)區(qū)塊Bd4b。假設(shè)損壞數(shù)據(jù)區(qū)塊Bd4b的替代備用區(qū)塊為備用封裝區(qū)Ps2中的備用區(qū)塊Bs2b;當(dāng)流程300進(jìn)行至步驟310時,會發(fā)現(xiàn)備用封裝區(qū)Ps2未儲存于存儲區(qū)M3中,并開始進(jìn)行步驟314。在步驟314中,因為存儲區(qū)M3中的備用封裝區(qū)Ps1已經(jīng)更新(加入了原本要寫入至損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c的數(shù)據(jù)),此時就要將存儲區(qū)M3中的備用封裝區(qū)Ps1回寫至軌跡24上的備用封裝區(qū)Ps1;回寫后數(shù)據(jù)區(qū)M3中原來儲存封裝區(qū)Ps1的存儲空間就能被釋放出來。如圖9D所示,在步驟314中處理完存儲區(qū)M3中的高速緩存數(shù)據(jù)后,在步驟316中,光盤機(jī)30會將包含有備用區(qū)塊Bs2b的備用封裝區(qū)Ps2讀入至數(shù)據(jù)區(qū)M3,然后流程300回到步驟312,將原本要寫入至損壞記錄區(qū)塊Bd4b的數(shù)據(jù)加入存儲區(qū)M3中的備用區(qū)塊Bs2b。接下來,如圖9E所示,存儲區(qū)M3中的備用封裝區(qū)Ps2并不會被馬上回寫至軌跡24,因為后續(xù)寫入過程遭遇到的損壞數(shù)據(jù)區(qū)塊,很可能就要使用備用封裝區(qū)Ps2的備用區(qū)塊來代替。若是后續(xù)的損壞管理仍要將數(shù)據(jù)加入備用封裝區(qū)Ps2中,就可以直接將數(shù)據(jù)加入至存儲區(qū)M3中皙存的備用封裝區(qū)Ps2(步驟312),不需讓讀取頭36重復(fù)尋軌移動去讀取、寫入光盤片上的備用封裝區(qū)Ps2。換句話說,此時備用封裝區(qū)Ps2已經(jīng)成為新的損壞管理高速緩存數(shù)據(jù)了。處理完損壞數(shù)據(jù)區(qū)Pd4b的損壞管理后并更新存儲區(qū)M3中的高速緩存數(shù)據(jù)后,光盤機(jī)30就能繼續(xù)將數(shù)據(jù)寫入至軌跡24的數(shù)據(jù)封裝區(qū)Pd4、Pd5(步驟318)。綜合以上討論可知,本發(fā)明是以存儲區(qū)M3中的備用封裝區(qū)來當(dāng)作高速緩存數(shù)據(jù)。由于位置相近的損壞數(shù)據(jù)區(qū)塊也會以位置相近的備用區(qū)塊來代替,所以本發(fā)明在存儲區(qū)M3中是預(yù)先將多個相鄰備用區(qū)塊(像是同一備用封裝區(qū),或是相鄰備用封裝區(qū)的備用區(qū)塊)讀入作為高速緩存。如前所述,因為光盤機(jī)將數(shù)據(jù)寫入至光盤片時,是以封裝區(qū)為單位來寫入,所以備用封裝區(qū)中已用來代替其他損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊,其內(nèi)儲存的數(shù)據(jù)要先讀入至光盤機(jī)的存儲體中,加上寫入流程遭遇到的新數(shù)據(jù)后,才能一并以一封裝區(qū)為單位回寫至光盤片。在現(xiàn)有技術(shù)中,每遭遇到一個損壞數(shù)據(jù)區(qū)塊就要進(jìn)行備用封裝區(qū)的讀取及寫入,才能完成損壞管理。在本發(fā)明中,由于備用封裝區(qū)已被讀取至存儲區(qū)M3,寫入過程遭遇到的多個損壞數(shù)據(jù)區(qū)塊若都是利用同一備用封裝區(qū)的備用區(qū)塊來代替,則讀取頭36就不必重復(fù)進(jìn)行備用封裝區(qū)的讀取、寫入;這多個損壞數(shù)據(jù)區(qū)塊的損壞管理也就能直接在存儲區(qū)M3中進(jìn)行,并統(tǒng)一將該備用封裝區(qū)回寫至光盤片。換句話說,讀取頭只要進(jìn)行一次備用封裝區(qū)的讀取、寫入,就能完成對多個損壞數(shù)據(jù)區(qū)塊的損壞管理。就像在圖9A、九B、九C中的例子,讀取頭36對備用封裝區(qū)Ps1僅進(jìn)行一次讀取(圖9A)及寫入(圖9C),就能一并完成對損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c的損壞管理。若有更多損壞數(shù)據(jù)區(qū)塊是以備用封裝區(qū)Ps1的備用區(qū)塊來進(jìn)行損壞管理,就更能凸顯本發(fā)明的優(yōu)點(diǎn),因為只要進(jìn)行單一一次備用封裝區(qū)的讀取、寫入,就能完成對更多損壞數(shù)據(jù)區(qū)塊的損壞管理。另外,若存儲區(qū)M3中儲存的備用封裝區(qū)越多,讀取頭36對備用封裝區(qū)讀取、寫入的次數(shù)就能進(jìn)一步減少。舉例來說,在圖9A至9D的例子中,若在圖9A的步驟304中已將備用封裝區(qū)Ps1、Ps2一并讀入至存儲區(qū)M3中,則讀取頭36在圖9C中就不必進(jìn)行步驟316來將備用封裝區(qū)Ps2讀入至存儲區(qū)M3中了。在讀取、寫入相鄰的備用封裝區(qū)(像是圖9A中的相鄰備用封裝區(qū)Ps1、Ps2)時,讀取頭36能進(jìn)行連續(xù)的讀取、寫入;換句話說,讀取頭36不必進(jìn)行跨越多個封裝區(qū)的尋軌移動,就能依序讀取相鄰的備用封裝區(qū)。在步驟304、316中一次連續(xù)讀取數(shù)個相鄰的備用封裝區(qū),或在步驟314中一次將數(shù)個更新的備用封裝區(qū)連續(xù)回寫至光盤片22上,也能進(jìn)一步減少光盤片數(shù)據(jù)讀寫所需的時間與機(jī)械運(yùn)作,增進(jìn)損壞管理的效率。另外,本發(fā)明的數(shù)據(jù)寫入方法也能減少對光盤片實際進(jìn)行數(shù)據(jù)寫入的次數(shù),增加光盤片的使用壽命。舉例來說,在主機(jī)46執(zhí)行某些應(yīng)用程序時,會重復(fù)在光盤片上同一數(shù)據(jù)區(qū)域?qū)懭霐?shù)據(jù);以圖9A至9E的圖示例來說,主機(jī)46在數(shù)據(jù)封裝區(qū)Pd1至Pd3中寫入第一批數(shù)據(jù)后,又可能在某些情況下要在數(shù)據(jù)封裝區(qū)Pd1至Pd3復(fù)寫入另一批數(shù)據(jù)。因為數(shù)據(jù)要被寫入同樣的數(shù)據(jù)封裝區(qū),寫入流程重復(fù)進(jìn)行時,自然也會遭遇到相同的損壞數(shù)據(jù)區(qū)塊(象損壞數(shù)據(jù)區(qū)塊Bd2b、Bd2c、Bd4b)。在現(xiàn)有技術(shù)中,每進(jìn)行一次數(shù)據(jù)寫入、遭遇到一次損壞數(shù)據(jù)區(qū)塊,就要將數(shù)據(jù)寫入至該損壞數(shù)據(jù)區(qū)塊對應(yīng)的備用區(qū)塊一次;在對同一損壞數(shù)據(jù)區(qū)塊進(jìn)行第二次數(shù)據(jù)寫入時,又要對該備用區(qū)塊再重復(fù)寫入一次。相對的,在本發(fā)明中,在第一次對一損壞數(shù)據(jù)區(qū)塊做數(shù)據(jù)寫入時,暫時不會將原本要寫入至該損壞數(shù)據(jù)區(qū)塊的數(shù)據(jù)真正寫入至光盤片上該損壞數(shù)據(jù)區(qū)塊對應(yīng)的備用區(qū)塊,僅是將該批數(shù)據(jù)皙存于存儲區(qū)M3中(象圖9B的情況);在第二次要在同一損壞數(shù)據(jù)區(qū)塊寫入一批新的數(shù)據(jù)時,因為存儲區(qū)M3中已經(jīng)將該備用區(qū)塊建立為高速緩存,所以也暫時不會將新的數(shù)據(jù)真正寫入至光盤片上,只要將存儲區(qū)M3中的對應(yīng)該備用區(qū)塊的數(shù)據(jù)更新即可。換句話說,在進(jìn)行第二次數(shù)據(jù)寫入時,流程300會進(jìn)行步驟308、310、312而不會進(jìn)行至步驟314(在此步驟中,存儲區(qū)M3的數(shù)據(jù)才會被真正寫入至光盤片上)。換句話說,對某一損壞數(shù)據(jù)區(qū)塊來說,只要存儲區(qū)M3中仍將該損壞數(shù)據(jù)區(qū)塊的對應(yīng)備用區(qū)塊保留為高速緩存,不論要對該損壞數(shù)據(jù)區(qū)塊進(jìn)行多少次數(shù)據(jù)寫入,在本發(fā)明中都還不必實際將數(shù)據(jù)寫入至光盤片上的備用區(qū)塊;直到流程300要進(jìn)行高速緩存更新而將該備用區(qū)塊排除于高速緩存之外時(步驟314),才會對光盤片上該備用區(qū)塊進(jìn)行單一一次的數(shù)據(jù)寫入。如此一來,本發(fā)明的數(shù)據(jù)寫入流程就能大幅減少對光盤片實際進(jìn)行數(shù)據(jù)寫入/復(fù)寫(尤其是對備用區(qū)塊)的次數(shù),增加光盤片耐用的壽命。對應(yīng)于本發(fā)明的寫入流程300,本發(fā)明也能以高速緩存的原理增加光盤片數(shù)據(jù)讀取的效率。請參考圖10。圖10為本發(fā)明中利用存儲區(qū)M2儲存高速緩存以進(jìn)行光盤片數(shù)據(jù)讀取的流程400的示意圖。流程400中有下列步驟步驟402開始流程400,以讀取光盤片22上的數(shù)據(jù)。步驟404若光盤機(jī)30收到由主機(jī)46傳來的讀取指令,則進(jìn)行至步驟406;若否,則進(jìn)行至步驟422。步驟406根據(jù)主機(jī)46的指令讀取光盤片22上的數(shù)據(jù)。主機(jī)46會指定光盤機(jī)30要讀取那些數(shù)據(jù)區(qū)塊中的數(shù)據(jù)。步驟408光盤機(jī)30可根據(jù)光盤片22上的損壞記錄表檢查出讀取的數(shù)據(jù)區(qū)塊是否為損壞的數(shù)據(jù)區(qū)塊,若有,則進(jìn)行至步驟410;若沒有,就進(jìn)行至步驟418。步驟410要讀取的數(shù)據(jù)區(qū)塊中有損壞數(shù)據(jù)區(qū)塊,則光盤機(jī)30可根據(jù)損壞記錄表進(jìn)一步查出代替此損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊是否已經(jīng)儲存于存儲區(qū)M2中。若對應(yīng)的備用區(qū)塊尚未儲存于存儲區(qū)M2中,則進(jìn)行至步驟412;若存儲區(qū)M2中已經(jīng)存有對應(yīng)的備用區(qū)塊,則可進(jìn)行至步驟414。步驟412在先前步驟中,光盤機(jī)30已知道損壞數(shù)據(jù)區(qū)塊對應(yīng)的備用區(qū)塊的地址。此時光盤機(jī)30就要將備用區(qū)塊讀入至存儲區(qū)M2中;更重要的是,光盤機(jī)30會將備用區(qū)塊鄰近的多個備用區(qū)塊(象同一備用封裝區(qū),甚至鄰近備用封裝區(qū)的多個備用區(qū)塊)一并讀入至存儲區(qū)M2中,作為高速緩存數(shù)據(jù)。步驟414流程400進(jìn)行至本步驟時,針對步驟408中所發(fā)現(xiàn)的損壞數(shù)據(jù)區(qū)塊,存儲區(qū)M2中都已存有必需的對應(yīng)備用區(qū)塊。此時就可將存儲區(qū)M2中這些備用區(qū)塊的數(shù)據(jù)拷貝至步驟406讀入的數(shù)據(jù),完整取得主機(jī)46所要求的數(shù)據(jù)。此時就可將數(shù)據(jù)傳輸至主機(jī)46。步驟416若已將主機(jī)46所要求的數(shù)據(jù)傳輸至主機(jī)46,就可進(jìn)行至步驟404;若否,則進(jìn)行至步驟406。步驟418在主機(jī)46要求讀取的數(shù)據(jù)區(qū)塊中沒有損壞數(shù)據(jù)區(qū)塊,就可將步驟406讀入的數(shù)據(jù)傳輸至主機(jī)46。步驟420若已將主機(jī)46要求的數(shù)據(jù)傳輸完畢,就可進(jìn)行至步驟404;若否,則回到步驟408。步驟422結(jié)束流程400。請參考圖11A至圖11C。以下將以圖11A至圖11C為例,來進(jìn)一步說明上述光盤片讀取流程400進(jìn)行的過程;圖11A至11C即為流程400進(jìn)行期間,軌跡24、存儲區(qū)M2以及存儲體40中各數(shù)據(jù)配置的示意圖。如圖11A所示,假設(shè)光盤機(jī)30在步驟404接收到來自主機(jī)46的讀取指令,要讀取軌跡24上數(shù)據(jù)封裝區(qū)Pd1至Pd3中的數(shù)據(jù),于是光盤機(jī)30進(jìn)行步驟406,以讀取頭36將數(shù)據(jù)封裝區(qū)Pd1至Pd3讀入至存儲體40中,并開始將讀入的數(shù)據(jù)傳輸至主機(jī)46。但在數(shù)據(jù)封裝區(qū)Pd2中,有兩處損壞的數(shù)據(jù)區(qū)塊Bd2b、Bd2c,而用來代替這兩個數(shù)據(jù)區(qū)塊的備用區(qū)塊,則分別是備用封裝區(qū)Ps1中的備用區(qū)塊Bs1b、Bs1c。因為步驟406讀取的數(shù)據(jù)區(qū)塊中有損壞的數(shù)據(jù)區(qū)塊Bd2b,故流程400由步驟408進(jìn)行至步驟410。如圖11A中所示,假設(shè)存儲區(qū)M2中尚未儲存任何備用封裝區(qū)(或是其所儲存的備用封裝區(qū)中不包括備用封裝區(qū)Ps1);因此,在圖11B中,讀取頭36就會移動至備用區(qū)塊Bs1b的對應(yīng)位置,要將此備用區(qū)塊讀入至存儲區(qū)M3中。值得注意的是,本發(fā)明在讀取步驟408中所需的備用區(qū)塊Bs1b時,還會一并讀取其他相鄰的備用區(qū)塊;象在圖11B中,讀取頭36就將備用區(qū)塊Bs1b、Bs1c所屬的備用封裝區(qū)Ps1,連同鄰近的備用封裝區(qū)Ps2一并讀入至存儲區(qū)M2中做為高速緩存的數(shù)據(jù)。在步驟414中,被讀入至存儲區(qū)M2的備用區(qū)塊Bs1b,其數(shù)據(jù)會被拷貝至存儲體40中損壞的數(shù)據(jù)區(qū)塊Bd2b(圖11B中標(biāo)示為步驟414(1))。而如圖11C所示,在后續(xù)讀取而遭遇到損壞數(shù)據(jù)區(qū)塊Bd2c后,光盤機(jī)30就能直接由存儲區(qū)M2中取得其對應(yīng)備用區(qū)塊Bs1c,并將其拷貝至存儲體40中,讓光盤機(jī)30能完整取得數(shù)據(jù)封裝區(qū)Pd2各個數(shù)據(jù)區(qū)塊的數(shù)據(jù)(圖中標(biāo)示為步驟414(2)),并傳輸至主機(jī)46(圖中標(biāo)示為步驟414(2))。而存儲區(qū)M2中的備用封裝區(qū)Ps1、Ps2會繼續(xù)保存,當(dāng)作高速緩存數(shù)據(jù)。如圖11D所示,若是主機(jī)46又開始要求光盤機(jī)讀取數(shù)據(jù)封裝區(qū)Pd4、Pd5的數(shù)據(jù),且數(shù)據(jù)封裝區(qū)Pd4中有一損壞數(shù)據(jù)區(qū)塊Bd4b是以備用封裝區(qū)Ps2的備用區(qū)塊Bs2b來代替,則流程400由步驟408進(jìn)行至步驟410時,就可直接在存儲區(qū)M2中找到備用區(qū)塊Bs2b,并將其拷貝到已讀入至存儲體40的數(shù)據(jù)封裝區(qū)Pd4中,以便在步驟414中取得數(shù)據(jù)封裝區(qū)Pd4所有數(shù)據(jù)區(qū)塊的完整數(shù)據(jù),并傳輸至主機(jī)46,完成主機(jī)46下達(dá)的讀取指令。請注意此時讀取頭36不必尋軌移動至光盤片22上備用封裝區(qū)Ps2的對應(yīng)位置,光盤機(jī)30就能完成對損壞數(shù)據(jù)區(qū)塊Bd4b的損壞管理。在圖11A至11D中的例子,因為本發(fā)明在存儲區(qū)M2中建立了高速緩存數(shù)據(jù),所以讀取頭36對多個備用區(qū)塊僅進(jìn)行一次連續(xù)的讀取(圖11B),就完成了三個損壞數(shù)據(jù)區(qū)塊的損壞管理。若數(shù)據(jù)封裝區(qū)Pd1至Pd5中另有多個損壞數(shù)據(jù)區(qū)塊都使用備用封裝區(qū)Ps1、Ps2的備用區(qū)塊來代替,則讀取頭36一次讀取所能涵蓋的損壞管理就更多了,也越能凸顯本發(fā)明的功效。另外,在存儲區(qū)M2中建立較多的高速緩存數(shù)據(jù)(讀入更多的備用區(qū)塊或備用封裝區(qū)),也能減少讀取頭36尋軌移動的次數(shù),增加損壞管理的效率。當(dāng)流程400由步驟410進(jìn)行至步驟412以更新高速緩存數(shù)據(jù)時,也可選擇性的將存儲區(qū)M2中原來的備用區(qū)塊(或備用封裝區(qū))予以釋放,以空出存儲空間來儲存步驟414中讀入的多個備用區(qū)塊。相較于本發(fā)明的流程400,現(xiàn)有技術(shù)中的流程200每遇到一個損壞數(shù)據(jù)區(qū)塊就要讓讀取頭尋軌移動來進(jìn)行損壞管理,自然降低了光盤片數(shù)據(jù)讀取時的效率。在現(xiàn)有技術(shù)中,不論是光盤片數(shù)據(jù)寫入或讀取的過程,都會因為遭遇單一損壞數(shù)據(jù)區(qū)塊就中斷原來的寫入、讀取過程,讀取頭也要進(jìn)行跨越多個數(shù)據(jù)封裝區(qū)的尋軌移動以實現(xiàn)損壞管理的機(jī)制,造成光盤片數(shù)據(jù)寫入、讀取的過程因為頻繁的機(jī)械動作而效率低落,也增加光盤機(jī)機(jī)械部分損耗及維修的成本增加。相較之下,本發(fā)明在光盤片數(shù)據(jù)寫入、讀取的過程中,會分別在存儲區(qū)M3、M2中以多個備用區(qū)塊(尤其是相鄰的多個備用區(qū)塊)建立高速緩存數(shù)據(jù),當(dāng)遭遇到損壞數(shù)據(jù)區(qū)塊時,就能以高速緩存數(shù)據(jù)中既有的備用區(qū)塊來涵蓋多個損壞數(shù)據(jù)區(qū)塊所需的損壞管理。由于存儲區(qū)M2、M3中高速緩存數(shù)據(jù)的存取應(yīng)用僅需電子電路的運(yùn)作,能大幅增進(jìn)損壞管理的效率;讀取頭也只要在建立或更新高速緩存數(shù)據(jù)時才需進(jìn)行實質(zhì)的尋軌移動,能有效減少光盤機(jī)機(jī)械運(yùn)作對讀取、寫入過程的影響,也能減少機(jī)械部分的損耗。另外,如前所述,在本發(fā)明中,對同一備用區(qū)塊的重復(fù)數(shù)據(jù)寫入,也可以用高速緩存操作來代替,以減少在光盤片上實際進(jìn)行數(shù)據(jù)寫入的次數(shù),增加光盤片的耐用壽命。在本發(fā)明中,光盤片數(shù)據(jù)寫入與讀取的過程可相互配合;在數(shù)據(jù)寫入的過程中,可安排以相鄰的備用區(qū)塊來代替相近的損壞數(shù)據(jù)區(qū)塊(事實上這也是CD-MRW規(guī)格的基本運(yùn)作原則之一),這樣一來,在寫入流程300中,就能盡量將多個要更新的備用區(qū)塊集中于一次寫回至光盤片上(也就是圖8中的步驟314),讓單一一次的讀取頭尋軌移動就能盡量涵蓋多個損壞數(shù)據(jù)區(qū)塊所需的損壞管理。同時,在寫入流程400中,若相近的損壞數(shù)據(jù)區(qū)塊都以相鄰的備用區(qū)塊來替代,那么在步驟412(圖10)中以鄰近的多個備用區(qū)塊來建立高速緩存數(shù)據(jù)后,后續(xù)連續(xù)數(shù)據(jù)讀取而遭遇到的多個損壞數(shù)據(jù)區(qū)塊,就都能直接由高速緩存數(shù)據(jù)直接取得所需的備用區(qū)塊數(shù)據(jù);使得讀取頭不必尋軌移動,就能滿足多個損壞數(shù)據(jù)區(qū)塊所需的損壞管理。請注意,為了方便說明起見,以上關(guān)于本發(fā)明的討論皆以CD-MRW規(guī)格下的光盤格式來當(dāng)作實施例,但本發(fā)明的精神可擴(kuò)充應(yīng)用至諸如DVD+MRW規(guī)格等以備用區(qū)塊做損壞管理的光盤片規(guī)格,使光盤片數(shù)據(jù)寫入、讀取的過程能兼顧損壞管理及效率。以上所述僅為本發(fā)明的優(yōu)選實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。權(quán)利要求1.一種以一光盤機(jī)讀取一光盤片上數(shù)據(jù)的方法,該光盤片上設(shè)有至少一數(shù)據(jù)區(qū)塊(block)及至少一備用區(qū)塊;各該數(shù)據(jù)區(qū)塊用來記錄一批數(shù)據(jù);各該備用區(qū)塊用來代替一損壞的數(shù)據(jù)區(qū)塊以記錄一批數(shù)據(jù);該光盤機(jī)包含有一存儲體,用來儲存數(shù)據(jù);該方法包含有當(dāng)讀取該光盤片各該數(shù)據(jù)區(qū)塊的數(shù)據(jù)時,若一數(shù)據(jù)區(qū)塊為損壞,則進(jìn)行一檢查步驟,以檢查代替該數(shù)據(jù)區(qū)塊的該備用區(qū)塊所記錄的數(shù)據(jù)是否已儲存于該存儲體中。2.如權(quán)利要求1的方法,其另包含有在讀取該光盤片各該數(shù)據(jù)區(qū)塊的數(shù)據(jù)前,讀取該光盤片上至少一備用區(qū)塊所記錄的數(shù)據(jù)并儲存于該存儲體中。3.如權(quán)利要求1的方法,其另包含有當(dāng)進(jìn)行該檢查步驟時,若該備用區(qū)塊所記錄的數(shù)據(jù)尚未儲存于該存儲體中,則讀取包括該備用區(qū)塊的多個備用區(qū)塊所記錄的數(shù)據(jù)并儲存于該存儲體中。4.如權(quán)利要求1的方法,其另包含有當(dāng)進(jìn)行該檢查步驟時,若該備用區(qū)塊所記錄的數(shù)據(jù)尚未儲存于該存儲體中,則讀取該備用區(qū)塊及該備用區(qū)塊鄰近的至少一個備用區(qū)塊所記錄的數(shù)據(jù),并儲存于該存儲體中。5.如權(quán)利要求1的方法,其中該光盤機(jī)另包含一讀取頭,當(dāng)該光盤機(jī)讀取該光盤片上的數(shù)據(jù)時,將該讀取頭移動至一對應(yīng)一數(shù)據(jù)區(qū)塊的位置以讀取該數(shù)據(jù)區(qū)塊記錄的數(shù)據(jù);其中當(dāng)該光盤機(jī)讀取一損壞數(shù)據(jù)區(qū)塊而進(jìn)行該檢查步驟時,該讀取頭已移動至對應(yīng)該損壞數(shù)據(jù)區(qū)塊的位置。6.如權(quán)利要求5的方法,其中當(dāng)進(jìn)行該檢查步驟時,該讀取頭不會在該檢查步驟結(jié)束前移動至代替該數(shù)據(jù)區(qū)塊的備用區(qū)塊。7.如權(quán)利要求1的方法,其中在該光盤機(jī)讀取至一損壞數(shù)據(jù)區(qū)塊之后并進(jìn)行該檢查步驟時,該光盤機(jī)不會在該檢查步驟結(jié)束前讀取代替該數(shù)據(jù)區(qū)塊的備用區(qū)塊。8.一種以一光盤機(jī)將數(shù)據(jù)寫入至一光盤片的方法,該光盤片上設(shè)有多個對應(yīng)的數(shù)據(jù)區(qū)塊以及至少一封裝區(qū),各該數(shù)據(jù)區(qū)塊用來記錄一批數(shù)據(jù);各該封裝區(qū)設(shè)有多個對應(yīng)的備用區(qū)塊,各該備用區(qū)塊用來代替一損壞的數(shù)據(jù)區(qū)塊以記錄一批數(shù)據(jù);該光盤機(jī)包含有一存儲體,用來儲存數(shù)據(jù);該方法包含有當(dāng)將數(shù)據(jù)寫入至該光盤片各數(shù)據(jù)區(qū)塊時,若一數(shù)據(jù)區(qū)塊為損壞,則進(jìn)行一檢查步驟,以檢查代替該數(shù)據(jù)區(qū)塊的該備用區(qū)塊所對應(yīng)的該封裝區(qū)中,是否至少有另一個備用區(qū)塊的數(shù)據(jù)已經(jīng)被儲存于該存儲體中。9.如權(quán)利要求8的方法,若進(jìn)行該檢查步驟后發(fā)現(xiàn)代替該數(shù)據(jù)區(qū)塊的該備用區(qū)塊所對應(yīng)的封裝區(qū)中,已有另一備用區(qū)塊的數(shù)據(jù)被儲存于該存儲體中,則該光盤機(jī)在發(fā)現(xiàn)另一第二損壞數(shù)據(jù)區(qū)塊之前,不會將數(shù)據(jù)寫入至該備用區(qū)塊中。10.如權(quán)利要求9的方法,其另包含有若代替該第二損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊不屬于該封裝區(qū),則將該封裝區(qū)各備用區(qū)塊的數(shù)據(jù)寫入至該光盤片。11.如權(quán)利要求9的方法,其另包含有若代替該第二損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊不屬于該封裝區(qū)而屬于一第二封裝區(qū),則讀取該第二封裝區(qū)中各備用區(qū)塊的數(shù)據(jù)并儲存至該存儲體中。12.如權(quán)利要求8的方法,其另包含有在將數(shù)據(jù)寫入至該光盤片各該數(shù)據(jù)區(qū)塊前,讀取一封裝區(qū)中的數(shù)據(jù)并儲存于該存儲體中。13.如權(quán)利要求8的方法,若進(jìn)行該檢查步驟后發(fā)現(xiàn)代替該數(shù)據(jù)區(qū)塊的備用區(qū)塊所對應(yīng)的封裝區(qū)中,未有另一備用區(qū)塊的數(shù)據(jù)被儲存于該存儲體中,則讀取該封裝區(qū)中的數(shù)據(jù)并儲存于該存儲體中。全文摘要提供以光盤機(jī)存取光盤片上數(shù)據(jù)的方法。光盤機(jī)有存儲體,光盤片有記錄數(shù)據(jù)的數(shù)據(jù)區(qū)塊及代替損壞數(shù)據(jù)區(qū)塊的備用區(qū)塊。讀取數(shù)據(jù)時,預(yù)先將預(yù)設(shè)數(shù)目備用區(qū)塊的數(shù)據(jù)讀入至存儲體,讀取至損壞數(shù)據(jù)區(qū)塊時,檢查代替損壞數(shù)據(jù)區(qū)塊的備用數(shù)據(jù)區(qū)塊是否已儲存至存儲體;若是,不再讀取備用區(qū)塊,若否,預(yù)先讀取包含備用區(qū)塊的相鄰備用區(qū)塊并存入存儲體。寫入數(shù)據(jù)時,預(yù)先將形成封裝區(qū)的備用區(qū)塊讀入存儲體;要將數(shù)據(jù)寫入至損壞記錄區(qū)塊時,檢查代替的備用區(qū)塊所屬的封裝區(qū)是否已讀入至存儲體;若是,暫時不將數(shù)據(jù)寫入至光盤片上代替的備用區(qū)塊,等到后續(xù)損壞區(qū)塊的替代備用區(qū)塊已不屬于存儲體中儲存的封裝區(qū)時,再將存儲體中儲存的封裝區(qū)一次寫入至光盤片。文檔編號G11B7/005GK1482604SQ0214295公開日2004年3月17日申請日期2002年9月13日優(yōu)先權(quán)日2002年9月13日發(fā)明者吳元丁申請人:聯(lián)發(fā)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1