亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于允許在驅(qū)動器被格式化的同時訪問存儲設(shè)備的方法和裝置的制作方法

文檔序號:6650860閱讀:296來源:國知局
專利名稱:用于允許在驅(qū)動器被格式化的同時訪問存儲設(shè)備的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)。更特別地,本發(fā)明涉及一種用于允許在驅(qū)動器被格式化的同時時訪問存儲設(shè)備的方法、裝置和計算機程序產(chǎn)品。
背景技術(shù)
硬盤驅(qū)動器容量幾乎每18個月翻倍一次。結(jié)果,格式化硬盤驅(qū)動器的時間也已增加。例如,對于能夠存儲300G字節(jié)的SCSI盤驅(qū)動器,格式化盤大約花費105分鐘。
采用邏輯塊地址(LBA)來訪問盤驅(qū)動器。驅(qū)動器被分為多個不同的LBA。用戶應(yīng)用程序可訪問的盤驅(qū)動器的最小單元是LBA。LBA在驅(qū)動器中識別特殊的軌道柱面、頭部和扇區(qū)位置。
為了格式化盤驅(qū)動器,耦合到該盤驅(qū)動器的主機將一個“格式化單元”的命令發(fā)送給該盤驅(qū)動器。包括在該盤驅(qū)動器中的盤驅(qū)動器控制器然后接收該“格式化單元”命令。盤驅(qū)動器控制器通過在該驅(qū)動器中識別壞邏輯塊地址(LBA),建立一個表示哪一個LBA是壞的并因此被跳過的軌道布局表,以及將初始化模型寫入盤驅(qū)動器中的好LBA,來執(zhí)行“格式化單元”命令。在該盤驅(qū)動器在格式化該驅(qū)動器的過程中,主機不能訪問該驅(qū)動器以從該驅(qū)動器讀取數(shù)據(jù)或向其寫入數(shù)據(jù)。
一旦盤控制器完成了對驅(qū)動器的格式化,控制器就通知主機格式化已經(jīng)完畢。盤控制器通過向主機返回一個“命令完成”的響應(yīng)來通知主機已經(jīng)完成對驅(qū)動器的格式化。一旦主機接收了“命令完成”的響應(yīng),主機就能開始對驅(qū)動器進行訪問以便從該驅(qū)動器中讀取數(shù)據(jù)和/或向其寫入數(shù)據(jù)。由于格式化操作要花費很長的時間,驅(qū)動器就會在這么長的時間內(nèi)是不可用的。
因此,需要有一種用于允許在格式化驅(qū)動器的同時訪問存儲設(shè)備,例如硬盤驅(qū)動器的方法、裝置和計算機程序產(chǎn)品。

發(fā)明內(nèi)容
本發(fā)明揭示一種在格式化驅(qū)動器時允許訪問數(shù)據(jù)存儲設(shè)備的方法、裝置和計算機程序產(chǎn)品。格式化命令在該設(shè)備中從主機接收。然后在該設(shè)備完成格式化之前命令完成響應(yīng)發(fā)送給主機。主機在向該設(shè)備發(fā)送任何讀取或?qū)懭朊钪暗却撁钔瓿身憫?yīng)。在該設(shè)備仍被格式化的同時執(zhí)行從該主機發(fā)送給該設(shè)備的讀取和寫入命令。
本發(fā)明上述和另外的目的、特征和優(yōu)點將在下面詳細(xì)給出的描述中變得顯而易見。


