專利名稱::計算光盤片內(nèi)一軌道的數(shù)據(jù)容量的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種計算一光盤片的一軌道容量的方法,特別是涉及一種用于一光驅(qū)中計算一光盤片內(nèi)一軌道實際容量的方法。
背景技術(shù):
:隨著信息科技的進(jìn)步,光盤片已成為最常被用來儲存數(shù)據(jù)的介質(zhì)之一。在光盤片中,數(shù)據(jù)一般是以螺旋狀的方式,并以軌道(Track)為單位一軌一軌的儲存在光盤片中。但軌道的長度并非是固定的,以音樂光盤片來說每一首歌均為一軌,但數(shù)據(jù)光盤片上雖有許多文件,實際上卻可能只有一軌。光盤片的寫入模式有許多種,例如一次寫入光盤模式(Disc-At-Once,DAO)、一次一節(jié)區(qū)模式(Session-At-Once,SAO)、原始模式(RAW)、一次一軌道模式(Track-At-Once,TAO)、固定數(shù)據(jù)包模式(FixedPacketWrite,F(xiàn)PKT)、以及可變數(shù)據(jù)包模式(VariablePacketWrite,VPKT)等等。其中一次寫入光盤模式(DAO)與一次一節(jié)區(qū)模式(SAO)是采取一次性寫入整個節(jié)區(qū)(Session)的模式,其節(jié)區(qū)中的所有軌道均不含有任何連接區(qū)塊(LinkBlocks)。而原始模式(RAW)雖可任意寫入,但因控制較復(fù)雜,一般的應(yīng)用方式也是采取一次性寫入整個節(jié)區(qū)的模式。亦即,在原始模式(RAW)中,每一節(jié)區(qū)中的所有軌道均不含有任何連接區(qū)塊。然而,有些軌道的寫入模式會使軌道中產(chǎn)生連接區(qū)塊。例如,一次一軌道模式(TAO)采取一次性寫入一整個軌道的方式,因此,在每一軌道的軌道起始點(TrackStart)與軌道終點(TrackEnd)處均存在有連接區(qū)塊。另外,固定數(shù)據(jù)包模式(FPKT)以及可變數(shù)據(jù)包模式(VPKT),由于是采取分次性寫入一個軌道的方式,因此,在每個軌道中均存在有多處連接區(qū)塊。實際上,軌道的容量(TrackCapacity)是指該軌道中所有實際紀(jì)錄有使用者數(shù)據(jù)的區(qū)塊(UserBlocks)的總合。而軌道中的其余區(qū)塊,如前隔區(qū)(Pre-gap)與連接區(qū)塊(LinkBlocks)等,并不能計算在軌道的實際容量內(nèi)。如前所述,若要精確計算軌道容量則必須先知道該軌道的寫入模式。然而,在已知技術(shù)當(dāng)中,當(dāng)一光驅(qū)收到一主機(jī)詢問一目標(biāo)軌道容量的指令時,除非該目標(biāo)軌道為固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式寫入,否則該光驅(qū)并無法判別該目標(biāo)軌道的寫入模式,因此,該光驅(qū)僅能讀取該目標(biāo)軌道所屬節(jié)區(qū)的內(nèi)容目錄表(TableofContents,TOC),依據(jù)當(dāng)中所記載的軌道范圍直接轉(zhuǎn)換為軌道大小以回報予該主機(jī)。很明顯地,當(dāng)該目標(biāo)軌道具有連接區(qū)塊時,由于已知技術(shù)中回傳給該主機(jī)的軌道容量信息中,并沒有將連接區(qū)塊的部分扣除,因此,該主機(jī)所接收到的軌道容量訊息并非該目標(biāo)軌道的實際容量。另外,已知技術(shù)中的另一個問題在于,耗費了過多時間進(jìn)行尋軌與讀取軌道描述區(qū)塊的操作。這是由于每當(dāng)該主機(jī)詢問一目標(biāo)軌道的軌道容量時,若該目標(biāo)軌道為固定數(shù)據(jù)包模式(FPKT)或可變數(shù)據(jù)包模式(VPKT)寫入時,該光驅(qū)均需進(jìn)行尋軌(Track-Seeking)的操作,將讀寫頭(Pick-upHead)移動至該目標(biāo)軌道的軌道描述區(qū)塊所在的位置,以讀取其軌道描述區(qū)塊當(dāng)中的數(shù)據(jù)。這種做法會使得系統(tǒng)整體的效能受到影響。
發(fā)明內(nèi)容因此本發(fā)明的目的是提供一種計算一光盤片內(nèi)一軌道容量的方法,藉由判別該軌道寫入模式以正確計算軌道容量。本發(fā)明的計算一光盤片內(nèi)一軌道容量的方法,包含有利用一光驅(qū)檢查一目標(biāo)軌道所屬的一節(jié)區(qū)中,是否有任一軌道具有連接區(qū)塊;判斷該目標(biāo)軌道的寫入模式;以及根據(jù)該目標(biāo)軌道的寫入模式計算其實際軌道容量。本發(fā)明的優(yōu)點在于藉由檢查該目標(biāo)軌道所屬的該節(jié)區(qū)中是否有任一軌道具有連接區(qū)塊的方式,即可正確判斷該目標(biāo)軌道的寫入模式。本發(fā)明的另一優(yōu)點在于依據(jù)該目標(biāo)軌道的寫入模式,計算該目標(biāo)軌道的實際數(shù)據(jù)容量,因而可得到正確的軌道容量。本發(fā)明的又一優(yōu)點在于可減少光驅(qū)在計算軌道容量時所進(jìn)行尋軌的時間,以提升計算軌道容量的效率。圖1為本發(fā)明的一光驅(qū)的示意圖;圖2為本發(fā)明的計算一光盤片內(nèi)一目標(biāo)軌道容量的方法的流程圖;和圖3為本發(fā)明應(yīng)用于一只讀型光驅(qū)時計算一光盤片內(nèi)一目標(biāo)軌道容量的方法的流程圖。附圖符號說明20光驅(qū)52主軸馬達(dá)30微處理器54讀取頭40非易失性存儲器56滑軌42存儲器60光盤片50伺服模塊具體實施方式圖1所示為本發(fā)明的一光驅(qū)20的示意圖。光驅(qū)20包含有一微處理器30、一非易失性存儲器40、一存儲器42、以及一伺服模塊50,其中伺服模塊50可包括有一用來帶動一光盤片60轉(zhuǎn)動的主軸馬達(dá)52、一可沿一滑軌56移動的讀取頭54等等。光驅(qū)20在接受一主機(jī)(未顯示)所發(fā)出詢問光盤片60的一軌道容量的指令后,利用微處理器30執(zhí)行非易失性存儲器40中儲存的固件程序代碼,以操控伺服模塊50進(jìn)行讀取光盤片60的操作,其中非易失性存儲器40可以為一閃速存儲器,而光驅(qū)20可為一只讀型光驅(qū)或是一可燒錄式光驅(qū)。本發(fā)明的光驅(qū)20可判斷光盤片60當(dāng)中所有的節(jié)區(qū)的寫入模式與每一節(jié)區(qū)當(dāng)中所有軌道的寫入模式,進(jìn)而依據(jù)不同寫入模式的特性,計算出光盤片60當(dāng)中每一軌道的實際容量。如前所述,軌道的實際容量(TrackCapacity)是指該軌道中所有實際紀(jì)錄有使用者數(shù)據(jù)的區(qū)塊(UserBlocks)的總合,而軌道中的其余區(qū)塊,如前隔區(qū)(Pre-gap)與連接區(qū)塊(LinkBlocks)等,并不能計算在軌道的實際容量內(nèi)。對于寫入模式為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式的軌道而言,由于不論在軌道起始點(TrackStart)或軌道終點(TrackEnd)之處皆無連接區(qū)塊存在,故本發(fā)明的光驅(qū)20在計算軌道容量時,僅需將前隔區(qū)排除。對于寫入模式為一次一軌道模式而言,其軌道起始點與軌道終點之處皆具有連接區(qū)塊。由于軌道起始點處的連接區(qū)塊(5個Run-in區(qū)塊)屬于前隔區(qū),故本發(fā)明的光驅(qū)20在計算實際軌道容量時,需將前隔區(qū)排除,并將軌道終點處的連接區(qū)塊(2個Run-out區(qū)塊)排除。對于可變數(shù)據(jù)包模式的軌道而言,除起始點與終點之處皆具有連接區(qū)塊外,軌道中亦可能存在有多個連接區(qū)塊。然而軌道中的連接區(qū)塊數(shù)目因無法計算而忽略,故其軌道容量的計算如一次一軌道寫入模式的方法。亦即,由于軌道起始點處的連接區(qū)塊(5個Run-in區(qū)塊)屬于前隔區(qū),故本發(fā)明的光驅(qū)20在計算實際軌道容量時,需將前隔區(qū)排除,并將軌道終點處的連接區(qū)塊(2個Run-out區(qū)塊)排除。對于寫入模式為固定數(shù)據(jù)包模式的軌道而言,不僅其軌道起始點與軌道終點之處皆具有連接區(qū)塊,而且每個數(shù)據(jù)包之間亦存在有連接區(qū)塊。故本發(fā)明的光驅(qū)20計算實際軌道容量時,除了要排除前隔區(qū)與軌道終點處的連接區(qū)塊,亦要排除每個數(shù)據(jù)包之間的連接區(qū)塊。以下將以流程圖說明本發(fā)明的光驅(qū)20的詳細(xì)運作方式。請參考圖2(并一并參考圖1)。圖2為本發(fā)明的計算一光盤片內(nèi)一目標(biāo)軌道容量的方法的流程圖100,其包含有下列步驟步驟102開始。步驟103判斷光盤片60是否為一可記錄式(Recordable)或可重復(fù)讀寫式(Re-writable)光盤片,若是,則進(jìn)行步驟104;若光盤片60為一只讀型光盤片,則進(jìn)行步驟124。步驟104讀取光盤片60的程序存儲區(qū)(ProgramMemoryArea,PMA)及光盤片60內(nèi)該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表(TableofContents,TOC)。步驟106判斷光盤片60的程序存儲區(qū)與該節(jié)區(qū)的內(nèi)容目錄表是否均記錄有該節(jié)區(qū)的軌道信息,若是,則進(jìn)行步驟108;若光盤片60的程序存儲區(qū)未紀(jì)錄有該節(jié)區(qū)的軌道信息,或該節(jié)區(qū)的內(nèi)容目錄表不存在,則對該節(jié)區(qū)進(jìn)行步驟112。步驟108檢查該節(jié)區(qū)中是否有以數(shù)據(jù)包模式寫入的軌道,若有,則進(jìn)行步驟116;若否,則進(jìn)行步驟110。步驟110檢查該節(jié)區(qū)中是否存在具有連接區(qū)塊的軌道,若有,則進(jìn)行步驟120;若否,則進(jìn)行步驟124。步驟112若該節(jié)區(qū)的內(nèi)容目錄表記錄有該節(jié)區(qū)的軌道信息,而光盤片60的程序存儲區(qū)未紀(jì)錄有該節(jié)區(qū)的軌道信息,則對該節(jié)區(qū)進(jìn)行步驟124;若程序存儲區(qū)紀(jì)錄有該節(jié)區(qū)的軌道信息,而該節(jié)區(qū)的內(nèi)容目錄表不存在,則對該節(jié)區(qū)進(jìn)行步驟114。步驟114依據(jù)程序存儲區(qū)所紀(jì)錄的內(nèi)容,判斷該節(jié)區(qū)內(nèi)的每一軌道的寫入模式是否為數(shù)據(jù)包模式,若該節(jié)區(qū)內(nèi)的所有軌道的寫入模式均非數(shù)據(jù)包模式,或該目標(biāo)軌道的寫入模式不是數(shù)據(jù)包模式,則進(jìn)行步驟120;若該目標(biāo)軌道的寫入模式是數(shù)據(jù)包模式,則進(jìn)行步驟116;。步驟116利用光驅(qū)20的讀取頭54讀取該目標(biāo)軌道的軌道描述區(qū)塊(TrackDescriptorBlock,TDB)。步驟118微處理器30依據(jù)該目標(biāo)軌道的軌道描述區(qū)塊的內(nèi)容,判斷該目標(biāo)軌道以固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式寫入,若該目標(biāo)軌道以固定數(shù)據(jù)包模式寫入,則進(jìn)行步驟122;反之,若該目標(biāo)軌道以可變數(shù)據(jù)包模式寫入,則進(jìn)行步驟120。步驟120利用微處理器30依一次一軌道模式計算該目標(biāo)軌道的實際容量。步驟122利用微處理器30根據(jù)該目標(biāo)軌道的軌道描述區(qū)塊的內(nèi)容,得知數(shù)據(jù)包大小,依固定數(shù)據(jù)包模式計算該目標(biāo)軌道的實際容量。步驟124利用微處理器30依一次一節(jié)區(qū)模式計算該目標(biāo)軌道的實際容量。步驟126結(jié)束。微處理器30將計算的結(jié)果暫存在存儲器42,或省略步驟120、122及124而只在存儲器42中儲存該目標(biāo)軌道的寫入模式,待主機(jī)端需要該目標(biāo)軌道的實際容量時再據(jù)以計算。在本發(fā)明的一較佳實施例中,光驅(qū)20為一可燒錄式光驅(qū)。在光盤片60上,依寫入模式的不同,可能包含了一個或多個記錄著數(shù)據(jù)的節(jié)區(qū),而每個節(jié)區(qū)又可能包含有一個或多個軌道。在本發(fā)明的一較佳實施例中,為了能使光驅(qū)20于之后被詢問有關(guān)光盤片60上該目標(biāo)軌道的容量時,能盡量減少尋軌操作與提升響應(yīng)速度,因此,光驅(qū)20會在初始化的過程當(dāng)中一并進(jìn)行本發(fā)明的計算光盤片內(nèi)軌道容量的方法。光盤片60不一定會有程序存儲區(qū)(例如只讀式光盤片),因此,在步驟103中,光驅(qū)20會判斷光盤片60是否為一可記錄式光盤片,若是,則進(jìn)行步驟104及后續(xù)步驟;若否,則表示光盤片60中沒有程序存儲區(qū),亦表示光盤片60上任何軌道均無連接區(qū)塊存在。故本發(fā)明的計算軌道容量的方法可直接跳到步驟124,只需排除該目標(biāo)軌道的前隔區(qū)(Pre-gap)部分,便能算出該目標(biāo)軌道的實際容量。然而,即便光盤片60有程序存儲區(qū)亦不一定紀(jì)錄有軌道信息,且不一定每一節(jié)區(qū)均具有內(nèi)容目錄表,這是因為以一次一軌道模式(Track-At-Once,TAO)或數(shù)據(jù)包模式(PacketWrite)寫入的節(jié)區(qū)需執(zhí)行終結(jié)節(jié)區(qū)(SessionFixation即CloseSession)的操作后才會寫入內(nèi)容目錄表。在步驟104中,光驅(qū)20會讀取光盤片60的程序存儲區(qū)及該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表。接著,在步驟106及步驟112中,光驅(qū)20會依據(jù)光盤片60的程序存儲區(qū)以及該節(jié)區(qū)的內(nèi)容目錄表是否紀(jì)錄有該節(jié)區(qū)的軌道信息,來初步判斷該節(jié)區(qū)的寫入模式,甚至在某些情況下可以直接判斷出該節(jié)區(qū)及當(dāng)中的該目標(biāo)軌道的寫入模式。例如,對于一節(jié)區(qū)A而言,若在步驟106與步驟112中發(fā)現(xiàn)光盤片60的程序存儲區(qū)未紀(jì)錄有該節(jié)區(qū)A的軌道信息,而該節(jié)區(qū)A的內(nèi)容目錄表卻存在,則便可斷定該節(jié)區(qū)A屬一CD-ROM盤片的節(jié)區(qū)或是以一次寫入光盤模式(DAO)、一次一節(jié)區(qū)模式(SAO)、或原始模式(RAW)寫入的一CD-R/RW的節(jié)區(qū)。如前所述,在這類情形中該節(jié)區(qū)A中的每一軌道,不論在軌道起始點(TrackStart)或軌道終點(TrackEnd)之處皆無連接區(qū)塊存在。因此,在步驟124中,光驅(qū)20利用微處理器30計算該節(jié)區(qū)A當(dāng)中的一目標(biāo)軌道A1的容量時,只需排除每一軌道的前隔區(qū)(Pre-gap)部分,便能算出該節(jié)區(qū)A中該目標(biāo)軌道A1的實際容量。另一方面,對于一節(jié)區(qū)B而言,若在步驟106與步驟112中發(fā)現(xiàn)光盤片60的程序存儲區(qū)紀(jì)錄有該節(jié)區(qū)B的軌道信息,而該節(jié)區(qū)B的內(nèi)容目錄表不存在,則表示該節(jié)區(qū)B尚未執(zhí)行節(jié)區(qū)終結(jié)的操作,但可依此斷定該節(jié)區(qū)B的寫入模式并非一次寫入光盤模式(DAO)、一次一節(jié)區(qū)模式(SAO)、或原始模式(RAW),而可能是一次一軌道模式(TAO)或數(shù)據(jù)包模式。此時,在步驟114中,依據(jù)光盤片60的程序存儲區(qū)所記錄的內(nèi)容,可以得知該節(jié)區(qū)B當(dāng)中的每一軌道的寫入模式是否為數(shù)據(jù)包模式。假設(shè)在步驟114中光驅(qū)20由光盤片60的程序存儲區(qū)的內(nèi)容得知,該節(jié)區(qū)B中的一目標(biāo)軌道B1并非以數(shù)據(jù)包模式寫入,則便可斷定該目標(biāo)軌道B1的寫入模式為一次一軌道模式。接著,在步驟120中,微處理器30在計算該目標(biāo)軌道B1的容量時,會將該目標(biāo)軌道B1的前隔區(qū)(Pre-gap)與最后兩個連接區(qū)塊(Run-out)扣除,不計算在該目標(biāo)軌道B1的實際容量內(nèi)。相反地,若由光盤片60的程序存儲區(qū)的內(nèi)容得知,該節(jié)區(qū)B中的一目標(biāo)軌道B2是以數(shù)據(jù)包模式寫入,則在步驟116中,光驅(qū)20會利用讀取頭54讀取該目標(biāo)軌道B2的軌道描述區(qū)塊(TDB)。每一軌道的軌道描述區(qū)塊位于其前隔區(qū)內(nèi)。在步驟118中,當(dāng)光驅(qū)20讀取了該目標(biāo)軌道B2的軌道描述區(qū)塊后,便可根據(jù)軌道描述區(qū)塊當(dāng)中的內(nèi)容判斷該目標(biāo)軌道B2是以哪種數(shù)據(jù)包模式寫入,例如固定數(shù)據(jù)包模式(FPKT)或可變數(shù)據(jù)包模式(VPKT)。如果該目標(biāo)軌道B2以可變數(shù)據(jù)包模式寫入,則在步驟120中,微處理器30在計算該目標(biāo)軌道B2的實際容量時,采用的計算方式與一次一軌道模式寫入的軌道相同,會將該目標(biāo)軌道B2的前隔區(qū)(Pre-gap)與最后兩個連接區(qū)塊(Run-out)扣除,不計算在該目標(biāo)軌道B2的實際容量內(nèi)。若該目標(biāo)軌道B2以固定數(shù)據(jù)包模式寫入,則在步驟122中,微處理器30在計算該目標(biāo)軌道B2的實際容量時,會將其前隔區(qū)與其它所有的連接區(qū)塊都扣除,不計算在該目標(biāo)軌道B2的實際容量內(nèi)。對于另一節(jié)區(qū)C而言,若光驅(qū)20在步驟106中發(fā)現(xiàn)光盤片60的程序存儲區(qū)紀(jì)錄有該節(jié)區(qū)C的軌道信息,且該節(jié)區(qū)C的內(nèi)容目錄表亦存在,則在步驟108中,會藉由該節(jié)區(qū)C的內(nèi)容目錄表判斷該節(jié)區(qū)C中是否存在有以數(shù)據(jù)包模式寫入的軌道。若節(jié)區(qū)C的內(nèi)容目錄表紀(jì)錄著一目標(biāo)軌道C1以數(shù)據(jù)包模式寫入,則在步驟116中,光驅(qū)20需要進(jìn)一步讀取該目標(biāo)軌道C1的軌道描述區(qū)塊(TDB),以確定該目標(biāo)軌道C1以固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式寫入。對于該節(jié)區(qū)C中其它并非以數(shù)據(jù)包模式寫入的軌道而言,均可推斷其寫入模式為一次一軌道模式(TAO)。然而,在步驟108中,若該節(jié)區(qū)C中的所有軌道均非以數(shù)據(jù)包模式寫入,則接下來在步驟110中,光驅(qū)20會利用讀取頭54實際讀取該節(jié)區(qū)C當(dāng)中的第一軌道。由于以一次一軌道模式(TAO)寫入的軌道,其軌道起始點與軌道終點之處皆具有連接區(qū)塊(Run-in與Run-out),因此,在本發(fā)明的一較佳實施例中,藉由實際讀取該節(jié)區(qū)C當(dāng)中的第一軌道的軌道起始點,可得知該節(jié)區(qū)C中的第一軌道是否具有連接區(qū)塊,若有,則表示該節(jié)區(qū)C的第一軌道系以一次一軌道模式寫入,亦可進(jìn)一步推知該節(jié)區(qū)C當(dāng)中的所有軌道的寫入模式均為一次一軌道模式。若該節(jié)區(qū)C的第一軌道并不具有連接區(qū)塊,則可推知該節(jié)區(qū)C的寫入模式為一次寫入光盤模式(DAO)、一次一節(jié)區(qū)模式(SAO)、或原始模式(RAW)。接著,在步驟124中,微處理器30在計算該節(jié)區(qū)C中的一目標(biāo)軌道C2的容量時,僅需將該目標(biāo)軌道C2的前隔區(qū)排除,便可算出該目標(biāo)軌道C2的實際容量。請注意,在本發(fā)明的一較佳實施例中,微處理器30會在步驟126中,將所計算出來光盤片60上該目標(biāo)軌道的實際容量,暫存于存儲器42。而在本發(fā)明的另一實施例中,亦可省略步驟120、122及124而只在存儲器42中儲存該目標(biāo)軌道的寫入模式,待主機(jī)端需要該目標(biāo)軌道的實際容量時再據(jù)以計算。如此一來,當(dāng)本發(fā)明的光驅(qū)20之后接收到任何詢問光盤片60上該目標(biāo)軌道容量的指令時,便可從存儲器42中將該目標(biāo)軌道的容量數(shù)據(jù)取出(或依據(jù)存儲器42中所紀(jì)錄的該目標(biāo)軌道的寫入模式計算該目標(biāo)軌道的實際容量),以快速響應(yīng)該查詢指令,而不需要如已知技術(shù)般進(jìn)行尋軌操作,移動讀取頭54以讀取被查詢的一目標(biāo)軌道所屬的節(jié)區(qū)的內(nèi)容目錄表。另外,本發(fā)明的計算一光盤片內(nèi)軌道的實際容量的方法,亦可在光盤片60置入光驅(qū)20后的初始化過程中,一并判斷出光盤片60上所有軌道的寫入模式(或進(jìn)一步計算出每一軌道的實際容量),并儲存在存儲器42中,以提升響應(yīng)主機(jī)詢問有關(guān)光盤片60上任一軌道的容量時的速度與正確性。如前所述,本發(fā)明具有以下幾項優(yōu)點第一,光驅(qū)20在光盤片60置入后所進(jìn)行的初始化過程中,便可利用微處理器30計算光盤片60當(dāng)中每一軌道的實際容量(或每一軌道的寫入模式),并暫存在存儲器42中。因此,若之后光驅(qū)20接收到詢問光盤片60上任一軌道容量的指令時,僅需從存儲器42中讀取該軌道的容量(或依據(jù)所紀(jì)錄的該軌道的寫入模式計算該軌道的容量),便可響應(yīng)該詢問指令。如此一來,本發(fā)明的光驅(qū)20可有效減少進(jìn)行尋軌操作的次數(shù)與時間。第二,在本發(fā)明的一較佳實施例中,步驟110檢查該節(jié)區(qū)是否存在具有連接區(qū)塊的軌道時,為了能達(dá)到最佳效率,因此光驅(qū)20讀取該節(jié)區(qū)的第一軌道的軌道起始點,以使檢查過程中的尋軌距離達(dá)到最短。第三,本發(fā)明在計算光盤片60上每一軌道的容量時,依不同軌道寫入模式而采取不同的計算方式,可求得實際的軌道容量,進(jìn)而解決已知技術(shù)的問題。請注意,上述本發(fā)明的一較佳實施例的優(yōu)點并不限制本發(fā)明的應(yīng)用范圍。本發(fā)明的計算軌道容量的方法可以但不限定于必須在光盤片60置入光驅(qū)20后的初始操作中完成,其亦可在光驅(qū)20收到詢問一目標(biāo)軌道容量的指令時,才對該目標(biāo)所處的一節(jié)區(qū)進(jìn)行前述計算流程。另外,本發(fā)明的計算軌道容量的方法在步驟110中,亦不限定于僅能讀取該節(jié)區(qū)的第一軌道,其亦可選擇讀取該節(jié)區(qū)當(dāng)中的任一軌道,以判斷該節(jié)區(qū)當(dāng)中的軌道是否具有連接區(qū)塊。另外,在上述說明中,是假設(shè)光驅(qū)20為一可燒錄式光驅(qū),此僅是為了方便說明本發(fā)明的一較佳實施例。由于可燒錄式光驅(qū)可讀取光盤片60的程序存儲區(qū)(若存在的話),故可用較少步驟判斷出某些節(jié)區(qū)的寫入模式。當(dāng)然,本發(fā)明的計算軌道容量的方法亦適用于各式只讀型光驅(qū)。當(dāng)光驅(qū)20為一只讀型光驅(qū)時,由于無法讀取光盤片60的程序存儲區(qū)(PMA),故圖2的流程圖當(dāng)中,某些與光盤片60的程序存儲區(qū)有關(guān)的步驟便不會被使用到。請參考圖3(并一并參考圖2)。圖3為本發(fā)明的計算一光盤片內(nèi)一目標(biāo)軌道容量的方法應(yīng)用于一只讀型光驅(qū)的流程圖200,其包含有以下步驟步驟102開始。步驟204讀取光盤片60中該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表(TableofContents,TOC)。步驟108檢查該節(jié)區(qū)中是否有以數(shù)據(jù)包模式寫入的軌道,若有,則進(jìn)行步驟116;若否,則進(jìn)行步驟110。步驟110檢查該節(jié)區(qū)中是否存在具有連接區(qū)塊的軌道,若有,則進(jìn)行步驟120;若否,則進(jìn)行步驟124。步驟116利用光驅(qū)20的讀取頭54讀取該目標(biāo)軌道的軌道描述區(qū)塊(TrackDescriptorBlock,TDB)。步驟118微處理器30依據(jù)該目標(biāo)軌道的軌道描述區(qū)塊的內(nèi)容,判斷該目標(biāo)軌道以固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式寫入,若該目標(biāo)軌道以固定數(shù)據(jù)包模式寫入,則進(jìn)行步驟122;反之,若該目標(biāo)軌道系以可變數(shù)據(jù)包模式寫入,則進(jìn)行步驟120。步驟120利用微處理器30依一次一軌道模式計算該目標(biāo)軌道的實際容量。步驟122利用微處理器30依固定數(shù)據(jù)包模式計算該目標(biāo)軌道的實際容量。步驟124利用微處理器30依一次一節(jié)區(qū)模式計算該目標(biāo)軌道的實際容量。步驟126結(jié)束。微處理器30將計算的結(jié)果暫存在存儲器42,或省略步驟120、122及124而只在存儲器42中儲存該目標(biāo)軌道的寫入模式,待主機(jī)端需要該目標(biāo)軌道的實際容量時再據(jù)以計算。流程圖200與流程圖100很類似,因此兩流程圖中相同的步驟以相同的號碼進(jìn)行編號,而兩流程圖的不同點在于流程圖200當(dāng)中沒有任何步驟與光盤片60的程序存儲區(qū)有關(guān)。由于流程圖200當(dāng)中的各步驟,均與流程圖100的說明類似,為簡潔起見,在此不再贅述。同理,只讀型光驅(qū)20亦不限定需在光盤片60置入后的初始化過程完成流程圖200的所有步驟。其亦可在接收到詢問光盤片60上某一目標(biāo)軌道容量的指令時,才依本發(fā)明所提出的方法計算該目標(biāo)軌道的實際容量。此外,本發(fā)明的計算一光盤片內(nèi)一軌道容量的方法亦適用于各種預(yù)錄式光盤片(如CD-ROM)。由于一預(yù)錄式光盤片并不會有程序存儲區(qū)存在,亦不可能存在有以數(shù)據(jù)包模式寫入的軌道,故其軌道容量的計算方式等同于一次寫入光盤模式(DAO)、一次一節(jié)區(qū)模式(SAO)、或原始模式(RAW)??偨Y(jié)以上說明,本發(fā)明的計算一光盤片內(nèi)一軌道容量的方法有以下技術(shù)特征第一,本發(fā)明的方法藉由檢查該目標(biāo)軌道所屬的該節(jié)區(qū)中是否有任一軌道具有連接區(qū)塊的方式,可正確判斷該目標(biāo)軌道的寫入模式。第二,本發(fā)明的方法依據(jù)每一軌道的寫入模式,分別計算每一軌道的實際數(shù)據(jù)容量。第三、本發(fā)明的方法可減少光驅(qū)進(jìn)行尋軌的次數(shù)與時間,以提升系統(tǒng)運作的效率。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。權(quán)利要求1.一種用在一光驅(qū)中計算一光盤片的一軌道的實際容量的方法,該方法包含有(a)利用該光驅(qū)檢查一目標(biāo)軌道所屬的一節(jié)區(qū)中,是否有任一軌道具有連接區(qū)塊;(b)判斷該目標(biāo)軌道的寫入模式;以及(c)根據(jù)該目標(biāo)軌道的寫入模式計算其實際軌道容量。2.如權(quán)利要求1所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表,而步驟(c)中還包含有在該節(jié)區(qū)的內(nèi)容目錄表存在但該光盤片的程序存儲區(qū)不存在或存在但未紀(jì)錄有該節(jié)區(qū)的軌道信息時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)后的大小。3.如權(quán)利要求2所述的方法,其中該目標(biāo)軌道的寫入模式為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式。4.如權(quán)利要求1所述的方法,其中該方法還包含利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表,而步驟(b)中還包含有在該節(jié)區(qū)的內(nèi)容目錄表不存在但該光盤片的程序存儲區(qū)存在并紀(jì)錄有該節(jié)區(qū)的軌道信息時,根據(jù)程序存儲區(qū)的內(nèi)容判斷該目標(biāo)軌道的寫入模式是否為數(shù)據(jù)包模式。5.如權(quán)利要求4所述的方法,其中在步驟(c)中還包含有當(dāng)該目標(biāo)軌道并非以數(shù)據(jù)包模式寫入時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。6.如權(quán)利要求4所述的方法,其中該方法還包含有利用該光驅(qū),在該目標(biāo)軌道的寫入模式為數(shù)據(jù)包模式時,讀取該目標(biāo)軌道的軌道描述區(qū)塊,以判斷該目標(biāo)軌道的寫入模式為固定數(shù)據(jù)包模式、或可變數(shù)據(jù)包模式。7.如權(quán)利要求6所述的方法,其中在步驟(c)中還包含有當(dāng)該目標(biāo)軌道以可變數(shù)據(jù)包模式寫入時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。8.如權(quán)利要求6所述的方法,其中在步驟(c)中還包含有當(dāng)該目標(biāo)軌道系以固定數(shù)據(jù)包模式寫入時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及所有連接區(qū)塊后的大小。9.如權(quán)利要求1所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表,并檢查該目標(biāo)軌道所屬的該節(jié)區(qū)中的每一軌道,是否存在有以數(shù)據(jù)包模式寫入的軌道,而步驟(b)中還包含有利用該光驅(qū),在該節(jié)區(qū)的內(nèi)容目錄表及該光盤片的程序存儲區(qū)均存在并紀(jì)錄有該節(jié)區(qū)的軌道信息,且該節(jié)區(qū)存儲器在有以數(shù)據(jù)包模式寫入的軌道時,讀取該目標(biāo)軌道的軌道描述區(qū)塊,以判斷該目標(biāo)軌道以固定數(shù)據(jù)包模式、或可變數(shù)據(jù)包模式寫入。10.如權(quán)利要求9所述的方法,其中在步驟(c)中還包含有當(dāng)該目標(biāo)軌道系以可變數(shù)據(jù)包模式寫入時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。11.如權(quán)利要求9所述的方法,其中在步驟(c)中還包含有當(dāng)該目標(biāo)軌道系以固定數(shù)據(jù)包模式寫入時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及所有連接區(qū)塊后的大小。12.如權(quán)利要求1所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表,并檢查該目標(biāo)軌道所屬的該節(jié)區(qū)中的每一軌道,是否存在有以數(shù)據(jù)包模式寫入的軌道,而步驟(c)中還包含有利用該光驅(qū),在該節(jié)區(qū)的內(nèi)容目錄表與該光盤片的程序存儲區(qū)均存在并紀(jì)錄有該節(jié)區(qū)的軌道信息、該節(jié)區(qū)內(nèi)的所有軌道均非以數(shù)據(jù)包模式寫入、以及步驟(a)中存在具有連接區(qū)塊的軌道時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。13.如權(quán)利要求1所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及一目標(biāo)軌道所屬的一節(jié)區(qū)的內(nèi)容目錄表,并檢查該目標(biāo)軌道所屬的該節(jié)區(qū)中的每一軌道,是否存在有以數(shù)據(jù)包模式寫入的軌道,而步驟(c)中還包含有利用該光驅(qū),在該節(jié)區(qū)的內(nèi)容目錄表與該光盤片的程序存儲區(qū)均存在且紀(jì)錄有該節(jié)區(qū)的軌道信息、該節(jié)區(qū)內(nèi)的所有軌道均非以數(shù)據(jù)包模式寫入、以及步驟(a)中該節(jié)區(qū)的任一軌道均不具有連接區(qū)塊時,將該目標(biāo)軌道的實際容量,設(shè)定為該目標(biāo)軌道扣除其前隔區(qū)后的大小。14.如權(quán)利要求1所述的方法,其中該光驅(qū)可為一只讀型光驅(qū)或一可燒錄式光驅(qū)。15.一種光驅(qū),其可利用如權(quán)利要求1所述的方法,以計算一光盤片中一軌道的實際容量。16.一種用在一光驅(qū)中判斷一光盤片的一軌道的寫入模式的方法,該方法包含有(a)利用該光驅(qū)檢查一目標(biāo)軌道所屬的一節(jié)區(qū)中,是否有任一軌道具有連接區(qū)塊;以及(b)判斷該目標(biāo)軌道的寫入模式。17.如權(quán)利要求16所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的該節(jié)區(qū)的內(nèi)容目錄表,當(dāng)該光驅(qū)檢查出該節(jié)區(qū)的內(nèi)容目錄表存在但該光盤片的程序存儲區(qū)不存在或存在但未紀(jì)錄有該節(jié)區(qū)的軌道信息時,則該目標(biāo)軌道的寫入模式為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式。18.如權(quán)利要求16所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的該節(jié)區(qū)的內(nèi)容目錄表,當(dāng)該光驅(qū)檢查出該節(jié)區(qū)的內(nèi)容目錄表不存在但該光盤片的程序存儲區(qū)存在并紀(jì)錄有該節(jié)區(qū)的軌道信息時,則該目標(biāo)軌道的寫入模式為數(shù)據(jù)包模式或一次一軌道模式。19.如權(quán)利要求18所述的方法,其中該方法還包含有根據(jù)程序存儲區(qū)的內(nèi)容判斷該目標(biāo)軌道是否為數(shù)據(jù)包模式寫入。20.如權(quán)利要求18所述的方法,其中在步驟(b)中還包含有利用該光驅(qū),在該目標(biāo)軌道為數(shù)據(jù)包模式寫入時,讀取該目標(biāo)軌道的軌道描述區(qū)塊,以判斷該目標(biāo)軌道的寫入模式為固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式。21.如權(quán)利要求16所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的該節(jié)區(qū)的內(nèi)容目錄表,并檢查該節(jié)區(qū)中是否存在有以數(shù)據(jù)包模式寫入的軌道,而在步驟(b)中還包含有利用該光驅(qū),在該節(jié)區(qū)的內(nèi)容目錄表及該光盤片的程序存儲區(qū)均存在并紀(jì)錄有該節(jié)區(qū)的軌道信息、且該節(jié)區(qū)存儲器在有以數(shù)據(jù)包模式寫入的軌道時,讀取該目標(biāo)軌道的軌道描述區(qū)塊,以判斷該目標(biāo)軌道的寫入模式為固定數(shù)據(jù)包模式或可變數(shù)據(jù)包模式。22.如權(quán)利要求16所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的該節(jié)區(qū)的內(nèi)容目錄表,并檢查該節(jié)區(qū)中是否存在有以數(shù)據(jù)包模式寫入的軌道,而當(dāng)該節(jié)區(qū)的內(nèi)容目錄表及該光盤片的程序存儲區(qū)均存在并紀(jì)錄有該節(jié)區(qū)的軌道信息、且該節(jié)區(qū)內(nèi)不存在以數(shù)據(jù)包模式寫入的軌道、以及步驟(a)中檢查出該節(jié)區(qū)內(nèi)不存在具有連接區(qū)塊的軌道時,則該目標(biāo)軌道的寫入模式為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式。23.如權(quán)利要求16所述的方法,其中該方法還包含有利用該光驅(qū)讀取該光盤片的程序存儲區(qū)及該目標(biāo)軌道所屬的該節(jié)區(qū)的內(nèi)容目錄表,并檢查該節(jié)區(qū)中是否存在有以數(shù)據(jù)包模式寫入的軌道,而當(dāng)該節(jié)區(qū)的內(nèi)容目錄表及該光盤片的程序存儲區(qū)均存在并紀(jì)錄有該節(jié)區(qū)的軌道信息、且該節(jié)區(qū)內(nèi)不存在以數(shù)據(jù)包模式寫入的軌道、以及步驟(a)中檢查出該節(jié)區(qū)存儲器在具有連接區(qū)塊的軌道時,則該目標(biāo)軌道的寫入模式為一次一軌道模式。24.如權(quán)利要求16所述的方法,其中該光驅(qū)可為一只讀型光驅(qū)或一可燒錄式光驅(qū)。25.一種光驅(qū),其可利用如權(quán)利要求16所述的方法,以判斷一光盤片中一軌道的寫入模式。26.一種計算一光盤片中一軌道的實際數(shù)據(jù)容量的方法,該方法包含有(a)利用一光驅(qū),在一目標(biāo)軌道的寫入模式為一第一類寫入模式時,設(shè)定該目標(biāo)軌道的實際數(shù)據(jù)容量為該目標(biāo)軌道扣除其前隔區(qū)后的大小;以及(b)利用該光驅(qū),在該目標(biāo)軌道的寫入模式為一第二類寫入模式時,設(shè)定該目標(biāo)軌道的實際數(shù)據(jù)容量為該目標(biāo)軌道扣除其前隔區(qū)及至少部分連接區(qū)塊后的大??;其中當(dāng)該目標(biāo)軌道的寫入模式為該第二類寫入模式時,該目標(biāo)軌道包含有多個連接區(qū)塊。27.如權(quán)利要求26所述的方法,其中該第一類寫入模式可為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式。28.如權(quán)利要求26所述的方法,其中該第二類寫入模式可為一次一軌道模式、固定數(shù)據(jù)包模式、或可變數(shù)據(jù)包模式。29.如權(quán)利要求28所述的方法,其中該方法還包含有利用該光驅(qū),在該目標(biāo)軌道以一次一軌道模式寫入時,設(shè)定該目標(biāo)軌道的實際數(shù)據(jù)容量為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。30.如權(quán)利要求28所述的方法,其中該方法還包含有利用該光驅(qū),在該目標(biāo)軌道以可變數(shù)據(jù)包模式寫入時,設(shè)定該目標(biāo)軌道的實際數(shù)據(jù)容量為該目標(biāo)軌道扣除其前隔區(qū)及最后兩連接區(qū)塊后的大小。31.如權(quán)利要求28所述的方法,其中該方法還包含有利用該光驅(qū),在該目標(biāo)軌道以固定數(shù)據(jù)包模式寫入時,設(shè)定該目標(biāo)軌道的實際數(shù)據(jù)容量為該目標(biāo)軌道扣除其前隔區(qū)及所有連接區(qū)塊后的大小。32.如權(quán)利要求26所述的方法,其中該光驅(qū)可為一只讀型光驅(qū)或一可燒錄式光驅(qū)。33.一種光驅(qū),其可依據(jù)如權(quán)利要求26所述的方法,以計算一光盤片中一軌道的實際數(shù)據(jù)容量。全文摘要一種用在一光驅(qū)中計算一光盤片的一軌道的實際容量的方法,該方法包含有利用該光驅(qū)檢查一目標(biāo)軌道所屬的一節(jié)區(qū)中,是否有任一軌道具有連接區(qū)塊;判斷該目標(biāo)軌道的寫入模式;以及根據(jù)該目標(biāo)軌道的寫入模式計算其實際軌道容量。當(dāng)該軌道的寫入模式為一次寫入光盤模式、一次一節(jié)區(qū)模式、或原始模式時,其實際軌道容量需將其前隔區(qū)排除;當(dāng)該軌道的寫入模式為一次一軌道模式或可變數(shù)據(jù)包模式時,其實際軌道容量另需將軌道終點處的連接區(qū)塊排除;當(dāng)該軌道的寫入模式為固定數(shù)據(jù)包模式時,其實際軌道容量另需將每個數(shù)據(jù)包之間的連接區(qū)塊排除。文檔編號G11B7/00GK1641785SQ200410001308公開日2005年7月20日申請日期2004年1月6日優(yōu)先權(quán)日2004年1月6日發(fā)明者吳元丁,吳哲宏申請人:聯(lián)發(fā)科技股份有限公司