專利名稱:在記錄介質(zhì)上存儲/從記錄介質(zhì)上讀取數(shù)據(jù)以及向/從記錄介質(zhì)傳送信息的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及在可記錄介質(zhì)上存儲數(shù)據(jù)這一領(lǐng)域。本發(fā)明尤其涉及諸如CD、 DVD、藍光(BluRay)的光存儲器領(lǐng)域,并且本發(fā)明將在下 面對藍光的情況進行解釋,但是注意到這僅僅是作為例子,而并不是 要限制本發(fā)明的范圍。本發(fā)明的要旨還適用于其它類型的記錄盤,可 以是光盤也可以不是光盤,并且本發(fā)明的要旨甚至還適用于不同于盤 類型的可記錄介質(zhì)。
背景技術(shù):
由于光數(shù)據(jù)存儲技術(shù),包括信息可以存儲在光盤上的方式通常是 普遍公知的,因此在這里沒有必要非常詳細地對該技術(shù)加以解釋。簡 要總結(jié)為,光存儲盤包括至少一個軌道(track),可以是連續(xù)螺旋狀 或者多同心圓形式的存儲空間,信息可以以數(shù)據(jù)圖案的形式存儲在上 面。存儲空間被劃分為塊(block)。要寫入的數(shù)據(jù):故組織在數(shù)據(jù)扇區(qū) (sector)中,每個扇區(qū)都包括用戶數(shù)據(jù)部分和頭部分。數(shù)據(jù)扇區(qū)被 寫入存儲塊中。光盤可以是只讀型的。在這種情況下,在制造過程中裝在盤上的 信息只能由用戶讀取。然而,光存儲盤也可以是可寫入或可記錄型的, 在這種情況下,信息可以由用戶存儲;然后該信息可以在后面檢索出來。為了將信息寫入可寫入光存儲盤的存儲空間,或者為了從可寫入 或只讀光存儲盤的存儲空間中讀取信息,通常是激光光束的光束掃描 存儲磁道。對存儲盤的實際處理由將被表示為盤驅(qū)動器設備的設備來 執(zhí)行。該處理包括接收、保持和旋轉(zhuǎn)盤的功能。該處理還包括生成激 光束;指引、聚焦、偏移(displacing)激光束;為了寫入而適當調(diào) 制激光束;為了讀取而感測反射激光束的功能。該處理還包括錯誤校 正,確定將什么信息寫入哪個物理地址等功能。上面提到的盤驅(qū)動器設備的一般功能本身是公知的。本發(fā)明不旨在改善這些一般功能;事實上,本發(fā)明可以在使用根據(jù)現(xiàn)有技術(shù)的一 般功能的同時被實現(xiàn)。因此,這里省略了對這些一般功能的更詳細描 述和解釋。只要說盤驅(qū)動器設備具有用于接收要被存儲的數(shù)據(jù)的數(shù)據(jù) 輸入端和用于輸出從盤上讀取的數(shù)據(jù)的數(shù)據(jù)輸出端就足夠了。通常,除了作為記錄介質(zhì)的光盤和用于處理盤的盤驅(qū)動器設備, 光存儲系統(tǒng)還包括主機設備。主機設備可以是運行適當程序的PC或者 諸如視頻記錄器的消費類設備的應用,它是一種與盤驅(qū)動器進行通信, 并向盤驅(qū)動器發(fā)送指示盤驅(qū)動器做什么的命令的裝置。在讀取模式下, 主機設備向盤驅(qū)動器發(fā)送讀取命令,指示盤驅(qū)動器從特定存儲位置讀 取數(shù)據(jù);作為響應,盤驅(qū)動器從盤讀入數(shù)據(jù)并將該數(shù)據(jù)傳送給主機設 備。在寫入模式下,主機設備向盤驅(qū)動器傳送數(shù)據(jù),并向盤驅(qū)動器發(fā) 送寫入命令,指示盤驅(qū)動器向特定存儲位置寫入數(shù)據(jù);作為響應,盤 驅(qū)動器寫入從主機接收的數(shù)據(jù)。這樣,為了與盤驅(qū)動器進行通信,主機設備具有用于傳送要被存 儲的數(shù)據(jù)的數(shù)據(jù)輸出端,和用于接收從盤讀取的數(shù)據(jù)的數(shù)據(jù)輸入端。 并且,主機具有用于向盤驅(qū)動器發(fā)送命令信號的命令輸出端,且盤驅(qū) 動器具有用于從主機接收命令信號的命令輸入端。命令輸出端可以與 數(shù)據(jù)輸出端相分離,也可以是一個組合的輸出端?;镜兀P驅(qū)動器只能按照指示來做,即只有讀取或?qū)懭?。然而?在這些操作中可能發(fā)生錯誤。盤驅(qū)動器會試圖校正這些錯誤,但是這 樣花費時間并因此降低信息吞吐速率(throughput rate )。根據(jù)主機 的"意圖,,,降低信息吞吐速率可能是可接受的,也可能是不可接受 的。問題是,盤驅(qū)動器不能從數(shù)據(jù)導出主機的意圖對于盤驅(qū)動器來 說,所有數(shù)據(jù)是同樣的,都是連續(xù)的字節(jié)。例如,在數(shù)據(jù)與文本文檔相關(guān)的情況下,重要的是使所有數(shù)據(jù)都 具有盡可能少的錯誤,即使傳送過程花費稍微更長的時間。另一方面, 在數(shù)據(jù)與視頻或音頻記錄有關(guān)的情況下,重要的是數(shù)據(jù)流連續(xù)錯誤 可能造成圖像中的假象(artefact),但是耗費時間的錯誤校正過程會導致屏幕上根本沒有圖像。因此,希望主機能夠向盤驅(qū)動器器發(fā)送關(guān)于盤驅(qū)動器應當如何處 理數(shù)據(jù)的方式的指令,特別是在有錯誤的情況下。特殊地,根據(jù)數(shù)據(jù) 完整性是否重要,或者高的吞吐量是否重要,主機應當可以改變盤驅(qū)動器的操作特性。從原理上來說,這些問題可以通過將相應指令分別包括在寫入或 讀取命令中來解決。然而,寫入命令和讀取命令的格式被固定在相應 標準中,這對本領(lǐng)域技術(shù)人員來說將是很清楚的,并且這些格式?jīng)]有 用于安放附加指令的空間。此外,從原理上來說,可以重新定義寫入 命令和讀取命令的格式,但是這樣將會帶來如下問題,即重新定義的 格式與現(xiàn)有格式不兼容。實現(xiàn)舊格式的舊的主機將不能夠與實現(xiàn)新格 式的新的盤驅(qū)動器協(xié)同工作,并且實現(xiàn)新格式的新的主機將不能夠與 實現(xiàn)舊格式的舊的盤驅(qū)動器協(xié)同工作。當前,適用標準定義了兩種用于讀取命令的命令結(jié)構(gòu),分別用READ (1 O)和READ (12)表示。同樣地,可應用標準定義了兩種用于寫入 命令的命令結(jié)構(gòu),分別用WRITE(10)和WRITE(12)表示。為了能夠?qū)?有更大數(shù)據(jù)存儲容量的盤驅(qū)動器進行尋址,READ (12)/WRITE (12)命令 相對于READ(IO)/WRITE(10)命令來說包含更多的比特。這些 READ (12) /WRITE (12)命令包括主機可用來改變盤驅(qū)動器操作質(zhì)量的一 個比特這是所謂的"流比特',,在后面表示為SB。 READ (10) /WRITE (10) 命令沒有這樣的比特。根據(jù)當前的標準,該比特SB用于為盤驅(qū)動器設置完整性水平。如 果這個比特被設置(SB-1),表示主機操作在流模式(諸如視頻)下, 并因此希望連續(xù)的數(shù)據(jù)流,盤驅(qū)動器(在讀取模式下)將向主機傳遞 從盤讀取的數(shù)據(jù),而不考慮其完整性(即錯誤的可能發(fā)生),并且盤 驅(qū)動器甚至不會通知主機是否已經(jīng)發(fā)生錯誤。這對CD來說是很好的, 在這種情況下主機能夠通過檢查所接收的數(shù)據(jù)來確定數(shù)據(jù)是否損壞, 并且錯誤校正碼是可用的;然而,在DVD、 BD、 HD的情況下,這對于 主機是不可能的。因此,進一步希望主機能夠得知可能的損壞數(shù)據(jù)。相比較地,如果所述比特不被設置(SB=0),表示主機是操作在如下模式下,即希望最高級別的數(shù)據(jù)處理完整性來自盤驅(qū)動器,盤驅(qū) 動器(在讀取模式下)可以通過重新嘗試從壞的塊讀取數(shù)據(jù)或者通過 跳到置換(replacement)位置和從置換位置跳出來消耗時間。這樣, 利用當前可用的命令,主機只能在具有高吞吐量和低(至少是沒有指 定的)完整性(SB=1)的數(shù)據(jù)處理模式和具有低吞吐量和高完整性 (SB-O )的數(shù)據(jù)處理模式之間進行選擇。這只適用于能夠使用READ(12)/WRITE(12)命令的主機;在只能使用READ (10)/WRITE (1 0)命 令的主機的情況下,作為結(jié)果得到的盤驅(qū)動器操作對應于對 READ(12) /WRITE (12)命令來說SB-O的情況。 因此,本發(fā)明的重要目標是克服上述問題。發(fā)明內(nèi)容根據(jù)本發(fā)明的重要方面,盤驅(qū)動器能夠操作在增強模式下,并且 響應于用于在增強模式下操作和在正常模式下操作之間切換的主機命 令。主機命令有益地是結(jié)合在模式頁(Mode Page)命令中的模式選擇 命令,該命令的格式由信息技術(shù)標準國家委員會(NCITS)在2001年 11月12日提出Working Draft, T10/1363—D, Revision 10g,"INFORMATION TECHNOLOGY- SCSI Multimedia Commands"--(Revision MMC10g在后面簡單表示為MMC - 3 )。模式選擇命令可以對應于模式頁(Mode Page )命令中的一個比特。 沒有實現(xiàn)本發(fā)明的主機會將這一比特設置為零值;根據(jù)本發(fā)明實現(xiàn)的 盤驅(qū)動器會將此解釋為表示用于在正常模式下操作的命令。在正常模 式下,盤驅(qū)動器將會按照如上所述的方式操作,如同現(xiàn)有技術(shù)中的盤 驅(qū)動器。沒有實現(xiàn)本發(fā)明的盤驅(qū)動器將會忽略模式選擇指令比特,并 且將會按照原來的方式,在我們現(xiàn)在稱為"正常模式"的模式下操作。實現(xiàn)本發(fā)明的主機可以將模式選擇命令比特設置為l;實現(xiàn)本發(fā)明 的盤驅(qū)動器會將此解釋為表示用于在增強模式下操作的命令。在增強模式下,盤驅(qū)動器不同地響應于READ(10)/WRITE(10)命令、SB=0的 READ(12)/WRITE(12)命令和SB=1的READ (12)/WRITE (12)命令,以區(qū) 別于正常模式。在任何情況下,錯誤消息都將會發(fā)送給主機。附圖的簡要說明本發(fā)明的這些及其它方面、特征和優(yōu)點都將在下面結(jié)合附圖進行 進一步描述,其中同樣的附圖標記表示同樣或相似的部分,并且其中
圖1是示意性示出數(shù)據(jù)存儲系統(tǒng)的框圖; 圖2A和2B是示出讀取命令的命令描述符塊的表格; 圖3A和3B是示出寫入命令的命令描述符塊的表格; 圖4A和4B是示出模式頁命令的命令描述符塊的表格;圖5和圖6A-G是示出根據(jù)本發(fā)明的盤驅(qū)動器操作的流程圖。 本發(fā)明的詳細描述圖1是示意性地示出數(shù)據(jù)存儲系統(tǒng)1的框圖,包括數(shù)據(jù)存儲介質(zhì)2、 介質(zhì)存取裝置10和主機裝置20。在典型的實際實現(xiàn)中,主機裝置20 可以是適當編程的個人計算機(PC);數(shù)據(jù)存儲系統(tǒng)1被實現(xiàn)為諸如 視頻記錄器的專用用戶設備也是可以的,在這種情況下,主機裝置20 是該設備的應用部分。在特定實施例中,數(shù)據(jù)存儲介質(zhì)2被實現(xiàn)為光 盤,例如DVD或BD,在這種情況下,介質(zhì)存取裝置IO被實現(xiàn)為盤驅(qū)動 器。下面,本發(fā)明將專門針對光盤實現(xiàn)來進行描述,但是注意本發(fā)明 不限于光盤。光盤2具有存儲空間3,其具有一個或更多連續(xù)螺旋狀軌道,或者 一個或更多個多同心圓形狀的軌道形式,其中信息可以以數(shù)據(jù)圖案的 形式存儲。由于該技術(shù)對本領(lǐng)域技術(shù)人員是公知的,因此不對該技術(shù) 進4亍更力口 i羊細的解釋。圖1中,主機裝置20和盤驅(qū)動器10之間的主機/驅(qū)動器通信鏈路 表示在5處。同樣地,盤驅(qū)動器10和盤2之間的驅(qū)動器/盤通信鏈路 表示在6處。驅(qū)動器/盤通信鏈路6代表物理的(光的)讀取/寫入操 作以及對存儲空間3的塊的物理尋址。主機/驅(qū)動器通信鏈路5代表數(shù) 據(jù)傳送路徑以及命令傳送路徑。當主機裝置20想要對盤2上的某條信息進行存取時,它向盤驅(qū)動 器10發(fā)送命令,指示將會找到該信息的盤上的邏輯地址。作為響應, 盤驅(qū)動器10開始從所述邏輯地址開始讀取信息,并將讀戚的數(shù)據(jù)通過 鏈路5傳送到主機。由于從盤驅(qū)動器向主機傳送數(shù)據(jù)的過程本身是公 知的,因此在這里沒有必要更詳細地對該過程進行解釋。圖2A是示出READ(12)命令描述符塊的表格。正如在圖2A中的表 格l所示出的,READ(12)命令包括每字節(jié)8比特的12個字節(jié)。字節(jié)0 包含操作碼,字節(jié)2-5用于表示應當讀取數(shù)據(jù)的存儲空間的邏輯塊地 址,且字節(jié)6-9用于表示要被傳送的數(shù)據(jù)扇區(qū)的長度。字節(jié)ll是控制 字節(jié)。字節(jié)10的比特7是上面討論的流比特。字節(jié)1的比特1、 2和5-7和字節(jié)10的比特0-6被保留下來用于 以后定義,即它們還沒有已定義的含義。因此,可以4吏用這些比特中的任意一個來作為模式命令比特。READ(10)命令與READ(12)命令相似,但是只有10個字節(jié),減少了 可由該命令尋址的最大塊地址。圖2B是示出READ(10)命令描述符塊的表格。正如圖2B中表格2 所示,READ(10)命令包括每字節(jié)8比特的10個字節(jié)。字節(jié)0包含操作 碼,字節(jié)2-5用于表示應當讀取數(shù)據(jù)的存儲空間的邏輯塊地址,且字 節(jié)7-8用于表示要被傳送的數(shù)據(jù)扇區(qū)的長度。字節(jié)9是控制字節(jié)。字節(jié)1的比特1、 2和5-7和字節(jié)6的比特0-7被保留下來用于以 后的定義,即它們還沒有已定義的含義。因此,可以使用這些比特中 的任意一個來作為模式命令比特。當主機裝置20想要向盤2寫入某條信息時,它向盤驅(qū)動器10發(fā) 送命令,指示將要寫入該信息的盤上的邏輯地址,并將要寫入的數(shù)據(jù) 通過鏈路5傳送到盤驅(qū)動器10。作為響應,盤驅(qū)動器10開始從所述邏 輯地址開始寫入接收的信息。由于從主機向盤驅(qū)動器傳送數(shù)據(jù)的過程本身是公知的,因此在這里沒有必要更詳細地對該過程進行解釋。圖3A是示出WRITE (12)命令描述符塊的表格。正如在圖M中的表格3所示出的,WRITE(12)命令包括每字節(jié)8比特的12個字節(jié)。字節(jié)0包含操作碼,字節(jié)2-5用于表示應當存儲數(shù)椐的存儲空間的邏輯塊地址,且字節(jié)6-9用于表示要被傳送的數(shù)據(jù)扇區(qū)的長度。字節(jié)ll是控制字節(jié)。字節(jié)10的比特7是上面討論的流比特。字節(jié)1的比特1、 5-7和字節(jié)10的比特0-6被保留下來用于以后定義,即它們還沒有已定義的含義。因此,可以使用這些比特中的任意一個來作為模式命令比特。WRITE(10)命令與WRITE(12)命令相似,但是只有IO個字節(jié),減少了可由該命令尋址的最大塊地址。圖3B是示出WRITE (IO)命令描述符塊的表格。正如圖3B中表格4 所示,WRITE(10)命令包括每字節(jié)8比特的10個字節(jié)。字節(jié)0包含操 作碼,字節(jié)2-5用于表示應當存儲數(shù)椐的存儲空間的邏輯塊地址,且 字節(jié)7-8用于表示要被傳送的數(shù)據(jù)扇區(qū)的長度。字節(jié)9是控制字節(jié)。字節(jié)1的比特1、 2和5-7和字節(jié)6的比特0-7被保留下來用于以 后定義,即它們還沒有已定義的含義。因此,可以使用這些比特中的 任意一個來作為模式命令比特。使用READ或WRITE命令中的一個比特作為模式命令比特意味著 READ或WRITE命令的參數(shù)應當分別針對每個命令修改,并且只適用于 該特定的命令。這實際上是不方便的。根據(jù)本發(fā)明,優(yōu)選地將驅(qū)動器 設置在應用于所有存取該驅(qū)動器的應用的操作模式下,無需對這些應 用進行修改。因此,根據(jù)本發(fā)明的優(yōu)選實施例,模式頁(MODE PAGE) 命令的一個比特被用作模式命令比特。圖4A是大體示出模式頁(MODE PAGE)命令描述符塊的表格;圖 4B是示出專用于CD的模式頁(MODE PAGE)命令描述符塊的表格。如 圖4A中的表格所示,模式頁(MODE PAGE)命令的尺寸是不固定的; 尺寸被定義在字節(jié)l中。字節(jié)0的比特0-5包含頁代碼,它在圖4B的 例子中是ODh。在相同的例子中,字節(jié)2和字節(jié)3的比特4-7被保留下 來用于以后定義,即還沒有已經(jīng)定義的含義。這一般同樣適用于字節(jié)0 的比特6,可以使用這些比特中的任意一個作為模式命令比特。在本發(fā) 明的優(yōu)選實施例中,字節(jié)0的比特6被用作模式命令比特,這將在后 面表示為MCB。值MCB-O意味著"正常模式,,,其與當前主機20和當前盤驅(qū)動器 IO相兼容。當前主機以及沒有實現(xiàn)本發(fā)明的主機將不會設置這個比特, 因此這個比特將具有缺省值零。實現(xiàn)本發(fā)明的盤驅(qū)動器將讀取MCB的 值,并且通過將操作模式設置為"正常模式",或者保持這個模式來 響應值MCB-O。當前的盤驅(qū)動器和沒有實現(xiàn)本發(fā)明的盤驅(qū)動器將會忽略 MCB,并且將會按照現(xiàn)有技術(shù)的方式,即在"正常模式"下操作。實現(xiàn)本發(fā)明的主機既可以發(fā)送具有MCB-O的模式頁(MODE PAGE) 命令,由此有效發(fā)送用于"正常模式"的模式命令,也可以發(fā)送具有 MCB=1的模式頁(MODE PAGE)命令,由此有效發(fā)送用于"增強模式,, 的模式命令,這取決于主機希望的盤驅(qū)動器的質(zhì)量服務類型。在盤驅(qū) 動器是當前盤驅(qū)動器,或者總之沒有實現(xiàn)本發(fā)明的盤驅(qū)動器的情況下, 發(fā)送具有MCB-1的模式頁(MODE PAGE)命令將沒有影響。實現(xiàn)本發(fā)明 的盤驅(qū)動器將讀取MCB的值,并且通過將操作模式設置為"增強模式" 或者保持這個模式來響應值MCB-1。只要盤驅(qū)動器沒有接收到模式(MODE)命令,它就保持由最后的 模式(MODE)命令設置的操作模式,直到接收到下一個模式(MODE) 命令。在上電或復位之后,盤驅(qū)動器將從正常模式開始。圖5是示意性地示出實現(xiàn)本發(fā)明的盤驅(qū)動器10的操作50實施例 的流程圖。選擇本實施例是為了盡可能清楚地闡明"正常模式"與"增 強模式"之間的區(qū)別。步驟51中,盤驅(qū)動器IO檢查它是否從主機接收到命令。如果是, 盤驅(qū)動器10在步驟"中檢查該命令是否是模式(MODE)命令。如果 是,盤驅(qū)動器10在步驟53中檢查是否MCB=1。如果是,盤驅(qū)動器IO 將其操作模式設置為"增強模式"(通過在存儲單元中設置標記等, 這對本領(lǐng)域技術(shù)人員來說是很清楚的)[步驟54],否則盤驅(qū)動器10 將其操作模式設置為"正常模式"[步驟55]。然后,盤驅(qū)動器10返回 到步驟51等待進一步的命令。如果在步驟52中,看起來所接收的命令不是模式(MODE)命令, 盤驅(qū)動器IO在步驟60中檢查該命令是讀取(READ )命令、寫入(WRITE)命令還是其它一些與本發(fā)明無關(guān)的命令;在后一種情況下,盤驅(qū)動器 10在步驟61中繼續(xù)執(zhí)行命令任務。如果在步驟60中,看起來所接收的命令是READ(12)命令,盤驅(qū) 動器10在步驟62中檢查SB的值。同樣地,如果在步驟60中,看起 來所接收的命令是WRITE (12)命令,盤驅(qū)動器10在步驟63中檢查SB 的值。因此,可能有六種不同情況所接收的命令是READ(10)命令、 WRITE(10)命令、READ(12) {SB=0}命令、WRITE (12){SB,命令、 READ(12) (SB-1)命令、WRITE(12) (SB-1)命令。對這些情況的每一種來 說,盤驅(qū)動器10的操作將會被結(jié)合圖6A-G分別描述(操作110、 130、 140、 160、 180、 220)。如果命令為WRITE(10)指令,盤驅(qū)動器執(zhí)行圖6A所示的操作110。 盤驅(qū)動器從主機接收數(shù)據(jù)[步驟lll]并將這些數(shù)據(jù)寫入盤[步驟112]。 在步驟113種,盤驅(qū)動器檢查是否發(fā)生了錯誤;如杲?jīng)]有,盤驅(qū)動器 繼續(xù)進行步驟111。如杲發(fā)生了錯誤,盤驅(qū)動器確定其是操作在正常模式還是增強模 式下[步驟114]。在正常模式下,盤驅(qū)動器試圖將數(shù)據(jù)再分配到備用扇 區(qū)[步驟115],更新缺陷列表[步驟116],并且繼續(xù)[步驟117]從主機 接收數(shù)據(jù)[步驟111]。如果盤驅(qū)動器操作在增強模式下,盤驅(qū)動器試圖將數(shù)據(jù)再分配到 備用扇區(qū)[步驟l!8]并更新缺陷列表[步驟119],與正常模式下的步驟115和116相對照。然后,偏離正常模式,盤驅(qū)動器向主機發(fā)送錯誤消 息[步驟120],并且停止寫入過程,等待來自主機的指令[步驟121]。 在一個變型中,步驟1"和118可以合并為在步驟114之前執(zhí)行的一 個步驟。這同樣適用于步驟116和119。如杲命令為WRITE (12) (SB4)指令,盤驅(qū)動器執(zhí)行如圖6B所示的 操作130。步驟131到134分別與操作110的步驟111到114相同。如 果找到錯誤,并且盤驅(qū)動器是在正常模式下操作,盤驅(qū)動器繼續(xù)[步驟 135]進行步驟131,與操作110的步驟117相似,跳過操作110的步驟 115和116。如杲發(fā)生錯誤,并且盤驅(qū)動器是在增強模式下操作,盤驅(qū) 動器向主機發(fā)送錯誤消息[步驟136]并且停止,等待來自主機的指令 [步驟137],與操作110的步驟120和121相似,由此跳過操作110 的步驟118和119。如果命令是WRITE (l2) (SB-O)命令,盤驅(qū)動器執(zhí)行如圖6C所示的 操作140。 IMt 140的步驟141到151分別與操作110的步驟111到 121相同,因此沒有必要再一次解釋這些步驟。注意到,操作140與操 作IIO基本相同。如果命令是READ(10)命令,盤驅(qū)動器執(zhí)行如圖6D所示的操作160。 在步驟161中,盤驅(qū)動器從盤讀取數(shù)據(jù),并且在步驟162中,盤驅(qū)動 器檢查是否發(fā)生了錯誤。如果沒有發(fā)生錯誤,盤驅(qū)動器向主機發(fā)送數(shù) 據(jù)[步驟171],并且繼續(xù)讀取接下來的數(shù)據(jù)[步驟172]。如果發(fā)現(xiàn)數(shù)據(jù)包含錯誤,盤驅(qū)動器確定其是在正常模式還是在增 強模式下操作[步驟164]。如果盤驅(qū)動器是在正常模式下操作,它將查 詢?nèi)毕萘斜韀步驟165]來確定數(shù)據(jù)是否已經(jīng)再分配到置換扇區(qū)[步驟 166];如果是,盤驅(qū)動器跳到置換扇區(qū)[步驟167]并且在步驟162繼續(xù)。 如果沒有發(fā)生再分配,盤驅(qū)動器在步驟168中調(diào)查該錯誤是否是由于 壞的扇區(qū)造成的。如果是,盤驅(qū)動器會試圖多次地重新讀這些扇區(qū)[步 驟169],如果成功[步驟1701,盤驅(qū)動器將會向主機發(fā)送數(shù)據(jù)[步驟 171]。如果再次嘗試還沒有成功,或者如果錯誤不是由于壞的扇區(qū)造 成,盤驅(qū)動器就會忽略該錯誤并繼續(xù)讀取接下來的數(shù)據(jù)[步驟172]。如果在盤驅(qū)動器在增強模式下操作的同時發(fā)生錯誤,盤驅(qū)動器將 向主機發(fā)送錯誤消息[175]并停止讀取數(shù)據(jù),等待來自主機的指令[步 驟176]。如果命令為READ(12) (SB-1)命令,盤驅(qū)動器執(zhí)行如圖6E和6F中 所示的操作180。步驟181到192與操作160中的步驟161到172相同, 因此沒有必要再一次解釋這些步驟。只需注意到,當盤驅(qū)動器操作在 正常模式下時,READ(12) (SB-1)命令的效杲與READ(10)命令的效果相同。當盤驅(qū)動器操作在增強模式下時,盤驅(qū)動器繼續(xù)[步驟200]查詢?nèi)?陷列表[步驟201], 了解數(shù)據(jù)是否已經(jīng)被再分配到置換扇區(qū);如果是, 盤驅(qū)動器忽略置換扇區(qū),且只向主機發(fā)送錯誤消息[步驟209],然后通 過跳回到步驟181來準備好讀取接下來的數(shù)據(jù)[步驟208]。如果在步驟202中,看起來數(shù)據(jù)沒有被再分配,盤驅(qū)動器在步驟 203中確定錯誤是否是由于壞的扇區(qū)造成;如果不是,盤驅(qū)動器繼續(xù)按 照上面的描述進行步驟209。如果錯誤是由于壞的扇區(qū)造成的,可以通過重試來獲得數(shù)據(jù),但 是,為了避免發(fā)生流向主機的數(shù)據(jù)被中斷的情況,盤驅(qū)動器首先檢查 在其輸出緩沖器ll中是否有足夠的數(shù)據(jù)[步驟204],指示主機能夠在 一段時間內(nèi)接收數(shù)據(jù)而盤驅(qū)動器不需要立即提供新數(shù)據(jù)。如果輸出緩 沖器ll中的數(shù)據(jù)量不夠,盤驅(qū)動器就繼續(xù)進行如上所迷的步驟209。 相對比地,如杲輸出緩沖器11中有足夠的數(shù)據(jù),盤驅(qū)動器將會嘗試再 一次讀取數(shù)據(jù)[步驟20",并在步驟26中確定再次嘗試是否已經(jīng)成功。 如果沒有成功,盤驅(qū)動器能夠通過跳回到步驟204來再次嘗試。如果 再次嘗試成功了,盤驅(qū)動器向主機發(fā)送數(shù)據(jù)[步驟207],并且通過跳回 到步驟181來準備好接收接下來的數(shù)據(jù)[步驟208]。如果命令是READ(12) (SB-0)命令,盤驅(qū)動器執(zhí)行如圖6G所示的操 作220。操作220的步驟221到224與操作160的步驟161到164相同, 因此不需要再解釋這些步驟。如果盤驅(qū)動器操作在正常模式下,盤驅(qū) 動器就向主機發(fā)送錯誤消息[步驟225]并停止讀取,等待來自主機的指 令[步驟226]。這對應于READ(10)命令(步驟1"-176 )情況下的增強模式。如果盤驅(qū)動器操作在增強模式下,它將查詢?nèi)毕萘斜韀步驟227], 查明數(shù)據(jù)是否已經(jīng)被再分配到置換扇區(qū)。如果是,盤驅(qū)動器忽略置換 扇區(qū),并只向主才幾發(fā)送錯誤消息[步驟235],并且通過跳回到步驟221 來準備好讀取接下來的數(shù)據(jù)[步驟233]。如果在步驟228中,看起來數(shù)據(jù)沒有被再分配,盤驅(qū)動器在步驟 229中確定數(shù)據(jù)中的錯誤是否是由壞的扇區(qū)造成的。如果不是,盤驅(qū)動 器繼續(xù)在如上所述的步驟235處繼續(xù),但是如果錯誤是由于壞的扇區(qū) 造成的,盤驅(qū)動器將會嘗試通過盡其最大努力,多次地再次讀取壞的 扇區(qū)來獲得所請求的數(shù)據(jù)[步驟230]。盤驅(qū)動器試圖再次讀取壞的扇區(qū) 的次數(shù)(x)可以是固定的,也可以根據(jù)情況變化。應當清楚,對于越 高的x,成功讀取數(shù)據(jù)的機會就越高,但是代價是讀取過程要花費更長 的時間。如果再次嘗試成功[步驟231],盤驅(qū)動器將向主機發(fā)送數(shù)據(jù)[步驟 232],并且然后通過返回到步驟221來準備好讀取接下來的數(shù)據(jù)[步驟 233]。否則,在嘗試多次之后,盤驅(qū)動器放棄[步驟231]并繼續(xù)進行上 面描述的步驟235。本領(lǐng)域技術(shù)人員應當清楚,本發(fā)明不限于上面討論的示例性實施 例, 一些變形和修改也可以落在由后附權(quán)利要求所定義的本發(fā)明保護 范圍中。上面,結(jié)合框圖對本發(fā)明進行了解釋,該框圖示出了根據(jù)本發(fā)明 的裝置的功能塊。應當明白,這些功能塊中的一個或更多個可以用硬 件實現(xiàn),其中這些功能塊的功能通過個別的硬件組件來執(zhí)行,但是, 也可以用軟件來實現(xiàn)這些功能塊中的一個或更多個,使得這些功能塊 的功能由一個或更多計算機程序的程序行,或者諸如微處理器、微控 制器、數(shù)字信號處理器等的可編程裝置來執(zhí)行。
權(quán)利要求
1、一種介質(zhì)存取裝置(10),適用于向存儲介質(zhì)(2)寫入信息,所述存儲介質(zhì)(2)具有用于接收數(shù)據(jù)的存儲空間(3),該介質(zhì)存取裝置(10)被設計為從主機裝置(20)接收(5)寫入命令(WRITE(10);WRITE(12){SB=0};WRITE(12){SB=1})和要被寫入到存儲介質(zhì)(2)中的數(shù)據(jù);該介質(zhì)存取裝置能夠在正常模式和至少一個增強模式下操作,該介質(zhì)存取裝置響應于從主機裝置(20)接收的模式選擇命令,將其操作模式設置為所述模式中相應的一種;其中,至少當在寫入期間發(fā)生錯誤時,介質(zhì)存取裝置在增強模式下與在正常模式下相比,其表現(xiàn)不同。
2、 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置,其中模式選擇命令被包 含在模式頁(MODE PAGE)命令中。
3、 根據(jù)權(quán)利要求2所述的介質(zhì)存取裝置,其中模式選擇命令被包 含在模式頁(MODE PAGE)命令的字節(jié)Q的比特6中。
4、 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置,其中在寫入期間發(fā)生錯 誤的情況下,介質(zhì)存取裝置被設計為,當在增強模式下操作時,總是 向主機發(fā)送錯誤消息。
5、 根據(jù)權(quán)利要求4所述的介質(zhì)存取裝置,其中介質(zhì)存取裝置被設 計為,在向主機發(fā)送錯誤消息之后,停止寫入過程,并等待來自主機 裝置的進一步指令。
6、 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置被 設計為,當操作在增強模式下時,響應于接收到WRITE(10)命令,向介 質(zhì)寫入(步驟112)接收(步驟111)的數(shù)據(jù),并檢查(步驟113)寫 入錯誤的發(fā)生,并且,如果發(fā)現(xiàn)發(fā)生了寫入錯誤,將數(shù)據(jù)再分配給置 換位置(步驟118),更新缺陷列表(步驟U9),并然后向主機發(fā)送 錯誤消息(步驟120)。
7、 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置被 設計為,當操作在增強模式下時,響應于接收到WRITE(U) (SB-1)命令, 向介質(zhì)寫入(步驟132)接收(步驟131)的數(shù)據(jù),并檢查(步驟133) 寫入錯誤的發(fā)生,并且如果發(fā)現(xiàn)發(fā)生了寫入錯誤,向主機發(fā)送錯誤消 息(步驟136)。
8、 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置被 設計為,當操作在增強模式下時,響應于接收到WRITE(12) (SB-0)命令, 向介質(zhì)寫入(步驟142 )接收(步驟141 )的數(shù)據(jù),并檢查寫入錯誤的 發(fā)生(步驟143),并且如果發(fā)現(xiàn)發(fā)生了寫入錯誤,將數(shù)據(jù)再分配給置 換位置(步驟148),更新缺陷列表(步驟149),并然后向主機發(fā)送 錯誤消息(步驟150)。
9、 能夠與根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置(IO)協(xié)同工作的 主機裝置(20),該主機裝置(2 0)被設計為向所述介質(zhì)存取裝置(10) 發(fā)送(5)模式選擇命令,以便設置該介質(zhì)存取裝置(10)的增強模式。
10、 根據(jù)權(quán)利要求9所述的主機裝置,被設計為向所述介質(zhì)存儲 裝置(10)發(fā)送(5)模式頁(MODEPAGE)命令,其中該模式頁(MODE PAGE)命令的字節(jié)0的比特6被設置為1。
11、 介質(zhì)存取裝置U0),適用于從存儲介質(zhì)(2)讀取信息,所 述存儲介質(zhì)(2)具有用于包含數(shù)據(jù)的存儲空間(3),該介質(zhì)存取裝 置(10)被設計為從主機裝置(20)接收(5)讀取命令(READ (10); READ(12) {SB=0} ; READ (12) {SB-1}),并向主才幾發(fā)送從介質(zhì)讀取的數(shù) 據(jù);該介質(zhì)存取裝置能夠在正常模式和至少一個增強模式下運行,該 介質(zhì)存取裝置響應于從主機裝置(20)接收的模式選擇命令,將其操作模式設置為所述模式中相應的一種;其中,至少當在讀取期間發(fā)生錯誤時,介質(zhì)存取裝置在增強模式 下與在正常模式下相比,其表現(xiàn)不同。
12、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中該模式選擇命令 被包含在模式頁(MODE PAGE)命令中。
13、 根據(jù)權(quán)利要求12所述的介質(zhì)存取裝置,其中該模式選擇命令 被包含在模式頁(MODE PAGE)命令的字節(jié)0的比特6中。
14、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中在讀取期間發(fā)生 了不能校正的錯誤的情況下,該介質(zhì)存取裝置被設計為,當其在增強 模式下操作時,總是向主機發(fā)送錯誤消息。
15、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,當操作在增強模式下時,響應于接收到READ(10)命令,從 介質(zhì)讀取(161 )數(shù)據(jù),并檢查(步驟162 )讀取錯誤的發(fā)生,并且如果發(fā)現(xiàn)發(fā)生了讀取錯誤,向主機發(fā)送錯誤消息(步驟175)。
16、 根據(jù)權(quán)利要求15所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,在已經(jīng)向主機發(fā)送錯誤消息之后停止讀取過程,等待來自 主機裝置的進一步指令(步驟176 )。
17、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,當操作在增強模式下時,響應于接收到READ(12) (SB-1)命 令,從介質(zhì)讀取(步驟181 )數(shù)據(jù),并檢查(步驟182 )讀取錯誤的發(fā) 生,并且如果發(fā)現(xiàn)已經(jīng)發(fā)生了讀取錯誤,則檢查正在被尋址的扇區(qū)的 數(shù)據(jù)是否已經(jīng)被再分配到置換扇區(qū)(步驟201、 202 ),并且如果是, 向主機發(fā)送錯誤消息(步驟209 ),并然后從下一個非再分配的扇區(qū)開 始繼續(xù)讀取過程(步驟181 )。
18、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,包括輸出緩沖器(11 ), 其中該介質(zhì)存取裝置被設計為,當操作在增強模式下時,響應于接收 到READ (12) (SB-1)命令,從介質(zhì)讀取(步驟181)數(shù)據(jù),并檢查(步 驟182)讀取錯誤的發(fā)生,并且,如果發(fā)現(xiàn)已經(jīng)發(fā)生了讀取錯誤,則檢 查(步驟203 )該讀取錯誤是否是由壞的扇區(qū)造成的,并且如杲是,確 定(步驟204 )其輸出緩沖器(11)中的數(shù)據(jù)量。
19、 根據(jù)權(quán)利要求18所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,如果其輸出緩沖器Ul)中有足夠的數(shù)據(jù),則嘗試從所述 扇區(qū)再次讀取數(shù)據(jù)(步驟205 ),否則,如杲其輸出緩沖器(11 )中沒 有足夠的數(shù)據(jù),則向主機發(fā)送錯誤消息(步驟209 ),然后繼續(xù)該讀取 過程(步驟181 )。
20、 根據(jù)權(quán)利要求19所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,如杲再次嘗試成功(步驟206 ),則向主機發(fā)送(步驟207 ) 數(shù)據(jù),并然后繼續(xù)讀取過程(步驟181)。
21、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,當操作在增強模式下時,響應于接收到READ(12) (SB-O)命 令,從介質(zhì)讀取(步驟221 )數(shù)據(jù),并檢查(步驟222 )讀取錯誤的發(fā) 生,并且,如果發(fā)現(xiàn)已經(jīng)發(fā)生了讀取錯誤,則檢查正在被尋址的扇區(qū) 的數(shù)據(jù)是否已經(jīng)被再分配到置換扇區(qū)(步驟227、 228 ),并且如果是, 向主機發(fā)送錯誤消息(步驟235 ),并然后從下一個非再分配的扇區(qū)開 始繼續(xù)讀取過程(步驟221 )。
22、 根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,當操作在增強模式下時,響應于接收到READ(12) (SB-0)命 令,從介質(zhì)讀取(步驟2〗1 )數(shù)據(jù),并檢查(步驟222 )讀取錯誤的發(fā) 生,并且,如果發(fā)現(xiàn)已經(jīng)發(fā)生了讀取錯誤,則檢查(步驟229 )該讀取 錯誤是否是由壞的扇區(qū)造成的,并且如果是,則嘗試以預先確定的次 數(shù)(X )從所述扇區(qū)再次讀取數(shù)據(jù)(步驟230 )。
23、 根據(jù)權(quán)利要求22所述的介質(zhì)存取裝置,其中該介質(zhì)存取裝置 被設計為,如杲再次嘗試成功(步驟231 ),則向主機發(fā)送(步驟232 ) 發(fā)送數(shù)據(jù),然后繼續(xù)讀取過程(步驟221 ),否則,如果再次嘗試不成 功,則向主機發(fā)送錯誤消息(步驟235 ),并然后繼續(xù)讀取過程(步驟 221 )。
24、 能夠與根據(jù)權(quán)利要求11所述的介質(zhì)存取裝置(10)協(xié)同工作 的主機裝置(20),該主機裝置(20)被設計為,向所述介質(zhì)存取裝 置no)發(fā)送(5)模式選擇命令,以便設置該介質(zhì)存取裝置(10)的 增強模式。
25、 根據(jù)權(quán)利要求24所述的主機裝置,被設計為向所述介質(zhì)存取 裝置(IO)發(fā)送(5)模式頁(MODEPAGE)命令,其中模式頁(MODE PAGE ) 命令的字節(jié)0的比特6被設置為1。
26、 數(shù)據(jù)存儲系統(tǒng)(1 ),包括存儲介質(zhì)(2),其具有用于接收數(shù)據(jù)的存儲空間(3); 根據(jù)權(quán)利要求1所述的介質(zhì)存取裝置(10);和 根據(jù)權(quán)利要求9所述的主機裝置(20 )。
27、 數(shù)據(jù)存儲系統(tǒng)(1 ),包括存儲介質(zhì)(2),其具有用于接收數(shù)據(jù)的存儲空間(3); 根據(jù)權(quán)利要求ll所述的介質(zhì)存取裝置(10);和 根據(jù)權(quán)利要求24所述的主機裝置(20 )。
28、 根據(jù)權(quán)利要求26或27的數(shù)據(jù)存儲系統(tǒng),其中所述存儲介質(zhì) 是光盤,優(yōu)選是CD、 DVD或BD,并且其中所述介質(zhì)存取裝置是盤驅(qū)動器。
全文摘要
數(shù)據(jù)存儲系統(tǒng)(1)包括光盤(2),優(yōu)選為CD、DVD或BD,具有用于數(shù)據(jù)的存儲空間(3);適用于向盤(2)寫入信息或者從盤(2)讀取信息的盤驅(qū)動器(10);以及能夠與盤驅(qū)動器協(xié)同工作的主機裝置(2)。盤驅(qū)動器(10)被設計為從主機裝置(20)接收(5)寫入命令(WRITE(10);WRITE(12){SB=0};WRITE(12){SB=1})或讀取命令(READ(10);READ(12){SB=0};READ(12){SB=1})。盤驅(qū)動器能夠在正常模式和至少一個增強模式下操作,盤驅(qū)動器響應于從主機(20)接收的模式選擇命令,將其操作模式設置為所述模式中相應的一種;其中,至少當在寫入期間發(fā)生錯誤時,介質(zhì)存取裝置在增強模式下與在正常模式下相比,其表現(xiàn)不同。
文檔編號G11B19/04GK101243512SQ200680029823
公開日2008年8月13日 申請日期2006年8月16日 優(yōu)先權(quán)日2005年8月17日
發(fā)明者J·吉倫, R·A·布朗迪克, S·范貝克霍芬 申請人:皇家飛利浦電子股份有限公司