專利名稱:消除分段存儲(chǔ)執(zhí)行方法和存儲(chǔ)器件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于轉(zhuǎn)移或交換存儲(chǔ)在諸如磁盤(pán)驅(qū)動(dòng)器、磁光盤(pán)驅(qū)動(dòng)器、PC卡半導(dǎo)體存儲(chǔ)器和CF卡半導(dǎo)體存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器件中的數(shù)據(jù)塊中的數(shù)據(jù)的技術(shù)。更為具體地,本發(fā)明涉及一種用于在較高的速度下以降低主設(shè)備負(fù)擔(dān)的方式執(zhí)行消除分段存儲(chǔ)(defragmentation)的技術(shù)。
背景技術(shù):
磁盤(pán)驅(qū)動(dòng)器是一種能夠存取其磁盤(pán)或記錄介質(zhì)上的任意存儲(chǔ)位置的隨機(jī)存取存儲(chǔ)器件。此外,該驅(qū)動(dòng)器是一種在各自具有多個(gè)字節(jié)的數(shù)據(jù)塊中執(zhí)行數(shù)據(jù)輸入和輸出的塊(block)器件。將磁盤(pán)劃分成多個(gè)沿著環(huán)形磁道形成的固定尺寸的數(shù)據(jù)塊。當(dāng)主設(shè)備從磁盤(pán)驅(qū)動(dòng)器讀取數(shù)據(jù)或向磁盤(pán)驅(qū)動(dòng)器寫(xiě)入數(shù)據(jù)時(shí),數(shù)據(jù)塊為最小的單元且,通常被稱之為扇區(qū)。其間,將簇(cluster)限定為多扇區(qū)組和用于主設(shè)備管理磁盤(pán)上的文件存儲(chǔ)位置的最小單元。因此,當(dāng)將文件記錄在磁盤(pán)上時(shí),任何小文件使用至少一個(gè)簇。
通過(guò)操作系統(tǒng)(OS)來(lái)完成由主設(shè)備所驅(qū)動(dòng)的磁盤(pán)的文件管理。OS具有文件管理系統(tǒng),該文件管理系統(tǒng)通過(guò)表來(lái)管理塊器件中的文件以將文件與存儲(chǔ)位置相聯(lián)系。文件管理系統(tǒng)依賴于OS。在這些可用的系統(tǒng)中,F(xiàn)AT文件系統(tǒng)和NTFS用于Windows(微軟有限公司的商標(biāo)),而HFS用于MAC(蘋(píng)果計(jì)算機(jī)公司的商標(biāo))。
磁盤(pán)驅(qū)動(dòng)器一般具有多個(gè)記錄表面。而且,每一個(gè)記錄表面具有多個(gè)磁道,每個(gè)磁道具有多個(gè)扇區(qū)。當(dāng)磁頭訪問(wèn)期望的扇區(qū)時(shí),在磁盤(pán)驅(qū)動(dòng)器中指定相應(yīng)于那一扇區(qū)的CHS參數(shù)(柱面數(shù)量/磁頭數(shù)量/扇區(qū)數(shù)量)。另一方面,為了管理數(shù)據(jù)存儲(chǔ)位置,主設(shè)備使用被稱之為邏輯塊地址(下文中表示為L(zhǎng)BA)的單個(gè)參數(shù)來(lái)代替CHS參數(shù)已經(jīng)變得普遍。對(duì)于在這種情況下訪問(wèn)期望扇區(qū)的磁頭,磁盤(pán)驅(qū)動(dòng)器在內(nèi)部將LBA轉(zhuǎn)化為CHS參數(shù)。將串行LBA按照一對(duì)一的原則順序地分配到扇區(qū)。
將串行LBA順序分配到磁盤(pán),在任意一個(gè)記錄表面上產(chǎn)生沿著每一磁道的連續(xù)扇區(qū)。文件是用于記錄磁盤(pán)上的數(shù)據(jù)和程序的集合信息。當(dāng)為了將數(shù)據(jù)或程序讀入內(nèi)存而訪問(wèn)磁盤(pán)時(shí),構(gòu)成文件的信息在連續(xù)扇區(qū)中的鄰接記錄對(duì)于計(jì)算機(jī)是有利的,因?yàn)榇疟P(pán)驅(qū)動(dòng)器可以減小查找時(shí)間和旋轉(zhuǎn)等待時(shí)間。
然而,雖然起初,可以在磁盤(pán)的扇區(qū)或簇中順序并連續(xù)地記錄多個(gè)文件,但是由于一些文件被刪除以及單獨(dú)的文件被部分刪除,所以在連續(xù)的被分配的簇之間會(huì)出現(xiàn)未分配的簇。當(dāng)記錄新的文件時(shí),由于為了有效地使用記錄空間,OS盡力使用被分配的簇之間的未被分配的簇,所以構(gòu)成該新文件的信息被分散到分離的存儲(chǔ)位置。分段存儲(chǔ)指的是其中將記錄在其上的文件劃分成分散在磁盤(pán)周圍的片斷的磁盤(pán)情況。分段存儲(chǔ)還作為向文件添加數(shù)據(jù)的結(jié)果出現(xiàn)。由于查找時(shí)間和旋轉(zhuǎn)等待時(shí)間的增加,分段存儲(chǔ)使得訪問(wèn)磁盤(pán)驅(qū)動(dòng)器的時(shí)間增長(zhǎng)。
為了整理磁盤(pán)器件中的分段存儲(chǔ),主設(shè)備執(zhí)行被稱之為消除分段存儲(chǔ)的任務(wù)。消除分段存儲(chǔ)指的是一種順序地將被分散的文件信息重新分配到毗鄰的扇區(qū)或簇。為了執(zhí)行消除分段存儲(chǔ),主設(shè)備必須,例如,將數(shù)據(jù)XYZ從簇A移動(dòng)到簇B。在這種情況下,主設(shè)備發(fā)送讀指令以將數(shù)據(jù)XYZ從簇A中讀入到主設(shè)備的內(nèi)存中,并將數(shù)據(jù)XYZ寫(xiě)入到簇B中。然后,主設(shè)備從磁盤(pán)驅(qū)動(dòng)器中接收寫(xiě)完成指令,并更新管理表以便于改變數(shù)據(jù)XYZ從簇A到簇B的存儲(chǔ)位置。這是因?yàn)榇疟P(pán)驅(qū)動(dòng)器通常只從主設(shè)備接收關(guān)于扇區(qū)LBA的讀或?qū)懼噶睢R虼?,為了移?dòng)存儲(chǔ)在磁盤(pán)上的扇區(qū)中的數(shù)據(jù),主設(shè)備將數(shù)據(jù)讀入到其內(nèi)存中并向磁盤(pán)驅(qū)動(dòng)器發(fā)送關(guān)于所指定的目標(biāo)扇區(qū)LBA的寫(xiě)指令。在將數(shù)據(jù)移動(dòng)到磁盤(pán)驅(qū)動(dòng)器中的另一簇之后,主設(shè)備的文件管理系統(tǒng)將目標(biāo)簇認(rèn)作數(shù)據(jù)的存儲(chǔ)位置。
日本專利公報(bào)No.10-301721公開(kāi)了一種技術(shù),該技術(shù)涉及如何重新分配扇區(qū)以便于解決轉(zhuǎn)移速率惡化的問(wèn)題,這一問(wèn)題是由使用用于缺陷扇區(qū)的備用扇區(qū)而導(dǎo)致的。將用戶數(shù)據(jù)重新寫(xiě)入備用區(qū)并通過(guò)跳過(guò)初級(jí)和次級(jí)缺陷扇區(qū)來(lái)更新分配給扇區(qū)的LBA。然后,將包括記錄在保存區(qū)中的數(shù)據(jù)的用戶數(shù)據(jù)記錄在給其新LBA的扇區(qū)中。由于給定新LBA的扇區(qū)不使用保存區(qū)中的任何扇區(qū),所以可以減小數(shù)據(jù)存取時(shí)間。在這種情況下,主設(shè)備的文件管理系統(tǒng)不準(zhǔn)許改變數(shù)據(jù)的存儲(chǔ)位置。通過(guò)改變?cè)诖判云骷械闹匦路峙淙毕萦诚蟊?reallocationdefect map)來(lái)改變扇區(qū)的LBA和移動(dòng)數(shù)據(jù)。
發(fā)明內(nèi)容
然而,在執(zhí)行消除分段存儲(chǔ)的過(guò)程中,簇之間的數(shù)據(jù)轉(zhuǎn)移/交換是不可避免的。如果消除分段存儲(chǔ)包括將數(shù)據(jù)從存儲(chǔ)器件中讀入到內(nèi)存中的主設(shè)備操作,則在主設(shè)備與存儲(chǔ)器件之間的數(shù)據(jù)轉(zhuǎn)移花費(fèi)時(shí)間。這增加了花費(fèi)于消除分段存儲(chǔ)的時(shí)間,并消耗主設(shè)備的內(nèi)存和通信路徑資源。隨著記錄介質(zhì)上的數(shù)據(jù)量的增大,對(duì)記錄介質(zhì)消除分段存儲(chǔ)需要非常大量的時(shí)間。出現(xiàn)對(duì)高速消除分段存儲(chǔ)的方法的期望。
特別是,在作為硬盤(pán)記錄器和MP3記錄器/播放器單元的這種將聲音和/或圖像信息記錄在它們的存儲(chǔ)器件中的存儲(chǔ)設(shè)備中,會(huì)出現(xiàn)如此非常大量的分段,以至于很難消除分段存儲(chǔ)。例如,在硬盤(pán)記錄器記錄電視廣播節(jié)目的情況中,當(dāng)磁盤(pán)被視頻數(shù)據(jù)充滿時(shí),用戶會(huì)刪除其不感興趣的節(jié)目。刪除的節(jié)目不總是最早的那些。而且,由于每個(gè)節(jié)目在時(shí)間上具有不同的長(zhǎng)度,因此很難在連續(xù)的地址中記錄新的節(jié)目。另外,一些硬盤(pán)記錄器具有不僅自動(dòng)刪除被認(rèn)為是用戶不感興趣的節(jié)目還記錄被認(rèn)為是用戶喜歡的節(jié)目的能力。在這種硬盤(pán)驅(qū)動(dòng)器中,由于和個(gè)人計(jì)算機(jī)相比,更加頻繁地進(jìn)行擦除和寫(xiě)入,所以出現(xiàn)大量的分段。其間,如果通過(guò)存儲(chǔ)器件一方來(lái)完全進(jìn)行消除分段存儲(chǔ),則萬(wàn)一由于停電或一些其它干擾而導(dǎo)致中斷消除分段存儲(chǔ),主設(shè)備所期望的數(shù)據(jù)就會(huì)變得與存儲(chǔ)器件認(rèn)可的數(shù)據(jù)不一致。在這種情況下,主設(shè)備不能存取其需要的數(shù)據(jù)。因此,即使在將數(shù)據(jù)移動(dòng)到另一存儲(chǔ)位置的過(guò)程中中斷消除分段存儲(chǔ),也必須在主設(shè)備與存儲(chǔ)器件之間的數(shù)據(jù)識(shí)別中確保足夠的一致性。
因此本發(fā)明的一個(gè)目的是提供一種用于轉(zhuǎn)移或交換存儲(chǔ)在數(shù)據(jù)塊中的數(shù)據(jù)和更新諸如磁盤(pán)驅(qū)動(dòng)器、磁光盤(pán)驅(qū)動(dòng)器、PC卡半導(dǎo)體存儲(chǔ)器和CF卡半導(dǎo)體存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器件中的主設(shè)備的文件管理系統(tǒng)的高速方法,該方法不會(huì)給主設(shè)備施加大量的負(fù)擔(dān)。另外,本發(fā)明的另一個(gè)目的是提供一種用于對(duì)隨機(jī)存取存儲(chǔ)器進(jìn)行消除分段存儲(chǔ)而不給主設(shè)備施加大量負(fù)擔(dān)的高速方法。此外,本發(fā)明的又一目的是提供一種執(zhí)行這種方法的存儲(chǔ)器件。
根據(jù)本發(fā)明的原理,為了消除分段存儲(chǔ)等目的,主設(shè)備向旋轉(zhuǎn)盤(pán)型存儲(chǔ)器件發(fā)送指令,以在旋轉(zhuǎn)盤(pán)型存儲(chǔ)器件中的數(shù)據(jù)塊之間轉(zhuǎn)移或交換存儲(chǔ)的信息。在接收指令之后,存儲(chǔ)器件在數(shù)據(jù)塊之間轉(zhuǎn)移或交換信息,而不向或從主設(shè)備轉(zhuǎn)移數(shù)據(jù)。即使中斷該操作,也在主設(shè)備與存儲(chǔ)器件之間保持所存儲(chǔ)的信息識(shí)別的一致性。
根據(jù)本發(fā)明的第一個(gè)方案,提供一種在存儲(chǔ)器件中將存儲(chǔ)在源數(shù)據(jù)塊中的信息轉(zhuǎn)移到目標(biāo)數(shù)據(jù)塊的方法,該存儲(chǔ)器件具有包含源數(shù)據(jù)塊、目標(biāo)數(shù)據(jù)塊和虛擬塊的記錄介質(zhì),并能夠與主設(shè)備通信。該方法包括下述步驟接收來(lái)自主設(shè)備的轉(zhuǎn)移指令;將存儲(chǔ)在目標(biāo)數(shù)據(jù)塊中的信息復(fù)制到虛擬塊中;在映象表中將數(shù)據(jù)塊映象到虛擬塊,寫(xiě)將目標(biāo)數(shù)據(jù)塊映象到到虛擬塊的項(xiàng)目;將存儲(chǔ)在源數(shù)據(jù)塊中的信息復(fù)制到目標(biāo)塊;從所述映象表中擦除所述項(xiàng)目;和將轉(zhuǎn)移完成指令發(fā)送到主設(shè)備。
如果主設(shè)備與存儲(chǔ)器件彼此相互通信,則不需要物理地將它們集成在一起。每個(gè)數(shù)據(jù)塊可以為一個(gè)扇區(qū)或者多個(gè)扇區(qū)。轉(zhuǎn)移指令可以包括請(qǐng)求存儲(chǔ)器件啟動(dòng)關(guān)于本發(fā)明的程序的指令。映象表可以為重新分配缺陷映象表,通過(guò)該映象表可以將次級(jí)缺陷扇區(qū)映象到備用扇區(qū)。特別優(yōu)選地,存儲(chǔ)器件為采用旋轉(zhuǎn)盤(pán)型記錄介質(zhì)作為包含源數(shù)據(jù)塊、目標(biāo)數(shù)據(jù)塊和虛擬數(shù)據(jù)塊的記錄介質(zhì)的旋轉(zhuǎn)盤(pán)型存儲(chǔ)器件,因?yàn)榧词乖跀?shù)據(jù)轉(zhuǎn)移之間出現(xiàn)停電,也可以在主設(shè)備與存儲(chǔ)器件之間保持?jǐn)?shù)據(jù)一致性。這是因?yàn)椋c半導(dǎo)體存儲(chǔ)器相比,旋轉(zhuǎn)盤(pán)型存儲(chǔ)器件花費(fèi)更多的時(shí)間來(lái)在旋轉(zhuǎn)介質(zhì)上的數(shù)據(jù)塊之間轉(zhuǎn)移數(shù)據(jù),且因此不大可能受停電的影響。
根據(jù)本發(fā)明的第二個(gè)方案,提供一種用于在存儲(chǔ)器件中將存儲(chǔ)在第一數(shù)據(jù)塊的信息與存儲(chǔ)在第二數(shù)據(jù)塊中的信息交換的方法,該存儲(chǔ)器件具有包含第一數(shù)據(jù)塊、第二數(shù)據(jù)塊、第一虛擬塊和第二虛擬塊的記錄介質(zhì),且其能夠與主設(shè)備通信。該方法包括下述步驟接收來(lái)自主設(shè)備的交換指令;將存儲(chǔ)在第一數(shù)據(jù)塊中的信息復(fù)制到第一虛擬塊;將存儲(chǔ)在第二數(shù)據(jù)塊中的信息復(fù)制到第二虛擬塊,在映象表中,將數(shù)據(jù)塊映象到虛擬塊,寫(xiě)將第一數(shù)據(jù)塊映象到第一虛擬塊和將第二數(shù)據(jù)塊映象到第二虛擬塊的項(xiàng)目;將存儲(chǔ)在第一虛擬塊中的信息復(fù)制到第二數(shù)據(jù)塊;將存儲(chǔ)在第二虛擬塊中的信息復(fù)制到第一數(shù)據(jù)塊;從映象表中擦除所述項(xiàng)目;和向主設(shè)備發(fā)送交換完成指令。
根據(jù)第一和第二方案,能夠構(gòu)成一種用于主設(shè)備的消除分段存儲(chǔ)的方法。根據(jù)本發(fā)明的第三個(gè)方案,提供一種執(zhí)行第一和第二方案的存儲(chǔ)器件。主設(shè)備還可以是硬盤(pán)記錄器或MP3記錄器/播放器。存儲(chǔ)數(shù)據(jù)塊等的第一記錄介質(zhì)、存儲(chǔ)映象表的第二記錄介質(zhì)和存儲(chǔ)要由處理器執(zhí)行的程序的第三記錄介質(zhì)可以是一個(gè)且相同的記錄介質(zhì),諸如旋轉(zhuǎn)盤(pán)型記錄介質(zhì)、半導(dǎo)體存儲(chǔ)器等。
本發(fā)明可以提供在諸如磁盤(pán)驅(qū)動(dòng)器、磁光盤(pán)驅(qū)動(dòng)器、PC卡半導(dǎo)體存儲(chǔ)器和CF卡半導(dǎo)體存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器件中用于轉(zhuǎn)移或交換存儲(chǔ)在數(shù)據(jù)塊中的數(shù)據(jù)和更新主機(jī)設(shè)備的文件管理系統(tǒng)的高速方法,該方法不會(huì)對(duì)主設(shè)備施加大量負(fù)擔(dān)。此外,本發(fā)明可以提供用于對(duì)隨機(jī)存取存儲(chǔ)器件進(jìn)行消除分段存儲(chǔ)而不對(duì)主設(shè)備施加大量負(fù)擔(dān)的高速方法。此外,本發(fā)明可以提供執(zhí)行這種方法的存儲(chǔ)器件。
圖1為根據(jù)本發(fā)明實(shí)施例的示意圖,闡述主設(shè)備如何對(duì)磁盤(pán)驅(qū)動(dòng)器執(zhí)行消除分段存儲(chǔ);圖2為根據(jù)本發(fā)明該實(shí)施例的示意圖,闡述磁盤(pán)驅(qū)動(dòng)器10的結(jié)構(gòu);圖3是用于闡述如何在磁盤(pán)上組織扇區(qū)和簇的圖;圖4圖示了在磁盤(pán)驅(qū)動(dòng)器中的簇之間轉(zhuǎn)移存儲(chǔ)數(shù)據(jù)的方法;圖5為流程圖,闡述了在磁盤(pán)驅(qū)動(dòng)器中的簇之間轉(zhuǎn)移存儲(chǔ)數(shù)據(jù)的方法;圖6圖示了在磁盤(pán)驅(qū)動(dòng)器中的簇之間交換存儲(chǔ)數(shù)據(jù)的方法;圖7為流程圖,闡述了在磁盤(pán)驅(qū)動(dòng)器中的簇之間交換存儲(chǔ)數(shù)據(jù)的方法。
具體實(shí)施例方式參考圖1A至1D,下面提供主設(shè)備如何根據(jù)本發(fā)明實(shí)施例使用磁盤(pán)驅(qū)動(dòng)器進(jìn)行消除分段存儲(chǔ)的總體描述。諸如個(gè)人計(jì)算機(jī)和硬盤(pán)記錄器的主設(shè)備具有用于磁盤(pán)驅(qū)動(dòng)器的文件管理系統(tǒng)。它們通過(guò)使用,例如管理表1a至1d和管理表3a至3d來(lái)管理文件。貫穿該說(shuō)明書(shū),文件指的是存儲(chǔ)在磁盤(pán)上的信息,其可以包含用戶數(shù)據(jù)、系統(tǒng)數(shù)據(jù)、有關(guān)磁盤(pán)驅(qū)動(dòng)器操作的固件及程序、標(biāo)識(shí)符和用于磁盤(pán)驅(qū)動(dòng)器的調(diào)節(jié)參數(shù)等的任何一種。
管理表1a至1d和管理表3a至3d存儲(chǔ)在磁盤(pán)上的系統(tǒng)區(qū)域中。當(dāng)主設(shè)備工作時(shí),將它們從磁盤(pán)驅(qū)動(dòng)器讀入到內(nèi)存。管理表1a至1d中的每一個(gè)項(xiàng)目具有文件名和其起始簇的地址。此外,根據(jù)具體情況,管理表1a至1d存儲(chǔ)每個(gè)文件的擴(kuò)展、屬性、寫(xiě)日期/時(shí)間、尺寸等。管理表3a至3d中的項(xiàng)目具有其起始簇地址存儲(chǔ)在管理表1a至1d中的相應(yīng)文件的隨后簇的地址。管理表3a至3d表示磁盤(pán)驅(qū)動(dòng)器具有總共n個(gè)簇。
圖1A中的管理表1a和管理表3a表示在磁盤(pán)驅(qū)動(dòng)器中存儲(chǔ)四個(gè)文件ABC、DEF、GHI和JKL。管理表1a將2(文件ABC)、8(文件DEF)、12(文件GHI)和14(文件JKL)分別存儲(chǔ)作為四個(gè)文件的起始簇的地址。在每個(gè)簇中,按照LBA次序(order)來(lái)布置多個(gè)扇區(qū)。通過(guò)其在多個(gè)扇區(qū)之中的第一扇區(qū)的LBA,能夠指出各簇的起始地址。關(guān)于文件ABC,要檢驗(yàn)管理表3a。在簇地址2的項(xiàng)目中,將3存儲(chǔ)為下一簇的地址。在簇地址3的項(xiàng)目中,將4存儲(chǔ)為第三簇的地址。隨后存儲(chǔ)的連續(xù)的簇地址表示構(gòu)成文件ABC的信息被順序地存儲(chǔ)在六個(gè)簇中,其簇地址為2、3、4、5、6和7。值得注意的是,管理表3a項(xiàng)目中的FFF意味著文件在那里終止。
同樣,將文件DEF順序地存儲(chǔ)在四個(gè)簇中,其簇地址為8、9、10和11,將文件GHI存儲(chǔ)在簇地址為12和13的兩個(gè)簇中,并將文件JKL存儲(chǔ)在簇地址為14、15、16和17的四個(gè)簇中。值得注意的是,0出現(xiàn)在簇地址18、19、n-3、n-2和n-1的項(xiàng)目中。數(shù)字0意味著該簇沒(méi)有被使用。同樣值得注意的是符號(hào)“-”出現(xiàn)在簇地址0和1的項(xiàng)目中。符號(hào)“-”意味著該簇將不會(huì)被用戶使用。在圖1A中,將四個(gè)文件順序地存儲(chǔ)在連續(xù)的簇中,且沒(méi)有發(fā)生分段存儲(chǔ)。項(xiàng)目中的FFF、“-”和0的含義通用于管理表3a至3d。
圖1B表示主設(shè)備從磁盤(pán)中刪除文件DEF。將文件DEF和其起始簇的地址從管理表1b的項(xiàng)目中取消。在管理表3b中,將用于簇地址8、9、10和11的項(xiàng)目重新寫(xiě)為使這些簇空著的0。圖1C表示將使用六個(gè)簇的文件MNO寫(xiě)在其先前的存儲(chǔ)情況如圖1B所表示的磁盤(pán)上。當(dāng)寫(xiě)入新的文件,OS的文件管理系統(tǒng)為了空簇查找管理表3a、3b、3c或3d,以便于將文件順序地寫(xiě)入空簇中。在圖1B的情況下,由于簇地址為8、9、10和11的四個(gè)簇是空的,所以起先將構(gòu)成文件MNO的信息順序地寫(xiě)入那里。然而,由于多出來(lái)的兩個(gè)簇不能作為臨近的區(qū)域來(lái)獲得,所以將剩余的信息寫(xiě)入簇18和簇19中。因此,文件MNO被寫(xiě)入在簇地址8、9、10、11、18和19中。由于簇地址11遠(yuǎn)離簇地址18,其中間有其它簇,所以發(fā)生分段存儲(chǔ)。
當(dāng)響應(yīng)于來(lái)自主設(shè)備的讀取指令來(lái)讀取文件MNO時(shí),在磁盤(pán)旋轉(zhuǎn)期間,磁盤(pán)驅(qū)動(dòng)器的磁頭可以按照磁道次序和扇區(qū)次序來(lái)順序地訪問(wèn)簇地址8與簇地址11之間的磁盤(pán)。然而,為了在訪問(wèn)簇地址11之后訪問(wèn)簇地址18,會(huì)存在查找操作時(shí)間和旋轉(zhuǎn)等待時(shí)間。圖1D表示通過(guò)對(duì)圖1C所示存儲(chǔ)情況的磁盤(pán)驅(qū)動(dòng)器進(jìn)行消除分段存儲(chǔ)來(lái)清理分段存儲(chǔ)。這需要將存儲(chǔ)在簇地址11和隨后簇中的信息重新寫(xiě)入。
將已經(jīng)存儲(chǔ)在簇地址18中的信息寫(xiě)入簇地址12,以便于已經(jīng)存儲(chǔ)在簇地址18中的信息跟在簇地址11之后。同樣,將已經(jīng)存儲(chǔ)在簇地址19中的信息寫(xiě)入到簇地址13中。一致地,將管理表3中用于簇地址11和12的項(xiàng)目分別改變?yōu)?2和13。此外,將用于簇地址13的項(xiàng)目改變?yōu)镕FF。同樣,在如圖1D中所示的其它簇地址中重新寫(xiě)入構(gòu)成文件GHI的信息和構(gòu)成文件JKL的信息。
圖1D示出消除分段存儲(chǔ)的結(jié)果。在管理表1d中,將文件GHI的起始地址改變?yōu)?4,并將文件JKL的起始地址改變?yōu)?6。此外,在管理表3d中,將用于簇地址11的項(xiàng)目和隨后項(xiàng)目全部改變?yōu)樾碌拇氐刂贰R虼?,即使在通過(guò)向簇重新分配存儲(chǔ)信息來(lái)進(jìn)行消除分段存儲(chǔ)之后,OS的文件管理系統(tǒng)通過(guò)利用管理表1d和管理表3d也能精確地訪問(wèn)磁盤(pán)。
從圖1D中的管理表3d中顯而易見(jiàn),由于將構(gòu)成文件MNO、GHI、JKL的信息全部順序地寫(xiě)入鄰近的簇地址中,因此分段存儲(chǔ)得以消除。當(dāng)為了消除分段存儲(chǔ)將信息從一個(gè)簇轉(zhuǎn)移到另一個(gè)簇時(shí),OS初步地將目標(biāo)簇中的信息保存到分離的區(qū)域以便于不丟失信息。另外,由OS來(lái)確定轉(zhuǎn)移順序,以便于信息總是被轉(zhuǎn)移到空扇區(qū)中。即,消除分段存儲(chǔ)包括將實(shí)際存在磁盤(pán)上的簇中的信息轉(zhuǎn)移到其它簇中的任務(wù)以及在OS文件管理系統(tǒng)的管理下更新管理表的任務(wù)。
參考圖2,下面描述根據(jù)本發(fā)明實(shí)施例的磁盤(pán)驅(qū)動(dòng)器10的整體結(jié)構(gòu)。貫穿該說(shuō)明書(shū),相同的元件由相同的參考標(biāo)記表示。參考標(biāo)記11表示作為記錄介質(zhì)的一個(gè)或多個(gè)安裝在主軸軸套上的疊置的磁盤(pán),每個(gè)磁盤(pán)的每一側(cè)面上具有包括磁性層的記錄表面。由主軸電機(jī)13來(lái)旋轉(zhuǎn)磁盤(pán)。在每一磁盤(pán)11的每一記錄表面上同心地形成多個(gè)磁道。在環(huán)形方向上,每一磁道具有多個(gè)512字節(jié)的扇區(qū)或數(shù)據(jù)塊。扇區(qū)是最小的數(shù)據(jù)讀/寫(xiě)單元。在磁盤(pán)驅(qū)動(dòng)器10中,由CHS參數(shù)識(shí)別每一扇區(qū)的位置,以便于將每一磁頭15定位在期望的扇區(qū)。另一方面,當(dāng)主設(shè)備55向磁盤(pán)驅(qū)動(dòng)器10指定文件存儲(chǔ)位置時(shí),它將發(fā)送扇區(qū)的LBA或各自限定為扇區(qū)集的簇地址。
參考圖3,下面描述如何在磁盤(pán)11上組織扇區(qū)和簇。假設(shè)磁盤(pán)11為多個(gè)疊置的磁盤(pán),每一個(gè)磁盤(pán)在每一側(cè)面上具有記錄表面。將LBA0分配給第一磁盤(pán)頂側(cè)上的最外面的一個(gè)磁道中的扇區(qū)。然后按照在旋轉(zhuǎn)方向上出現(xiàn)的次序,分別將LBA1、LBA2以及隨后連續(xù)的數(shù)字分配給剩余的扇區(qū)。然后,將隨后上升的數(shù)字分別分配給在第二靠外的磁道中存在的所有扇區(qū)。對(duì)于第一磁盤(pán)的底側(cè)、第二磁盤(pán)的頂側(cè)和第二磁盤(pán)的底側(cè)重復(fù)這種分配。因此,對(duì)所有磁盤(pán)的所有表面上的所有扇區(qū)分別給定連續(xù)的數(shù)字。在圖3A中示出該最終情況。值得注意的是,扇區(qū)的數(shù)量有時(shí)與LBA的數(shù)量不同,因?yàn)閮H對(duì)可用的扇區(qū)分配LBA。當(dāng)將LBA分配給扇區(qū)時(shí),跳過(guò)在制造工藝期間通過(guò)檢驗(yàn)而探測(cè)到的初級(jí)缺陷扇區(qū)。另外,將磁盤(pán)11劃分成用戶區(qū)和系統(tǒng)區(qū)。用戶區(qū)由用戶扇區(qū)構(gòu)成,由用戶使用該用戶扇區(qū)來(lái)存儲(chǔ)數(shù)據(jù)和程序,而系統(tǒng)區(qū)由用于存儲(chǔ)磁盤(pán)驅(qū)動(dòng)器10的系統(tǒng)使用的數(shù)據(jù)和程序的扇區(qū)構(gòu)成。這些區(qū)由磁盤(pán)驅(qū)動(dòng)器管理。
磁盤(pán)11在用戶和系統(tǒng)區(qū)中總共具有m個(gè)扇區(qū)。按照連續(xù)次序分別將LBA分配給這些扇區(qū)。在該實(shí)施例中,主設(shè)備55將四個(gè)扇區(qū)為一組限定為簇,且磁盤(pán)驅(qū)動(dòng)器10將一個(gè)簇地址分配給每一個(gè)四個(gè)扇區(qū)組,總共具有n個(gè)簇地址。由主設(shè)備55來(lái)自由確定簇的大小。如果在開(kāi)始使用磁盤(pán)驅(qū)動(dòng)器10之后,在一些用戶扇區(qū)中出現(xiàn)次級(jí)缺陷,則將有缺陷的用戶扇區(qū)中的數(shù)據(jù)寫(xiě)入在系統(tǒng)區(qū)中準(zhǔn)備的備用區(qū)。為了將這種用戶扇區(qū)的LBA與它們?cè)趥溆脜^(qū)中的備用扇區(qū)的LBA聯(lián)系在一起,提供重新分配缺陷映象表(下文中表示為RDM)61(參考圖3B)。
將RDM 61存儲(chǔ)在非易失性記錄介質(zhì)EEPROM 43中。當(dāng)磁盤(pán)驅(qū)動(dòng)器10起動(dòng)時(shí),將RDM 61讀入到RAM39中。每次更新項(xiàng)目,便對(duì)EEPROM43進(jìn)行寫(xiě)入。選擇地,可將RDM61存儲(chǔ)在磁盤(pán)11的系統(tǒng)區(qū)中。如果通過(guò)主設(shè)備55指出缺陷扇區(qū)的LBA,則使用RDM61來(lái)訪問(wèn)其備用扇區(qū)。在磁盤(pán)驅(qū)動(dòng)器10中內(nèi)部完成缺陷扇區(qū)的重新分配。當(dāng)重新分配缺陷扇區(qū)時(shí),主設(shè)備55的文件管理系統(tǒng)不認(rèn)可備用扇區(qū)的LBA,但是主設(shè)備55繼續(xù)認(rèn)可缺陷扇區(qū)的LBA。
圖3A表示磁盤(pán)11在用戶扇區(qū)LBA5和LBA14具有次級(jí)缺陷。在RDM61中,制作項(xiàng)目以將用戶扇區(qū)LBA5和LBA14分別與備用扇區(qū)LBA101和LBA102相聯(lián)系。因此將扇區(qū)LBA5映象到扇區(qū)LBA101,而將扇區(qū)LBA14映象到LBA102。備用扇區(qū)LBA101和LBA102為在系統(tǒng)區(qū)中準(zhǔn)備的扇區(qū)。當(dāng)主設(shè)備55訪問(wèn)磁盤(pán)驅(qū)動(dòng)器10以讀取某些文件時(shí),它指定簇地址。磁盤(pán)驅(qū)動(dòng)器101查閱RDM61,同時(shí)按照LBA的升序訪問(wèn)指定的簇地址中的扇區(qū)。如果在簇中發(fā)現(xiàn)缺陷扇區(qū),則將訪問(wèn)移動(dòng)到其備用扇區(qū)已從中讀取信息并將其發(fā)送的主設(shè)備。
磁頭15包括兩個(gè)獨(dú)立的轉(zhuǎn)換器或一個(gè)公共的轉(zhuǎn)換器,通過(guò)將電信號(hào)轉(zhuǎn)換為磁信號(hào)或?qū)⒋判盘?hào)轉(zhuǎn)換為電信號(hào)來(lái)執(zhí)行向或從磁盤(pán)11寫(xiě)入或讀取。承載磁頭15的致動(dòng)器組件17在樞軸上轉(zhuǎn)動(dòng)以將磁頭15移動(dòng)到磁盤(pán)11上的期望磁道上。音圈電機(jī)(下文表示為VCM)19由安裝在驅(qū)動(dòng)器組件17上的音圈以及配置在磁盤(pán)驅(qū)動(dòng)器10的底座上的音圈磁鐵和音圈磁扼構(gòu)成。通過(guò)經(jīng)過(guò)音圈的電流來(lái)控制致動(dòng)器組件17的操作。VCM驅(qū)動(dòng)器21接收來(lái)自數(shù)字模擬轉(zhuǎn)換器(下文表示為DAC)23的電壓信號(hào)并將其轉(zhuǎn)換為驅(qū)動(dòng)VCM19的電流。DAC23接收來(lái)自微處理單元(下文表示為MPU)25的用于定位磁頭15的數(shù)字信號(hào)并將其轉(zhuǎn)化為模擬電壓信號(hào)。
設(shè)置有AD轉(zhuǎn)換器的主軸電機(jī)驅(qū)動(dòng)器27接收來(lái)自MPU25的數(shù)字信號(hào)并將其轉(zhuǎn)換為驅(qū)動(dòng)主軸電機(jī)13的電流。在讀操作期間,前置放大器29放大通過(guò)磁頭15從磁盤(pán)11中取回的微弱的模擬讀出信號(hào),并將放大的信號(hào)發(fā)送到讀/寫(xiě)信道(下文中表示為R/W信道)31。在寫(xiě)操作期間,前置放大器29將來(lái)自R/W信道31的模擬寫(xiě)信號(hào)放大,將放大的信號(hào)輸出到磁頭15。
R/W信道31執(zhí)行用于讀或?qū)憯?shù)據(jù)的數(shù)據(jù)處理。R/W信道31經(jīng)由硬盤(pán)控制器(下文中表示為HDC)33來(lái)接收從主設(shè)備55發(fā)出的數(shù)字寫(xiě)數(shù)據(jù)。R/W信道31將接收的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為寫(xiě)電流并將其發(fā)送到前置放大器29。此外,R/W信道31將來(lái)自磁頭15的讀出信號(hào)轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)。R/W信道31將數(shù)字?jǐn)?shù)據(jù)經(jīng)由HDC33發(fā)送到主設(shè)備55。伺服控制器37從由R/W信道31輸出的讀出數(shù)據(jù)中提取磁頭位置信息并將該信息發(fā)送到MPU25和HDC33。
作為與主設(shè)備55通信的接口,HDC33在主設(shè)備55的數(shù)據(jù)轉(zhuǎn)移速率與磁盤(pán)驅(qū)動(dòng)器10的內(nèi)部數(shù)據(jù)處理速率之間提供協(xié)調(diào)。HDC33允許從主設(shè)備55轉(zhuǎn)移的數(shù)據(jù)臨時(shí)存儲(chǔ)在緩沖器35中,并根據(jù)來(lái)自MPU25的指令,將其發(fā)送到R/W信道31。此外,HDC33允許將從R/W信道31轉(zhuǎn)移的數(shù)據(jù)臨時(shí)存儲(chǔ)在緩沖器35中,并根據(jù)來(lái)自MPU25的指令,將其發(fā)送到主設(shè)備55。此外,HDC33設(shè)置有數(shù)據(jù)錯(cuò)誤校正電路、地址標(biāo)記探測(cè)電路等。HDC33還具有允許與主設(shè)備55數(shù)據(jù)通信的電阻器。
在與HDC33合作中,MPU25進(jìn)行磁盤(pán)驅(qū)動(dòng)器10的總體控制。MPU進(jìn)行根據(jù)本發(fā)明實(shí)施例的消除分段存儲(chǔ)的執(zhí)行程序。為了執(zhí)行從主設(shè)備55發(fā)送的指令,MPU25在扇區(qū)或簇之間轉(zhuǎn)移或交換信息。一旦數(shù)據(jù)轉(zhuǎn)移或交換完成,MPU25向主設(shè)備55發(fā)送完成命令。MPU25直接訪問(wèn)HDC33中的各種寄存器以控制向和從主設(shè)備55的數(shù)據(jù)轉(zhuǎn)移。將從主設(shè)備55發(fā)送的磁盤(pán)11上的簇地址通過(guò)MPU25轉(zhuǎn)換為L(zhǎng)BA,并進(jìn)一步轉(zhuǎn)換為CHS參數(shù)。參考RDM61,MPU25還計(jì)算與次級(jí)缺陷扇區(qū)相關(guān)的備用扇區(qū)的地址。另外,MPU25根據(jù)從伺服控制器37發(fā)出的伺服信息來(lái)識(shí)別磁頭15的位置,并向數(shù)字模擬轉(zhuǎn)換器(下文中表示為DAC)23發(fā)送用于將磁頭15移向目標(biāo)位置的數(shù)字信號(hào)。根據(jù)當(dāng)前位置與從主設(shè)備55所指定的地址中計(jì)算的目標(biāo)位置之間的差,來(lái)產(chǎn)生該數(shù)字信號(hào)。
只讀半導(dǎo)體存儲(chǔ)器(下文中表示為ROM)41存儲(chǔ)消除分段存儲(chǔ)執(zhí)行程序,該程序由MPU25來(lái)執(zhí)行以實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的消除分段存儲(chǔ)。選擇地,可以將該消除分段存儲(chǔ)執(zhí)行程序存儲(chǔ)在磁盤(pán)11的系統(tǒng)區(qū)中。隨機(jī)存取存儲(chǔ)器(下文中表示為RAM)39為用于臨時(shí)存儲(chǔ)要由MPU25執(zhí)行的各種程序的主存儲(chǔ)單元。RAM39還用于MPU25的工作存儲(chǔ)。磁盤(pán)驅(qū)動(dòng)器工作的同時(shí),還在RAM39中保存簇地址到CHS參數(shù)的變換表和RDM61。
電可重寫(xiě)非易失性記錄介質(zhì)(下文表示為EEPROM(電可擦除可編程只讀存儲(chǔ)器))43存儲(chǔ)專用于磁盤(pán)驅(qū)動(dòng)器10的信息,諸如模式名稱、序列號(hào)、固件版本、要使用的協(xié)議和制造商的名字、以及關(guān)于用于電源管理、寫(xiě)入超高速緩存、超前超高速緩存、寫(xiě)緩沖等的信息。EEPROM43存儲(chǔ)RDM61,在該RDM61中使得項(xiàng)目將次級(jí)缺陷扇區(qū)映象到備用扇區(qū)。此外,在磁盤(pán)驅(qū)動(dòng)器10操作同時(shí),EEPROM43保存錯(cuò)誤記錄、事件記錄、執(zhí)行數(shù)據(jù)記錄、伺服記錄、主機(jī)記錄等。
主設(shè)備55為使用磁盤(pán)驅(qū)動(dòng)器10作為外部存儲(chǔ)器件或輔助存儲(chǔ)器件的電子設(shè)備,其連接于接口連接器47,根據(jù)諸如ATA(AT附件)或SCSI(小型計(jì)算機(jī)系統(tǒng)接口)標(biāo)準(zhǔn)的接口協(xié)議進(jìn)行與磁盤(pán)驅(qū)動(dòng)器10的數(shù)據(jù)轉(zhuǎn)移。在該實(shí)施例中,磁盤(pán)驅(qū)動(dòng)器10采用ATA接口標(biāo)準(zhǔn)。另外,主設(shè)備55檢驗(yàn)磁盤(pán)驅(qū)動(dòng)器10被如何分段存儲(chǔ),產(chǎn)生用于將存儲(chǔ)在用戶扇區(qū)或簇中的信息重新分配的方案,并確定在扇區(qū)或簇之間轉(zhuǎn)移/交換存儲(chǔ)信息,以便于執(zhí)行消除分段存儲(chǔ)。
到此為止已經(jīng)參考方框圖描述了根據(jù)本發(fā)明實(shí)施例的磁盤(pán)驅(qū)動(dòng)器10。值得注意的是,每個(gè)塊的名字和功能、塊與塊之間的相互關(guān)系以及其它是舉例性的。本發(fā)明的原理不限于該實(shí)施例。本發(fā)明的范圍覆蓋所有的修改,諸如添加功能、修改塊而不改變其功能、分解塊和集成塊,只要通過(guò)參考本說(shuō)明書(shū),本領(lǐng)域技術(shù)人員可以將其制作成本實(shí)施例。
下面參考圖4和5描述用于在磁盤(pán)驅(qū)動(dòng)器10中的簇之間轉(zhuǎn)移存儲(chǔ)信息的方法。假設(shè)主設(shè)備55已經(jīng)檢驗(yàn)到文件是如何存儲(chǔ)在磁盤(pán)11上并根據(jù)識(shí)別的分段存儲(chǔ)準(zhǔn)備了用于消除分段存儲(chǔ)的存儲(chǔ)信息轉(zhuǎn)移程序。例如,在圖1C中,由于在簇8、9、10、11、18和19中按照該次序順序地存儲(chǔ)文件MNO,因此必須將存儲(chǔ)在簇18和19中的信息移動(dòng)到簇12和13。為了該目的,必須通過(guò)將存儲(chǔ)在簇12和13中的信息轉(zhuǎn)移到未使用的其它簇中,來(lái)預(yù)先將簇12和13變成空簇。
為了轉(zhuǎn)移簇12或簇13中的數(shù)據(jù),必須轉(zhuǎn)移包含在該簇中的扇區(qū)中的數(shù)據(jù)。因此,通過(guò)假設(shè)用戶扇區(qū)LBA(X)中的數(shù)據(jù)轉(zhuǎn)移到用戶扇區(qū)LBA(Y),來(lái)以普通的方式描述磁盤(pán)驅(qū)動(dòng)器10中的簇之間的數(shù)據(jù)轉(zhuǎn)移,如圖4和5中所示。這里,在本說(shuō)明書(shū)中,數(shù)據(jù)轉(zhuǎn)移意味著將存儲(chǔ)在源用戶扇區(qū)的數(shù)據(jù)存儲(chǔ)到目標(biāo)用戶扇區(qū)。在數(shù)據(jù)轉(zhuǎn)移之后,主設(shè)備是否認(rèn)為被轉(zhuǎn)移的數(shù)據(jù)保持存儲(chǔ)在源用戶扇區(qū)中或源用戶扇區(qū)為未使用的用戶扇區(qū)是無(wú)關(guān)緊要的。
未使用的扇區(qū)或簇意味著被主設(shè)備的文件管理系統(tǒng)考慮為其中沒(méi)有存儲(chǔ)數(shù)據(jù)的扇區(qū)或簇,而不管是否在其中實(shí)際存儲(chǔ)數(shù)據(jù)。每個(gè)簇為多個(gè)扇區(qū)構(gòu)成的一個(gè)組。能夠通過(guò)確定其第一扇區(qū)的LBA和構(gòu)成該簇的扇區(qū)數(shù)量來(lái)指明具體的簇。因此,雖然本說(shuō)明書(shū)描述了如何轉(zhuǎn)移記錄在扇區(qū)中的數(shù)據(jù),但是這也可以導(dǎo)致理解如何轉(zhuǎn)移記錄在簇中的數(shù)據(jù)。
圖4提供如何將記錄在用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc轉(zhuǎn)移到用戶扇區(qū)LBA(Y)。圖5是用于闡述如何將數(shù)據(jù)從用戶扇區(qū)LBA(X)轉(zhuǎn)移到用戶扇區(qū)LBA(Y)的流程圖。在框101中,主設(shè)備55使用普遍的公知技術(shù)來(lái)通過(guò)掃描磁盤(pán)11上的扇區(qū)檢查分段存儲(chǔ)的狀態(tài)并形成用于消除分段存儲(chǔ)的簇至簇的數(shù)據(jù)重新分配的方案。
在數(shù)據(jù)轉(zhuǎn)移之前,數(shù)據(jù)abc存儲(chǔ)在用戶扇區(qū)LBA(X)中,而數(shù)據(jù)def存儲(chǔ)在用戶扇區(qū)LBA(Y)中,如圖4A中所示。假定用戶扇區(qū)LBA(Y)為未使用的扇區(qū)是沒(méi)關(guān)系的。虛擬扇區(qū)LBA(D)是在磁盤(pán)11上的系統(tǒng)區(qū)中準(zhǔn)備的并在將數(shù)據(jù)從用戶扇區(qū)LBA(X)轉(zhuǎn)移到用戶扇區(qū)LBA(Y)時(shí)用作臨時(shí)數(shù)據(jù)存儲(chǔ)位置的扇區(qū)。
虛擬扇區(qū)LBA(D)執(zhí)行與圖3描述的備用扇區(qū)LBA101和LBA102相同的功能。如果在RDM中設(shè)置項(xiàng)目以將用戶扇區(qū)映象到虛擬扇區(qū)LBA(D),則用戶扇區(qū)LBA(X)或用戶扇區(qū)LBA(Y)都可以訪問(wèn)。這里,映象意味著將一個(gè)扇區(qū)的地址與另一個(gè)扇區(qū)的地址相聯(lián)系,以便于,例如,在MPU25打算訪問(wèn)LBA(X)時(shí),訪問(wèn)虛擬LBA(D)。
虛擬扇區(qū)LBA(D)為僅由磁盤(pán)設(shè)備10的系統(tǒng)識(shí)別和訪問(wèn)的扇區(qū)。該扇區(qū)不能被主設(shè)備識(shí)別且不能直接被用戶訪問(wèn)。圖4中的RDM相應(yīng)于圖3描述的RDM61??梢愿麓鎯?chǔ)在RDM中的項(xiàng)目。為了簡(jiǎn)化描述,圖4省略了RDM中設(shè)置以映象次級(jí)缺陷扇區(qū)的LBA的項(xiàng)目。
通過(guò)圖1中示出的管理表1和3中的簇地址,主設(shè)備55的文件管理系統(tǒng)識(shí)別數(shù)據(jù)abc存儲(chǔ)在用戶扇區(qū)LBA(X)中而數(shù)據(jù)def存儲(chǔ)在用戶扇區(qū)LBA(Y)中。因此,如果主設(shè)備55向磁盤(pán)驅(qū)動(dòng)器10發(fā)送指令以從用戶扇區(qū)LBA(X)讀取數(shù)據(jù),則可以一致地讀出主設(shè)備55打算讀取的數(shù)據(jù)。在圖4A中,由于沒(méi)有在RDM中寫(xiě)入任何東西,所以已經(jīng)接收讀指令的MPU25不能訪問(wèn)虛擬扇區(qū)LBA(D),盡管其查找RDM。因此,即使將一些數(shù)據(jù)XXX存儲(chǔ)在虛擬扇區(qū)LBA(D)中,MPU25也不從虛擬扇區(qū)LBA(D)中讀取數(shù)據(jù)XXX。在發(fā)送數(shù)據(jù)轉(zhuǎn)移指令之前,主設(shè)備55發(fā)送指令以請(qǐng)求MPU25啟動(dòng)消除分段存儲(chǔ)程序以便于產(chǎn)生磁盤(pán)驅(qū)動(dòng)器10可以執(zhí)行根據(jù)本實(shí)施例的數(shù)據(jù)轉(zhuǎn)移的環(huán)境。選擇地,可以將消除分段存儲(chǔ)執(zhí)行程序的啟動(dòng)指令包含在數(shù)據(jù)轉(zhuǎn)移指令中。
在框103中,主設(shè)備55向磁盤(pán)驅(qū)動(dòng)器10發(fā)送指令以將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc轉(zhuǎn)移到用戶扇區(qū)LBA(Y)。在磁盤(pán)驅(qū)動(dòng)器10中,通過(guò)MPU25執(zhí)行ROM41中的消除分段存儲(chǔ)執(zhí)行程序以執(zhí)行數(shù)據(jù)轉(zhuǎn)移。在框105中,MPU25將目標(biāo)用戶扇區(qū)LBA(Y)中的數(shù)據(jù)def復(fù)制到虛擬扇區(qū)LBA(D)中。然而,由于沒(méi)有在RDM中寫(xiě)入項(xiàng)目,所以MPU25不訪問(wèn)虛擬扇區(qū)LBA(D)。在框107中,MPU25將項(xiàng)目寫(xiě)入RDM中以將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D),如圖4C中所示。
設(shè)計(jì)成,只要MPU25計(jì)算來(lái)自主設(shè)備55指定的扇區(qū)LBA的CHS參數(shù),MPU25就查找RDM。因此,如果在框107中寫(xiě)入項(xiàng)目之后主設(shè)備55指令訪問(wèn)用戶扇區(qū)LBA(Y),則MPU25會(huì)訪問(wèn)虛擬扇區(qū)LBA(D)。因此,MPU25不會(huì)訪問(wèn)用戶扇區(qū)LBA(Y),盡管數(shù)據(jù)def保持存儲(chǔ)在該扇區(qū)中。
在框109中,將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc復(fù)制到用戶扇區(qū)LBA(Y)中,如圖4D中所示。如果主設(shè)備55發(fā)送指令以訪問(wèn)用戶扇區(qū)LBA(Y),則MPU25訪問(wèn)虛擬扇區(qū)LBA(D),因?yàn)橛脩羯葏^(qū)LBA(Y)被RDM項(xiàng)目映象到虛擬扇區(qū)LBA(D)。因此主設(shè)備55在LBA(Y)中期望的數(shù)據(jù)在磁盤(pán)驅(qū)動(dòng)器10中被一致地識(shí)別。
在框111中,擦除寫(xiě)入到RDM中的將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D)的項(xiàng)目。如果在框111中擦除寫(xiě)入的項(xiàng)目之后主設(shè)備55命令MPU25訪問(wèn)用戶扇區(qū)LBA(Y),則用戶扇區(qū)LBA(Y)會(huì)被訪問(wèn)。在此,由于主設(shè)備55仍認(rèn)為數(shù)據(jù)def存儲(chǔ)在用戶扇區(qū)LBA(Y)中,所以主設(shè)備55期望的數(shù)據(jù)在磁盤(pán)驅(qū)動(dòng)器10中不被一致地識(shí)別。
在框113中,MPU25向主設(shè)備55發(fā)送數(shù)據(jù)轉(zhuǎn)移完成指令。在框115中,主設(shè)備55根據(jù)該指令更新管理表項(xiàng)目以便于將用戶扇區(qū)LBA(X)認(rèn)作未使用的扇區(qū)而將數(shù)據(jù)abc認(rèn)作存儲(chǔ)在用戶扇區(qū)LBA(Y)中。這再次使得由主設(shè)備55所識(shí)別的與由磁盤(pán)驅(qū)動(dòng)器10所識(shí)別的一致。由于在相對(duì)較短的時(shí)間完成框111至框115,所以消除分段存儲(chǔ)操作中斷而不能保持主設(shè)備55與磁盤(pán)驅(qū)動(dòng)器10之間的數(shù)據(jù)一致性的可能性很低,基本上根本不會(huì)引起任何麻煩。
在框115中,可以修改主設(shè)備55的文件管理系統(tǒng)對(duì)管理表項(xiàng)目的更新,以便于原始數(shù)據(jù)abc仍被識(shí)別為存儲(chǔ)在用戶扇區(qū)LBA(X)中。這相應(yīng)于將數(shù)據(jù)從用戶扇區(qū)LBA(X)復(fù)制到用戶扇區(qū)LBA(Y)。
然后,假設(shè),在框103中將傳輸指令從主設(shè)備55傳輸?shù)酱疟P(pán)驅(qū)動(dòng)器10之后,在框115中響應(yīng)于從磁盤(pán)驅(qū)動(dòng)器10接收的轉(zhuǎn)移完成指令,主設(shè)備55更新管理表項(xiàng)目之前由于停電或某些其它原因,轉(zhuǎn)移操作或消除分段存儲(chǔ)中斷。根據(jù)本實(shí)施例,如下面將要描述的,即使在這種情況中,也可以保持在主設(shè)備55與磁盤(pán)驅(qū)動(dòng)器10之間的數(shù)據(jù)一致性。
如果在框105中將用戶扇區(qū)LBA(Y)中的數(shù)據(jù)def復(fù)制到虛擬扇區(qū)LBA(D)中的同時(shí),中斷操作,則可能會(huì)存在不能將數(shù)據(jù)def正確地復(fù)制到虛擬扇區(qū)LBA中。然而,在消除分段存儲(chǔ)被停止時(shí),也不將相應(yīng)的項(xiàng)目寫(xiě)入RDM中。如果MPU25從主設(shè)備55接收到訪問(wèn)用戶扇區(qū)LBA(Y)的指令,則MPU25會(huì)訪問(wèn)用戶扇區(qū)LBA(Y)。因此可以保持在磁盤(pán)驅(qū)動(dòng)器10與主設(shè)備55之間的數(shù)據(jù)一致性。
假設(shè)在框107中將使得用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D)的項(xiàng)目寫(xiě)入到RDM中時(shí),發(fā)生中斷。如果寫(xiě)入項(xiàng)目沒(méi)有開(kāi)始或沒(méi)有結(jié)束,則在主設(shè)備55與磁盤(pán)驅(qū)動(dòng)器10之間的數(shù)據(jù)一致性得以保持,因?yàn)樵谇耙环N情況下將訪問(wèn)用戶扇區(qū)LBA(Y)而在后一種情況下將訪問(wèn)虛擬扇區(qū)LBA(D)。在RDM中每一項(xiàng)目的數(shù)據(jù)寫(xiě)入量非常小且EEPROM43允許高速寫(xiě)入。因此,諸如將用戶扇區(qū)LBA(Y)映象到某些地址而不是虛擬扇區(qū)LBA(D)的這種寫(xiě)入錯(cuò)誤的可能性非常小。而且,在電源開(kāi)通時(shí),RDM通常被復(fù)制和檢驗(yàn)。如果在將項(xiàng)目寫(xiě)入RDM時(shí)出現(xiàn)錯(cuò)誤,則會(huì)使用另一RDM。如果判斷項(xiàng)目被正確寫(xiě)入,則會(huì)使用該RDM。因此,不會(huì)發(fā)生上述問(wèn)題。
假設(shè)在框109中,將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc復(fù)制到用戶扇區(qū)LBA(Y)中時(shí)發(fā)生中斷。在這種情況下,存在不能將數(shù)據(jù)abc正確地復(fù)制到用戶扇區(qū)LBA(Y)的可能性。然而此時(shí),如果通過(guò)MPU25從主設(shè)備55接收到訪問(wèn)用戶扇區(qū)LBA(Y)的指令,則MPU25訪問(wèn)虛擬扇區(qū)LBA(D),因?yàn)閷⒂脩羯葏^(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D)的項(xiàng)目已被寫(xiě)入。因此,主設(shè)備55期望的數(shù)據(jù)被磁盤(pán)驅(qū)動(dòng)器10一致地識(shí)別。因此,數(shù)據(jù)的一致性得以保持。至于框111與框115之間的中斷,上面的相應(yīng)描述也適用。
在本實(shí)施例中,如到此為止所述那樣,在從主設(shè)備接收了在扇區(qū)或簇之間轉(zhuǎn)移數(shù)據(jù)的指令之后,在磁盤(pán)驅(qū)動(dòng)器內(nèi)執(zhí)行該指令。因此,不需要向和從主設(shè)備55傳輸數(shù)據(jù)和從主設(shè)備55接收多個(gè)指令。這允許以高速度執(zhí)行數(shù)據(jù)轉(zhuǎn)移同時(shí)減小主設(shè)備上的負(fù)擔(dān)。特別是,在利用SCSI、光纖信道或一些其它數(shù)據(jù)總線將主設(shè)備連接于多個(gè)磁盤(pán)驅(qū)動(dòng)器的環(huán)境下,在快速方面可以顯著地提高數(shù)據(jù)轉(zhuǎn)移的執(zhí)行,因?yàn)?,在主設(shè)備與磁盤(pán)驅(qū)動(dòng)器之間傳輸?shù)臄?shù)據(jù)的量減小允許執(zhí)行數(shù)據(jù)轉(zhuǎn)移而不用等待數(shù)據(jù)總線的可用時(shí)隙。另外,由于主設(shè)備能夠僅通過(guò)向磁盤(pán)驅(qū)動(dòng)器發(fā)送一個(gè)指令來(lái)使其轉(zhuǎn)移數(shù)據(jù),所以可以比以前更加減小主設(shè)備上的負(fù)擔(dān)。本實(shí)施例的數(shù)據(jù)轉(zhuǎn)移方法的用途并不限于消除分段存儲(chǔ)。當(dāng)然,該轉(zhuǎn)移方法可以用作在磁盤(pán)驅(qū)動(dòng)器中的扇區(qū)或簇之間轉(zhuǎn)移數(shù)據(jù)、同時(shí)通過(guò)將該結(jié)果反映給文件管理系統(tǒng)的管理表來(lái)保持主設(shè)備與磁盤(pán)驅(qū)動(dòng)器之間的數(shù)據(jù)一致性的普通方法。換句話說(shuō),該文件轉(zhuǎn)移方法可以用作這樣一種方法,該方法不像在日本專利公報(bào)No.10-301721公開(kāi)的那樣,它不需要LBA到扇區(qū)的重新分配,以便于在移動(dòng)數(shù)據(jù)之后保持在主設(shè)備與磁盤(pán)之間的數(shù)據(jù)一致性。
參考圖6和7,下面描述為了消除分段存儲(chǔ)在磁盤(pán)驅(qū)動(dòng)器10中的簇之間交換數(shù)據(jù)的方法。由于消除分段存儲(chǔ)是根據(jù)主設(shè)備55確定的消除分段存儲(chǔ)方案在扇區(qū)或簇之間重新分配數(shù)據(jù),所以需要在簇之間交換存儲(chǔ)的數(shù)據(jù)。由于除了使用兩個(gè)虛擬扇區(qū)LBA(D1)和LBA(D2)之外,在結(jié)構(gòu)上用戶扇區(qū)、虛擬扇區(qū)、RDM和主設(shè)備55中的管理表與圖4中的那些相同,所以省略它們的描述。
圖6A表示在磁盤(pán)11上,數(shù)據(jù)abc存儲(chǔ)在用戶扇區(qū)LBA(X)上,而數(shù)據(jù)def存儲(chǔ)在用戶扇區(qū)LBA(Y)上。這種情形被MPU25和主設(shè)備55兩個(gè)都識(shí)別。在虛擬扇區(qū)LBA(D1)和LBA(D2)中的每一個(gè)中,存儲(chǔ)了一些數(shù)據(jù)XXX。然而,由于沒(méi)有項(xiàng)目寫(xiě)入RDM中,所以MPU25不訪問(wèn)虛擬扇區(qū)LBA(D1)和LBA(D2)。
在框201中,主設(shè)備55確定將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc與用戶扇區(qū)LBA(Y)中的數(shù)據(jù)def交換,并向磁盤(pán)驅(qū)動(dòng)器10發(fā)出啟動(dòng)取消分段存儲(chǔ)執(zhí)行程序的指令。在框203中,主設(shè)備55向磁盤(pán)驅(qū)動(dòng)器10發(fā)送數(shù)據(jù)交換指令。交換指令是在用戶扇區(qū)LBA(X)與用戶扇區(qū)LBA(Y)之間交換數(shù)據(jù)的指令。選擇地,可以將該指令設(shè)計(jì)成包括取消分段存儲(chǔ)執(zhí)行程序的啟動(dòng)指令。還能夠指定在簇之間數(shù)據(jù)交換,來(lái)代替在扇區(qū)之間。
在框205中,MPU25接收交換指令并執(zhí)行取消分段存儲(chǔ)程序。如圖6B中所示,MPU25將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc復(fù)制到虛擬扇區(qū)LBA(D1)。然而,由于沒(méi)有項(xiàng)目寫(xiě)入RDM中,所以MPU25不訪問(wèn)虛擬扇區(qū)LBA(D1)。然后,在框207中,MPU25將用戶扇區(qū)LBA(Y)中的數(shù)據(jù)def復(fù)制到虛擬扇區(qū)LBA(D2)中,如圖6C所示。由于沒(méi)有項(xiàng)目寫(xiě)入RDM,所以MPU25也不訪問(wèn)虛擬扇區(qū)LBA(D2)。
在方框209中,如圖6(D)中所示,MPU25將項(xiàng)目寫(xiě)入RDM中,以將用戶扇區(qū)LBA(X)映象到虛擬扇區(qū)LBA(D1)并將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D2)。這之后,MPU25不識(shí)別存儲(chǔ)在用戶扇區(qū)LBA(X)和LBA(Y)中的數(shù)據(jù),因?yàn)樵噲D訪問(wèn)用戶扇區(qū)LBA(X)或LBA(Y)導(dǎo)致查詢RDM并訪問(wèn)虛擬扇區(qū)LBA(D1)或LBA(D2)。
在框211中,如圖6E中所示,MPU25將虛擬扇區(qū)LBA(D1)中的數(shù)據(jù)abc復(fù)制到用戶扇區(qū)LBA(Y)。如果主設(shè)備55發(fā)出訪問(wèn)用戶扇區(qū)LBA(Y)的指令,則MPU25訪問(wèn)虛擬扇區(qū)LBA(D2),因?yàn)镸PU25查詢的RDM項(xiàng)目將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D2)。因此在LBA(Y)中主設(shè)備55期望的數(shù)據(jù)在磁盤(pán)驅(qū)動(dòng)器10中被一致識(shí)別。在框213中,如圖6F所示,MPU25將虛擬扇區(qū)LBA(D2)中的數(shù)據(jù)def復(fù)制到用戶扇區(qū)LBA(X)。如果主設(shè)備55發(fā)出訪問(wèn)用戶扇區(qū)LBA(X)的指令,則MPU25訪問(wèn)虛擬扇區(qū)LBA(D1),因?yàn)镸PU25查詢的RDM項(xiàng)目將用戶扇區(qū)LBA(X)映象到虛擬扇區(qū)LBA(D1)。因此在LBA(X)中主設(shè)備55期望的數(shù)據(jù)在磁盤(pán)驅(qū)動(dòng)器10中被一致識(shí)別。
在框215中,如圖6(G)所示,擦除在RDM中寫(xiě)入的用于將用戶扇區(qū)LBA(X)映象到虛擬扇區(qū)LBA(D1)和將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D2)的項(xiàng)目。此后,如果命令MPU25訪問(wèn)用戶扇區(qū)LBA(X)或用戶扇區(qū)LBA(Y),則MPU25會(huì)直接訪問(wèn)用戶扇區(qū)LBA(X)或用戶扇區(qū)LBA(Y),而不訪問(wèn)虛擬扇區(qū)LBA(D1)或虛擬扇區(qū)(D2)。在此,由于主設(shè)備55認(rèn)為數(shù)據(jù)abc和數(shù)據(jù)def還分別存儲(chǔ)在用戶扇區(qū)LBA(X)和用戶扇區(qū)LBA(Y),所以主設(shè)備55期望的數(shù)據(jù)在磁盤(pán)驅(qū)動(dòng)器10中不被一致地識(shí)別。
在框217中,MPU25向主設(shè)備55發(fā)送數(shù)據(jù)交換完成指令。在框219中,主設(shè)備55根據(jù)該指令更新管理表項(xiàng)目以便于識(shí)別數(shù)據(jù)abc存儲(chǔ)在用戶扇區(qū)LBA(Y)中而數(shù)據(jù)def存儲(chǔ)在用戶扇區(qū)LBA(X)中。這再次使得主設(shè)備55所識(shí)別數(shù)據(jù)與由磁盤(pán)驅(qū)動(dòng)器10所識(shí)別的數(shù)據(jù)一致。由于在相對(duì)較短的時(shí)間完成框215至框219,所以消除分段存儲(chǔ)操作中斷而不保持主設(shè)備55與磁盤(pán)驅(qū)動(dòng)器10之間的數(shù)據(jù)一致性的可能性很低,基本上不會(huì)引起任何麻煩。
然后,假設(shè)在框203中將交換指令從主設(shè)備55傳送到磁盤(pán)器件10之后,在框219中主設(shè)備55響應(yīng)從磁盤(pán)器件10接收的指令轉(zhuǎn)移完成指令來(lái)更新管理表項(xiàng)目之前,由于停電或某些其它原因引起交換操作中斷。根據(jù)本實(shí)施例,如下面所述,即使在這種情況下也能保持在主設(shè)備55與磁盤(pán)器件10之間的數(shù)據(jù)一致性。
如果在框205中將用戶扇區(qū)LBA(X)中的數(shù)據(jù)abc復(fù)制到虛擬扇區(qū)LBA(D1)時(shí),操作中斷,則可能會(huì)存在數(shù)據(jù)abc不能正確地復(fù)制到虛擬扇區(qū)LBA(D1)中的情況。然而,當(dāng)消除分段存儲(chǔ)被停止時(shí),也不將相應(yīng)的項(xiàng)目寫(xiě)入RDM中。如果MPU25從主設(shè)備55接收訪問(wèn)用戶扇區(qū)LBA(X)的指令,則MPU25會(huì)訪問(wèn)用戶扇區(qū)LBA(X)。因此,可以在磁盤(pán)器件10與主設(shè)備55之間保持?jǐn)?shù)據(jù)一致性。
如果在框207中將用戶扇區(qū)LBA(Y)中的數(shù)據(jù)def復(fù)制到虛擬扇區(qū)LBA(D12)時(shí),操作中斷,則可能會(huì)存在數(shù)據(jù)def不能正確地復(fù)制到虛擬扇區(qū)LBA(D2)中的情況。然而,當(dāng)消除分段存儲(chǔ)被停止時(shí),也不將相應(yīng)的項(xiàng)目寫(xiě)入RDM中。如果MPU25從主設(shè)備55接收訪問(wèn)用戶扇區(qū)LBA(Y)的指令,則MPU25會(huì)訪問(wèn)用戶扇區(qū)LBA(Y)。因此,可以在磁盤(pán)器件10與主設(shè)備55之間保持?jǐn)?shù)據(jù)一致性。
假設(shè)在框209中在RDM中分別寫(xiě)入將用戶扇區(qū)LBA(X)和LBA(Y)映象到虛擬扇區(qū)LBA(D1)和LBA(D2)的項(xiàng)目時(shí),發(fā)生中斷。如果寫(xiě)項(xiàng)目沒(méi)有開(kāi)始或沒(méi)有完成,則主設(shè)備55與磁盤(pán)器件10之間的數(shù)據(jù)一致性得以保持,因?yàn)樵谇耙环N情況下會(huì)訪問(wèn)用戶扇區(qū)LBA(X)或LBA(Y)而在后一種情況下會(huì)訪問(wèn)虛擬扇區(qū)LBA(D1)或LBA(D2)。RDM中的每個(gè)項(xiàng)目的數(shù)據(jù)寫(xiě)入量非常小,且EEPROM43允許高速寫(xiě)入。因此,導(dǎo)致諸如將用戶LBA(X)和LBA(Y)映象為某些地址而不是虛擬扇區(qū)LBA(D1)和LBA(D2)的可能性非常小。而且,如前所述,RDM通常被復(fù)制以防止這種寫(xiě)入錯(cuò)誤帶來(lái)問(wèn)題。
假設(shè)在框211中將虛擬扇區(qū)LBA(D1)中的數(shù)據(jù)abc復(fù)制到用戶扇區(qū)LBA(Y)時(shí),操作中斷。在這種情況下,存在數(shù)據(jù)abc不能正確地復(fù)制到用戶扇區(qū)LBA(Y)的可能性。然而此時(shí),如果MPU25從主設(shè)備55接收到訪問(wèn)用戶扇區(qū)LBA(Y)的指令,則MPU25訪問(wèn)虛擬扇區(qū)LBA(D2),因?yàn)閷?xiě)入的是將用戶扇區(qū)LBA(Y)映象到虛擬扇區(qū)LBA(D2)的項(xiàng)目。因此,主設(shè)備55期望的數(shù)據(jù)被磁盤(pán)器件10一致識(shí)別。因此保持?jǐn)?shù)據(jù)的一致性。
假設(shè)在框213中將虛擬扇區(qū)LBA(D2)中的數(shù)據(jù)def復(fù)制到用戶扇區(qū)LBA(X)時(shí),操作中斷。在這種情況下,存在數(shù)據(jù)def不能正確地復(fù)制到用戶扇區(qū)LBA(X)的可能性。然而此時(shí),如果MPU25從主設(shè)備55接收到訪問(wèn)用戶扇區(qū)LBA(X)的指令,則MPU25訪問(wèn)虛擬扇區(qū)LBA(D1),因?yàn)閷?xiě)入的是將用戶扇區(qū)LBA(X)映象到虛擬扇區(qū)LBA(D1)的項(xiàng)目。因此,主設(shè)備55期望的數(shù)據(jù)被磁盤(pán)器件10一致認(rèn)可。因此保持?jǐn)?shù)據(jù)的一致性。關(guān)于在框215與框219之間的中斷,先前已經(jīng)提供了描述。值得注意的是,雖然已經(jīng)將旋轉(zhuǎn)盤(pán)型存儲(chǔ)器件的一個(gè)實(shí)例的磁盤(pán)驅(qū)動(dòng)器件作為實(shí)施例來(lái)描述,但是本發(fā)明還可應(yīng)用于諸如具有半導(dǎo)體存儲(chǔ)器和處理器的PC卡和CF卡的存儲(chǔ)器件。
在本實(shí)施例中,如到此為止所描述的那樣,在從主設(shè)備55接收了在扇區(qū)或簇之間交換數(shù)據(jù)的指令之后,在磁盤(pán)驅(qū)動(dòng)器內(nèi)執(zhí)行該指令。因此,不需要向和從主設(shè)備55傳輸數(shù)據(jù)和從主設(shè)備55接收多個(gè)指令。這允許高速執(zhí)行數(shù)據(jù)交換同時(shí)減小主設(shè)備的負(fù)擔(dān)。使用根據(jù)本實(shí)施例的數(shù)據(jù)交換方法并不限于消除分段存儲(chǔ)。該交換方法可以用作在磁盤(pán)驅(qū)動(dòng)器中的扇區(qū)或簇之間交換數(shù)據(jù)、同時(shí)通過(guò)將該結(jié)果反映給文件管理系統(tǒng)的管理表來(lái)保持在主設(shè)備與磁盤(pán)器件之間的數(shù)據(jù)一致性的普通方法。同樣,值得注意的是,RDM用作將用戶扇區(qū)映象到虛擬扇區(qū)的映象表,選擇地,可以與RDM分開(kāi)地提供專用于轉(zhuǎn)移或交換記錄信息的映象表。
雖然已經(jīng)結(jié)合附圖中示出的具體實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但附圖中示出的實(shí)施例并沒(méi)有限制作用。勿庸置疑,能夠提供本發(fā)明效果的任何公知結(jié)構(gòu)都可以采用。
權(quán)利要求
1.一種能夠與主設(shè)備進(jìn)行數(shù)據(jù)通信的存儲(chǔ)器件,所述存儲(chǔ)器件包括第一記錄介質(zhì),其具有源數(shù)據(jù)塊、目標(biāo)數(shù)據(jù)塊和虛擬塊;第二記錄介質(zhì),其具有將數(shù)據(jù)塊映象到虛擬塊的映象表;處理器,其控制所述存儲(chǔ)器件的操作;和第三記錄介質(zhì),其具有存儲(chǔ)在其中的程序,其中所述程序使得所述處理器執(zhí)行下述步驟接收來(lái)自主設(shè)備的轉(zhuǎn)移指令;將存儲(chǔ)在目標(biāo)數(shù)據(jù)塊中的信息復(fù)制到虛擬塊中;在映象表中,寫(xiě)入將目標(biāo)數(shù)據(jù)塊映象到虛擬塊的項(xiàng)目;將存儲(chǔ)在源數(shù)據(jù)塊中的信息復(fù)制到目標(biāo)數(shù)據(jù)塊;擦除寫(xiě)入到映象表中的項(xiàng)目;和向主設(shè)備發(fā)送轉(zhuǎn)移完成指令。
2.根據(jù)權(quán)利要求1的存儲(chǔ)器件,其中目標(biāo)數(shù)據(jù)塊為未使用的數(shù)據(jù)塊。
3.根據(jù)權(quán)利要求1的存儲(chǔ)器件,其中第一記錄介質(zhì)為旋轉(zhuǎn)盤(pán)型記錄介質(zhì)。
4.根據(jù)權(quán)利要求3的存儲(chǔ)器件,其中在旋轉(zhuǎn)盤(pán)型記錄介質(zhì)上的系統(tǒng)區(qū)中準(zhǔn)備虛擬塊。
5.根據(jù)權(quán)利要求3的存儲(chǔ)器件,其中映象表為重新分配缺陷映象表,通過(guò)該映象表,將在旋轉(zhuǎn)盤(pán)型記錄介質(zhì)上出現(xiàn)的缺陷扇區(qū)映象到備用扇區(qū)。
6.根據(jù)權(quán)利要求3的存儲(chǔ)器件,其中每一數(shù)據(jù)塊是一組多個(gè)扇區(qū)的簇。
7.根據(jù)權(quán)利要求3的存儲(chǔ)器件,其中轉(zhuǎn)移指令為用于進(jìn)行消除分段存儲(chǔ)的轉(zhuǎn)移指令。
8.一種能夠與主設(shè)備進(jìn)行數(shù)據(jù)通信的存儲(chǔ)器件,所述存儲(chǔ)器件包括第一記錄介質(zhì),其具第一數(shù)據(jù)塊、第二數(shù)據(jù)塊、第一虛擬塊和第二虛擬塊;第二記錄介質(zhì),其具有將數(shù)據(jù)塊映象到虛擬塊的映象表;處理器,其控制所述存儲(chǔ)器件的操作;和第三記錄介質(zhì),其具有存儲(chǔ)在其中的程序,其中所述程序使得所述處理器執(zhí)行下述步驟接收來(lái)自主設(shè)備的交換指令;將存儲(chǔ)在第一數(shù)據(jù)塊中的信息復(fù)制到第一虛擬塊中;將存儲(chǔ)在第二數(shù)據(jù)塊中的信息復(fù)制到第二虛擬塊中;在映象表中寫(xiě)項(xiàng)目,通過(guò)該項(xiàng)目將第一數(shù)據(jù)塊映象到第一虛擬塊并將第二數(shù)據(jù)塊映象到第二虛擬塊;將存儲(chǔ)在第一虛擬塊中的信息復(fù)制到第二數(shù)據(jù)塊;將存儲(chǔ)在第二虛擬塊中的信息復(fù)制到第一數(shù)據(jù)塊;從映象表中擦除項(xiàng)目;和向主設(shè)備發(fā)送交換完成指令。
9.根據(jù)權(quán)利要求8的存儲(chǔ)器件,其中第一記錄介質(zhì)為旋轉(zhuǎn)盤(pán)型記錄介質(zhì)。
10.根據(jù)權(quán)利要求9的存儲(chǔ)器件,其中在旋轉(zhuǎn)盤(pán)型記錄介質(zhì)上的系統(tǒng)區(qū)中準(zhǔn)備第一虛擬塊和第二虛擬塊。
11.根據(jù)權(quán)利要求9的存儲(chǔ)器件,其中映象表為重新分配缺陷映象表,通過(guò)該映象表,將在旋轉(zhuǎn)盤(pán)型記錄介質(zhì)上出現(xiàn)的缺陷扇區(qū)映象到備用扇區(qū)。
12.根據(jù)權(quán)利要求9的存儲(chǔ)器件,其中每一數(shù)據(jù)塊是一組多個(gè)扇區(qū)的簇。
13.根據(jù)權(quán)利要求9的存儲(chǔ)器件,其中交換指令為用于進(jìn)行消除分段存儲(chǔ)的交換指令。
14.一種用于在存儲(chǔ)器件中將存儲(chǔ)在源數(shù)據(jù)塊中的信息轉(zhuǎn)移到目標(biāo)數(shù)據(jù)塊的方法,該存儲(chǔ)器件具有包含源數(shù)據(jù)塊、目標(biāo)數(shù)據(jù)塊和虛擬塊的記錄介質(zhì),并能夠與主設(shè)備相通信,所述方法包括下述步驟接收來(lái)自主設(shè)備的轉(zhuǎn)移指令;將存儲(chǔ)在目標(biāo)數(shù)據(jù)塊中的信息復(fù)制到虛擬塊中;在將所述數(shù)據(jù)塊映象到所述虛擬塊的映象表中,寫(xiě)入將目標(biāo)數(shù)據(jù)塊映象到虛擬塊的項(xiàng)目;將存儲(chǔ)在源數(shù)據(jù)塊中的信息復(fù)制到目標(biāo)數(shù)據(jù)塊;從映象表中擦除該項(xiàng)目;和向主設(shè)備發(fā)送轉(zhuǎn)移完成指令。
15.一種用于在存儲(chǔ)器件中將存儲(chǔ)在第一數(shù)據(jù)塊中的信息與存儲(chǔ)在第二數(shù)據(jù)塊中的信息進(jìn)行交換的方法,該存儲(chǔ)器件具有包含第一數(shù)據(jù)塊、第二數(shù)據(jù)塊、第一虛擬塊和第二虛擬塊的記錄介質(zhì),并能夠與主設(shè)備相互通信,所述方法包括下述步驟接收來(lái)自主設(shè)備的交換指令;將存儲(chǔ)在第一數(shù)據(jù)塊中的信息復(fù)制到第一虛擬塊中;將存儲(chǔ)在第二數(shù)據(jù)塊中的信息復(fù)制到第二虛擬塊中;在將所述數(shù)據(jù)塊映象到所述虛擬塊的映象表中寫(xiě)項(xiàng)目,通過(guò)該項(xiàng)目將第一數(shù)據(jù)塊映象到第一虛擬塊并將第二數(shù)據(jù)塊映象到第二虛擬塊將存儲(chǔ)在第一虛擬塊中的信息復(fù)制到第二數(shù)據(jù)塊;將存儲(chǔ)在第二虛擬塊中的信息復(fù)制到第一數(shù)據(jù)塊;從映象表中擦除項(xiàng)目;和向主設(shè)備發(fā)送交換完成指令。
16.一種用于存儲(chǔ)器件的消除分段存儲(chǔ)執(zhí)行方法,該存儲(chǔ)器件具有包含源數(shù)據(jù)塊、目標(biāo)數(shù)據(jù)塊和虛擬塊的記錄介質(zhì),且主設(shè)備能夠與該存儲(chǔ)器件進(jìn)行數(shù)據(jù)通信,所述方法包括下述步驟使得主設(shè)備檢驗(yàn)介質(zhì)的分段存儲(chǔ);使得主設(shè)備確定將存儲(chǔ)的信息從源數(shù)據(jù)塊轉(zhuǎn)移到目標(biāo)數(shù)據(jù)塊;使得主設(shè)備向存儲(chǔ)器件發(fā)送存儲(chǔ)信息轉(zhuǎn)移指令;響應(yīng)于轉(zhuǎn)移指令,使得存儲(chǔ)器件將存儲(chǔ)在目標(biāo)數(shù)據(jù)塊的信息復(fù)制到虛擬塊中;使得存儲(chǔ)器件在將所述數(shù)據(jù)塊映象到所述虛擬塊的映象表中寫(xiě)入將目標(biāo)數(shù)據(jù)塊映象到虛擬塊的項(xiàng)目;使得存儲(chǔ)器件將存儲(chǔ)在源數(shù)據(jù)塊中的信息復(fù)制到目標(biāo)數(shù)據(jù)塊中;使得存儲(chǔ)器件從映象表中擦除該項(xiàng)目;和使得存儲(chǔ)器件向主設(shè)備發(fā)送轉(zhuǎn)移完成指令;和使得主設(shè)備響應(yīng)于轉(zhuǎn)移完成指令來(lái)更新文件管理系統(tǒng)中的項(xiàng)目。
17.根據(jù)權(quán)利要求1 6的消除分段存儲(chǔ)執(zhí)行方法,其中使得主設(shè)備更新文件管理系統(tǒng)中的項(xiàng)目的步驟包括將源數(shù)據(jù)塊的屬性改變?yōu)槲词褂谩?br>
18.根據(jù)權(quán)利要求16的消除分段存儲(chǔ)執(zhí)行方法,其中所述主設(shè)備為硬盤(pán)記錄器或MP3記錄器/播放器。
19.一種用于存儲(chǔ)器件的消除分段存儲(chǔ)執(zhí)行方法,該存儲(chǔ)器件具有包含第一數(shù)據(jù)塊、第二數(shù)據(jù)塊、第一虛擬塊和第二虛擬塊的記錄介質(zhì),且主設(shè)備能夠與該存儲(chǔ)器件進(jìn)行數(shù)據(jù)通信,所述方法包括下述步驟使得主設(shè)備檢驗(yàn)介質(zhì)的分段存儲(chǔ);使得主設(shè)備確定在第一數(shù)據(jù)塊與第二數(shù)據(jù)塊之間交換存儲(chǔ)信息;使得主設(shè)備向存儲(chǔ)器件發(fā)送存儲(chǔ)信息交換指令;響應(yīng)于交換指令,使得存儲(chǔ)器件將存儲(chǔ)在第一數(shù)據(jù)塊中的信息復(fù)制到第一虛擬塊中;使得存儲(chǔ)器件將存儲(chǔ)在第二數(shù)據(jù)塊中的信息復(fù)制到第二虛擬塊中;使得存儲(chǔ)器件在將所述數(shù)據(jù)塊映象到所述虛擬塊的映象表中寫(xiě)入項(xiàng)目,通過(guò)該項(xiàng)目,將第一數(shù)據(jù)塊映象到第一虛擬塊并將第二數(shù)據(jù)塊映象到第二虛擬塊;使得存儲(chǔ)器件將存儲(chǔ)在第一虛擬塊中的信息復(fù)制到第二數(shù)據(jù)塊中;使得存儲(chǔ)器件將存儲(chǔ)在第二虛擬塊中的信息復(fù)制到第一數(shù)據(jù)塊中;使得存儲(chǔ)器件從映象表中擦除該項(xiàng)目;使得存儲(chǔ)器件向主設(shè)備發(fā)送交換完成指令;和使得主設(shè)備響應(yīng)交換完成指令來(lái)更新文件管理系統(tǒng)中的項(xiàng)目。
20.根據(jù)權(quán)利要求19的消除分段存儲(chǔ)的執(zhí)行方法,其中每一數(shù)據(jù)塊為一組多個(gè)扇區(qū)的簇。
全文摘要
當(dāng)主設(shè)備為了消除分段存儲(chǔ)等目的而在存儲(chǔ)器件中將存儲(chǔ)的信息在用戶扇區(qū)之間轉(zhuǎn)移/交換時(shí),在存儲(chǔ)器件接收到指令之后,它允許進(jìn)行數(shù)據(jù)轉(zhuǎn)移或交換,但不在主設(shè)備與存儲(chǔ)器件之間傳輸;并且即使中斷該操作,在主設(shè)備與存儲(chǔ)器件之間也保持存儲(chǔ)信息識(shí)別方面的一致性。將存儲(chǔ)在目標(biāo)用戶扇區(qū)LBA(Y)中的信息復(fù)制到虛擬扇區(qū)LBA(D)中,將該項(xiàng)目寫(xiě)入映象表RDM中,將存儲(chǔ)在源用戶扇區(qū)LBA(X)中的信息復(fù)制到LBA(Y),然后擦除RDM項(xiàng)目。
文檔編號(hào)G11B20/10GK1670716SQ20051005481
公開(kāi)日2005年9月21日 申請(qǐng)日期2005年3月18日 優(yōu)先權(quán)日2004年3月18日
發(fā)明者高瀨誠(chéng), 橋本穣, 鵜木敏郎, 相田亨, 門(mén)真理子 申請(qǐng)人:日立環(huán)球儲(chǔ)存科技荷蘭有限公司