專利名稱:處理實(shí)時(shí)寫入錯誤的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在存儲介質(zhì)上記錄信息的設(shè)備,該設(shè)備包括介質(zhì)接口裝置,該裝置用于和存儲介質(zhì)接口從而將數(shù)據(jù)記錄在該存儲介質(zhì)上并從該存儲介質(zhì)中檢索數(shù)據(jù);主機(jī)接口裝置,用于通過根據(jù)協(xié)議的消息和主機(jī)通信,該消息包括實(shí)時(shí)地寫入一系列數(shù)據(jù)塊的寫命令。
本發(fā)明還涉及在存儲介質(zhì)上記錄期間錯誤監(jiān)控的方法,該方法包括通過根據(jù)協(xié)議的消息和主機(jī)通信,該消息包括用于實(shí)時(shí)寫入一系列數(shù)據(jù)塊的寫命令。
本發(fā)明還涉及控制該記錄設(shè)備的方法,該方法包括通過根據(jù)協(xié)議的消息和所述設(shè)備通信,所述消息包括用于實(shí)時(shí)寫入一系列數(shù)據(jù)塊的寫命令。
本發(fā)明還涉及用于在存儲介質(zhì)上記錄期間的錯誤監(jiān)控以及用于控制該記錄設(shè)備的計(jì)算機(jī)軟件產(chǎn)品。
從DVD(數(shù)字多功能光盤)系統(tǒng)和國家信息技術(shù)標(biāo)準(zhǔn)委員會(NCITS)的草案提議工作草案T10/1363-D,版本10g,2001年11月12日,“INFORMATION TECHNOLOGY-SCSI Multimedia Commands-(版本MMC10g,在本文件中又稱為MMC-3)”,通過記錄設(shè)備對光學(xué)記錄載體進(jìn)行記錄控制是已知的。該設(shè)備在和存儲介質(zhì)接口的一側(cè)具有介質(zhì)接口,例如讀/寫頭和定位系統(tǒng)。在另一側(cè),該記錄設(shè)備具有和主機(jī)通信的主機(jī)接口,該主機(jī)可以是PC或者錄像機(jī)的應(yīng)用單元。用于在主機(jī)和記錄設(shè)備的主機(jī)接口之間進(jìn)行通信的協(xié)議是在MMC-3(章節(jié)1)中稱為ATA/ATAPI的標(biāo)準(zhǔn),特別地指MMC-3(章節(jié)2.1.2)中所參考的NCITS T13/1321D ATAttachment with Packet Interface5或X3T13/11553D ATA-5第17版,又稱為ATA/ATAPI-5。因此,該設(shè)備可以稱為ATA/ATAPI設(shè)備。這種記錄設(shè)備可用于在主機(jī)系統(tǒng)控制下實(shí)時(shí)記錄數(shù)據(jù)塊,例如視頻。該主機(jī)含有例如視頻的記錄或回放的應(yīng)用軟件。當(dāng)驅(qū)動器寫操作時(shí),可能出現(xiàn)錯誤。為了應(yīng)用一個(gè)恢復(fù)過程,該應(yīng)用軟件需要知道該錯誤的狀態(tài)。在已知的協(xié)議中,該應(yīng)用軟件可以在快速寫入一系列數(shù)據(jù)塊而在驅(qū)動器中具有許多緩沖、以及慢速寫入而在驅(qū)動器中沒有緩沖之間進(jìn)行選擇。如果該命令未成功完成,則該驅(qū)動器將報(bào)告錯誤。通過逐塊逐塊地寫入,可在該驅(qū)動器響應(yīng)該命令之后了解該錯誤的位置。通過寫入一系列數(shù)據(jù)塊,報(bào)告該整個(gè)系列數(shù)據(jù)塊的錯誤。應(yīng)用軟件可快速寫入或者容易找到錯誤。
因此本發(fā)明的一個(gè)目標(biāo)在于,提供能夠有效處理寫入錯誤并允許實(shí)時(shí)記錄的錯誤監(jiān)控系統(tǒng)。
根據(jù)本發(fā)明的第一方面,使用開篇段落中所描述的用于記錄信息的設(shè)備可實(shí)現(xiàn)該目標(biāo),該設(shè)備包括錯誤監(jiān)控裝置,其用于根據(jù)該系列數(shù)據(jù)塊內(nèi)的錯誤狀態(tài)產(chǎn)生錯誤消息并告知主機(jī)。
根據(jù)本發(fā)明的第二方面,使用開篇段落中所描述的錯誤監(jiān)控方法可實(shí)現(xiàn)該目標(biāo),該方法包括根據(jù)該系列數(shù)據(jù)塊內(nèi)的錯誤狀態(tài)產(chǎn)生錯誤消息并告知主機(jī)。
根據(jù)本發(fā)明的第三方面,使用開篇段落中所描述的記錄設(shè)備的控制方法可實(shí)現(xiàn)該目標(biāo),該方法包括根據(jù)該系列數(shù)據(jù)塊內(nèi)的錯誤狀態(tài)從該設(shè)備接收錯誤消息,并應(yīng)用一個(gè)恢復(fù)以在該系列數(shù)據(jù)塊的回放期間掩蔽該錯誤。
這些措施的效果在于,該設(shè)備將錯誤狀態(tài)中的寫入錯誤報(bào)告給驅(qū)動器。該錯誤狀態(tài)例如包括該系列內(nèi)的寫入錯誤的位置。其優(yōu)點(diǎn)為,主機(jī)內(nèi)的應(yīng)用軟件可快速地從該錯誤恢復(fù)并盡可能快地繼續(xù)記錄。
在該設(shè)備的一個(gè)實(shí)施例中,該錯誤監(jiān)控裝置被設(shè)置成,如果出現(xiàn)寫入錯誤,則將該系列數(shù)據(jù)塊內(nèi)寫入錯誤的位置包括在該錯誤消息內(nèi)。其優(yōu)點(diǎn)為,主機(jī)知道該寫入錯誤的位置,且在恢復(fù)過程中的重新記錄可以基于該已知的錯誤位置。
在該設(shè)備的一個(gè)實(shí)施例中,該設(shè)備包括用于存儲數(shù)據(jù)塊的緩存緩沖器,且該主機(jī)接口裝置被設(shè)置成接收一同步緩存命令,該命令用于指示在寫入錯誤之后緩存緩沖器中恢復(fù)寫入的地址。其優(yōu)點(diǎn)為,主機(jī)在該錯誤之后無需重新傳輸數(shù)據(jù)塊,而可以使用仍存在于緩存緩沖器中的數(shù)據(jù)塊。
在該設(shè)備的一個(gè)實(shí)施例中,該主機(jī)接口裝置被設(shè)置成用于接收指示記錄期間超時(shí)的命令,該超時(shí)定義了記錄期間除了寫數(shù)據(jù)塊之外的其它操作最大程度上可使用的最大時(shí)間量,且該錯誤監(jiān)控裝置被設(shè)置成用于確定所述其它操作在記錄期間所使用的實(shí)際時(shí)間量,并在所述實(shí)際時(shí)間量超過所述最大時(shí)間量時(shí)產(chǎn)生所述錯誤消息。其優(yōu)點(diǎn)為,該超時(shí)和預(yù)期寫入操作的執(zhí)行時(shí)間無關(guān),其表示在執(zhí)行該命令期間總的備用時(shí)間的上限。
在另外的權(quán)利要求中給出了根據(jù)本發(fā)明的方法和設(shè)備的另外優(yōu)選實(shí)施例。
結(jié)合附圖,參考下面以示例方式描述的實(shí)施例,本發(fā)明的這些及其它方面將變得顯而易見。
圖1示出了圓盤形存儲介質(zhì)、記錄設(shè)備、及主機(jī)系統(tǒng)。
圖2示出了主機(jī)接口上的數(shù)據(jù)和傳輸?shù)皆摯鎯橘|(zhì)的數(shù)據(jù)之間的延時(shí)時(shí)間圖。
圖3示出了包括應(yīng)用軟件的主機(jī)、記錄設(shè)備、以及存儲介質(zhì)。
圖4示出了產(chǎn)生、傳輸、以及寫入光盤的數(shù)據(jù)的圖示。
圖5示出了同步緩存命令。
圖6示出了命令和響應(yīng)的時(shí)序圖。
圖7a示出了驅(qū)動器上用于接口的連接器。
圖7b示出了IDE連接器布局。
圖8示出了主機(jī)接口上的消息、寫操作、以及記錄期間其它操作的時(shí)序圖。
圖9示出了寫操作以及超時(shí)窗口結(jié)構(gòu)的時(shí)序圖。
在各圖中,用相同的附圖標(biāo)記表示和已經(jīng)描述過的元件相對應(yīng)的元件。
圖1示出了圓盤形存儲介質(zhì)、記錄設(shè)備、及主機(jī)系統(tǒng)。諸如光盤的存儲介質(zhì)11組成用于記錄設(shè)備12的記錄載體。DVD+RW為這種記錄載體的一個(gè)例子。根據(jù)例如ATA/ATAPI-5的預(yù)定義標(biāo)準(zhǔn),定義該記錄設(shè)備的許多接口功能。因此,該設(shè)備可以稱為ATA/ATAPI設(shè)備。設(shè)備(12)在和諸如DVD+RW光盤的存儲介質(zhì)11接口的一側(cè)上含有介質(zhì)接口,例如讀/寫頭、定位伺服系統(tǒng)、及CD或DVD系統(tǒng)中公知的控制電路。設(shè)備12在另一側(cè)含有主機(jī)接口15,例如ATA電纜或串行接口,以和主機(jī)進(jìn)行通信,所述主機(jī)可以是例如具有用于輸入和輸出視頻信息的普通元件的錄像機(jī)應(yīng)用軟件側(cè)或PC。四個(gè)元件的組合(DVD+RW介質(zhì)、ATA/ATAPI設(shè)備加上主機(jī))可形成消費(fèi)DVD+RW錄像機(jī)。本發(fā)明的主要焦點(diǎn)為在DVD+RW錄像機(jī)中的應(yīng)用軟件。
在下述參考中可以找到關(guān)于記錄設(shè)備和存儲介質(zhì)格式的背景信息[DVD]只讀光盤ECMA-267的說明書[DVD+R]4.7G字節(jié)基本格式說明書系統(tǒng)描述1.1[DVD+RW]4.7G字節(jié)基本格式說明書可擦寫版本1.2在記錄系統(tǒng)中通常使用下述定義。
驅(qū)動器接口到存儲介質(zhì)的單元,例如具有光學(xué)拾取單元、伺服、數(shù)據(jù)路徑、閃存;該單元通過例如ATAPI與主機(jī)接口。
盤片可以是諸如CDDA、CD-R/RW、CD-ROM、DVDROM、DVD+RW、DVD+RSACD的任何光盤。
ECC這是可以寫到光盤上的最小數(shù)據(jù)量。DVD上為32K字節(jié)用戶數(shù)據(jù)的完整EFM塊。
扇區(qū)可尋址的最小數(shù)據(jù)大小,(在DVD上)為2048字節(jié)。
應(yīng)用軟件主機(jī)中有源單元與其連接,其要求將實(shí)時(shí)數(shù)據(jù)存儲在光盤上(并從該光盤檢索該實(shí)時(shí)數(shù)據(jù))并排列該光盤上的例如編碼/解碼視頻信號的結(jié)構(gòu)。
解凍(De-iced)+RW相變材料具有兩個(gè)狀態(tài)無定形狀態(tài)和結(jié)晶狀態(tài)。新光盤上所有材料具有相同的狀態(tài),這種光盤稱為“被冰凍”。通過對光盤進(jìn)行寫入,可產(chǎn)生相變。這影響光盤的反射率以及如何讀取該光盤。如果光盤含有被冰凍區(qū)域,只能通過擺動確定激光器的當(dāng)前位置。在已寫區(qū)域,位置信息被包括在數(shù)據(jù)內(nèi)。
程序塊(chunk)可以無鏈接地連續(xù)寫入的數(shù)據(jù)塊偏離軌道當(dāng)光學(xué)拾取單元中的激光器無法跟隨(可記錄)光盤上的(搖擺)凹槽時(shí)將會偏離軌道。
在下文中,將更加深入地描述該介質(zhì)以及主機(jī)接口15或ATA電纜上的協(xié)議。在MMC-3中給出的該協(xié)議的定義存在問題,通過了解該介質(zhì)和協(xié)議之間的關(guān)系,可以理解該問題的解決方法。
在諸如ATA/ATAPI-5文件的許多文件中描述了公知的ATA電纜及其協(xié)議。在MMC-3中給出了該電纜的最高協(xié)議等級。在下述解釋中,存儲介質(zhì)11為DVD+RW介質(zhì),一種可記錄的數(shù)字多功能光盤。在DVD+RW物理格式說明書中描述了該介質(zhì)。
在這里所解決的問題是由寫入錯誤引起的。主機(jī)中正在執(zhí)行的應(yīng)用軟件是將數(shù)據(jù)實(shí)時(shí)地寫入光盤。如果出現(xiàn)錯誤,則該應(yīng)用軟件希望盡可能快地從該錯誤中恢復(fù)并繼續(xù)記錄。假設(shè)在該應(yīng)用軟件水平,該恢復(fù)將掩蓋該錯誤。對于錄像機(jī)的情形,該恢復(fù)可能是在回放過程中由將被跳過的視頻片斷組成的掩蔽(mask)。關(guān)鍵在于保持該掩蔽或視頻段盡可能小。因此該主機(jī)接口通過根據(jù)協(xié)議的消息(例如ATA/ATAPI-5)和該主機(jī)通信,該消息包括實(shí)時(shí)寫入一系列數(shù)據(jù)塊的寫命令。為了快速地報(bào)告錯誤,該設(shè)備具有錯誤監(jiān)控裝置,用于根據(jù)該一系列數(shù)據(jù)塊中的錯誤狀態(tài)產(chǎn)生錯誤消息以通知主機(jī)。通常與錯誤消息的通信實(shí)現(xiàn)了盡可能快地將該錯誤告知應(yīng)用軟件,并報(bào)告錯誤狀態(tài)。在一實(shí)施例中,錯誤狀態(tài)包括錯誤位置。
圖2示出了主機(jī)接口上的數(shù)據(jù)和傳輸?shù)酱鎯橘|(zhì)的數(shù)據(jù)之間的延時(shí)時(shí)間圖。在上部的曲線21中示出了主機(jī)接口(ATA/ATAPI電纜)處的數(shù)據(jù)。部分?jǐn)?shù)據(jù)塊標(biāo)記成A、B、C。數(shù)據(jù)塊A在時(shí)間t1到達(dá)主機(jī)接口。下部的曲線22表示在存儲介質(zhì)接口處的相同數(shù)據(jù)元素。數(shù)據(jù)塊A在t2到達(dá)。必須克服兩個(gè)基本問題以盡可能快地向應(yīng)用軟件發(fā)出錯誤通知。第一個(gè)問題為通過ATA/ATAPI電纜發(fā)送數(shù)據(jù)和將數(shù)據(jù)寫入光盤之間的固有延時(shí),用曲線21、22之間的時(shí)間差表示。第二個(gè)問題為通過該電纜發(fā)送數(shù)據(jù)的脈沖串字符(burst character)?,F(xiàn)在更加深入地描述這兩個(gè)問題。
首先是關(guān)于通過ATA/ATAPI電纜傳輸?shù)臄?shù)據(jù)和傳輸?shù)焦獗P的數(shù)據(jù)之間的固有延時(shí)。圖2的時(shí)間圖示出了用上方曲線21表示的通過ATA/ATAPI電纜傳輸?shù)臄?shù)據(jù),從A經(jīng)過B傳輸?shù)紺。該傳輸開始于t1。在t2時(shí),數(shù)據(jù)被寫入光盤。在t3時(shí),在數(shù)據(jù)流中的位置B出現(xiàn)錯誤。在出現(xiàn)該錯誤時(shí),ATA/ATAPI電纜上的數(shù)據(jù)流已經(jīng)到達(dá)位置C。
第二個(gè)問題是ATA/ATAPI電纜上數(shù)據(jù)的脈沖串字符。當(dāng)發(fā)送壓縮視頻時(shí),如圖3所解釋,出現(xiàn)了這個(gè)問題。
圖3示出了包括應(yīng)用軟件的主機(jī)、記錄設(shè)備、以及存儲介質(zhì)。主機(jī)31具有用于接收視頻輸入33上視頻的視頻編碼器34、接口35(通過電纜耦合到記錄設(shè)備32)、以及存儲器36。該視頻編碼器和接口之間的“挖掘”連接(dig connection)39是指某種類型的數(shù)字接口。設(shè)備32含有用于通過介質(zhì)接口14連接到存儲介質(zhì)11的驅(qū)動器37以及存儲器38。該設(shè)備含有誤差監(jiān)控單元40,用于如下所述地根據(jù)一系列數(shù)據(jù)塊中的錯誤狀態(tài)產(chǎn)生錯誤消息以通知該主機(jī)。
實(shí)際上,編碼器34的最大比特率遠(yuǎn)小于驅(qū)動器37向介質(zhì)寫入的速度。當(dāng)該編碼器將其編碼輸出傳輸?shù)紸TAPI/ATA設(shè)備時(shí),發(fā)生下述情形。設(shè)Bs為“挖掘”連接39上數(shù)據(jù)的比特率,Bd為介質(zhì)接口14上數(shù)據(jù)的比特率,Md為該驅(qū)動器的存儲器38的數(shù)目,Ms為主機(jī)中可得到的連接到接口的存儲器36的數(shù)量。Md/Bs為該驅(qū)動器的將累積數(shù)據(jù)的時(shí)間量。Md/Bd為驅(qū)動器對介質(zhì)進(jìn)行寫入的時(shí)間量。Ms最小需要為2k,因?yàn)檫@是可寫入到驅(qū)動器的最小數(shù)據(jù)量。Ms/Bs為數(shù)據(jù)脈沖串到設(shè)備之間的間隔時(shí)間。
主機(jī)接口上數(shù)據(jù)傳輸?shù)氖纠O(shè)Ms=2KB(千字節(jié)),Bs=8Mb/秒(兆比特/秒),則脈沖串之間的間隔時(shí)間為2KB/8Mb/秒=2*8/8=2毫秒。
將全部的緩沖器內(nèi)容寫入到介質(zhì)所必須時(shí)間的實(shí)例設(shè)Md=2MB,Bd=24Mb/秒,則2MB/24Mb/秒=2*8/24=2*8/3*8=2/3=0.666秒。
在實(shí)際設(shè)備中,在記錄數(shù)據(jù)之前需要附加的訪問時(shí)間。
圖4示出了產(chǎn)生、傳輸以及寫入光盤的數(shù)據(jù)的圖示。該圖的上方部分41示出了主機(jī)緩沖器填充,而下方部分42示出了設(shè)備寫操作。在第一部分43中,由于編碼器34產(chǎn)生數(shù)據(jù),主機(jī)的緩沖器被填充。在第二部分中,由于設(shè)備寫入42而將該緩沖器清空??梢匀缟辖Y(jié)合圖3所示地計(jì)算緩沖器填充時(shí)間間隔Tdb和清空緩沖器的時(shí)間Tde。
記錄期間的開銷是由于訪問所致,可按下式計(jì)算效率Ta=訪問時(shí)間
Td=寫入一系列數(shù)據(jù)塊(也稱為程序塊)所需的時(shí)間效率=Td/(Ta+Td)通過最大化Td或程序塊大小可以提高效率。
Bde=Ms/(Ta+Ms/Bd)=Bd/(Bd*Ta/Ms+1)增加Ms會減小Ta的影響。也可發(fā)現(xiàn),增加驅(qū)動器的寫入速度時(shí),還必須增大程序塊以維持相同的效率。還可發(fā)現(xiàn)各程序塊之間的時(shí)間線性增大,這是因?yàn)門=Ms/Bs。
示例
在一個(gè)實(shí)施例中描述了用于實(shí)時(shí)地寫入一系列數(shù)據(jù)塊并相應(yīng)地寫入錯誤的算法。首先按程序塊(不是連續(xù)少量地)發(fā)送數(shù)據(jù),以最大化該驅(qū)動器寫入的數(shù)量及效率。主機(jī)內(nèi)的存儲器必須大于程序塊大小以避免在驅(qū)動器恢復(fù)和重試期間溢出。在程序塊結(jié)束時(shí),選擇或附加地給出一命令,強(qiáng)迫在發(fā)送下一個(gè)程序塊之前進(jìn)行單元訪問。通過強(qiáng)迫單元訪問,將在當(dāng)前程序塊結(jié)束時(shí)而非下一個(gè)程序塊開始時(shí)報(bào)告任意錯誤。在結(jié)束時(shí)報(bào)告和在下一個(gè)開始時(shí)報(bào)告之間的時(shí)間差為Ms/Bs。實(shí)際中,Ms=5MB,Bs=1MB/秒,則Ms/Bs=5秒??梢酝ㄟ^寫命令中的FUA位(見MMC-3)或者發(fā)出如下所述的同步緩存命令而強(qiáng)迫訪問。
在一個(gè)實(shí)施例中,該驅(qū)動器將在寫入錯誤時(shí)刻中斷UDMA/DMA傳輸。該驅(qū)動器并未完成整個(gè)傳輸。這和如果該傳輸大于好幾百個(gè)千字節(jié)是相關(guān)的。
在一個(gè)實(shí)施例中,主機(jī)還通過模式頁面指定重試和整體錯誤超時(shí)的最大數(shù)目。這也是錯誤消息的一個(gè)原因。
在一個(gè)實(shí)施例中,該驅(qū)動器將通過請求檢測命令報(bào)告出現(xiàn)錯誤的地址。該主機(jī)可以假設(shè)緊隨出現(xiàn)錯誤的ECC塊之后的ECC塊仍然完全未寫入,因此可向其寫入數(shù)據(jù)。這對于DVD+R是重要的,這是因?yàn)橹荒茉谕暾腅CC塊中進(jìn)行寫入。
在一個(gè)實(shí)施例中,在錯誤之后,主機(jī)發(fā)出具有地址參數(shù)的同步緩存命令,以說明可以從緩存中的哪個(gè)塊中恢復(fù)寫入。這些塊將會是地址高于出現(xiàn)錯誤的地址的塊。
圖5示出了同步緩存命令。同步緩存命令的定義示出了操作代碼51、具有一個(gè)表示該命令的執(zhí)行和響應(yīng)類型的IMMED位的參數(shù)字節(jié)52、以及諸如表示相關(guān)地址的RELADR的另外參數(shù)。一組字節(jié)53表示邏輯塊地址。其思想是使用邏輯塊地址(LBA)指向緩存中的一個(gè)塊。所述設(shè)備必須使用該LBA以找到緩存中的該塊。緩存中具有該LBA或更高LBA的所有塊都必須被寫入光盤。備選地,在指示塊之后被寫入該驅(qū)動器的具有更高LBA的所有塊都將被寫入該光盤。
注意,如前所述的錯誤監(jiān)控和報(bào)告過程可以用于DVD+RW和DVD+R。這意味著可以無需給出“儲備軌道”命令而跳過DVD+R介質(zhì)上的區(qū)域。該過程的關(guān)鍵點(diǎn)如下。通過按程序塊工作,寫鏈接的數(shù)目被最小化。寫鏈接是指驅(qū)動器停止寫入并稍后從其停止的位置繼續(xù)。通過最小化鏈接的數(shù)目,寫入錯誤的可能性降低且保持低水平的光盤直接重寫(DOW)。通過在各個(gè)程序塊結(jié)束時(shí)強(qiáng)迫單元訪問,可保持錯誤探測時(shí)間為最小,因此恢復(fù)快。這可節(jié)省主機(jī)一側(cè)的存儲器,因?yàn)樵诨謴?fù)期間產(chǎn)生的新的實(shí)時(shí)數(shù)據(jù)必須被緩存。
支持諸如緩存命令的特殊同步緩存特征類型,主機(jī)無需在錯誤之后重新傳輸程序塊。如果該主機(jī)工作于大的傳輸長度且如果該驅(qū)動器的內(nèi)部存儲器大,這一點(diǎn)就尤其重要。因此,該設(shè)備包括用于存儲數(shù)據(jù)塊的緩存緩沖器,且該主機(jī)接口接收緩存命令,該命令指示寫入錯誤之后用于恢復(fù)寫入的緩存緩沖器中的地址。特別地,緩存命令中的地址為恢復(fù)寫入的數(shù)據(jù)塊的邏輯塊地址,或者指示具有下一個(gè)更高邏輯塊地址的數(shù)據(jù)塊為恢復(fù)寫入的數(shù)據(jù)塊。重要的是使用已經(jīng)存在于記錄設(shè)備的緩沖器中的數(shù)據(jù)塊恢復(fù)記錄,而不是上述的特殊同步緩存命令。
注意,在一次寫入存儲介質(zhì)上,例如DVD+R上,可支持跳過功能。通常,我們將DVD+R從順序?qū)懭虢橘|(zhì)提高到允許快進(jìn)的介質(zhì)。把被跳過的塊看作已被設(shè)備寫入,這些塊將被當(dāng)作諸如已記錄區(qū)域指示器(RAI)的光盤狀態(tài)處理。重要的是,在寫入錯誤時(shí)該設(shè)備主動中斷大的傳輸。
在一個(gè)實(shí)施例中,通過特殊命令指定超時(shí)時(shí)間和重試次數(shù)。在下文中進(jìn)一步描述這一點(diǎn)。
圖6示出了命令和響應(yīng)的時(shí)序圖。通過主機(jī)接口15發(fā)送指令及相應(yīng)的數(shù)據(jù)61之后,存在命令完成響應(yīng)62。進(jìn)一步定義命令61和命令完成62之間的時(shí)間63,以獲得及時(shí)的錯誤狀態(tài)報(bào)告。MMC-3只指定了傳輸率,而未指定最后傳輸?shù)淖止?jié)和驅(qū)動器的命令完成響應(yīng)62之間的時(shí)滯(timelapse)。解決的方法或者在于直接指定該時(shí)滯。直接的定義為指定最大時(shí)滯并稱之為“命令超時(shí)”或“最大分配時(shí)間”。命令超時(shí)可應(yīng)用于許多命令。超時(shí)是指命令和命令完成之間的最大時(shí)間。如果驅(qū)動器必須內(nèi)部終止一命令以實(shí)現(xiàn)這一點(diǎn),則該驅(qū)動器必須返回一錯誤。
注意,也可指定重試的數(shù)目。由于驅(qū)動器無法找到要求的地址,讀取命令可能會延時(shí)。其經(jīng)歷跳躍和讀取地址的環(huán)路,如果不成功則再次跳躍和讀取。通過限制重試的數(shù)目,可以更早地報(bào)告迫近的讀取錯誤,從而更早地結(jié)束該命令。
圖7a示出了驅(qū)動器上用于接口的連接器。示出了驅(qū)動器的后側(cè)71。驅(qū)動器后側(cè)的該連接器為5合1連接器。第一個(gè)連接器72為數(shù)字輸出,第二個(gè)連接器73為模擬音頻輸出(4個(gè)引腳,根據(jù)MPC-2規(guī)格)??赡懿恢С衷撘纛l輸出。主/從連接器74為用于CS(電纜選擇)、M(主)和S(從)的3個(gè)位置的跳線塊,將跳線75示成位于默認(rèn)的跳線主選擇位置。第四個(gè)連接器76為40個(gè)引腳的ATA-2雙排扁平電纜連接器,遮蔽的(shrouded)&縫合線狀的(keyed)(除去引腳20)。該連接器也稱為IDE連接器,用于如ATA/ATAPI-5所描述的通過ATA電纜和主機(jī)接口。最后的連接器77為根據(jù)工業(yè)標(biāo)準(zhǔn)4引腳電纜的DC電源入口。該DC電源連接器為驅(qū)動提供從外部電源供應(yīng)的DC電源(+5伏特和+12伏特)圖7b示出了定義各引腳功能的IDE連接器布局。數(shù)據(jù)連接器用于接口至主機(jī)系統(tǒng)。詳細(xì)描述見ATA/ATAPI-5。主/從連接器74用于根據(jù)已有的PC配置安裝IDE數(shù)據(jù)電纜。存在三種可能連接設(shè)備為從屬的(跳線在Slave);設(shè)備為主要的(跳線在默認(rèn)的Master上);設(shè)備為主要或從屬(跳線在Cable Select上),這取決于另一個(gè)已連接設(shè)備的配置。沒有跳線時(shí)也指電纜選擇。
注意,MMC-3不允許實(shí)時(shí)記錄時(shí)通過驅(qū)動器從寫入錯誤中恢復(fù)。建議在驅(qū)動器中具有在寫入或者讀取期間執(zhí)行恢復(fù)的能力。MMC-3只包括重試次數(shù)和命令超時(shí)。命令超時(shí)是發(fā)送已經(jīng)執(zhí)行該命令的消息的最大時(shí)間。該命令超時(shí)無法用于恢復(fù)功能,這是因?yàn)槊钔瓿蓪⒃诮邮盏皆摂?shù)據(jù)之后直接發(fā)送。因此在MMC-3中,無法將寫入一系列數(shù)據(jù)塊期間的錯誤狀態(tài)報(bào)告給主機(jī)。
在一個(gè)實(shí)施例中,提供了將要執(zhí)行實(shí)時(shí)記錄時(shí)的解決方法。例如在立即寫光盤的實(shí)時(shí)記錄中,(例如PC中的)主機(jī)跟隨該驅(qū)動器。當(dāng)在該驅(qū)動器內(nèi)激活恢復(fù)過程時(shí),該主機(jī)必須等到該驅(qū)動器完成該恢復(fù)。實(shí)時(shí)記錄期間的等待可能導(dǎo)致數(shù)據(jù)存儲產(chǎn)生緩沖器溢出,因此需要跳過數(shù)據(jù)。這就形成了具有可見的被跳過數(shù)據(jù)的低質(zhì)量記錄。為了改善這一點(diǎn),在一個(gè)實(shí)施例中包括了記錄期間的超時(shí)。記錄期間超時(shí)的定義為,在執(zhí)行寫命令期間不是進(jìn)行寫入的所有時(shí)間,該時(shí)間起始于緩沖器電平剛跨過數(shù)據(jù)路徑緩沖器的閾值電平,終止于最后一個(gè)部分被寫入。記錄期間的超時(shí)和命令超時(shí)不同之處在于,命令超時(shí)定義除了寫操作自身之外的其它操作的最大備用時(shí)間量。下面進(jìn)一步解釋這一點(diǎn)。
圖8示出了主機(jī)接口上的消息、寫操作、以及在記錄期間的其它操作。上部時(shí)間線81示出了在主機(jī)接口及IDE電平的消息。該消息包括將要被實(shí)時(shí)記錄的一系列數(shù)據(jù)塊84。下部時(shí)間線82示出了在介質(zhì)接口即光盤水平的操作。上部時(shí)間線81上的標(biāo)記A表示寫命令序列的開始,其中只有該設(shè)備具有足夠的空間將該數(shù)據(jù)存儲在緩沖器中時(shí)才能給出下一個(gè)寫命令。標(biāo)記B表示緩沖器閾值電平的交叉。該緩沖器閾值電平是在該設(shè)備可以開始寫操作之前緩沖器中所需要的最小數(shù)據(jù)量。經(jīng)過用于開始寫過程的延時(shí)TRS之后,該驅(qū)動器開始向介質(zhì)進(jìn)行寫操作,用標(biāo)記C表示。在比較D處出現(xiàn)寫入錯誤85,例如偏離軌道(off_track)錯誤,則在設(shè)備中需要時(shí)間TRBT進(jìn)行恢復(fù)。如果該恢復(fù)未成功,則中斷寫過程,并產(chǎn)生指示寫入錯誤85的位置的錯誤消息?;謴?fù)成功之后,該設(shè)備在標(biāo)記E處再次開始連續(xù)寫操作。在標(biāo)記F處,需要進(jìn)行校準(zhǔn),這需要時(shí)間TCAL執(zhí)行該校準(zhǔn)。在標(biāo)記G處,該設(shè)備在校準(zhǔn)之后再次開始寫操作。在標(biāo)記H處,該設(shè)備結(jié)束該寫過程。底部的時(shí)間線83示出在上部時(shí)間線81上的寫命令的細(xì)節(jié)以解釋該寫命令。在標(biāo)記P處,將IDE寫命令發(fā)送到該設(shè)備。在該命令之后,在標(biāo)記Q處,數(shù)據(jù)傳輸?shù)津?qū)動器。在標(biāo)記R處,將命令完成消息發(fā)送到主機(jī)。注意,傳輸?shù)臄?shù)據(jù)尚未寫到存儲介質(zhì)上,因此現(xiàn)有的命令超時(shí)(被耦合至命令完成消息)無法用于傳輸寫過程自身的誤差狀態(tài)。
在一個(gè)實(shí)施例中,記錄期間的超時(shí)定義為TOUT=TRS+TRET+TCAL因此,該設(shè)備對上述各元件所花的實(shí)際時(shí)間求和并將總和TOUT與該設(shè)備給定的最大值進(jìn)行比較,例如作為命令中所包括的參數(shù)。如果實(shí)際計(jì)算值超過該最大值,則中斷該寫過程,產(chǎn)生錯誤消息并將該消息報(bào)告給主機(jī)。
在一個(gè)實(shí)施例中,記錄期間的超時(shí)定義為一固定時(shí)間,每次待寫入的序列不同時(shí)主機(jī)必須及時(shí)地預(yù)先設(shè)置該固定時(shí)間。
示例1在寫入3M字節(jié)時(shí),記錄期間的超時(shí)可設(shè)為500毫秒。當(dāng)TOUT高于記錄期間超時(shí)的給定值時(shí),驅(qū)動器停止當(dāng)前操作,例如重試或校準(zhǔn),并將錯誤發(fā)送到驅(qū)動器。對于寫入數(shù)量非常大的數(shù)據(jù),例如,主機(jī)需要寫入500M字節(jié),使用500毫秒的相同的記錄期間超時(shí),第二次校準(zhǔn)將產(chǎn)生一錯誤。這一點(diǎn)是需要的,因?yàn)閷τ趯⒈挥涗浀母蟮臄?shù)據(jù)脈沖塊,主機(jī)預(yù)期進(jìn)行一次或多次校準(zhǔn)。因此主機(jī)需要設(shè)定更大的記錄期間超時(shí),從而寫入大的數(shù)據(jù)塊。
在一個(gè)實(shí)施例中,其思想是使用窗口結(jié)構(gòu),并在每個(gè)窗口之后(例如該窗口為20秒)重置諸如校準(zhǔn)的用于其它操作的實(shí)際時(shí)間(TOUT計(jì)數(shù)器)。因此記錄期間超時(shí)中所給出的最大值定義為當(dāng)前窗口的最大值。這樣,TOUT計(jì)算可用于待記錄的每個(gè)數(shù)據(jù)長度。因此無需在每次待記錄數(shù)據(jù)的長度發(fā)生改變時(shí)來設(shè)置記錄期間超時(shí)。在實(shí)際例子中,在開始記錄期間以及在30秒的每個(gè)窗口之后重置TOUT計(jì)數(shù)器。通過下述圖9中的圖示解釋該重置和窗口。
圖9示出了寫操作以及用于超時(shí)的窗口結(jié)構(gòu)的時(shí)序圖。時(shí)間線91示出了在介質(zhì)接口即介質(zhì)寫電平的寫入操作。在標(biāo)記K處開始記錄,窗口92由此開始。在第一個(gè)標(biāo)記M處,該窗口關(guān)閉。且在每個(gè)標(biāo)記M處開始新的窗口。在每個(gè)標(biāo)記M處,TOUT計(jì)數(shù)器被重置。在每個(gè)窗口期間執(zhí)行TOUT的計(jì)算,如果實(shí)際TOUT超過記錄期間的超時(shí),則如上所述地報(bào)告錯誤。例如在標(biāo)記L處執(zhí)行校準(zhǔn),在標(biāo)記0處發(fā)生寫入錯誤,但重試成功。不報(bào)告錯誤且繼續(xù)寫操作。
盡管本發(fā)明主要是通過使用DVD+RW光盤的實(shí)施例進(jìn)行解釋,但本發(fā)明也適用于其它記錄載體,如矩形光學(xué)卡片、磁光盤、高密度(藍(lán)光)光盤或用于實(shí)時(shí)記錄一系列數(shù)據(jù)塊的任何其它類型的信息存儲系統(tǒng)。
注意,在本文件中,單詞“包括”并不排除除了所列舉的元件或步驟之外的其它元件或步驟的存在,元件之前的單詞“一”或“一個(gè)”并不排除存在多個(gè)這種元件,附圖標(biāo)記并不限制權(quán)利要求的范圍,可以通過硬件和軟件實(shí)施本發(fā)明,可以用相同的硬件或軟件代表許多“裝置”或“單元”。此外,本發(fā)明的范圍不限于這些實(shí)施例,本發(fā)明包括每個(gè)及全部的新穎特征或者前述特征的組合。
權(quán)利要求
1.在存儲介質(zhì)(11)上記錄信息的設(shè)備,該設(shè)備包括介質(zhì)接口裝置(14),用于和存儲介質(zhì)(11)接口,從而將數(shù)據(jù)記錄在該介質(zhì)上并從該存儲介質(zhì)中檢索數(shù)據(jù);主機(jī)接口裝置(15),用于通過根據(jù)協(xié)議的消息和主機(jī)(13)通信,該消息包括實(shí)時(shí)地寫入一系列數(shù)據(jù)塊的寫命令;以及錯誤監(jiān)控裝置(40),用于根據(jù)該系列數(shù)據(jù)塊內(nèi)的錯誤狀態(tài)而產(chǎn)生錯誤消息并告知主機(jī)。
2.權(quán)利要求1所述的設(shè)備,其中錯誤監(jiān)控裝置(40)被設(shè)置成,如果出現(xiàn)寫入錯誤,則將該系列數(shù)據(jù)塊內(nèi)寫入錯誤的位置包括在該錯誤消息內(nèi)。
3.權(quán)利要求1所述的設(shè)備,其中錯誤監(jiān)控裝置(40)被設(shè)置成,如果出現(xiàn)寫入錯誤,則通過請求檢測命令報(bào)告出現(xiàn)寫入錯誤的地址。
4.權(quán)利要求1所述的設(shè)備,其中主機(jī)結(jié)構(gòu)裝置(15)被設(shè)置成接收一命令,該命令強(qiáng)迫單元訪問以在該系列數(shù)據(jù)塊結(jié)束時(shí)發(fā)送錯誤消息。
5.權(quán)利要求1所述的設(shè)備,其中該設(shè)備包括用于存儲數(shù)據(jù)塊的緩存緩沖器(38),且主機(jī)接口裝置(15)被設(shè)置成接收一緩存命令,該命令用于指示在寫入錯誤之后緩存緩沖器中恢復(fù)寫入的地址。
6.權(quán)利要求5所述的設(shè)備,其中緩存命令中的該地址為恢復(fù)寫入的數(shù)據(jù)塊的邏輯塊地址,或者指示具有下一個(gè)更高邏輯塊地址的數(shù)據(jù)塊為待恢復(fù)寫入的數(shù)據(jù)塊。
7.權(quán)利要求1所述的設(shè)備,其中主機(jī)接口裝置(15)被設(shè)置成用于接收指示記錄期間的超時(shí)的命令,該超時(shí)定義了記錄期間除了寫數(shù)據(jù)塊之外的其它操作最大程度上可使用的最大時(shí)間量,且錯誤監(jiān)控裝置(40)被設(shè)置成用于確定所述其它操作在記錄期間所使用的實(shí)際時(shí)間量,并用于在所述實(shí)際時(shí)間量超過所述最大時(shí)間量時(shí)產(chǎn)生所述錯誤消息。
8.權(quán)利要求7所述的設(shè)備,其中錯誤監(jiān)控裝置(40)被設(shè)置成用于確定時(shí)間窗口內(nèi)的所述實(shí)際時(shí)間量,并用于設(shè)定記錄期間的后續(xù)時(shí)間窗口。
9.在存儲介質(zhì)上記錄期間錯誤監(jiān)控的方法,該方法包括通過根據(jù)協(xié)議的消息和主機(jī)通信,該消息包括用于實(shí)時(shí)寫入一系列數(shù)據(jù)塊的寫命令,以及根據(jù)該系列數(shù)據(jù)塊中的錯誤狀態(tài)產(chǎn)生錯誤消息以告知主機(jī)。
10.權(quán)利要求9所述的方法,其中產(chǎn)生該錯誤消息包括,如果出現(xiàn)寫入錯誤,則將該系列數(shù)據(jù)塊中寫入錯誤的位置包括在該錯誤消息中。
11.權(quán)利要求9所述的方法,該方法包括將數(shù)據(jù)塊存儲在緩存緩沖器中,且接收同步緩存命令,該命令用于指示寫入錯誤之后緩存緩沖器中用于恢復(fù)寫入的地址。
12.權(quán)利要求9所述的方法,該方法包括接收指示記錄期間超時(shí)的命令,該超時(shí)定義了記錄期間除了寫數(shù)據(jù)塊之外的其它操作最大程度上可使用的最大時(shí)間量;確定所述其它操作在記錄期間所使用的實(shí)際時(shí)間量;并在所述實(shí)際時(shí)間量超過所述最大時(shí)間量時(shí)產(chǎn)生所述錯誤消息。
13.用于控制權(quán)利要求1所述記錄設(shè)備的方法,該方法包括通過根據(jù)協(xié)議的消息和主機(jī)通信,該消息包括用于實(shí)時(shí)寫入一系列數(shù)據(jù)塊的寫命令;和根據(jù)該系列數(shù)據(jù)塊中的錯誤狀態(tài)從該設(shè)備接收錯誤消息;以及應(yīng)用一個(gè)恢復(fù)以在該系列數(shù)據(jù)塊回放時(shí)掩蔽該錯誤。
14.權(quán)利要求13所述的方法,其中所述通信包括發(fā)送一命令,該命令在該系列數(shù)據(jù)塊結(jié)束時(shí)強(qiáng)迫單元訪問以接收該錯誤消息。
15.權(quán)利要求13所述的方法,其中所述通信包括發(fā)送同步緩存命令,該命令用于指示寫入錯誤之后該記錄設(shè)備的緩存緩沖器中用于恢復(fù)寫入的地址。
16.用于記錄信息的計(jì)算機(jī)程序產(chǎn)品,該程序能導(dǎo)致處理器執(zhí)行權(quán)利要求9至15中任意一個(gè)所述的方法。
全文摘要
一種記錄設(shè)備,該設(shè)備具有介質(zhì)接口裝置,用于和存儲介質(zhì)接口,從而將數(shù)據(jù)記錄在該介質(zhì)上并從該介質(zhì)中檢索數(shù)據(jù);以及主機(jī)接口裝置,用于通過根據(jù)協(xié)議(ATA/ATAPI)的消息和主機(jī)通信。該消息包括實(shí)時(shí)地寫入一系列數(shù)據(jù)塊的寫命令。該設(shè)備具有錯誤監(jiān)控裝置,用于根據(jù)系列數(shù)據(jù)塊(84)內(nèi)的錯誤狀態(tài)而產(chǎn)生錯誤消息并告知主機(jī)。該錯誤狀態(tài)可指示該系列中寫入錯誤(85)或者超過記錄期間超時(shí)(T
文檔編號G11B27/031GK1791927SQ200480013831
公開日2006年6月21日 申請日期2004年5月3日 優(yōu)先權(quán)日2003年5月20日
發(fā)明者R·A·布龍迪克, S·J·M·范貝克霍文 申請人:皇家飛利浦電子股份有限公司