專利名稱:處理光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法及光驅(qū)的制作方法
技術領域:
本發(fā)明涉及一種處理解碼錯誤(decoding error)的方法與裝置,尤指一種處理光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法與光驅(qū)。
背景技術:
傳統(tǒng)光盤的讀取,是以一個數(shù)據(jù)區(qū)段(sector)為解碼單位,所以當產(chǎn)生解碼錯誤而必須要重新讀取光盤上的未解碼數(shù)據(jù)時,只需重新讀取發(fā)生錯誤的數(shù)據(jù)區(qū)段,并且重新解碼所述數(shù)據(jù)區(qū)段即可,這種方式不論是利用硬件或是軟件來實施都相當?shù)貑渭儭5窃跀?shù)字多功能光盤(digital versatile disc,DVD)或者是下一代的藍光光盤(Blu-ray disc,BD)或高解析光盤(High-definition DVD,HD-DVD)時,數(shù)據(jù)并非以一個數(shù)據(jù)區(qū)段為解碼單位,而是以數(shù)個數(shù)據(jù)區(qū)段集合起來所組成的一個數(shù)據(jù)區(qū)塊(block)為解碼單位,故任一數(shù)據(jù)區(qū)段發(fā)生解碼錯誤而需要重新讀取光盤上的未解碼數(shù)據(jù)時,會比傳統(tǒng)光盤來的復雜。如業(yè)界所公知,對于數(shù)字多功能光盤而言,其是以16個數(shù)據(jù)區(qū)段組成一個數(shù)據(jù)區(qū)塊,其中所述數(shù)據(jù)區(qū)塊即為公知的ECC區(qū)塊;對于藍光光盤而言,其是以32個數(shù)據(jù)區(qū)段組成一個數(shù)據(jù)區(qū)塊,其中所述數(shù)據(jù)區(qū)塊即為公知叢集(cluster);至于高解析光盤,其則是以32個數(shù)據(jù)區(qū)段組成一個數(shù)據(jù)區(qū)塊,其中所述數(shù)據(jù)區(qū)塊即為公知數(shù)據(jù)段(data segment)。
請參閱圖1,圖1為現(xiàn)有光驅(qū)100的示意圖。光驅(qū)100可處理一光盤102的讀回數(shù)據(jù)所發(fā)生的解碼錯誤(decoding error),其包含有一儲存裝置110(例如動態(tài)隨機存取內(nèi)存)、一控制電路120以及一解碼電路130。儲存裝置110作為一環(huán)形緩沖器(ring buffer)來儲存由光盤102所讀取的讀回數(shù)據(jù),如圖1所示,儲存裝置110的儲存空間可視為劃分成多個數(shù)據(jù)區(qū)塊(block)BK1~BKn,其中每一個數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段(sector)SC1~SCm。對數(shù)字多功能光盤來說,m值為16(亦即每一ECC區(qū)塊包含有16個區(qū)段),而對藍光光盤和高規(guī)格光盤來說,m值為32(亦即每一叢集與每一數(shù)據(jù)段均包含有32個區(qū)段),如業(yè)界所公知,一般而言,寫入盤片上的數(shù)據(jù)會先經(jīng)過交錯化(interleaving)的處理,因此,在將由盤片所讀取的數(shù)據(jù)存入儲存裝置110之前,會先經(jīng)過去交錯化(de-interleaving)的處理,如此一來,同一數(shù)據(jù)區(qū)段在儲存裝置110中為連續(xù)地存放,此外,也可采用另一種作法而將自盤片上所讀取的數(shù)據(jù)直接存入儲存裝置110,如此一來,儲存在儲存裝置110的是尚未經(jīng)過去交錯化處理的數(shù)據(jù),因此,解碼電路130便需具有去交錯化的功能,亦即解碼電路130本身必須包含一去交錯化電路,以便后續(xù)的解碼動作可順利執(zhí)行。另外,n值則取決于儲存裝置110的儲存容量,因此,若儲存容量愈大,則儲存裝置110所能紀錄的數(shù)據(jù)區(qū)塊的數(shù)量亦越大(亦即n值愈大)??刂齐娐?20耦接于儲存裝置110,且控制電路120包含有一緩存指針(bufferingpointer)BP、一解碼指針(decoding pointer)DP、以及一讀取指針(reading pointer)RP,用來控制儲存裝置110內(nèi)讀回數(shù)據(jù)的存取,換句話說,控制電路120可控制一讀寫頭(未顯示)來自光盤102讀取數(shù)據(jù),并將讀回數(shù)據(jù)儲存至儲存裝置110,另外,控制電路120亦可控制儲存裝置110將其內(nèi)部已完成解碼的讀回數(shù)據(jù)傳遞至主機104。解碼電路130耦接于控制電路120與儲存裝置110,用來解碼儲存裝置110中所儲存的讀回數(shù)據(jù),此外,在解碼時,解碼電路130以數(shù)據(jù)區(qū)段為單位來進行解碼,而解碼過程還包含公知錯誤更正(error correction)的動作,若解碼電路130在解碼一數(shù)據(jù)區(qū)段時產(chǎn)生解碼錯誤,則解碼電路130會輸出一信號S來告知處理器140,處理器140會進一步控制電路120決定如何調(diào)整緩存指針BP、解碼指針DP以及讀取指針RP。以下簡述儲存裝置110內(nèi)讀回數(shù)據(jù)和控制電路120內(nèi)所有指針BP、DP、RP的功能及關連性。
請參閱圖2,圖2為圖1所示的緩存指針BP、解碼指針DP以及讀取指針RP指向儲存裝置110中相對應地址的示意圖。讀回數(shù)據(jù)Data_1包含有一未解碼讀回數(shù)據(jù)Data_2、一解碼中讀回數(shù)據(jù)Data_3(即為目前正在解碼中的一特定數(shù)據(jù)區(qū)段)以及一己解碼讀回數(shù)據(jù)Data_4。緩存指針BP是用來指示(indicate)從光盤102上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置110的起始地址,亦即所述未解碼讀回數(shù)據(jù)緊接著未解碼讀回數(shù)據(jù)Data_2而寫入至儲存裝置110中;解碼指針DP則是用來指示解碼中讀回數(shù)據(jù)Data_3在儲存裝置110上的起始地址(亦即一特定數(shù)據(jù)區(qū)段的起始地址);而讀取指針RP則用來指示目前等待著被主機104(例如一個人計算機)讀取的己解碼讀回數(shù)據(jù)的地址,即為己解碼讀回數(shù)據(jù)Data_4在儲存裝置110中的起始地址。此外,在正常操作下(即未發(fā)生解碼錯誤),若是主機104的數(shù)據(jù)讀取速度快于解碼電路130的數(shù)據(jù)解碼速度,則可能在解碼電路130仍解碼讀回數(shù)據(jù)Data_3時,己解碼讀回數(shù)據(jù)Data_4已全部被讀取至主機104,故讀回數(shù)據(jù)Data_1僅會包含有未解碼讀回數(shù)據(jù)Data_2和解碼中讀回數(shù)據(jù)Data_3,此時讀取指針RP會停留在解碼中讀回數(shù)據(jù)Data_3的前一數(shù)據(jù)區(qū)段的結束地址,而當讀回數(shù)據(jù)Data_3已成功地完成解碼時,解碼指針DP便會移向讀回數(shù)據(jù)Data_3的下一數(shù)據(jù)區(qū)段的起始地址,以及讀取指針RP即會指向讀回數(shù)據(jù)Data_3的起始地址。
如業(yè)界所公知,光驅(qū)100會在三種狀況下處理光盤102的讀回數(shù)據(jù)發(fā)生解碼錯誤的運作,第一種狀況為在發(fā)生解碼錯誤時,解碼指針DP所指示的解碼中讀回數(shù)據(jù)Data_3(對應一數(shù)據(jù)區(qū)段)在儲存裝置110上的起始地址恰好為解碼中讀回數(shù)據(jù)Data_3所對應的數(shù)據(jù)區(qū)塊的起始位置;第二種狀況為在發(fā)生解碼錯誤時,解碼指針DP與讀取指針RP并未對應同一數(shù)據(jù)區(qū)塊,且解碼指針DP所指示的解碼中讀回數(shù)據(jù)Data_3(對應一數(shù)據(jù)區(qū)段)在儲存裝置110上的起始地址并非為解碼中讀回數(shù)據(jù)Data_3所對應的數(shù)據(jù)區(qū)塊的起始位置;以及第三種狀況為在發(fā)生解碼錯誤時,解碼指針DP與讀取指針RP對應同一數(shù)據(jù)區(qū)塊,且解碼指針DP所指示的解碼中讀回數(shù)據(jù)Data_3(對應一數(shù)據(jù)區(qū)段)在儲存裝置110上的起始地址并非為解碼中讀回數(shù)據(jù)Data_3所對應的數(shù)據(jù)區(qū)塊的起始位置。
請同時參閱圖1和圖3,圖3為圖1所示的光驅(qū)100應用公知數(shù)據(jù)管理方法來處理解碼錯誤的第一實施例的示意圖。在時間T3時,緩存指針BP指示從光盤102上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置110的起始地址為數(shù)據(jù)區(qū)段SCy(y的數(shù)值小于或等于m的數(shù)值)的下一數(shù)據(jù)區(qū)段的起始地址,解碼指針DP則指示解碼中的數(shù)據(jù)區(qū)段SC1的起始地址(請注意,數(shù)據(jù)區(qū)段SC1為數(shù)據(jù)區(qū)塊BKi+3的第一個數(shù)據(jù)區(qū)段),讀取指針RP是指示目前等待著被主機104讀取的己解碼讀回數(shù)據(jù)的地址,亦即數(shù)據(jù)區(qū)段SCx(x的數(shù)值小于或等于m的數(shù)值)的起始地址。當解碼電路130對數(shù)據(jù)區(qū)段SC1的信息進行解碼而發(fā)生解碼錯誤時,解碼電路130會輸出信號S來告知控制電路120,由于數(shù)據(jù)區(qū)段SC1為數(shù)據(jù)區(qū)塊BKi+3的第一個數(shù)據(jù)區(qū)段,因此,在時間T′3時,控制電路120僅需更新緩存指針BP,以使其指向數(shù)據(jù)區(qū)段SC1的起始地址,因此,光驅(qū)100便會依據(jù)更新后的緩存指針BP來重新將從光盤102上數(shù)據(jù)區(qū)塊BKi+3起(例如數(shù)據(jù)區(qū)段SC1至數(shù)據(jù)區(qū)段SCy)的相對應未解碼讀回數(shù)據(jù)加載至儲存裝置110中。如上所述,針對第一種狀況,光驅(qū)100必須調(diào)整一個指針(亦即緩存指針BP)。
請同時參閱圖1和圖4,圖4為圖1所示的光驅(qū)100應用公知數(shù)據(jù)管理方法來處理解碼錯誤的第二實施例的示意圖。在時間T4時,緩存指針BP是指示從光盤102上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置110的起始地址為數(shù)據(jù)區(qū)段SCy(y的數(shù)值小于或等于m的數(shù)值)的下一數(shù)據(jù)區(qū)段的起始地址,解碼指針DP則指示解碼中的數(shù)據(jù)區(qū)段SCz(z的數(shù)值小于或等于m的數(shù)值)的起始地址(請注意,數(shù)據(jù)區(qū)段SCz并非為數(shù)據(jù)區(qū)塊BKi+3的第一個數(shù)據(jù)區(qū)段),讀取指針RP指示目前等待著被主機104讀取的己解碼讀回數(shù)據(jù)的地址,亦即數(shù)據(jù)區(qū)段SCx(x的數(shù)值小于或等于m的數(shù)值)的起始地址。當解碼電路130對數(shù)據(jù)區(qū)段SCz的信息進行解碼而發(fā)生解碼錯誤時,解碼電路130會輸出信號S來告知控制電路120,由于數(shù)據(jù)區(qū)段SCz并非為數(shù)據(jù)區(qū)塊BKi+3的第一個數(shù)據(jù)區(qū)段,因此,在時間T′4時,控制電路120需一并更新緩存指針BP與解碼指針DP,以使其指向數(shù)據(jù)區(qū)塊BKi+3的起始地址,因此,光驅(qū)100便會依據(jù)更新后的緩存指針BP來重新將從光盤102上數(shù)據(jù)區(qū)塊BKi+3起的相對應未解碼讀回數(shù)據(jù)加載至儲存裝置110中,另外,光驅(qū)100還會依據(jù)更新后的解碼指針DP來重新對數(shù)據(jù)區(qū)塊BKi+3起的后續(xù)數(shù)據(jù)區(qū)段進行解碼操作。如上所述,針對第二種狀況,光驅(qū)100必須調(diào)整二個指針(亦即緩存指針BP與解碼指針DP)。
請同時參閱圖1和圖5,圖5為圖1所示的光驅(qū)100應用公知數(shù)據(jù)管理方法來處理解碼錯誤的第三實施例的示意圖。在時間T5時,緩存指針BP指示從光盤102上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置110的起始地址為數(shù)據(jù)區(qū)段SCy(y的數(shù)值小于或等于m的數(shù)值)的下一數(shù)據(jù)區(qū)段的起始地址,解碼指針DP則指示解碼中的數(shù)據(jù)區(qū)段SCz(z的數(shù)值小于或等于m的數(shù)值)的起始地址(數(shù)據(jù)區(qū)段SCz并非數(shù)據(jù)區(qū)塊BKi+3的第一個數(shù)據(jù)區(qū)段);讀取指針RP指示目前等待著被主機104讀取的己解碼讀回數(shù)據(jù)的地址,亦即數(shù)據(jù)區(qū)段SCj(j的數(shù)值小于或等于m的數(shù)值)的起始地址。如圖5所示,數(shù)據(jù)區(qū)段SCj與數(shù)據(jù)區(qū)段SCz均位于同一數(shù)據(jù)區(qū)塊BKi+3中。當解碼電路130對數(shù)據(jù)區(qū)段SCz的信息進行解碼而發(fā)生解碼錯誤時,解碼電路130會輸出信號S來告知控制電路120,所以,在時間T′5時,控制電路120需一并更新緩存指針BP、解碼指針DP(讀取指針RP所指向的地址并不會改變),以使其均指向數(shù)據(jù)區(qū)塊BKi+3的起始地址,因此,光驅(qū)100便會依據(jù)更新后的緩存指針BP來重新自光盤102上將數(shù)據(jù)區(qū)塊BKi+3起的相對應未解碼讀回數(shù)據(jù)加載至儲存裝置110中,以及依據(jù)更新后的解碼指針DP來重新對數(shù)據(jù)區(qū)塊BKi+3起的后續(xù)數(shù)據(jù)區(qū)段進行解碼操作。另一方面,由于讀取指針RP所對應的地址是超越解碼指針DP所對應的地址,因此光驅(qū)100會暫停將儲存裝置110中的已解碼讀回數(shù)據(jù)傳遞至主機104,直到解碼指針DP所對應的地址超越讀取指針RP為止。如上所述,針對第三種狀況,光驅(qū)100必須調(diào)整二個指針(亦即緩存指針BP與解碼指針DP),并且還需要記住已被主機讀走的數(shù)據(jù),防止被主機重復讀取。
如圖3至圖5所示,當數(shù)據(jù)區(qū)塊BKi+3中一數(shù)據(jù)區(qū)段的解碼產(chǎn)生錯誤時(上述第一、第二、第三種狀況),數(shù)據(jù)區(qū)塊BKi+3會重新進行解碼的操作,若數(shù)據(jù)區(qū)塊BKi+3一直無法順利地被解碼,則現(xiàn)有光驅(qū)100會放棄對數(shù)據(jù)區(qū)塊BKi+3中未完成解碼的數(shù)據(jù)區(qū)段的解碼操作,而當主機104要求時,將數(shù)據(jù)區(qū)塊BKi+3中已完成解碼的數(shù)據(jù)區(qū)段的信息傳遞至主機104,若主機104要求傳遞數(shù)據(jù)區(qū)塊BKi+3中未完成解碼的數(shù)據(jù)區(qū)段的信息時,則響應處理解碼錯誤的信息給主機104。
綜上所述,由于解碼指針DP并不固定指向某一數(shù)據(jù)區(qū)塊的起始或是結束地址,而是可以指向所述數(shù)據(jù)區(qū)塊內(nèi)的任意一數(shù)據(jù)區(qū)段,因此便導致一旦發(fā)生解碼錯誤時,現(xiàn)有處理解碼錯誤的數(shù)據(jù)管理方法需要針對不同的情況來對緩存指針BP與解碼指針DP進行適當?shù)恼{(diào)整,由于判斷機制繁復,最后便會造成整體光驅(qū)100的復雜度增高,且光驅(qū)100處理解碼錯誤的效能也會受到一定的影響而不顯著。
發(fā)明內(nèi)容
本發(fā)明的目的之一在于提供一種處理一光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法與光驅(qū),以解決上述問題。
本發(fā)明揭露一種處理一光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法,所述讀回數(shù)據(jù)儲存于一光驅(qū)中一儲存裝置內(nèi),所述讀回數(shù)據(jù)包含有多個數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段。所述數(shù)據(jù)管理方法包含有(a)提供一緩存指針以及一解碼指針;(b)使用所述緩存指針來指示自所述光盤所讀取的一未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址;(c)使用所述解碼指針來指示所述讀回數(shù)據(jù)內(nèi)解碼中的一數(shù)據(jù)區(qū)塊的起始地址,其中在所述數(shù)據(jù)區(qū)塊中所有數(shù)據(jù)區(qū)段皆被成功地解碼前,所述解碼指針持續(xù)地指向所述數(shù)據(jù)區(qū)塊的起始地址;以及(d)當解碼所述數(shù)據(jù)區(qū)塊中一特定數(shù)據(jù)區(qū)段而發(fā)生解碼錯誤時,更新所述緩存指針以指示所述未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址對應至所述解碼指針所指示的地址,以重新從所述光盤讀取對應所述數(shù)據(jù)區(qū)塊的未解碼讀回數(shù)據(jù)。
本發(fā)明還包括(e)當步驟(d)重復執(zhí)行一預定次數(shù)之后,僅將所述數(shù)據(jù)區(qū)塊內(nèi)已成功解碼的數(shù)據(jù)傳遞至所述主機。
步驟(a)還包括提供一實際解碼指針,所述數(shù)據(jù)管理方法還包括使用所述實際解碼指針來指示所述數(shù)據(jù)區(qū)塊內(nèi)一解碼中數(shù)據(jù)區(qū)段的起始地址,以及步驟(e)依據(jù)所述解碼指針與所述實際解碼指針將已成功解碼的數(shù)據(jù)傳遞至所述主機。
所述儲存裝置為一動態(tài)隨機存取內(nèi)存DRAM。
所述光盤為一數(shù)字多功能光盤DVD、一高解析光盤HD-DVD或者一藍光光盤BD。
此外,本發(fā)明另揭露一種光驅(qū),其可處理一光盤的讀回數(shù)據(jù)所發(fā)生的解碼錯誤,所述光驅(qū)包含有一儲存裝置,用來儲存所述讀回數(shù)據(jù),所述讀回數(shù)據(jù)包含有多個數(shù)據(jù)區(qū)塊以及所述數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段;一控制電路,耦接于所述儲存裝置,用來控制所述儲存裝置的數(shù)據(jù)存取;以及一解碼電路,耦接于控制電路與所述儲存裝置。所述控制電路包含有一緩存指針,用來指示從所述光盤所讀取的一未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址;以及一解碼指針,用來指示所述讀回數(shù)據(jù)內(nèi)解碼中的一數(shù)據(jù)區(qū)塊的起始地址,其中在所述數(shù)據(jù)區(qū)塊中所有數(shù)據(jù)區(qū)段被成功地解碼前,所述解碼指針持續(xù)地指示所述數(shù)據(jù)區(qū)塊的起始地址;當所述解碼電路解碼所述數(shù)據(jù)區(qū)塊中一特定數(shù)據(jù)區(qū)段而發(fā)生解碼錯誤時,所述控制電路會更新所述緩存指針以指示所述未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址對應至所述解碼指針所指示的地址,以重新自所述光盤讀取對應所述數(shù)據(jù)區(qū)塊的未解碼讀回數(shù)據(jù)。
當所述控制電路重復更新所述緩存指針達一預定次數(shù)之后,所述控制電路僅將所述數(shù)據(jù)區(qū)塊內(nèi)已成功解碼的數(shù)據(jù)傳遞至所述主機。
所述控制電路另包含有一實際解碼指針,用來指示所述數(shù)據(jù)區(qū)塊內(nèi)一解碼中數(shù)據(jù)區(qū)段的起始地址,以及所述控制電路依據(jù)所述解碼指針與所述實際解碼指針將已成功解碼的數(shù)據(jù)傳遞至所述主機。
所述儲存裝置為一動態(tài)隨機存取內(nèi)存DRAM。
所述光盤為一數(shù)字多功能光盤、一高解析光盤或者一藍光光盤。
本發(fā)明數(shù)據(jù)管理方法與應用所述數(shù)據(jù)管理方法的光驅(qū)另提供一解碼指針來取代現(xiàn)有解碼指針的功能,而在一解碼中數(shù)據(jù)區(qū)塊內(nèi)所有的數(shù)據(jù)區(qū)段都被成功地解碼之前,本發(fā)明所揭露的解碼指針會一直持續(xù)地指示所述解碼中數(shù)據(jù)區(qū)塊的起始地址而不會有所改變,故不會有現(xiàn)有技術一般地在發(fā)生解碼錯誤時需要依據(jù)不同的情況來做不同的處理??偠灾?,本發(fā)明數(shù)據(jù)管理方法與應用所述數(shù)據(jù)管理方法的光驅(qū)可降低整體系統(tǒng)的復雜度,且光驅(qū)處理解碼錯誤的效能也會大幅地提升。
圖1為現(xiàn)有光驅(qū)的示意圖。
圖2為圖1所示的緩存指針、解碼指針以及讀取指針指向儲存裝置中相對應地址的示意圖。
圖3為圖1所示的光驅(qū)應用現(xiàn)有數(shù)據(jù)管理方法來處理解碼錯誤的第一實施例的示意圖。
圖4為圖1所示的光驅(qū)應用現(xiàn)有數(shù)據(jù)管理方法來處理解碼錯誤的第二實施例的示意圖。
圖5為圖1所示的光驅(qū)應用現(xiàn)有數(shù)據(jù)管理方法來處理解碼錯誤的第三實施例的示意圖。
圖6為本發(fā)明光驅(qū)的一實施例的示意圖。
圖7為圖6所示的光驅(qū)應用本發(fā)明數(shù)據(jù)管理方法來處理解碼錯誤的一實施例的示意圖。
光驅(qū) 100、600光盤 102、602儲存裝置 110、610
控制電路 120、620解碼電路 130、630主機 104、60具體實施方式
請參閱圖6,圖6為本發(fā)明光驅(qū)600的一實施例的示意圖。光驅(qū)600的功能與操作類似于圖1所示的光驅(qū)100,其同樣地可處理一光盤(例如DVD)602的讀回數(shù)據(jù)所發(fā)生的解碼錯誤(decoding error)。本實施例中,光驅(qū)600包含有一儲存裝置610(例如動態(tài)隨機存取內(nèi)存)、一控制電路620以及一解碼電路630。本實施例中,儲存裝置610是作為一環(huán)形緩沖器(ring buffer)來儲存由光盤602所讀取的讀回數(shù)據(jù),然而,請注意,環(huán)形緩沖器僅為儲存裝置610的一種實施例,對于本發(fā)明而言,儲存裝置610并未局限于環(huán)形緩沖器的結構。如圖6所示,儲存裝置610的儲存空間可視為劃分成多個數(shù)據(jù)區(qū)塊BK1~BKn,其中每一個數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段SC1~SCm。對數(shù)字多功能光盤來說,m值為16(亦即每一ECC區(qū)塊包含有16個區(qū)段),而對藍光光盤和高規(guī)格光盤來說,m值為32(亦即每一叢集與每一數(shù)據(jù)段均包含有32個區(qū)段),另外,n值則取決于儲存裝置610的儲存容量,因此,若儲存容量愈大,則儲存裝置610所能紀錄的數(shù)據(jù)區(qū)塊的數(shù)量亦越大(亦即n值愈大)。本發(fā)明光驅(qū)600與現(xiàn)有光驅(qū)100的主要不同點在于控制電路620除了包含有現(xiàn)有的緩存指針BP、解碼指針DP以及讀取指針RP,其另設置有一實際解碼指針(actual decoding pointer)ADP,此外,控制電路620還提供一種新的控制機制來控制解碼指針DP,其相關操作于后詳述。解碼電路630耦接于控制電路620與儲存裝置610,用來解碼儲存裝置610中所儲存的讀回數(shù)據(jù),此外,若解碼電路630在解碼一數(shù)據(jù)區(qū)段時產(chǎn)生解碼錯誤,則解碼電路630會輸出一信號S來告知控制電路620,而控制電路620便會進一步地決定如何調(diào)整緩存指針BP、實際解碼指針ADP以及讀取指針RP。
緩存指針BP和讀取指針RP的功能與運作方式和現(xiàn)有技術相同,在此不另贅述,而對于解碼指針DP來說,控制電路620是控制其指示儲存裝置610中正在解碼的數(shù)據(jù)區(qū)塊的起始地址,請注意,不同于現(xiàn)有技術的是,在所述解碼中的數(shù)據(jù)區(qū)塊內(nèi)所有的數(shù)據(jù)區(qū)段(SC1~SCm)都被成功地解碼之前,解碼指針DP會一直持續(xù)地指示所述解碼中的數(shù)據(jù)區(qū)塊的起始地址而不會有所改變。此外,控制電路620另使用實際解碼指針ADP來指示在所述解碼中的數(shù)據(jù)區(qū)塊內(nèi)目前正進行解碼的數(shù)據(jù)區(qū)段的起始位置,其作用則和現(xiàn)有解碼指針DP相同,換句話說,由于解碼指針DP的運作在本實施例中不同于其原本操作,故新增的實際解碼指針ADP便用來取代原先解碼指針DP的功能。請注意,如業(yè)界所公知,在正常操作(未發(fā)生解碼錯誤)下,解碼指針DP以及讀取指針RP所對應的地址的移動并不會超越緩存指針BP所對應的地址,以及讀取指針RP所對應的地址的移動并不會超越解碼指針DP所對應的地址。
請同時參閱圖6和圖7,圖7為圖6所示的光驅(qū)600應用本發(fā)明數(shù)據(jù)管理方法來處理解碼錯誤的一實施例的示意圖。在時間T71時,緩存指針BP是指示從光盤602上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置610的起始地址為數(shù)據(jù)區(qū)段SCC(c的數(shù)值小于或等于m的數(shù)值)的下一數(shù)據(jù)區(qū)段的起始地址,解碼指針DP則指示解碼中的數(shù)據(jù)區(qū)塊BKi+2的起始地址,實際解碼指針ADP是指示解碼中的數(shù)據(jù)區(qū)段SCb(b的數(shù)值小于或等于m的數(shù)值)的起始地址,而讀取指針RP是指示目前等待著被主機604讀取的己解碼讀回數(shù)據(jù)的地址,亦即數(shù)據(jù)區(qū)段SCa(a的數(shù)值小于或等于m的數(shù)值)的起始地址。當解碼電路630對數(shù)據(jù)區(qū)段SCb的信息進行解碼而發(fā)生解碼錯誤時,解碼電路630會輸出信號S來告知控制電路620,因此,在時間T72時,控制電路620僅需更新緩存指針BP與實際解碼指針ADP,以使其均指向數(shù)據(jù)區(qū)塊BKi+2的起始地址,因此,光驅(qū)600便會依據(jù)更新后的緩存指針BP來重新自光盤602上將數(shù)據(jù)區(qū)塊BKi+2起的相對應未解碼讀回數(shù)據(jù)加載至儲存裝置610中,此外,光驅(qū)600另會依據(jù)更新后的實際解碼指針ADP而自數(shù)據(jù)區(qū)塊BKi+2中第一個數(shù)據(jù)區(qū)段SC1起開始進行解碼的操作。由于數(shù)據(jù)區(qū)塊BKi+2中所有的數(shù)據(jù)區(qū)段尚未成功地完成解碼,所以,解碼指針DP仍會持續(xù)地對應數(shù)據(jù)區(qū)塊BKi+2的起始地址。
在時間T73時,緩存指針BP是指示從光盤602上讀取的一未解碼讀回數(shù)據(jù)欲寫入至儲存裝置610的起始地址為數(shù)據(jù)區(qū)段SCe(e的數(shù)值小于或等于m的數(shù)值)的下一數(shù)據(jù)區(qū)段的起始地址,解碼指針DP則繼續(xù)指示數(shù)據(jù)區(qū)塊BKi+2的起始地址,實際解碼指針ADP則指示解碼中的數(shù)據(jù)區(qū)段SCm(其為數(shù)據(jù)區(qū)塊BKi+2的最后一個數(shù)據(jù)區(qū)段)的起始地址,而讀取指針RP是指示目前等待著被主機604讀取的己解碼讀回數(shù)據(jù)的地址,亦即數(shù)據(jù)區(qū)段SCd(d的數(shù)值小于或等于m的數(shù)值)的起始地址。當解碼電路630成功地對數(shù)據(jù)區(qū)段SCm的信息進行解碼后,表示數(shù)據(jù)區(qū)塊BKi+2中所有的數(shù)據(jù)區(qū)段皆成功地完成解碼,所以,在時間T74時,控制電路620便一并更新解碼指針DP與實際解碼指針ADP,以使其均指向數(shù)據(jù)區(qū)塊BKi+3的起始地址,因此,光驅(qū)600便會依據(jù)更新后的實際解碼指針ADP而自數(shù)據(jù)區(qū)塊BKi+3中第一個數(shù)據(jù)區(qū)段SC1起開始進行解碼的操作。如上所述,對于光驅(qū)600而言,當其在解碼時發(fā)生解碼錯誤,光驅(qū)600僅調(diào)整兩個指針(亦即緩存指針BP與實際解碼指針ADP)。
本實施例中,若是某一解碼中數(shù)據(jù)區(qū)塊一直無法成功地完成解碼的操作,則控制電路620可適當?shù)卣{(diào)整讀取指針RP、實際解碼指針ADP與解碼指針DP來直接放棄所述數(shù)據(jù)區(qū)塊的所有信息而不將其傳遞至主機604,亦即即使所述數(shù)據(jù)區(qū)塊中已有部分數(shù)據(jù)區(qū)段完成解碼,對應所述部分數(shù)據(jù)區(qū)段的已解碼讀回數(shù)據(jù)仍會被舍棄。此外,若是某一解碼中數(shù)據(jù)區(qū)塊一直無法成功地完成解碼的操作,則控制電路620也可依據(jù)實際解碼指針ADP與解碼指針DP來將所述數(shù)據(jù)區(qū)塊中已可成功解碼的部分數(shù)據(jù)區(qū)段的已解碼讀回數(shù)據(jù)傳送給主機604。
相對于現(xiàn)有技術,本發(fā)明數(shù)據(jù)管理方法與應用所述數(shù)據(jù)管理方法的光驅(qū)另提供一解碼指針來取代現(xiàn)有解碼指針的功能,而在一解碼中數(shù)據(jù)區(qū)塊內(nèi)所有的數(shù)據(jù)區(qū)段都被成功地解碼之前,本發(fā)明所揭露的解碼指針會一直持續(xù)地指示所述解碼中數(shù)據(jù)區(qū)塊的起始地址而不會有所改變,故不會有現(xiàn)有技術一般地在發(fā)生解碼錯誤時需要依據(jù)不同的情況來做不同的處理。總而言之,本發(fā)明數(shù)據(jù)管理方法與應用所述數(shù)據(jù)管理方法的光驅(qū)可降低整體系統(tǒng)的復雜度,且光驅(qū)處理解碼錯誤的效能也會大幅地提升。
以上所述僅為本發(fā)明的較佳實施例,凡依據(jù)本發(fā)明所做的均等變化與修飾,皆應涵蓋在本發(fā)明的保護范圍內(nèi)。
權利要求
1.一種處理光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法,所述讀回數(shù)據(jù)儲存于一光驅(qū)中一儲存裝置內(nèi),所述讀回數(shù)據(jù)包含有多個數(shù)據(jù)區(qū)塊,每一數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段,其特征在于,所述數(shù)據(jù)管理方法包含有(a)提供一緩存指針以及一解碼指針;(b)使用所述緩存指針來指示從所述光盤所讀取的一未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址;(c)使用所述解碼指針來指示所述讀回數(shù)據(jù)內(nèi)解碼中的一數(shù)據(jù)區(qū)塊的起始地址,其中在所述數(shù)據(jù)區(qū)塊中所有數(shù)據(jù)區(qū)段被成功地解碼前,所述解碼指針持續(xù)地指示所述數(shù)據(jù)區(qū)塊的起始地址;以及(d)當解碼所述數(shù)據(jù)區(qū)塊中一特定數(shù)據(jù)區(qū)段而發(fā)生解碼錯誤時,更新所述緩存指針以指示所述未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址對應至所述解碼指針所指示的地址,以重新從所述光盤讀取對應所述數(shù)據(jù)區(qū)塊的未解碼讀回數(shù)據(jù)。
2.根據(jù)權利要求1所述的方法,其特征在于,還包括(e)當步驟(d)重復執(zhí)行一預定次數(shù)之后,僅將所述數(shù)據(jù)區(qū)塊內(nèi)已成功解碼的數(shù)據(jù)傳遞至所述主機。
3.根據(jù)權利要求2所述的方法,其特征在于步驟(a)還包括提供一實際解碼指針,所述數(shù)據(jù)管理方法還包括使用所述實際解碼指針來指示所述數(shù)據(jù)區(qū)塊內(nèi)一解碼中數(shù)據(jù)區(qū)段的起始地址,以及步驟(e)依據(jù)所述解碼指針與所述實際解碼指針將已成功解碼的數(shù)據(jù)傳遞至所述主機。
4.根據(jù)權利要求1所述的數(shù)據(jù)管理方法,其特征在于所述儲存裝置為一動態(tài)隨機存取內(nèi)存DRAM。
5.根據(jù)權利要求1所述的數(shù)據(jù)管理方法,其特征在于所述光盤為一數(shù)字多功能光盤DVD、一高解析光盤HD-DVD或者一藍光光盤BD。
6.一種光驅(qū),其可處理光盤的讀回數(shù)據(jù)所發(fā)生的解碼錯誤,其特征在于,所述光驅(qū)包含有一儲存裝置,用來儲存所述讀回數(shù)據(jù),所述讀回數(shù)據(jù)包含有多個數(shù)據(jù)區(qū)塊以及所述數(shù)據(jù)區(qū)塊包含有多個數(shù)據(jù)區(qū)段;一控制電路,耦接于所述儲存裝置,用來控制所述儲存裝置的數(shù)據(jù)存取;以及一解碼電路,耦接于控制電路與所述儲存裝置;所述控制電路包含有一緩存指針,用來指示自所述光盤所讀取的一未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址;以及一解碼指針,用來指示所述讀回數(shù)據(jù)內(nèi)解碼中的一數(shù)據(jù)區(qū)塊的起始地址,其中在所述數(shù)據(jù)區(qū)塊中所有數(shù)據(jù)區(qū)段被成功地解碼前,所述解碼指針持續(xù)地指示所述數(shù)據(jù)區(qū)塊的起始地址;其中當所述解碼電路解碼所述數(shù)據(jù)區(qū)塊中一特定數(shù)據(jù)區(qū)段而發(fā)生解碼錯誤時,所述控制電路會更新所述緩存指針以指示所述未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址對應至所述解碼指針所指示的地址,以重新自所述光盤讀取對應所述數(shù)據(jù)區(qū)塊的未解碼讀回數(shù)據(jù)。
7.根據(jù)權利要求6所述的光驅(qū),其特征在于當所述控制電路重復更新所述緩存指針達一預定次數(shù)之后,所述控制電路僅將所述數(shù)據(jù)區(qū)塊內(nèi)已成功解碼的數(shù)據(jù)傳遞至所述主機。
8.根據(jù)權利要求7所述的光驅(qū),其特征在于所述控制電路還包含有一實際解碼指針,用來指示所述數(shù)據(jù)區(qū)塊內(nèi)一解碼中數(shù)據(jù)區(qū)段的起始地址,以及所述控制電路依據(jù)所述解碼指針與所述實際解碼指針將已成功解碼的數(shù)據(jù)傳遞至所述主機。
9.根據(jù)權利要求6所述的光驅(qū),其特征在于所述儲存裝置為一動態(tài)隨機存取內(nèi)存DRAM。
10.根據(jù)權利要求6所述的光驅(qū),其特征在于所述光盤為一數(shù)字多功能光盤、一高解析光盤或者一藍光光盤。
全文摘要
一種處理光盤的讀回數(shù)據(jù)發(fā)生解碼錯誤的數(shù)據(jù)管理方法與光驅(qū)。該數(shù)據(jù)管理方法包含有提供一緩存指針以及一解碼指針;使用所述緩存指針來指示一未解碼讀回數(shù)據(jù)欲寫入的地址,其中所述地址為一儲存裝置中的某一絕對地址或是所述儲存裝置經(jīng)過區(qū)塊分割后的區(qū)塊地址;使用所述解碼指針來指示所述讀回數(shù)據(jù)內(nèi)解碼中的一數(shù)據(jù)區(qū)塊的起始地址;以及當解碼所述數(shù)據(jù)區(qū)塊中一特定數(shù)據(jù)區(qū)段而發(fā)生解碼錯誤時,更新所述緩存指針以指示所述未解碼讀回數(shù)據(jù)寫入至所述儲存裝置的地址對應至所述解碼指針所指示的地址,以重新讀取對應數(shù)據(jù)區(qū)塊的未解碼讀回數(shù)據(jù)。
文檔編號G06F12/00GK1881445SQ20051007708
公開日2006年12月20日 申請日期2005年6月15日 優(yōu)先權日2005年6月15日
發(fā)明者吳元丁, 陳世新, 陳炳盛 申請人:聯(lián)發(fā)科技股份有限公司