在所附權(quán)利要求中闡述被認(rèn)為是本發(fā)明特有特性的新穎的特征。然而,本發(fā)明自身和其使用的最佳模式,以及它的目的和優(yōu)點將參考下面結(jié)合附圖對示意性實施例的詳細(xì)描述而得到最好的理解,其中圖1是按照本發(fā)明的計算機系統(tǒng)的方框圖,該系統(tǒng)具有包括本發(fā)明的例如硬盤驅(qū)動器的存儲設(shè)備;圖2是按照本發(fā)明的耦合到主機計算機的盤驅(qū)動器的方框圖,這里該盤驅(qū)動器例如是包括本發(fā)明的硬盤驅(qū)動器;圖3示出了一個高級流程圖,它描述了根據(jù)現(xiàn)有技術(shù)執(zhí)行“格式化單元”命令的盤控制器;圖4A描述了一個高級流程圖,它描述了根據(jù)本發(fā)明的盤驅(qū)動器中執(zhí)行“格式化單元”命令的盤控制器;以及圖4B描述了根據(jù)本發(fā)明對圖4A的盤驅(qū)動器進行讀取或?qū)懭霐?shù)據(jù)的高級流程圖,它可以并行于圖4A的處理而執(zhí)行。
具體實施例方式
本發(fā)明的優(yōu)選實施例及其優(yōu)點通過參考附圖而變得更好理解,這里相同的數(shù)字用于附圖的相同和相應(yīng)的部分。
本發(fā)明揭示一種在格式化驅(qū)動器時允許訪問數(shù)據(jù)存儲設(shè)備的方法、裝置和計算機程序產(chǎn)品。雖然也可以使用其它類型的包括能夠單獨和分別訪問的塊的塊存儲設(shè)備,但是數(shù)據(jù)存儲設(shè)備優(yōu)選地是硬盤驅(qū)動器。
主機耦合到該驅(qū)動器。主機向驅(qū)動器發(fā)送要由該驅(qū)動器執(zhí)行的讀取命令、寫入命令和格式化命令。當(dāng)主機向驅(qū)動器發(fā)送“格式化單元”命令時,主機在向驅(qū)動器傳輸任何更多的讀取和/或?qū)懭朊钪埃鳈C一直等待,直至從該驅(qū)動器接收到“命令完成”的響應(yīng)。這樣,在主機傳輸“格式化單元”命令的時間與主機從該驅(qū)動器接收“命令完成”響應(yīng)的時間之間,主機不能執(zhí)行任何與驅(qū)動器合作的有用的工作。
根據(jù)現(xiàn)有技術(shù),驅(qū)動器不能發(fā)送“命令完成”響應(yīng),直到驅(qū)動器已完成格式化處理。專用,在現(xiàn)有技術(shù)的系統(tǒng)中,在驅(qū)動器被格式化的同時不允許主機訪問驅(qū)動器以使其執(zhí)行讀取和/或?qū)懭搿?br> 根據(jù)本發(fā)明,允許主機在驅(qū)動器被格式化的同時訪問該驅(qū)動器以使其執(zhí)行讀取和/或?qū)懭搿?br> 根據(jù)本發(fā)明,在驅(qū)動器完成格式化之前,驅(qū)動器將向主機返回一個“命令完成”響應(yīng)。一旦主機接收到該“命令完成”響應(yīng),主機就能開始向該驅(qū)動器發(fā)送讀取和寫入命令。從主機發(fā)送給驅(qū)動器的讀取和寫入命令在仍舊格式化驅(qū)動器的同時執(zhí)行。
驅(qū)動器包括執(zhí)行本發(fā)明的處理的盤驅(qū)動器控制器。在該盤驅(qū)動器控制器接收到“格式化單元”命令之后,控制器在驅(qū)動器中通過讀取損壞的LBA的P和G列表并隨后建立軌道布局表,來執(zhí)行簡化的初始化處理。這時,優(yōu)先于開始向驅(qū)動器介質(zhì)寫入任意初始化數(shù)據(jù)模型,控制器將向主機返回“命令完成”響應(yīng)。一旦主機接收到該“命令完成”響應(yīng),主機然后開始向驅(qū)動器發(fā)送讀取和/或?qū)懭朊睿词故钦趫?zhí)行格式化該驅(qū)動器也將執(zhí)行該讀取和/或?qū)懭朊睢?br> 該驅(qū)動器在驅(qū)動器被格式化的同時處理來自主機的讀取和/或?qū)懭朊???刂破鞅3种櫮男㎜BA已被初始化以及哪些LBA包含不同于初始化數(shù)據(jù)的實際數(shù)據(jù)的寫入表。實際數(shù)據(jù)是在驅(qū)動器接收了正在處理的“格式化單元”命令之后已經(jīng)寫入LBA的數(shù)據(jù)。
當(dāng)在驅(qū)動器格式化的時候驅(qū)動器接收了讀取命令,控制器就訪問該寫入表,以確定由讀取命令所識別的要讀取的LBA是否已經(jīng)被初始化。如果LBA已經(jīng)被初始化,控制器將返回當(dāng)前存儲在LBA中的任一數(shù)據(jù)。如果LBA還沒有被初始化,控制器就返回初始化數(shù)據(jù)而不管什么數(shù)據(jù)可能存儲在LBA中。
當(dāng)在驅(qū)動器格式化的時候驅(qū)動器接收了寫入命令,控制器就訪問該寫入表,以確定由寫入命令所識別的要寫入的LBA是否已經(jīng)被初始化。如果LBA已經(jīng)被初始化,控制器將包括在該寫入命令中的數(shù)據(jù)寫入該LBA。這樣,LBA現(xiàn)在就包含了實際數(shù)據(jù)。如果LBA還沒有被初始化,控制器就將一個指示存入寫入表,然后將包含在寫入命令中的數(shù)據(jù)寫入LBA。該指示就表示這個LBA具有存于其內(nèi)部的實際數(shù)據(jù)。
在執(zhí)行上述讀取和/或?qū)懭胩幚淼耐瑫r,控制器也執(zhí)行“格式化單元”命令以便格式化驅(qū)動器介質(zhì)。當(dāng)控制器正在格式化驅(qū)動器介質(zhì)時,控制器就將固定的初始化數(shù)據(jù)模型寫入介質(zhì)中的LBA。對于每個沒有損壞的LBA,控制器就確定寫入表是否表示LBA已經(jīng)被初始化或包含實際數(shù)據(jù)。如果寫入表格表示LBA已經(jīng)被初始化或?qū)嶋H數(shù)據(jù)已經(jīng)被寫入這個LBA,那么控制器就不將初始化數(shù)據(jù)模型寫入該LBA,然后轉(zhuǎn)到下一要進行初始化的LBA。如果寫入表表示該LBA還沒有被初始化并且不包含實際數(shù)據(jù),那么控制器就將初始化數(shù)據(jù)模型寫入該LBA,并將一個表示該LBA已經(jīng)被初始化的指示存入寫入表。
圖1是按照本發(fā)明的計算機系統(tǒng)的方框圖,該系統(tǒng)具有包括本發(fā)明的例如硬盤驅(qū)動器的存儲設(shè)備。數(shù)據(jù)處理系統(tǒng)100可以是對稱多處理器(SMP)系統(tǒng),它包括連接到系統(tǒng)總線106的多個處理器102和104??蛇x擇地,也可以使用單處理器系統(tǒng)。在所描述的實施例中,處理器104是服務(wù)器處理器。連接到系統(tǒng)總線106上的還有存儲器控制器/高速緩存108,它提供對本地存儲器109的接口。I/O總線橋110連接到系統(tǒng)總線106,并提供對I/O總線112的接口。存儲器控制器/高速緩存108和I/O總線橋110可以如圖所述地進行集成。
連接到外設(shè)部件互連(PCI)總線橋114的I/O總線112提供對PCI本地總線116的接口。多個調(diào)制解調(diào)器可以連接到PCI總線116。典型地PCI總線設(shè)備可以支持4個PCI擴展插槽或附加連接器。連接到其它計算機的通信鏈路可通過經(jīng)由附加線路板連接到PCI本地總線116的調(diào)制解調(diào)器118和網(wǎng)絡(luò)適配器120來提供。
額外的PCI總線橋122和124為額外的PCI總線126和128提供接口,基于該接口可以支持額外的調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。以這種方式,數(shù)據(jù)處理器系統(tǒng)100允許連接到多個網(wǎng)絡(luò)計算機。如圖所述,存儲器映射的圖形適配器130也可以直接地或間接地連接到I/O總線112。
存儲設(shè)備,例如硬盤驅(qū)動器132通過I/O適配卡133耦合到諸如總線128的PCI總線。硬盤驅(qū)動器132可采用任一種技術(shù)來實現(xiàn)。例如,硬盤驅(qū)動器132可以是SAS驅(qū)動器或SCSI驅(qū)動器。適配卡133然后依照硬盤驅(qū)動器132所支持的接口技術(shù)的類型,將PCI總線映射為SCSI總線或SAS總線。
本領(lǐng)域的普通技術(shù)人員可以理解在圖1所示出的硬件是可以改變的。例如,也可以使用除圖所示的硬件之外的或替代它們的其它外設(shè),例如光盤驅(qū)動器等等。所描述的實施例并不意味著對本發(fā)明進行結(jié)構(gòu)上的限制。
圖2是實現(xiàn)本發(fā)明的耦合到諸如硬盤驅(qū)動器202的存儲器設(shè)備的主機200的方框圖。主機200耦合到例如PCI總線橋204的橋。PCI總線橋204通過輸入/輸出(I/O)適配卡206耦合到盤驅(qū)動器202。
盤驅(qū)動器202包括耦合到存儲介質(zhì)210的盤驅(qū)動器控制器208。在硬盤驅(qū)動器中,存儲介質(zhì)210是實際上具有磁涂層的硬盤。
盤驅(qū)動器控制器208包括處理器和未示出的其它設(shè)備,用于執(zhí)行來自主機200的命令以便訪問存儲介質(zhì)210以及執(zhí)行控制操作??刂撇僮靼ǜ袷交鎯橘|(zhì)210以及例如響應(yīng)于請求控制器208所保留的分區(qū)列表的其它處理。
盤驅(qū)動器控制器208負(fù)責(zé)執(zhí)行來自主機200的命令,包括執(zhí)行“格式化單元”命令以及生成“命令完成”響應(yīng)。
盤驅(qū)動器控制器208包括損壞的LBA的列表,例如介質(zhì)210中的損壞的LBA的G列表212和介質(zhì)210中的損壞的LBA的P列表214。盤驅(qū)動器控制器208還包括寫入表216和軌道布局表218。
G列表212、P列表214和軌道布局表218以現(xiàn)有技術(shù)所給出的方式來操作。
寫入表216根據(jù)本發(fā)明來提供以便使控制器208跟蹤在“格式化單元”的處理過程中哪一LBA已經(jīng)寫入了初始化數(shù)據(jù)模型。在格式化過程中,盤驅(qū)動器控制器208嘗試將初始化數(shù)據(jù)模型寫入存儲介質(zhì)210中的好的LBA。在盤驅(qū)動器控制器208將初始化模型寫入特定LBA之后,盤驅(qū)動器控制器208將一個指示存儲在寫入表216中,以示出該特定的LBA已經(jīng)被初始化。這樣,寫入表216將包括一個LBA列表,其中的每個LBA都已寫入了初始化模型并因此被初始化。
另外,如下更加詳細(xì)地描述的,替代向LBA寫入初始化數(shù)據(jù)模型,盤驅(qū)動器控制器208可以將實際數(shù)據(jù)存入特定的LBA中。寫入表216也將包括一個LBA列表,其中的每個LBA都已寫入了實際數(shù)據(jù)。
存儲介質(zhì)210包括多個可單獨尋址的LBA,例如LBA1 220、LBA2 222、LBA3 224和LBA4 226。在格式化處理中,確定是否有任一LBA是損壞的。在G列表212或P列表214中存儲一個指示,以表示每個壞的LBA。
圖3示出了一個高級流程圖,它描述了根據(jù)現(xiàn)有技術(shù)盤控制器執(zhí)行“格式化單元”命令。如圖所示處理開始于塊300,此后轉(zhuǎn)到塊302,在塊302中表示在存儲驅(qū)動器控制器中從主機接收“格式化單元”命令以便格式化該驅(qū)動器。這時,主機不能讀取或?qū)懭腧?qū)動器202。接著,塊304表示該控制器從該驅(qū)動器中收集“P”和“G”列表?!癙”和“G”列表包含在該驅(qū)動器中損壞的LBA的位置。
處理然后轉(zhuǎn)到塊306,在塊306中表示該控制器在驅(qū)動器中設(shè)置軌道,以便被識別為可用的所有LBA是連續(xù)的,并且所有的壞LBA被跳過。此后,塊308描述了控制器建立軌道布局表。接著,塊310示出了控制器向驅(qū)動器中可用的LBA寫入一個作為初始化模型的固定數(shù)據(jù)模型。
處理然后轉(zhuǎn)到塊312,在塊312中描述了控制器所進行的判斷,以確定該控制器是否已完成“格式化單元”命令的執(zhí)行。如果判斷結(jié)果是該控制器沒有結(jié)束“格式化單元”命令,那么處理就轉(zhuǎn)到塊310。再次參考塊312,如果判斷結(jié)果是該控制器已結(jié)束“格式化單元”命令,那么處理就轉(zhuǎn)到塊314,它示出了控制器向主機返回一個“命令完成”響應(yīng)。這里,控制器已完成格式化處理。一旦主機接收了該“命令完成”響應(yīng),那么主機再次恢復(fù)訪問驅(qū)動器202。驅(qū)動器202現(xiàn)在被格式化,并且主機200可以再次訪問驅(qū)動器202,以便從驅(qū)動器202中讀取數(shù)據(jù)或向其中寫入數(shù)據(jù)。處理然后如所示在塊316終止。
圖4A描述了一個高級流程圖,它描述了根據(jù)本發(fā)明的驅(qū)動器中執(zhí)行“格式化單元”命令的盤控制器。處理如圖所示開始于塊400,此后轉(zhuǎn)到塊402,它描述了控制器從主機接收“格式化單元”命令以便格式化驅(qū)動器的介質(zhì)。接著,塊404描述了控制器從該驅(qū)動器中收集“P”和“G”列表?!癙”和“G”列表包含在該驅(qū)動器中損壞LBA的位置。
處理然后轉(zhuǎn)到塊406,這里描述了控制器在驅(qū)動器中設(shè)置軌道,以便使標(biāo)識為可用的所有LBA都是連續(xù)的,并且可使壞的邏輯塊地址(LBA)被跳過。其后,塊408描述了控制器向主機返回一個“命令完成”響應(yīng)。它向主機示出該控制器已經(jīng)結(jié)束“格式化單元”命令的執(zhí)行。這里,主機認(rèn)為驅(qū)動器已經(jīng)被格式化了,盡管該控制器實際上還未完成格式化處理。這時,控制器仍舊在執(zhí)行“格式化單元”命令的處理過程。一旦主機接收了該“命令完成”響應(yīng),主機就再次恢復(fù)對驅(qū)動器的訪問。
接著,塊410示出了控制器將固定數(shù)據(jù)模型作為初始化數(shù)據(jù)模型寫入驅(qū)動器中可用的LBA。對于驅(qū)動器中的每個LBA,檢驗寫入表以確定LBA是否具有已經(jīng)存儲在LBA中的實際數(shù)據(jù)。為每個包括實際數(shù)據(jù)的LBA在寫入表中存儲一個指示。實際數(shù)據(jù)被定義為自盤控制器接收“格式化單元”命令之后已經(jīng)寫入的數(shù)據(jù)。初始化數(shù)據(jù)模型不是實際數(shù)據(jù)。初始化數(shù)據(jù)沒有寫入LBA中,其中在該LBA中自將“格式化單元”命令發(fā)送給驅(qū)動器之后實際數(shù)據(jù)已被寫入。初始化數(shù)據(jù)寫入所有LBA,其中在這些LBA中自將“格式化單元”命令發(fā)送給驅(qū)動器之后數(shù)據(jù)還未被寫入。這樣,如果LBA還沒包括自收到“格式化單元”命令之后被寫入該LBA的實際數(shù)據(jù),那么該LBA就通過將初始化模型寫入該LBA而進行初始化。
另外,為每個寫入初始化數(shù)據(jù)的LBA在寫入表中存儲一個指示,以示出已經(jīng)對該LBA完成初始化?,F(xiàn)在可以在驅(qū)動器上正常使用已寫入初始化模型的LBA以讀取和/或?qū)懭霐?shù)據(jù),其中為該LBA在寫入表中存儲一個指示以表示已經(jīng)寫入初始化模型。以這種方式,寫入表包括用于每個LBA的指示,在該LBA中自接收“格式化單元”命令之后初始化數(shù)據(jù)已被寫入。
處理然后轉(zhuǎn)到塊412,它描述了判斷控制器是否已結(jié)束“格式化單元”命令的執(zhí)行。當(dāng)控制器已將初始化數(shù)據(jù)模型寫入所有未損壞的LBA,該控制器就結(jié)束“格式化單元”命令的執(zhí)行,這里還沒有將實際數(shù)據(jù)寫入這些LBA。這樣,當(dāng)完成“格式化單元”命令時,每個未損壞的LBA就會存儲實際數(shù)據(jù)或者初始化模型數(shù)據(jù)。
如果判斷結(jié)果表示控制器還沒有結(jié)束“格式化單元”命令的執(zhí)行,處理就回到塊410。再次參照塊412,如果判斷結(jié)果表示控制器已經(jīng)結(jié)束“格式化單元”命令的執(zhí)行,處理如塊414所示終止。
圖4B描述了根據(jù)本發(fā)明與圖4A的處理并行執(zhí)行的高級流程圖。圖4B描述了按照本發(fā)明從/向圖4A的盤驅(qū)動器讀取或?qū)懭霐?shù)據(jù)。圖4B所描述的處理可以與圖4A所描述的處理并行地執(zhí)行。這樣,讀取該盤驅(qū)動器或向其寫入就能與驅(qū)動器控制器對該盤驅(qū)動器執(zhí)行的格式化同時進行。
如圖所示,處理開始于塊420然后轉(zhuǎn)到塊422,在塊422中描述了判斷該控制器是否接收到用于在驅(qū)動器中讀取特定LBA的“讀取”命令。如果判斷結(jié)果表示該控制器已經(jīng)接收到用于在驅(qū)動器中讀取特定LBA的“讀取”命令,處理就轉(zhuǎn)到塊424,在塊424中描述了判斷該特定的LBA是否已經(jīng)被初始化。這種判斷過程是通過訪問寫入表以判斷是否對該LBA完成初始化來實現(xiàn)的。
如果判斷結(jié)果示出該特定LBA已經(jīng)被初始化,那么處理就轉(zhuǎn)到塊426,在塊426中描述了將存儲在該特定LBA中的數(shù)據(jù)作為讀取數(shù)據(jù)返回給“讀取”命令。處理然后轉(zhuǎn)到塊422。再次參照塊424,如果判斷結(jié)果表示該特定的LBA還沒被初始化,那么處理就轉(zhuǎn)到428,在塊428中描述了將初始化數(shù)據(jù)作為讀取數(shù)據(jù)返回給“讀取”命令。即使初始化模型數(shù)據(jù)還未寫入到該特定的LBA,也要返回初始化模型數(shù)據(jù)。處理然后轉(zhuǎn)到塊422。
再次參照塊422,如果判斷結(jié)果是控制器還沒接收到用于在驅(qū)動器中讀取特定LBA的“讀取”命令,處理就轉(zhuǎn)到塊430,在塊430中描述了判斷該控制器是否已接收用于在驅(qū)動器中將特定數(shù)據(jù)寫入特定LBA的“寫入”命令。要寫入LBA的該特定數(shù)據(jù)在上面已經(jīng)被稱為“實際數(shù)據(jù)”。如果判斷結(jié)果是控制器已經(jīng)接收用于在驅(qū)動器中將特定數(shù)據(jù)寫入特定LBA的“寫入”命令,處理就轉(zhuǎn)到塊432。
塊432描述了判斷該特定的LBA是否已被初始化。這種判斷是使用控制器中的寫入表來作出的。如果判斷結(jié)果是該特定的LBA已經(jīng)被初始化,處理就轉(zhuǎn)到塊436,這里描述了控制器通過將特定數(shù)據(jù)寫入特定LBA中來執(zhí)行“寫入”命令,其中該特定數(shù)據(jù)是包括在“寫入”命令中的數(shù)據(jù)。處理然后轉(zhuǎn)到塊422。再次參照塊432,如果判斷結(jié)果是該特定LBA還沒有被初始化,處理就轉(zhuǎn)到塊434,在塊434中描述了將一個指示寫入該寫入表中,該指示表示這個LBA具有存儲于其中的實際數(shù)據(jù)。這樣,該指示表示初始化數(shù)據(jù)沒有存儲在該特定LBA中。處理然后轉(zhuǎn)到塊436。
重要的是,雖然本發(fā)明已經(jīng)在上文中描述了完全功能化的數(shù)據(jù)處理系統(tǒng)。本領(lǐng)域的普通技術(shù)人員將會理解,本發(fā)明的處理過程能夠以計算機可讀介質(zhì)上的指令的形式以及同樣地應(yīng)用本發(fā)明的多種形式來分布,而不考慮在實際中用于實現(xiàn)這種分布的信號承載介質(zhì)的詳細(xì)類型。計算機可讀介質(zhì)的實例包括可記錄型介質(zhì),例如軟盤、硬盤、RAM、CD-ROM、DVD-ROM,還可包括傳輸型介質(zhì),例如數(shù)字和模擬通信鏈路、使用諸如射頻和光波傳輸?shù)膫鬏斝问降挠芯€或無線通信鏈路。計算機可讀介質(zhì)可采用編碼格式,該編碼格式在特定數(shù)據(jù)處理系統(tǒng)中解碼以供使用。
為了示意性和描述的目的已經(jīng)對本發(fā)明進行了介紹,但以上描述不是窮舉的或以所描述的形式來限制本發(fā)明。許多改變和變化對本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。選擇并描述實施例是為了最好地解釋本發(fā)明的原理、實際應(yīng)用,并且使本領(lǐng)域的其它普通技術(shù)人員能夠理解本發(fā)明可用于按照適合于特定的預(yù)計使用方式來進行各種改變而得的多種實施例。
權(quán)利要求
1.一種在數(shù)據(jù)存儲設(shè)備中允許在對所述設(shè)備進行格式化的同時對所述設(shè)備進行訪問的方法,所述方法包括在所述設(shè)備中從主機接收一個格式化命令;在所述設(shè)備完成格式化之前將一個命令完成響應(yīng)返回給所述主機,其中所述主機在向所述設(shè)備傳送任一讀取或?qū)懭朊钪暗却雒钔瓿身憫?yīng);以及在所述設(shè)備被格式化的同時執(zhí)行從所述主機傳送到所述設(shè)備的讀取和寫入命令。
2.根據(jù)權(quán)利要求1的方法,還包括所述設(shè)備是包括盤驅(qū)動器控制器的硬盤驅(qū)動器;在所述盤驅(qū)動器控制器中,從主機接收格式化命令以格式化所述硬盤驅(qū)動器;在所述盤驅(qū)動器完成格式化之前,從所述盤驅(qū)動器控制器向所述主機返回命令完成響應(yīng),其中所述主機在將任一讀取或?qū)懭朊顐魉徒o所述硬盤驅(qū)動器之前等待所述命令完成響應(yīng);以及所述盤驅(qū)動器控制器在所述硬盤驅(qū)動器被格式化的同時執(zhí)行從所述主機傳輸給所述硬盤驅(qū)動器的讀取和寫入命令。
3.根據(jù)權(quán)利要求1的方法,還包括響應(yīng)于接收所述格式化命令,通過將初始化模型存入所述設(shè)備中的邏輯塊地址中而開始格式化所述設(shè)備;以及在格式化所述設(shè)備的同時,執(zhí)行所述讀取和寫入命令,以便從所述邏輯塊地址中讀取數(shù)據(jù)和向所述邏輯塊地址寫入數(shù)據(jù)。
4.根據(jù)權(quán)利要求3的方法,還包括在格式化所述設(shè)備的同時,接收一個用以讀取包括在所述設(shè)備中的特定邏輯塊地址的命令;判斷所述特定邏輯塊地址是否已被格式化;響應(yīng)于所述特定邏輯塊地址已被格式化的判斷結(jié)果,從所述邏輯塊地址中讀取數(shù)據(jù)以便作為對所述讀取命令的響應(yīng)而返回;以及響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果,將初始化數(shù)據(jù)作為對所述讀取命令的響應(yīng)而返回。
5.根據(jù)權(quán)利要求4的方法,還包括通過讀取包括在所述硬盤驅(qū)動器中的寫入表來判斷所述特定邏輯塊地址是否已被格式化;以及所述硬盤驅(qū)動器針對每個已被格式化的邏輯塊地址而包含一個指示。
6.根據(jù)權(quán)利要求3的方法,還包括在格式化所述設(shè)備的同時,接收將特定數(shù)據(jù)寫入包括在所述設(shè)備中的特定邏輯塊地址的命令;判斷所述特定邏輯塊地址是否已被格式化;響應(yīng)于所述特定邏輯塊地址已經(jīng)被格式化的判斷結(jié)果,將所述特定數(shù)據(jù)寫入所述邏輯塊地址;以及響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果,將所述特定數(shù)據(jù)寫入所述邏輯塊地址并存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示。
7.根據(jù)權(quán)利要求6的方法,還包括通過讀取包括在所述硬盤驅(qū)動器中的寫入表來判斷所述特定邏輯塊地址是否已經(jīng)被格式化;所述硬盤驅(qū)動器針對每個已被格式化的邏輯塊地址而包含一個指示;所述硬盤驅(qū)動器針對每個已寫入實際數(shù)據(jù)的邏輯塊地址而包含一個指示;以及所述將特定數(shù)據(jù)寫入所述邏輯塊地址并存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示的步驟包括將所述特定數(shù)據(jù)寫入所述邏輯塊地址和在所述寫入表中存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示。
8.根據(jù)權(quán)利要求1的方法,還包括格式化所述設(shè)備包括對所述設(shè)備中的每個邏輯塊地址,判斷所述邏輯塊地址是否已被格式化;響應(yīng)于所述邏輯塊地址還未被格式化的判斷結(jié)果,判斷實際數(shù)據(jù)是否已存儲在所述邏輯塊地址中;響應(yīng)于所述邏輯塊地址還未被格式化并且沒有包括實際數(shù)據(jù)的判斷結(jié)果,將初始化數(shù)據(jù)寫入所述邏輯塊地址;以及響應(yīng)于所述邏輯塊地址已經(jīng)被初始化或已包括實際數(shù)據(jù)的判斷結(jié)果,跳過所述邏輯塊地址而不將所述初始化數(shù)據(jù)寫入所述邏輯塊地址。
9.一種用于在數(shù)據(jù)存儲設(shè)備中允許在所述設(shè)備進行格式化的同時對所述設(shè)備進行訪問的裝置,所述裝置包括在所述設(shè)備中從主機接收的格式化命令;在所述設(shè)備已被格式化之前返回給所述主機的命令完成響應(yīng),其中所述主機在向所述設(shè)備傳送任一讀取或?qū)懭朊钪暗却雒钔瓿身憫?yīng);以及在所述設(shè)備進行格式化的同時被執(zhí)行的、從所述主機傳送到所述設(shè)備的讀取和寫入命令。
10.根據(jù)權(quán)利要求9的裝置,還包括所述設(shè)備是包括盤驅(qū)動器控制器的硬盤驅(qū)動器;所述盤驅(qū)動器控制器從主機接收格式化命令,以格式化所述硬盤驅(qū)動器;所述盤驅(qū)動器控制器在完成對所述硬盤驅(qū)動器格式化之前向所述主機返回命令完成響應(yīng),其中所述主機在將任一讀取或?qū)懭朊顐魉徒o所述硬盤驅(qū)動器之前等待所述命令完成響應(yīng);以及所述盤驅(qū)動器控制器在所述硬盤驅(qū)動器被格式化的同時執(zhí)行從所述主機傳輸給所述硬盤驅(qū)動器的讀取和寫入命令。
11.根據(jù)權(quán)利要求9的裝置,還包括響應(yīng)于接收所述格式化命令,通過將一個初始化模型存入所述設(shè)備中的邏輯塊地址而使所述設(shè)備被格式化;以及在格式化所述設(shè)備的同時執(zhí)行所述讀取和寫入命令,以便從所述邏輯塊地址中讀取數(shù)據(jù)和向所述邏輯塊地址寫入數(shù)據(jù)。
12.根據(jù)權(quán)利要求11的裝置,還包括在格式化所述設(shè)備的同時接收一個用以讀取包括在所述設(shè)備中的特定邏輯塊地址的命令;所述設(shè)備包括一個控制器,用于判斷所述特定邏輯塊地址是否已被格式化;所述控制器響應(yīng)于所述特定邏輯塊地址已被格式化的判斷結(jié)果,從所述邏輯塊地址中讀取數(shù)據(jù)以作為對所述讀取命令的響應(yīng)而返回;以及所述控制器響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果,將初始化數(shù)據(jù)作為對所述讀取命令的響應(yīng)而返回。
13.根據(jù)權(quán)利要求12的裝置,還包括所述控制器通過讀取包括在所述硬盤驅(qū)動器中的寫入表,來判斷所述特定邏輯塊地址是否已被格式化;以及所述硬盤驅(qū)動器針對每個已被格式化的邏輯塊地址而包含一個指示。
14.根據(jù)權(quán)利要求11的裝置,還包括在格式化所述設(shè)備的同時,所述設(shè)備包括一個控制器,用于接收一個將特定數(shù)據(jù)寫入包括在所述設(shè)備中的特定邏輯塊地址的命令;所述控制器判斷所述特定邏輯塊地址是否已被格式化;所述控制器響應(yīng)于所述特定邏輯塊地址已經(jīng)被格式化的判斷結(jié)果,將所述特定數(shù)據(jù)寫入所述邏輯塊地址;以及所述控制器響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果,將所述特定數(shù)據(jù)寫入所述邏輯塊地址,并存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示。
15.根據(jù)權(quán)利要求14的裝置,還包括所述控制器通過讀取包括在所述硬盤驅(qū)動器中的寫入表來判斷所述特定邏輯塊地址是否已經(jīng)被格式化;所述硬盤驅(qū)動器針對每個已被格式化的邏輯塊地址而包含一個指示;所述硬盤驅(qū)動器針對每個已寫入實際數(shù)據(jù)的邏輯塊地址而包含一個指示;以及所述控制器將特定數(shù)據(jù)寫入所述邏輯塊地址并存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示還包括所述控制器將所述特定數(shù)據(jù)寫入所述邏輯塊地址和在所述寫入表中存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示。
16.根據(jù)權(quán)利要求9的裝置,還包括所述設(shè)備包括一個用于格式化所述設(shè)備的控制器,包括針對所述設(shè)備中的每個邏輯塊地址,所述控制器判斷所述邏輯塊地址是否已被格式化;響應(yīng)于所述邏輯塊地址還未被格式化的判斷結(jié)果,所述控制器判斷實際數(shù)據(jù)是否已存儲在所述邏輯塊地址中;響應(yīng)于所述邏輯塊地址還未被格式化并且沒有包括實際數(shù)據(jù)的判斷結(jié)果,所述控制器將初始化數(shù)據(jù)寫入所述邏輯塊地址;以及響應(yīng)于所述邏輯塊地址已經(jīng)被初始化或已包括實際數(shù)據(jù)的判斷結(jié)果,所述控制器跳過所述邏輯塊地址而不將所述初始化數(shù)據(jù)寫入所述邏輯塊地址。
17.一種用于允許在存儲設(shè)備進行格式化的同時對所述設(shè)備進行訪問的計算機程序產(chǎn)品,所述產(chǎn)品包括用于在所述設(shè)備中從主機接收一個格式化命令的指令;用于在完成對所述設(shè)備的格式化之前將一個命令完成響應(yīng)返回給所述主機的指令,其中所述主機在向所述設(shè)備傳送任一讀取或?qū)懭朊钪暗却雒钔瓿身憫?yīng);以及用于在所述設(shè)備進行格式化的同時執(zhí)行從所述主機傳送到所述設(shè)備的讀取和寫入命令的指令。
18.根據(jù)權(quán)利要求17的產(chǎn)品,還包括用于在格式化所述設(shè)備的同時接收一個命令以讀取包括在所述設(shè)備中的特定邏輯塊地址的指令;用于判斷所述特定邏輯塊地址是否已被格式化的指令;用于響應(yīng)于所述特定邏輯塊地址已被格式化的判斷結(jié)果,從所述邏輯塊地址中讀取數(shù)據(jù)以便作為對所述讀取命令的響應(yīng)而返回的指令;以及用于響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果,將初始化數(shù)據(jù)作為對所述讀取命令的響應(yīng)而返回的指令。
19.根據(jù)權(quán)利要求18的產(chǎn)品,還包括用于在格式化所述設(shè)備的同時接收一個命令以將特定數(shù)據(jù)寫入包括在所述設(shè)備中的特定邏輯塊地址的指令;用于判斷所述特定邏輯塊地址是否已被格式化的指令;用于響應(yīng)于所述特定邏輯塊地址已經(jīng)被格式化的判斷結(jié)果而將所述特定數(shù)據(jù)寫入所述邏輯塊地址的指令;以及用于響應(yīng)于所述特定邏輯塊地址還未被格式化的判斷結(jié)果而將所述特定數(shù)據(jù)寫入所述邏輯塊地址并存儲一個表示所述邏輯塊地址包括實際數(shù)據(jù)的指示的指令。
20.根據(jù)權(quán)利要求19的產(chǎn)品,還包括用于格式化所述設(shè)備的指令,包括對所述設(shè)備中的每個邏輯塊地址,用于判斷所述邏輯塊地址是否已被格式化的指令;用于響應(yīng)于所述邏輯塊地址還未被格式化的判斷結(jié)果,判斷實際數(shù)據(jù)是否已存儲在所述邏輯塊地址中的指令;用于響應(yīng)于所述邏輯塊地址還未被格式化并且沒有包括實際數(shù)據(jù)的判斷結(jié)果,而將初始化數(shù)據(jù)寫入所述邏輯塊地址的指令;以及用于響應(yīng)于所述邏輯塊地址已經(jīng)被初始化或已包括實際數(shù)據(jù)的判斷結(jié)果,跳過所述邏輯塊地址而不將所述初始化數(shù)據(jù)寫入所述邏輯塊地址的指令。
全文摘要
本發(fā)明公開一種用于允許在數(shù)據(jù)存儲設(shè)備進行格式化的同時訪問該設(shè)備的方法和裝置。在該設(shè)備中從主機接收一個格式化命令,然后在完成對該設(shè)備的格式化之前將命令完成響應(yīng)傳送給該主機。該主機在向所述設(shè)備傳送任一讀取或?qū)懭朊钪暗却雒钔瓿身憫?yīng),在所述設(shè)備仍在進行格式化的同時執(zhí)行從所述主機傳送到所述設(shè)備的讀取和寫入命令。
文檔編號G06F3/06GK1790249SQ20051012468
公開日2006年6月21日 申請日期2005年11月14日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者小托馬斯·K.·福里爾, 杰森·埃里克·莫里, 阿貝爾·安里克·祖祖阿雷古伊 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1