專利名稱:用于可移動媒體的驅動器指示機制的制作方法
技術領域:
本發(fā)明涉及用于可移動媒體的驅動器指示機制。
背景技術:
一些電子系統(tǒng)包括可以將數(shù)據(jù)存儲在可移動存儲媒體上的存儲驅動器。因為存儲媒體是可移動的,所以該存儲媒體上的數(shù)據(jù)可以被一個或多個存儲驅動器寫入。而且,存儲媒體的一個或多個部分(例如扇區(qū))可能發(fā)生故障。故障可能是由存儲媒體本身或由驅動器存取存儲媒體時導致的。所期望的是具有可以用來診斷這種故障的信息。
發(fā)明內(nèi)容
本發(fā)明涉及一種可使用可移動存儲媒體(32)的系統(tǒng)(20),包括存儲驅動器(30),設為容納可移動存儲媒體,該可移動存儲媒體包括多個可單獨尋址單元;以及中央處理單元(“CPU”)(24、36),配置為執(zhí)行代碼(38)以使CPU將數(shù)據(jù)寫入存儲媒體的可尋址單元(70)并且也將標識值(72)寫入可尋址單元,該標識值表示系統(tǒng)或存儲驅動器的身份,該標識值將系統(tǒng)或存儲器與可和該存儲媒體一起使用的其他系統(tǒng)或存儲驅動器區(qū)分開。
本發(fā)明還涉及一種方法,包括由存儲驅動器將數(shù)據(jù)(86)寫入可移動存儲媒體上的可尋址單元;以及由存儲驅動器將第一值(88)寫入可尋址單元,第一值表示存儲驅動器的身份。
為了詳細描述本發(fā)明的示范實施例,現(xiàn)在將參考附圖,附圖中
圖1示出根據(jù)本發(fā)明一個示范實施例的系統(tǒng);圖2圖示在存儲媒體上包括驅動器標識符表的一個實施例;圖3示出圖2的驅動器標識符表的一個示范實施例;圖4示出存儲媒體的一部分的示例,其中將標識各個存儲設備的索引值存儲在媒體的可尋址單元中;以及圖5示出一個示范方法實施例。
符號表示和術語在下文和權利要求中使用某些術語來指代特定系統(tǒng)組件。如本領域技術人員會認識到的,計算機公司可采用不同名稱指代組件。本文檔不是要在名稱不同但功能相同的組件之間區(qū)分。在下文論述和權利要求中,術語“包括”和“包含”是以開放方式使用的,因此應該解釋為“包括,但不限于...”。再者,術語“耦合”表示間接或直接的電氣連接。由此,如果第一設備耦合到第二設備,則連接可以是通過直接電氣連接的,或經(jīng)由其他設備和連接的間接電氣連接的。動詞“記錄”表示將數(shù)據(jù)存儲、寫入或以其他方式傳送到存儲媒體上。術語“系統(tǒng)”指代兩個或兩個以上組件的集合,且可以用于例如指代計算機系統(tǒng)或計算機的子系統(tǒng)(例如存儲驅動器)。
具體實施例方式
圖1示出根據(jù)本發(fā)明一個示范實施例實施的系統(tǒng)20。如圖所示,系統(tǒng)20包括耦合到存儲驅動器30的主機22。一般來說,主機22將數(shù)據(jù)存儲在存儲驅動器上并從其中讀取數(shù)據(jù)。同樣地,主機22代表存儲驅動器的數(shù)據(jù)源和/或代表從存儲驅動器檢索數(shù)據(jù)以供主機22或其他設備使用的消費者。主機22可以實施為計算機,存儲驅動器30可以在計算機外部或可以位于計算機內(nèi)部。主機22包括中央處理單元(“CPU”)24以及設備驅動程序26。設備驅動程序26包括由CPU24執(zhí)行并可以促使CPU執(zhí)行本文所描述的一個或多個操作的軟件。主機22還可以包含為簡明起見未專門示出的其他組件。
存儲驅動器30設為接納由人或機器(例如自動化的磁帶驅動器加載系統(tǒng))插入的可移動存儲媒體32。存儲媒體32可以包括任何適合類型的媒體,如光盤、磁盤、固態(tài)存儲器等。而且存儲媒體可以實施為“一次寫入”媒體或“可重寫”存儲媒體??梢远啻螌?shù)據(jù)記錄到一次寫入媒體上,但是一旦數(shù)據(jù)寫入一次寫入媒體(例如CD-R),則無法覆寫或擦除此數(shù)據(jù)??芍貙懘鎯γ襟w上的數(shù)據(jù)可以被覆寫或擦除。
存儲驅動器30還可以包括CPU 36和可以由CPU 36執(zhí)行的代碼38。本文所描述的一個或多個操作可以由執(zhí)行代碼38的存儲驅動器的CPU 36執(zhí)行。而且,本文所描述的所有操作可以由代碼38或設備驅動程序26來執(zhí)行。在其他實施例中,可以由設備驅動程序26來執(zhí)行本文所描述的一些操作,而由代碼38來執(zhí)行其他操作。下文論述涉及執(zhí)行各種操作的代碼38,但是在其他實施例中可以作為附加或作為備選來使用設備驅動程序26。
存儲驅動器30還包括例如可以將相關聯(lián)的驅動器唯一地標識以使其與所有其他驅動器相區(qū)別的驅動器標識符(“ID”)34的標識值。例如,驅動器ID可以包括驅動器制造商指定的序列號。在其他實施例中,驅動器ID 34可以對于至少一些但不是所有其他設備是唯一的。對于本文所公開的主題,驅動器ID 34使得相同存儲媒體32在具有相同驅動器ID的兩個或兩個以上驅動器中被使用的概率足夠低就足夠了。在本公開文獻中術語“唯一的”(如在“唯一的”驅動器ID中)在兩種上下文場合中使用。可以將驅動器ID 34存儲在存儲驅動器30的非易失性存儲器中,或可以硬編碼到驅動器的電路中(例如驅動器中包含的印刷電路板上形成的走線上的唯一的圖形中)。在一些實施例中,驅動器ID是永久的,并由此不可改變。驅動器ID是永久的或者至少在沒有專門設備或處理過程的情況下難以更改也是適合的。在其他實施例中,驅動器ID包括主機22的標識符,該標識符替代驅動器的標識符或作為驅動器標識符的附加。而且,驅動器ID包括有關系統(tǒng)10或系統(tǒng)10的用戶的公共可獲得的信息。作為附加或作為備選,該驅動器ID可以包含依據(jù)用于保護系統(tǒng)10的用戶的隱私的有效合法過程(例如搜索許可)以合法方式可檢索的私人信息。
驅動器ID 34可以包括含有字母字符和/或其他符號的值。在至少一個實施例中,驅動器ID 34包括64-位值,其中含有制造商代碼(16位)、型號代碼(16位)以及序列號(32位)。可以為每個不同的存儲驅動器制造商指定一個唯一的制造商代碼,在16位的情況下,可能有超過65000個不同的制造商代碼。還可以為存儲設備的每個不同的型號(包括期望的修正版)指定一個唯一的型號代碼。在16位用于型號代碼的情況下,有超過65000個唯一可用的型號代碼。序列號通常對于每個驅動器是唯一的。同樣地,相同型號的且由相同制造商提供的兩個驅動器仍具有不同的驅動器ID,因為驅動器ID的序列號部分不同。驅動器ID的三個部分(制造商代碼、型號代碼和序列號)可采用任何適合的方式連接在一起或采用其它方式組合在一起或一起使用。
在一個備選實施例中,特定型號的每個驅動器可以具有在運行在驅動器中的固件中編碼的驅動器ID。在該實施例中,特定型號的每個驅動器具有相同的32位序列號。如果將固件升級,則驅動器序列號不會改變并仍可用。根據(jù)另一個實施例,驅動器ID由主機生成(例如由CPU 24根據(jù)設備驅動程序26生成)。當安裝驅動器時,驅動程序可提示操作者輸入編號,例如可以是印制在驅動器上但驅動控制器電子裝置不可讀的人可讀的序列號?;蛘撸恍枞斯ぽ斎胫圃焐叹幪柡托吞柧幪?,設備驅動程序26可生成隨機的32位序列號?;蛘撸O備驅動器可以根據(jù)與主機計算機相關聯(lián)的唯一編號、如主機的固件(例如BIOS)的序列號生成序列號。如果設備驅動程序提供序列號,則設備驅動程序應該將該編號保存在非易失存儲器中,或者在每次加載設備驅動程序時該驅動程序應采用確定性算法總是重建相同的編號。如果設備驅動程序提供序列號,則驅動器可以在初始化時從設備驅動程序獲取驅動器標識。
一般來說,將記錄的數(shù)據(jù)格式轉化成可采用多種方式引用的可尋址單元。示例包括扇區(qū)、塊、簇、磁道以及其他單元集合、如包含預定義扇區(qū)數(shù)的糾錯碼(“ECC”)塊。在下文論述中,術語“可尋址單元”一般用于指代上文列出的任何存儲單元或其他熟知的存儲單元。
圖2示出包括非用戶數(shù)據(jù)區(qū)50和用戶數(shù)據(jù)區(qū)54的存儲媒體32的實施例。用戶數(shù)據(jù)區(qū)54是驅動器30代表主機22上運行的應用程序存儲數(shù)據(jù)的區(qū)域。例如,用戶期望存儲在存儲媒體上的諸如文檔或電子表格的文件由驅動器30存儲在用戶數(shù)據(jù)區(qū)。非用戶數(shù)據(jù)區(qū)50一般不可用于存儲用戶數(shù)據(jù),而是用于控制和管理目的。根據(jù)本發(fā)明的至少一些實施例,非用戶數(shù)據(jù)區(qū)50可以包括存儲媒體的“引入”區(qū),如美國專利編號6330210中所公開的,通過引用結合于本文。在附圖的實施例中,非用戶數(shù)據(jù)區(qū)50包括驅動器ID表56??梢杂沈寗悠鞯腃PU 36在執(zhí)行代碼38的情況下對驅動器ID表56初始化。對驅動器ID表初始化可以包括預留非用戶數(shù)據(jù)區(qū)50的一部分用于存儲該表。
圖3示出表56的一個實施例。表56配置為包含一個或多個項62。如圖3所示,每個項62包括至少一個驅動器ID字段58。驅動器ID字段58設為存儲與存儲驅動器相關聯(lián)的驅動器ID(如上述那些)。每個項62還可以包括索引字段60。同樣地,表56中的每個項62可以包括索引值和對應的驅動器ID。例如索引值01h(“h”表示十六進制)對應于驅動器1的ID(DRIVE 1 ID)。相似地,索引02h和03h對應于DRIVE 2 ID和DRIVE 3 ID。可以預留至少一些項62以供將來用于存儲驅動器ID。在圖3所示的實施例中,在用于存儲索引值的表中包括了索引字段60。在其他實施例中,在表56中未明確地包括索引字段60,而是基于引用的驅動器ID值在表中的位置來推出每個驅動器ID的索引值。例如,驅動器2是表的第二個項(在基于0的索引方式中),由此將驅動器2視為與索引值2相關聯(lián)。
根據(jù)本發(fā)明的多種實施例,每次存儲驅動器30以數(shù)據(jù)寫入存儲媒體32的可尋址單元時,存儲驅動器的CPU 36在代碼38的控制下還將索引值寫入到以數(shù)據(jù)寫入的該可尋址單元。寫入到存儲媒體32的可尋址單元的索引值對應于執(zhí)行該寫操作的特定存儲驅動器30。寫入可尋址單元的索引值對應于驅動器的ID,如通過驅動器ID表56所反映的。例如,如果驅動器1寫存儲媒體的可尋址單元,則除了數(shù)據(jù)外,驅動器1還將其對應的索引值寫入可尋址單元。而且,被寫入數(shù)據(jù)的存儲媒體32的每個可尋址單元還被寫入標識特定存儲驅動器30的索引值,該特定存儲驅動器30用于寫可尋址單元。
圖4示出存儲媒體32的可尋址單元的一部分。圖4所示的部分包括可尋址單元1、2、3、4和5。每個可尋址單元包括數(shù)據(jù)部分70和索引值72。索引值72可以作為與每個可尋址單元相關聯(lián)的頭的一部分而被包括。在一些實施例中,可尋址單元頭可以包括地址、控制信息和其他信息以及一個或多個預留的字段??梢詫㈩A留的字段的其中之一用于存儲索引值。在圖4的示例中,使用驅動器1將數(shù)據(jù)寫入可尋址單元1、2和5,并且分別使用驅動器2和3將數(shù)據(jù)寫入到可尋址單元3和4。還可能使用驅動器1將數(shù)據(jù)寫入可尋址單元3和4,但是驅動器2和3隨后覆寫已經(jīng)存儲在可尋址單元2和3中的任何數(shù)據(jù),并相應更新相關聯(lián)的索引值。索引值72標識最近寫可尋址單元的驅動器。存儲媒體32還可以結合“遺留驅動器”來使用。遺留驅動器是未配備為按如上所述將驅動器ID寫入存儲媒體的驅動器。而是,遺留驅動器可能導致如00h的預定值寫入到可尋址單元中的位置,而如上所述由驅動器以其它方式將驅動器ID寫入上述位置。
用驅動器ID(如果在表中實施的話)和索引值寫入驅動器ID表56中的所有項是可能發(fā)生的。當發(fā)生此情況時并根據(jù)至少一些實施例,試圖將數(shù)據(jù)寫入可尋址單元的新存儲驅動器(即它的驅動器ID尚未存儲在表56中的驅動器)可能導致如00h或FFh的預留值而非驅動器ID被寫入到一個或多個可尋址單元。在其他實施例中,一旦表56變滿,則可以通過用戶啟動的維護過程來擦除表中的驅動器ID。然后可以將偏移值作為表的一部分存儲或存儲在存儲媒體上的其他地方。該偏移值表示表56中項的數(shù)量,并用于計算附加驅動器的新索引。例如,如果表56具有32個項并且所有32個項均被驅動器ID占用(即32個不同驅動器的32個驅動器ID),則可以從表中擦除所有32個驅動器ID。在該示例中,偏移值將是32。當驅動器隨后試圖寫可尋址單元時,作為表56擦除之后第一個寫存儲媒體的驅動器的該新驅動器將被指定索引值33,通過將偏移值32加初始索引值1計算得到該值。相似地,寫存儲媒體的下一個驅動器將被指定索引值33,依此類推。實際存儲在表56中的索引值將是1、2、3等,但是當存取表56時加上偏移值32。
圖5示出包括框80-88的對應方法。圖5中所示的一個或多個操作可以同時或依次執(zhí)行,并可以根據(jù)需要省略一個或多個操作。而且,可以按與圖5所示不同的次序來執(zhí)行這些操作。在框80中,用戶將存儲媒體32插入到存儲驅動器30。在某個點,存儲驅動器30可以對存儲媒體32進行寫操作。在框82,存儲驅動器30通過檢查存儲媒體的表56判斷特定驅動器先前是否已將數(shù)據(jù)記錄到存儲媒體32。如果存儲驅動器30之前從未將數(shù)據(jù)寫入到存儲媒體32,則表56中將不存在存儲驅動器30的驅動器ID。但是,如果存儲驅動器30先前已將數(shù)據(jù)寫入到存儲媒體32,則表56中將存在存儲驅動器30的驅動器ID。如果這是該特定存儲驅動器30第一次將數(shù)據(jù)寫入到該特定存儲媒體32,則在框84,驅動器的CPU 36通過將驅動器的ID值添加到對應于先前未用的索引值的表中來修改該存儲媒體的驅動器ID表56。例如此驅動器可以將其驅動器ID添加到表中索引值04h所對應的先前標記為“預留的”的項。如果驅動器已經(jīng)對存儲媒體32進行過寫操作,則存儲媒體的驅動器ID表應該已經(jīng)包含列出該驅動器的ID的項,并在框83,驅動器的CPU將使用在驅動器ID表56中找到的與其驅動器的ID相關聯(lián)的索引。在框86,存儲驅動器30將數(shù)據(jù)寫入到存儲媒體32上的可尋址單元。在框88,驅動器30將其索引值寫入到正在以數(shù)據(jù)寫入的可尋址單元。在一些實施例中,框86和88作為一個操作來執(zhí)行,即在一個寫事務中將數(shù)據(jù)和驅動器ID寫入到可尋址單元。在一些實例中,在寫入數(shù)據(jù)之前不更新驅動器ID表,驅動器的CPU 36會記住新的索引值,并等待在取出存儲媒體32或關閉系統(tǒng)電源之前的某個稍后時間點將新的索引值記錄到驅動器ID表56中。在將數(shù)據(jù)寫入到可尋址單元之前、過程中或之后但在從存儲驅動器中取出媒體之前寫入對驅動器ID表56的任何更改。
根據(jù)上面描述的實施例,索引值作為用于標識寫可尋址單元的驅動器的標識值存儲在可尋址單元中。可以使用表56來標識寫過被賦予相關聯(lián)的索引值的可尋址單元的特定驅動器。在一些實施例中,將與特定驅動器相關聯(lián)的索引值存儲在圖3所示的表56中,但是在其他實施例中,從驅動器在該表中的位置推斷出特定驅動器的索引值。在一些實施例中,可以將驅動器ID本身(或系統(tǒng)標識符)而非對應的索引值作為標識值寫入到可尋址單元。在此后一個實施例中,不使用驅動器ID表(它協(xié)助索引值與驅動器ID之間的轉換)。
在一些實施例(例如,遺留驅動器)中,可能沒有驅動器標識值,而將預定值(例如00h)存儲在媒體的可尋址單元中。還可能的是所有可能的驅動器標識符(例如索引值)已經(jīng)在使用中,因此沒有可供新驅動器使用的。在此情況中,使用預定值存儲在媒體的可尋址單元中以代替驅動器標識索引值。
上面描述的實施例使存儲媒體包含可用于標識哪些驅動器寫過存儲媒體的特定可尋址單元的核查信息??刹捎枚喾N方式使用該核查信息。例如,如果確定存儲媒體32的可尋址單元是故障的并且可以確定寫入該可尋址單元的索引值,則通過檢查驅動器ID表可以判斷哪個驅動器最后寫過該特定可尋址單元。可尋址單元的故障可能由特定存儲設備的問題導致,該特定存儲設備可以由該存儲設備寫入可尋址單元中的信息和媒體的驅動器ID表唯一地標識出來。因此,在一些實施例中,計算機系統(tǒng)可以執(zhí)行一種方法,該計算機系統(tǒng)具有處理器和適于實施該方法的執(zhí)行軟件。如此執(zhí)行的該方法包括從可移動存儲媒體32中檢索信息,并基于該信息確定多個存儲驅動器中的哪一個曾在該可移動存儲媒體上存儲數(shù)據(jù)。具體地說,該計算機系統(tǒng)接納可移動存儲媒體,并運行該計算機系統(tǒng)的軟件以執(zhí)行該方法來確定哪一個或哪一些存儲驅動器先前將數(shù)據(jù)寫入到該可移動存儲媒體。上文解釋的檢索信息的操作包括從可移動存儲媒體中檢索表56。檢索信息的操作還包括檢索可移動存儲媒體中先前以數(shù)據(jù)寫入的可尋址單元中存儲的任何索引值。該方法還要求檢查表56并判斷從存儲媒體上的任何一個可尋址單元中讀取的任何索引值是否包含與表中所含的任何索引值的匹配項。表中存儲的驅動器ID提供一種機制,通過該機制可確定先前將數(shù)據(jù)寫入存儲媒體的可尋址單元且其索引值存儲在此可尋址單元上的任何驅動器的身份。
一旦全面理解上述公開內(nèi)容,多種變化和修改對本領域技術人員將是顯而易見的。例如,本文提出的原理可應用于計算機系統(tǒng)以及如光盤錄像機的單機存儲設備。
權利要求
1.一種可使用可移動存儲媒體(32)的系統(tǒng)(20),包括存儲驅動器(30),設為容納所述可移動存儲媒體,所述可移動存儲媒體包括多個單獨可尋址單元;以及中央處理單元(“CPU”)(24、36),配置為執(zhí)行代碼(38)以使所述CPU將數(shù)據(jù)寫入所述存儲媒體的可尋址單元(70)并且也將標識值(72)寫入所述可尋址單元,所述標識值表示所述系統(tǒng)或所述存儲驅動器的身份,所述標識值將所述系統(tǒng)或所述存儲器與可和所述存儲媒體一起使用的其他系統(tǒng)或存儲驅動器區(qū)分開。
2.如權利要求1所述的系統(tǒng),其中所述可尋址單元包括扇區(qū)。
3.如權利要求1所述的系統(tǒng),其中所述可尋址單元包括形成糾錯碼(“ECC”)塊的預定數(shù)量的扇區(qū)。
4.如權利要求1所述的系統(tǒng),其中所述存儲媒體存儲設為包含多個驅動器標識符(58)的表(56),每個驅動器標識符與不同的存儲驅動器相關聯(lián)。
5.如權利要求1所述的系統(tǒng),其中所述標識值包括索引值(60),通過所述索引值可以訪問所述系統(tǒng)或存儲驅動器的標識符。
6.如權利要求1所述的系統(tǒng),其中所述標識值包括所述系統(tǒng)或所述存儲驅動器的標識符。
7.如權利要求1所述的系統(tǒng),其中所述代碼使所述CPU判斷所述存儲驅動器先前是否寫過所述存儲驅動器。
8.一種方法,包括由存儲驅動器將數(shù)據(jù)(86)寫入可移動存儲媒體上的可尋址單元;以及由所述存儲驅動器將第一值(88)寫入所述可尋址單元,所述第一值表示所述存儲驅動器的身份。
9.如權利要求8所述的方法,其中寫入所述第一值包括寫入索引值(72),所述索引值可用于獲取所述存儲驅動器的身份。
10.如權利要求8所述的方法,其中將所述第一值寫入所述可尋址單元包括將所述第一值寫入所述可尋址單元的頭部。
全文摘要
一種系統(tǒng)(20)(以及相關的方法)包括存儲驅動器(30)以及中央處理單元(“CPU”) (24、26)。存儲驅動器設為容納可移動存儲媒體(32)。CPU配置為執(zhí)行代碼(38)以使CPU將數(shù)據(jù)寫入存儲媒體的可尋址單元(70)并且也將標識值(72)寫入可導址單元。該標識值表示該系統(tǒng)或存儲驅動器的身份。
文檔編號G11B27/10GK1885425SQ20061009591
公開日2006年12月27日 申請日期2006年6月23日 優(yōu)先權日2005年6月24日
發(fā)明者C·R·魏勞赫 申請人:惠普開發(fā)有限公司