專利名稱:將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的設(shè)備和方法。在某些實施例中,本發(fā)明涉及用于將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式,且同時在掉電(power loss)期間保持?jǐn)?shù)據(jù)完整性的設(shè)備和方法。
背景技術(shù):
數(shù)據(jù)存儲與檢索系統(tǒng)用于存儲由一個或多個主機系統(tǒng)提供的信息。這樣的數(shù)據(jù)存儲與檢索系統(tǒng)接收用于對一個或多個輔助存儲設(shè)備寫入信息的請求,并請求從這樣一個或多個輔助存儲設(shè)備檢索信息。當(dāng)接收寫入請求時,系統(tǒng)將自主機接收的信息存儲在數(shù)據(jù)緩存中。在某些實施方式中,也將該信息的拷貝存儲在非易失性存儲設(shè)備中。當(dāng)接收到讀出請求時,系統(tǒng)從一個或多個輔助存儲設(shè)備回調(diào)信息,并將該信息移至數(shù)據(jù)緩存。從而,系統(tǒng)針對存儲設(shè)備以及數(shù)據(jù)緩存連續(xù)不斷地來回移動信息。
如果數(shù)據(jù)緩存中所放置的數(shù)據(jù)按第一扇區(qū)格式寫入,并且在一個或多個存儲設(shè)備中所放置的數(shù)據(jù)按第二扇區(qū)格式寫入,則將需要扇區(qū)格式轉(zhuǎn)換設(shè)備。本發(fā)明申請人發(fā)現(xiàn),所需要的即為扇區(qū)格式轉(zhuǎn)換設(shè)備以及使用該設(shè)備的方法,所述設(shè)備將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式且在掉電期間保持?jǐn)?shù)據(jù)完整性。申請人的設(shè)備和方法將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式且同時在掉電期間保持?jǐn)?shù)據(jù)完整性。在某些實施例中,申請人的設(shè)備和方法遵循SFF-8045規(guī)范下的電源故障報警協(xié)議。
發(fā)明內(nèi)容
本發(fā)明包括用于將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的設(shè)備。申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備包括處理器和微碼,微碼使處理器將具有第一扇區(qū)格式的(N)個第一扇區(qū)覆蓋到具有第二扇區(qū)格式的(M)個第二扇區(qū)上,其中,該扇區(qū)格式轉(zhuǎn)換設(shè)備不包含包括用戶模式以及內(nèi)核模式的操作系統(tǒng)。
本發(fā)明還包括使用申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備的方法。該方法提供有申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備和信息存儲與檢索系統(tǒng),該信息存儲與檢索系統(tǒng)包含有包括按第一扇區(qū)格式寫入的多個第一扇區(qū)的信息,和數(shù)據(jù)存儲設(shè)備,其中數(shù)據(jù)存儲設(shè)備包括信息存儲介質(zhì),信息存儲介質(zhì)包括均包括第二扇區(qū)格式的多個第二扇區(qū),其中,扇區(qū)格式轉(zhuǎn)換設(shè)備與數(shù)據(jù)存儲設(shè)備互連。
該方法將包括(N)個第一扇區(qū)的第一數(shù)據(jù)提供給申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備。然后,該方法將(N)個第一扇區(qū)覆蓋到(M)個第二扇區(qū)上形成第二數(shù)據(jù)。之后,該方法將第二數(shù)據(jù)提供給用于將該第二數(shù)據(jù)寫入到信息存儲介質(zhì)的數(shù)據(jù)存儲設(shè)備。
結(jié)合附圖,根據(jù)后面的詳細(xì)描述,將更好地理解本發(fā)明,附圖中,相同的附圖標(biāo)記用于表示相同的元件,其中圖1的框圖表示申請人的數(shù)據(jù)存儲與檢索系統(tǒng)的一個實施例;圖2的框圖表示將多個數(shù)據(jù)存儲設(shè)備互連到控制器的多個扇區(qū)格式轉(zhuǎn)換設(shè)備;圖3的流程圖簡要說明申請人的方法;圖4的流程圖簡要說明申請人的方法中的附加步驟;圖5的框圖表示包括按第一扇區(qū)格式寫入的多個扇區(qū)的DMA數(shù)據(jù)有效載荷到具有第二扇區(qū)格式的多個扇區(qū)的映射;圖6的流程圖簡要說明申請人的電源故障報警算法的步驟;以及圖7的框圖表示圖6所示電源故障報警算法的一部分。
具體實施例方式
下面,將參照附圖,描述本發(fā)明的優(yōu)選實施例,其中,相同的附圖標(biāo)記表示相同或相似的元件。本發(fā)明將被描述為在信息存儲與檢索系統(tǒng)中得以實現(xiàn),該信息存儲與檢索系統(tǒng)包含有兩個集群、多個主機適配器、多個設(shè)備適配器和數(shù)據(jù)緩存。然而,以下本發(fā)明關(guān)于在掉電期間保持?jǐn)?shù)據(jù)完整性的方法的描述并不意味著將本發(fā)明局限于數(shù)據(jù)處理應(yīng)用,因為能夠?qū)⒋颂幩龅陌l(fā)明普遍用于扇區(qū)格式轉(zhuǎn)換。
現(xiàn)在參照圖1,信息存儲與檢索系統(tǒng)100能夠通過通信鏈路395與主機390進行通信。圖1所示實施例顯示出單個主機計算機。在其他實施例中,申請人的信息存儲與檢索系統(tǒng)能夠與多個主機計算機進行通信。
主機計算機390包括計算機系統(tǒng),如大型機、個人計算機、工作站以及它們的組合,該計算機系統(tǒng)包括操作系統(tǒng),諸如Windows,AIX,Unix,MVS,LINUX等(Windows為微軟公司的注冊商標(biāo),AIX為注冊商標(biāo),MVS為IBM公司的商標(biāo),Unix為通過Open Group專門特許的美國以及其他國家的注冊商標(biāo))。在某些實施例中,主機計算機390還包括存儲管理程序。在主機計算機390中的存儲管理程序可包括本領(lǐng)域中已知的用于管理到數(shù)據(jù)存儲與檢索系統(tǒng)(如在IBM MVS操作系統(tǒng)中所實現(xiàn)的IBM DFSMS)的數(shù)據(jù)傳輸?shù)拇鎯芾眍愋统绦虻墓δ堋?br>
在某些實施例中,申請人的信息存儲與檢索系統(tǒng)100包括設(shè)置在四個主機機架(host bay)101,106,111和116中的多個主機適配器102-105,107-110,112-115和117-120。在其他實施例中,申請人的信息存儲與檢索系統(tǒng)包括少于16個的主機適配器。不管在申請人的系統(tǒng)的任何實施例中所設(shè)置的主機適配器的數(shù)量有多少,這些主機適配器均包括對中央處理/緩存單元130和140具有同樣訪問的共享資源。每個主機適配器可包括一個或多個光纖通道端口,一個或多個FICON端口,一個或多個ESCON端口,或一個或多個SCSI端口。每個主機適配器通過互連總線121與兩個集群相連,以便每個集群能夠處理來自任何主機適配器的I/O。
處理器部分130包括處理器132和緩存134。在某些實施例中,處理器部分130還包括存儲器133。在某些實施例中,存儲器設(shè)備133包括隨機存取存儲器。在某些實施例中,存儲器設(shè)備133包括非易失性存儲器。
處理器部分140包括處理器142和緩存144。在某些實施例中,處理器部分140還包括存儲器143。在某些實施例中,存儲器設(shè)備143包括隨機存取存儲器。在某些實施例中,存儲器設(shè)備143包括非易失性存儲器。
I/O部分160包括多個設(shè)備適配器,如設(shè)備適配器165,166,167和168。I/O部分170還包括多個設(shè)備適配器,如設(shè)備適配器175,176,177和178。
在申請人的系統(tǒng)的某些實施例中,在申請人的信息存儲與檢索系統(tǒng)中所設(shè)置的單個卡上,將一個或多個主機適配器,處理器部分130和一個或多個設(shè)備適配器封裝在一起。同樣,在某些實施例中,在申請人的信息存儲與檢索系統(tǒng)中所設(shè)置的另一卡上,設(shè)置一個或多個主機適配器,處理器部分160和一個或多個設(shè)備適配器。在這些實施例中,申請人的系統(tǒng)100包括與多個數(shù)據(jù)存儲設(shè)備互連的兩個卡。
在圖1所示實施例中,將十六個數(shù)據(jù)存儲設(shè)備組織為兩個陣列,即陣列“A”和陣列“B”。圖1所示實施例顯示出兩個存儲設(shè)備陣列。在其他實施例中,申請人的信息存儲與檢索系統(tǒng)包括多于兩個的存儲設(shè)備陣列。每個存儲陣列在主機計算機看來是一個或多個邏輯設(shè)備。
在某些實施例中,一個或多個數(shù)據(jù)存儲設(shè)備包括多個硬盤驅(qū)動器單元。在圖1所示實施例中,盤陣列“A”包括盤驅(qū)動器181,182,183,191,192,193和194。盤陣列“B”包括盤驅(qū)動器185,186,187,188,196,197和198。在某些實施例中,陣列“A”和“B”采用RAID協(xié)議。在某些實施例中,陣列“A”和“B”包括有時稱為JBOD的陣列,即“簡單磁盤捆綁(Just a Bunch Of Disks)”,該陣列并不根據(jù)RAID進行配置。本領(lǐng)域技術(shù)人員應(yīng)該理解,RAID(獨立冗余磁盤陣列)等級包括設(shè)置成盤驅(qū)動器陣列以獲得超越單個大型驅(qū)動器的性能,容量和/或可靠性的獨立盤驅(qū)動器。
如圖1所示實施例顯示出兩個存儲設(shè)備陣列。在某些實施例中,申請人的系統(tǒng)包括單個存儲設(shè)備陣列。在另外一些實施例中,申請人的系統(tǒng)包括多于兩個的存儲設(shè)備陣列。
現(xiàn)在參看圖2,無論申請人的信息存儲與檢索系統(tǒng)中使用什么樣的數(shù)據(jù)存儲介質(zhì),如多個硬盤,包括有這些存儲介質(zhì)的一個或多個的每個數(shù)據(jù)存儲設(shè)備均通過通信鏈路215與設(shè)備控制器210互連。在某些實施例中,控制器210包括處理器212和存儲器214。在某些實施例中,存儲器214包括非易失性存儲器。
在某些實施例中,設(shè)備控制器210包括設(shè)備適配器,例如設(shè)備適配器165(圖1)。在某些實施例中,設(shè)備控制器210包括RAID控制器。在某些實施例中,通信鏈路215包括光纖通道仲裁環(huán)。在圖2所示實施例中,通信鏈路215包括鏈路段225,245,265和285。
圖2所示環(huán)路結(jié)構(gòu)包括申請人的系統(tǒng)的一個實施例。在其他實施例中,鏈路215包括交換結(jié)構(gòu)或交換機與環(huán)路拓?fù)涞慕M合。在其他實施例中,鏈路215包括交換機的雙FC-AL環(huán)路,在此之中,設(shè)備控制器210與兩個FC-AC環(huán)路相連。每個環(huán)路包含有一個或多個光纖通道交換機。轉(zhuǎn)換設(shè)備220,240等點對點地連接到每個環(huán)路上的交換機。在其他實施例中,每個環(huán)路包含有單個轉(zhuǎn)換設(shè)備,該轉(zhuǎn)換設(shè)備執(zhí)行使每個環(huán)上的多個點對點設(shè)備露面(surface)的交換功能。
在某些實施例中,轉(zhuǎn)換設(shè)備包括用于執(zhí)行從第一扇區(qū)格式到第二扇區(qū)格式的扇區(qū)尺寸轉(zhuǎn)換(“扇區(qū)尺寸轉(zhuǎn)換”)的單元,其中,通信協(xié)議對于第一扇區(qū)格式以及第二扇區(qū)格式是相同的。在其他實施例中,轉(zhuǎn)換設(shè)備包括用于執(zhí)行“扇區(qū)尺寸轉(zhuǎn)換”以及從第一通信協(xié)議到第二通信協(xié)議的轉(zhuǎn)換(“協(xié)議轉(zhuǎn)換”)的單元。在某些實施例中,第一通信協(xié)議為光纖通道協(xié)議,第二通信協(xié)議為串行ATA或ATA。在其他實施例中,第一通信協(xié)議為串行附加SCSI(Serial Attached SCSI),第二通信協(xié)議為串行ATA或ATA。
在所有實施例中,申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備能夠進行扇區(qū)尺寸轉(zhuǎn)換。在某些實施例中,申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備還能夠進行協(xié)議轉(zhuǎn)換。在此所引述的扇區(qū)格式轉(zhuǎn)換設(shè)備包括申請人的能夠進行扇區(qū)格式轉(zhuǎn)換的設(shè)備,也包括申請人的能夠進行扇區(qū)格式轉(zhuǎn)換和協(xié)議轉(zhuǎn)換的設(shè)備。
每個存儲設(shè)備通過扇區(qū)格式轉(zhuǎn)換設(shè)備,如設(shè)備220,240,260和280,與通信鏈路215互連,其中,設(shè)備220,240,260和280分別將存儲設(shè)備230,250,270和290互連到通信環(huán)路215。扇區(qū)格式轉(zhuǎn)換設(shè)備220通過通信鏈路232將存儲設(shè)備230互連到環(huán)路215。
通信鏈路225將扇區(qū)格式轉(zhuǎn)換設(shè)備220與扇區(qū)格式轉(zhuǎn)換設(shè)備240互連。扇區(qū)格式轉(zhuǎn)換設(shè)備240通過通信鏈路252將存儲設(shè)備250與環(huán)路215互連。通信鏈路245將扇區(qū)格式轉(zhuǎn)換設(shè)備240與扇區(qū)格式轉(zhuǎn)換設(shè)備260互連。扇區(qū)格式轉(zhuǎn)換設(shè)備260通過通信鏈路272將存儲設(shè)備270與環(huán)路215互連。
通信鏈路265將扇區(qū)格式轉(zhuǎn)換設(shè)備260與扇區(qū)格式轉(zhuǎn)換設(shè)備280互連。扇區(qū)格式轉(zhuǎn)換設(shè)備280通過通信鏈路292將存儲設(shè)備290與環(huán)路215互連。通信鏈路285將扇區(qū)格式轉(zhuǎn)換設(shè)備280與通信環(huán)路215互連。通信鏈路232,252,272和292各自從諸如ATA或S-ATA的本機驅(qū)動線中選出。
每個扇區(qū)格式轉(zhuǎn)換設(shè)備包括數(shù)據(jù)緩沖器,如數(shù)據(jù)緩沖器222,242,262和282。每個扇區(qū)格式轉(zhuǎn)換設(shè)備還包括處理器,如處理器224,244,264和284。每個扇區(qū)格式轉(zhuǎn)換設(shè)備還包括持久性存儲器(persistentmemory),如持久性存儲器226,246,266和286。申請人用持久性存儲器表示非易失性存儲器,即能夠在市電(utility power)掉電的情況下仍然保存數(shù)據(jù)的存儲器。在某些實施例中,非易失性存儲器器件226,246,266和286各自從包括一個或多個EEPROM(電可擦可編程只讀存儲器),一個或多個閃存,電池后備RAM,硬盤驅(qū)動器,以及以上的組合等等的組中選出。在某些實施例中,每個扇區(qū)格式轉(zhuǎn)換設(shè)備還包括數(shù)據(jù)隊列,如數(shù)據(jù)隊列228,248,268和288。
此外,每個扇區(qū)格式轉(zhuǎn)換設(shè)備還包括使處理器將一個或多個第一扇區(qū)覆蓋到一個或多個第二扇區(qū)上以將第一數(shù)據(jù)轉(zhuǎn)換成第二數(shù)據(jù)的微碼。例如,在圖2所示實施例中,設(shè)備220包括設(shè)置在處理器224中的微碼223。設(shè)備240包括設(shè)置在處理器244中的微碼243。設(shè)備260包括設(shè)置在處理器264中的微碼263。設(shè)備280包括設(shè)置在處理器284中的微碼283。在某些實施例中,設(shè)備220,240,260和280不包括操作系統(tǒng)。申請人用“操作系統(tǒng)”表示用于對設(shè)備進行操作的指令/函數(shù),其中某些這樣的指令/函數(shù)設(shè)置在用戶模式部分中,其他指令/函數(shù)設(shè)置在內(nèi)核模式部分中。本領(lǐng)域技術(shù)人員應(yīng)該理解,用戶應(yīng)用程序可調(diào)用設(shè)置在用戶模式部分中的某些函數(shù),但在未收到授權(quán)的條件下,不可訪問設(shè)置在內(nèi)核模式部分中的函數(shù)。
在某些實施例中,自一個或多個主機計算機接收的數(shù)據(jù)最初被寫入到設(shè)置在申請人的信息存儲與檢索系統(tǒng),例如系統(tǒng)100(圖1),中的數(shù)據(jù)緩存,如數(shù)據(jù)緩存134(圖1)。在某些實施例中,使用第一扇區(qū)格式將該數(shù)據(jù)寫入到數(shù)據(jù)緩存。在某些實施例中,主機計算機利用不同于盤的本機扇區(qū)尺寸的扇區(qū)尺寸,在鏈路395上使用塊存儲協(xié)議將數(shù)據(jù)寫入到存儲子系統(tǒng)。在其他實施例中,存儲子系統(tǒng)將其自身的數(shù)據(jù)添加到主機所寫入的數(shù)據(jù)中,以生成其自身的扇區(qū)尺寸。對于主機正在使用基于分塊的協(xié)議如SCSI或通過將諸如由zSeries系統(tǒng)使用的ECKD數(shù)據(jù)格式之類的基于記錄的數(shù)據(jù)分成固定塊扇區(qū)的情形,這是通過將數(shù)據(jù)前插或追加到扇區(qū)來實現(xiàn)的。
在某些實施例中,該第一扇區(qū)格式每扇區(qū)包括520個字節(jié)的數(shù)據(jù)。在某些實施例中,該第一扇區(qū)格式每扇區(qū)包括524個字節(jié)的數(shù)據(jù)。在某些實施例中,該第一扇區(qū)格式每扇區(qū)包括528個字節(jié)的數(shù)據(jù)。在申請人的方法的某些實施例中,在將數(shù)據(jù)提供給一個或多個附連的存儲設(shè)備之前,將數(shù)據(jù)從前述的第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式。在某些實施例中,該第二扇區(qū)格式每扇區(qū)包括512個字節(jié)的數(shù)據(jù)。
在申請人的方法的某些實施例中,數(shù)據(jù)從第一扇區(qū)格式到第二扇區(qū)格式的轉(zhuǎn)換是通過扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,扇區(qū)格式轉(zhuǎn)換設(shè)備220)來實現(xiàn)的。從而,扇區(qū)格式轉(zhuǎn)換設(shè)備220接收第一扇區(qū)格式的數(shù)據(jù),將該數(shù)據(jù)轉(zhuǎn)換成第二扇區(qū)格式,然后將該第二扇區(qū)格式的數(shù)據(jù)提供給附連的存儲設(shè)備。在某些實施例中,扇區(qū)格式轉(zhuǎn)換設(shè)備從數(shù)據(jù)緩存,如數(shù)據(jù)緩存134(圖1),接收第一扇區(qū)格式的數(shù)據(jù)。在某些實施例中,扇區(qū)格式轉(zhuǎn)換設(shè)備從與申請人的信息存儲與檢索系統(tǒng)互連的主機計算機,如主機計算機390(圖1),接收第一扇區(qū)格式的數(shù)據(jù)。
圖3簡要說明了申請人的方法將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的步驟。在步驟310中,申請人的方法提供包括(N)個第一扇區(qū)的第一數(shù)據(jù)。在某些實施例中,步驟310包含提供包括(N)個第一扇區(qū)的直接存儲器存取(“DMA”)數(shù)據(jù)有效載荷。申請人通過“第一扇區(qū)”表示包括按第一扇區(qū)格式寫入的數(shù)據(jù)的扇區(qū)。在某些實施例中,該第一扇區(qū)格式包括520字節(jié)的扇區(qū)。在其他實施例中,該第一扇區(qū)格式包括524字節(jié)的扇區(qū)。在又一其他實施例中,該第一扇區(qū)格式包括528字節(jié)的扇區(qū)。
在某些實施例中,通過一個或多個主機計算機,如主機計算機390(圖1),將第一數(shù)據(jù),例如包括(N)個第一扇區(qū)的DMA數(shù)據(jù)有效載荷,提供給設(shè)置在信息存儲與檢索系統(tǒng),例如系統(tǒng)100(圖1),中的扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2)。在某些實施例中,將包括(N)個第一扇區(qū)的第一數(shù)據(jù)從設(shè)置在信息存儲與檢索系統(tǒng),例如系統(tǒng)100(圖1),內(nèi)的數(shù)據(jù)緩存,例如數(shù)據(jù)緩存134(圖1,2),提供給設(shè)置在該同樣的信息存儲與檢索系統(tǒng)中的扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2)。
在步驟320中,申請人的方法將包括(N)個第一扇區(qū)的第一數(shù)據(jù)轉(zhuǎn)換成包括(M)個第二扇區(qū)的第二數(shù)據(jù)。在某些實施例中,步驟320包含將包括(N)個第一扇區(qū)的DMA數(shù)據(jù)有效載荷覆蓋到(M)個第二扇區(qū)上,以形成包括(M)個第二扇區(qū)的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。申請人通過“第二扇區(qū)”表示包括按第二扇區(qū)格式寫入的數(shù)據(jù)的扇區(qū)。在某些實施例中,該第二扇區(qū)格式包括512字節(jié)扇區(qū)。在某些實施例中,通過扇區(qū)格式轉(zhuǎn)換設(shè)備,如設(shè)備220(圖2),來執(zhí)行步驟320。本領(lǐng)域技術(shù)人員應(yīng)該理解,如果第一扇區(qū)格式每扇區(qū)包括(X)字節(jié),且如果第二扇區(qū)格式每扇區(qū)包括(Y)字節(jié),其中,(X)大于(Y),則(N)小于(M)?;蛘?,如果(X)小于(Y),則(N)大于(M)。
現(xiàn)參照圖3和5,在某些實施例中,在步驟310中,申請人的方法提供包括寫入到總共A+1個連續(xù)第一扇區(qū)的數(shù)據(jù)的父DMA數(shù)據(jù)有效載荷,即DMA數(shù)據(jù)有效載荷510。提供連續(xù)的第一扇區(qū)還提供了順序有關(guān)的數(shù)據(jù),以正確創(chuàng)建父DMA數(shù)據(jù)有效載荷。此包括父DMA有效載荷的數(shù)據(jù)可駐留在主機計算機中的數(shù)據(jù)緩存上,或可在前一操作中生成。
在這些實施例中,在步驟320中,申請人的方法將在步驟310中接收的父DMA數(shù)據(jù)有效載荷覆蓋在多個連續(xù)第二扇區(qū)上,以形成轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540。在步驟320中,在將DMA數(shù)據(jù)有效載荷510覆蓋在多個連續(xù)第二扇區(qū)上以形成轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540之前,申請人的方法只預(yù)取和讀取開始的第二扇區(qū)(即扇區(qū)550)和末尾的第二扇區(qū)(即扇區(qū)560)。在某些實施例中,步驟320由扇區(qū)格式轉(zhuǎn)換設(shè)備,如設(shè)備220(圖2),來執(zhí)行。
以下給出的示例I用于進一步說明,以使本領(lǐng)域技術(shù)人員明白如何實現(xiàn)和使用本發(fā)明,以及理解本發(fā)明的目前優(yōu)選實施例。然而,該示例并不意在限制本發(fā)明的范圍,本發(fā)明的范圍僅由所附權(quán)利要求來限定。
示例I在該示例I中,DMA有效載荷510包括約8.4千字節(jié)數(shù)據(jù)。此外,在該示例中,第一扇區(qū)格式每扇區(qū)包括約524個字節(jié)。在該示例I中,則DMA有效載荷510包括約16個第一扇區(qū),即,在圖5中的“A”等于15。DMA數(shù)據(jù)有效載荷510以第(i)個第一扇區(qū)(即按照第一扇區(qū)格式寫入的扇區(qū)520)開始,以第(i)+15個第一扇區(qū)(即按照第一扇區(qū)格式寫入的扇區(qū)530)結(jié)束。
在該示例I中,第二扇區(qū)格式包括512字節(jié)的扇區(qū)。此外在該示例中,轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540包括約8.4千字節(jié)的數(shù)據(jù)。因此,在該示例I中,轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540包括約16.4個連續(xù)的第二扇區(qū)。從而,在該示例I中,轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540以按照第二扇區(qū)格式寫入的第(j)個扇區(qū)(即扇區(qū)550)開始,并擴展到第17個連續(xù)第二扇區(qū)(即扇區(qū)560)。
利用該示例,再次參照圖5所示實施例,處于轉(zhuǎn)換DMA數(shù)據(jù)有效載荷540的開始的第(j)個第二扇區(qū),即扇區(qū)550,包括兩個數(shù)據(jù)部分,即數(shù)據(jù)部分552和數(shù)據(jù)部分554。數(shù)據(jù)部分552包括“舊”數(shù)據(jù),即先前寫入到扇區(qū)550的數(shù)據(jù)。數(shù)據(jù)部分554包括寫入到作為DMA數(shù)據(jù)有效載荷540的開始部分的扇區(qū)550的“新”數(shù)據(jù)。
同樣,再次參照如圖5所示實施例,處于轉(zhuǎn)換DMA有效載荷540末尾的第(j)+16個第二扇區(qū),即扇區(qū)560,包括兩個數(shù)據(jù)部分,即數(shù)據(jù)部分562和數(shù)據(jù)部分564。數(shù)據(jù)部分562包括寫入到扇區(qū)560的“新”數(shù)據(jù),數(shù)據(jù)部分564包括“舊”數(shù)據(jù),即先前寫入到作為DMA數(shù)據(jù)有效載荷540的末尾部分的扇區(qū)550的數(shù)據(jù)。
對于任何數(shù)據(jù)存儲與檢索系統(tǒng),需要保持所存儲的數(shù)據(jù)與主機的操作視圖的一致性。必須保持操作的順序,使得數(shù)據(jù)按照其被由主機寫入到數(shù)據(jù)存儲與檢索系統(tǒng)的順序提供到存儲設(shè)備。因此,按照DMA數(shù)據(jù)有效載荷的格式使用的“舊”數(shù)據(jù)必須考慮到哪些數(shù)據(jù)將通過先前所形成的排隊的操作而被寫入到存儲設(shè)備中,并且使用適當(dāng)數(shù)據(jù)(來自先前排隊的操作的數(shù)據(jù)或自存儲設(shè)備獲取的數(shù)據(jù)),以保持從主機的角度的數(shù)據(jù)一致性。
再次參照圖3,在步驟330中,申請人的方法將步驟320中所形成的第二數(shù)據(jù)提供給數(shù)據(jù)存儲設(shè)備。在某些實施例中,步驟330包括將步驟320中形成的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷提供給目標(biāo)存儲設(shè)備,如存儲設(shè)備230(圖2)。
在步驟340中,目標(biāo)存儲設(shè)備將第二數(shù)據(jù)寫入到設(shè)置在數(shù)據(jù)存儲設(shè)備中的存儲介質(zhì)。在某些實施例中,步驟340包括將第二扇區(qū)格式的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到設(shè)置在數(shù)據(jù)存儲設(shè)備中的存儲介質(zhì)。
在某些實施例中,步驟310的第一數(shù)據(jù)由扇區(qū)格式轉(zhuǎn)換設(shè)備(如設(shè)備220)接收,并存儲在設(shè)置在該扇區(qū)格式轉(zhuǎn)換設(shè)備內(nèi)的緩沖器(如緩沖器222)中。在某些實施例中,在步驟330中,基本與步驟320的扇區(qū)轉(zhuǎn)換相同步地將第二數(shù)據(jù)提供給存儲設(shè)備。在其他實施例中,使第二數(shù)據(jù)有效載荷排隊,以便以后發(fā)送到存儲設(shè)備。
在某些實施例中,使用如圖4所示的步驟來實現(xiàn)圖3的方法。在步驟410中,申請人的方法提供包括多個連續(xù)第一扇區(qū)的DMA數(shù)據(jù)有效載荷,例如,DMA數(shù)據(jù)有效載荷510(圖5)。步驟410還包括對DMA有效載荷元數(shù)據(jù)提供DMA數(shù)據(jù)有效載荷。在某些實施例中,DMA有效載荷元數(shù)據(jù)包含有包括該DMA數(shù)據(jù)有效載荷的每個第一扇區(qū)的邏輯塊地址(“LBA”)。例如,參照如圖5所示實施例,步驟410包括針對第(i)至(并且包括)第(i)+A個第一扇區(qū)中的每個提供開始和末尾LBA。在其他實施例中,步驟410包括提供起始LBA和所要寫入的第一扇區(qū)的塊/扇區(qū)數(shù)。
在某些實施例中,在步驟410中,控制器(例如,圖2的控制器210)通過通信鏈路205(圖2)從數(shù)據(jù)緩存134(圖1,2)中檢索第(i)至(并且包括)第(i)+A個第一扇區(qū)。本領(lǐng)域技術(shù)人員應(yīng)該理解,此多個第一扇區(qū)中的每一個例如在數(shù)據(jù)緩沖上都具有開始和末尾邏輯塊地址。此外,在步驟410中,控制器(例如,圖2的控制器210)將此多個第一扇區(qū)以及這些扇區(qū)中的每個的LBA提供給扇區(qū)格式轉(zhuǎn)換設(shè)備。在某些實施例中,將DMA有效載荷元數(shù)據(jù)保存在存儲器214(圖2)中。在某些實施例中,接收扇區(qū)格式轉(zhuǎn)換設(shè)備將DMA數(shù)據(jù)有效載荷和DMA有效載荷元數(shù)據(jù)存儲在緩沖器(例如,圖2的緩沖器222)中。
在步驟420中,申請人的方法將步驟410的DMA數(shù)據(jù)有效載荷覆蓋到如結(jié)合步驟320(圖3)所述的多個連續(xù)的第二扇區(qū)上,以形成第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在某些實施例中,步驟420由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行。
在步驟430中,申請人的方法將步驟420的第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷進行排隊。在某些實施例中,步驟430包括將第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷排入設(shè)置在扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,設(shè)備220)中的隊列(例如,隊列228)中。在某些實施例中,步驟430由扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,設(shè)備220)來執(zhí)行。
在步驟440中,申請人的方法將步驟420中形成的第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷從隊列(例如,隊列228)提供給目標(biāo)數(shù)據(jù)存儲設(shè)備(例如,數(shù)據(jù)存儲設(shè)備230)。在某些實施例中,步驟440由扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,設(shè)備220)來執(zhí)行。
在步驟450中,申請人的方法提供并設(shè)置第(k)個進入目標(biāo)指示(Inflight Indicator),以表示第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷進入目標(biāo)(In Filght)。為此應(yīng)用的目的,“進入目標(biāo)”DMA數(shù)據(jù)有效載荷為提供給目標(biāo)數(shù)據(jù)存儲設(shè)備且仍未收到其寫入完成信號的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。
在某些實施例中,申請人的方法為提供給數(shù)據(jù)存儲設(shè)備的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷創(chuàng)建離散進入目標(biāo)指示。在某些實施例中,申請人的進入目標(biāo)指示包括可開啟或關(guān)閉的標(biāo)志。在某些實施例中,將這樣的標(biāo)志設(shè)置在被設(shè)置于扇區(qū)格式轉(zhuǎn)換設(shè)備中的設(shè)備微碼中。在某些實施例中,本發(fā)明的進入目標(biāo)指示包括可設(shè)置成“0”或“1”的位。在某些實施例中,將這樣的位設(shè)置在被設(shè)置于扇區(qū)格式轉(zhuǎn)換設(shè)備中的設(shè)備微碼中。此外,在步驟450中,申請人的方法設(shè)置第(k)個進入目標(biāo)指示,即與第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷相關(guān)聯(lián)的進入目標(biāo)指示,以顯示第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷處于“進入目標(biāo)”狀態(tài)。在某些實施例中,步驟450由扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,設(shè)備220)執(zhí)行。
在某些實施例中,步驟440和450基本同步地執(zhí)行。在其他實施例中,步驟440先于步驟450執(zhí)行。在另外其他實施例中,步驟450先于步驟440執(zhí)行。
在步驟460中,目標(biāo)數(shù)據(jù)存儲設(shè)備(例如,數(shù)據(jù)存儲設(shè)備230)接收第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷,并將該第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到設(shè)置在其中的數(shù)據(jù)存儲介質(zhì)(例如,數(shù)據(jù)存儲介質(zhì)236)。
在步驟470中,目標(biāo)數(shù)據(jù)存儲設(shè)備報告已將第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷已經(jīng)被寫入到介質(zhì)中。該報告可包括本領(lǐng)域技術(shù)人員所熟知的任何信令方法。例如,可通過通信接口將目標(biāo)數(shù)據(jù)存儲設(shè)備與發(fā)出方(issuing)扇區(qū)格式轉(zhuǎn)換設(shè)備連接。在某些實施例,目標(biāo)數(shù)據(jù)存儲驅(qū)動器向發(fā)出方扇區(qū)格式轉(zhuǎn)換設(shè)備提供寫入完成信號?;蛘?,在某些實施例中,發(fā)出方扇區(qū)格式轉(zhuǎn)換設(shè)備輪詢目標(biāo)數(shù)據(jù)存儲設(shè)備,以確定第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的狀態(tài)。
在步驟480中,申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備接收來自目標(biāo)數(shù)據(jù)存儲設(shè)備、關(guān)于已將第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到介質(zhì)中的報告。在某些實施例中,步驟470和480基本同步進行。
在步驟490中,申請人的方法重置第(k)個進入目標(biāo)指示,以顯示已將第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到介質(zhì)中。在某些實施例中,步驟490包括刪除第(k)個進入目標(biāo)指示。在其他實施例中,步驟490包括將第(k)個進入目標(biāo)位從“1”設(shè)置到“0”。在另外其他實施例中,步驟490包括關(guān)閉第(k)個進入目標(biāo)指示標(biāo)志。
圖4所示本發(fā)明的方法同步執(zhí)行多個步驟。例如,在420步驟中正在將第一扇區(qū)格式的DMA數(shù)據(jù)有效載荷轉(zhuǎn)換到具有第二扇區(qū)格式的DMA數(shù)據(jù)有效載荷,與此同時,在步驟430中,將先前轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷排隊,同時在步驟440中,正將轉(zhuǎn)換DMA有效載荷提供給一個或多個數(shù)據(jù)存儲設(shè)備,同時,在步驟460中,正通過一個或多個數(shù)據(jù)存儲設(shè)備將排隊的DMA數(shù)據(jù)有效載荷寫入到一個或多個存儲介質(zhì)中,而同時在步驟470中,一個或多個數(shù)據(jù)存儲設(shè)備正在提供寫入完成信號。
申請人用于將DMA數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到包括第二扇區(qū)的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的方法遵循SFF規(guī)范SFF-805的6.4.8.2節(jié),題為“Power Failure Warning”的規(guī)范(此后稱之為“PFW規(guī)范”),其在此被引作參考。本領(lǐng)域技術(shù)人員應(yīng)該理解,SFF委員會是成立用來以促進方式滿足盤工業(yè)要求的特別(ad hoc)小組。當(dāng)在1990年成立時,最初目標(biāo)局限于定義盤驅(qū)動器的事實機械封裝,以便其適合被裝入膝上型計算機以及其他小型產(chǎn)品中。在1992年11月,SFF委員會的目標(biāo)擴展至涵蓋需促進業(yè)界行動的其他領(lǐng)域。SFF規(guī)范的范圍較窄,以便縮短開發(fā)時間。在其他需求中,PFW規(guī)范要求當(dāng)進行寫入緩存時,數(shù)據(jù)存儲設(shè)備必須在塊邊界停止對非易失性存儲設(shè)備的寫入。
在某些實施例中,一個或多個申請人的數(shù)據(jù)存儲設(shè)備,諸如數(shù)據(jù)存儲設(shè)備230,包括有時稱為“S-ATA”的設(shè)備。本領(lǐng)域技術(shù)人員應(yīng)該理解,S-ATA設(shè)備采用串行ATA盤接口技術(shù)。
S-ATA基于串行信令技術(shù)。串行ATA屬于點對點連接,并允許將多個端口聚集到單個控制器(例如,圖2的控制器210)。S-ATA存儲設(shè)備無需支持PFW規(guī)范。申請人的方法兼容PFW規(guī)范,即便當(dāng)使用一個或多個S-ATA存儲設(shè)備時也是如此。
對于當(dāng)形成轉(zhuǎn)換DMA數(shù)據(jù)有效載荷和/或處理這些轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的同時申請人的設(shè)備接收到PFW信號的情形,申請人的方法轉(zhuǎn)換至PFW算法。利用該PFW算法,在接收到PFW信號后,申請人的方法對PFW時間間隔進行初始化,完成對已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷的發(fā)送,同時在PFW時間間隔內(nèi)盡可能繼續(xù)將先前轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷發(fā)送到數(shù)據(jù)存儲設(shè)備。當(dāng)PFW時間間隔終止時,申請人的方法保存在PFW時間間隔終止時仍然處于進入目標(biāo)狀態(tài)的每個DMA數(shù)據(jù)有效載荷的DMA有效載荷元數(shù)據(jù)。
對于當(dāng)執(zhí)行如圖4所示方法的同時申請人的設(shè)備產(chǎn)生和/或接收到PFW信號的情形,申請人的方法轉(zhuǎn)換到申請人的PFW算法。申請人的PFW算法在圖6中有簡要描述?,F(xiàn)參照圖4和6,當(dāng)檢測到PFW信號時,申請人的方法轉(zhuǎn)移到步驟610。步驟620包括接收該PFW信號。
圖4顯示出申請人的方法從步驟420到步驟610的轉(zhuǎn)移。如上所述,申請人的方法可同步執(zhí)行步驟410,420,430,440,450,460,470,480,和/或490。如果正在執(zhí)行步驟410,420,430,440,450,460,470,480,和/或490中的任何一個或多個步驟,并收到PFW信號,則申請人的方法轉(zhuǎn)移到步驟610。
在步驟610中,申請人的方法設(shè)置電源故障報警時間間隔。此外,PFW規(guī)范要求在PFW信號出現(xiàn)(assertion)后對一個或多個數(shù)據(jù)存儲設(shè)備提供滿功率至少4毫秒。在申請人的方法的某些實施例中,將PFW時間間隔設(shè)置成小于4毫秒。在某些實施例中,申請人的方法將PFW時間間隔設(shè)置成大約3毫秒。在該PFW時間間隔內(nèi),申請人的方法在向一個或多個數(shù)據(jù)存儲設(shè)備提供盡可能多的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的同時,對已轉(zhuǎn)換的DMA有效載荷完成進行中(in-progress)傳送。
在如圖6所示實施例中,顯示出步驟610先于步驟620中PFW信號的接收。在某些實施例中,步驟610可在PFW信號接收前的任何時刻執(zhí)行。在某些實施例中,將PFW時間間隔編碼到設(shè)置在申請人的扇區(qū)格式轉(zhuǎn)換設(shè)備中的固件中。在某些實施例中,在系統(tǒng)啟動期間對PFW時間間隔進行設(shè)置。在某些實施例中,PFW時間間隔可以由系統(tǒng)擁有者/操作者進行調(diào)整。
在某些實施例中,步驟610基本與步驟620中PFW信號的接收相同步地執(zhí)行。在這些實施例中,當(dāng)接收到PFW信號時,申請人的方法立即確定排隊的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的數(shù)量,并確定系統(tǒng)的容量,例如設(shè)備適配器的帶寬?;谶@些確定,申請人的方法設(shè)置適當(dāng)?shù)腜FW時間間隔。在這些同步的實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟610。
當(dāng)在步驟620中接收PFW信號之后,申請人的方法轉(zhuǎn)移到步驟625和步驟630。在步驟630中,申請人的方法開始在步驟610中設(shè)置的PFW時間間隔。在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟630。申請人的方法從步驟630轉(zhuǎn)移到步驟640。
在步驟625中,申請人的方法完成對已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷的發(fā)送。在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟625。申請人的方法從步驟625轉(zhuǎn)移到步驟635,其中,該方法對步驟625的DMA數(shù)據(jù)有效載荷的進入目標(biāo)指示進行設(shè)置。在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟635。申請人的方法從步驟635轉(zhuǎn)移到步驟640。
在步驟640中,申請人的方法繼續(xù)從數(shù)據(jù)隊列,例如隊列228(圖2)向一個或多個目標(biāo)數(shù)據(jù)存儲設(shè)備,例如數(shù)據(jù)存儲設(shè)備230(圖2),提供轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟640。
以下所給出的示例II進一步向本領(lǐng)域技術(shù)人員解釋如何實現(xiàn)和使用本發(fā)明以及理解其目前優(yōu)選實施例。該示例并不意在進行限制,而是僅由所附權(quán)利要求來限定本發(fā)明的范圍。
示例II現(xiàn)參看圖7,包括第(k)個,第(k)+1個和第(k)+2個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷710,720和730處于進入目標(biāo)狀態(tài),并在進入目標(biāo)隊列中保持未完成(outstanding)。在時刻T0發(fā)送第(k)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在時刻T1發(fā)送第(k)+1個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在時刻T2發(fā)送第(k)+2個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。
在時刻T3,申請人的方法開始向存儲設(shè)備發(fā)送第(k)+3個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷,即轉(zhuǎn)換有效載荷740。當(dāng)發(fā)送轉(zhuǎn)換DMA數(shù)據(jù)有效載荷740的同時,在先于完成轉(zhuǎn)換有效載荷740的發(fā)送的時刻T4,接收PFW信號。
通過使用如圖6所示申請人的電源故障報警算法,在步驟625中,申請人的方法完成轉(zhuǎn)換DMA數(shù)據(jù)有效載荷740的發(fā)送,并在步驟635中,申請人的方法將轉(zhuǎn)換DMA數(shù)據(jù)有效載荷740置于進入目標(biāo)狀態(tài)。
當(dāng)申請人的方法正在執(zhí)行步驟625和635的同時,申請人的方法在步驟640中正同時跟蹤到一個或多個目標(biāo)數(shù)據(jù)存儲設(shè)備的進入目標(biāo)轉(zhuǎn)換DMA數(shù)據(jù)有效載荷710,720,和730的狀態(tài)。
再次參看圖6,在步驟650中,申請人的方法確定PFW時間間隔是否已終止。在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟650。如果申請人的方法在步驟650中確定PFW時間間隔未終止,則該方法從步驟650轉(zhuǎn)移到步驟640,并繼續(xù)。
或者,如果申請人的方法在步驟650中確定PFW時間間隔已終止,則該方法從步驟650轉(zhuǎn)移到步驟660,其中,該方法保存在PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的每個轉(zhuǎn)換DMA有效載荷的DMA有效載荷元數(shù)據(jù)。此外,該DMA有效載荷元數(shù)據(jù)包括在步驟410中所接收、在步驟420中被覆蓋以形成在PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的父DMA數(shù)據(jù)有效載荷的開始和末尾LBA。
申請人的方法在步驟660中不保存包括當(dāng)PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的數(shù)據(jù)。而是,申請人的方法僅將該父DMA數(shù)據(jù)有效載荷的元數(shù)據(jù)保存到那些轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的每個中。在市電得以恢復(fù)后,申請人的設(shè)備和方法能夠使用所存儲的DMA有效載荷元數(shù)據(jù)創(chuàng)建在PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。
通過僅保存DMA有效載荷元數(shù)據(jù)而不是全部DMA數(shù)據(jù)有效載荷,申請人的方法能夠分配在PFW規(guī)范下所需的4毫秒的更多部分用于監(jiān)視已處于進入目標(biāo)狀態(tài)的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷到數(shù)據(jù)存儲設(shè)備的寫入完成狀態(tài)發(fā)送,以及將這4毫秒的更少部分用于數(shù)據(jù)存儲。當(dāng)市電恢復(fù)時,控制器210(圖2)能夠使用所保存的DMA有效載荷元數(shù)據(jù)確定在PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的(Q)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在市電恢復(fù)的同時,一個或多個扇區(qū)格式轉(zhuǎn)換設(shè)備正在執(zhí)行如圖4所示的各個步驟。
在某些實施例中,由扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220(圖2),來執(zhí)行步驟660。在某些實施例中,將在步驟660中存儲的元數(shù)據(jù)寫入到設(shè)置在扇區(qū)格式轉(zhuǎn)換設(shè)備,例如設(shè)備220,中的非易失性存儲器,例如存儲器226。在某些實施例中,將在步驟660中存儲的元數(shù)據(jù)寫入到設(shè)置在設(shè)備控制器,例如設(shè)備控制器210,中的非易失性存儲器,例如存儲器214。
在步驟670中,恢復(fù)對申請人的信息存儲與檢索系統(tǒng)的市電的供應(yīng)。申請人用“市電”表示通過在信息存儲與檢索系統(tǒng)之外的商業(yè)和/或內(nèi)部發(fā)電設(shè)施持續(xù)提供的電力。
在步驟680中,申請人的方法讀取在步驟660中所保存的元數(shù)據(jù)來識別可疑的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在某些實施例中,這些可疑轉(zhuǎn)換DMA數(shù)據(jù)有效載荷包括當(dāng)PFW時間間隔終止時仍然保持進入目標(biāo)狀態(tài)的每個DMA數(shù)據(jù)有效載荷,即在市電掉電時仍然保持進入目標(biāo)狀態(tài)的(Q)個轉(zhuǎn)換DMA有效載荷。在某些實施例中,步驟680由與數(shù)據(jù)緩存(例如,數(shù)據(jù)緩存134)互連并與一個或多個扇區(qū)格式轉(zhuǎn)換設(shè)備(例如,設(shè)備220)互連的控制器(例如,控制器210)來執(zhí)行。在其他實施例中,步驟680由一個或多個扇區(qū)格式轉(zhuǎn)換設(shè)備來執(zhí)行。
申請人的方法從步驟680轉(zhuǎn)移到步驟690,其中,該方法重建在步驟680被確定為可疑的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。在某些實施例中,步驟690包括由控制器210向扇區(qū)轉(zhuǎn)換設(shè)備提供每個可疑轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的第一扇區(qū)格式的父DMA數(shù)據(jù)有效載荷。此外,在步驟690中,申請人的方法使用該父DMA數(shù)據(jù)有效載荷重建每個可疑的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷。申請人的方法從步驟690轉(zhuǎn)移到步驟430,并按以上所述繼續(xù)。
如圖3,4和/或6所示申請人方法的實施例可分別實現(xiàn)。此外,在某些實施例中,可將如圖3,4和/或6所示各個步驟進行組合,去除,或重新排序。
在某些實施例中,本發(fā)明包括駐留在存儲器,例如存儲器214(圖2),存儲器226(圖2),存儲器246(圖2),存儲器266(圖2),和/或存儲器286(圖2)中的指令,其中這些指令分別由處理器212(圖2),224(圖2),244(圖2),264(圖2),和/或284(圖2)執(zhí)行,以執(zhí)行如圖3所示步驟310,320,330以及340,和/或如圖4所示步驟410,420,430,440,450,460,470,480和/或490,和/或如圖6所示步驟610,620,625,630,635,640,650,660,670,680和/或690。
在其他實施例中,本發(fā)明包括駐留在任何其他計算機程序產(chǎn)品中的指令,其中,這些指令由系統(tǒng)100外部或內(nèi)部的計算機執(zhí)行,以執(zhí)行如圖3所示步驟310,320,330以及340,和/或如圖4所示步驟410,420,430,440,450,460,470,480和/或490,和/或如圖6所示步驟610,620,625,630,635,640,650,660,670,680和/或690。在任一情形中,可將指令編碼在信息存儲介質(zhì)中,該信息存儲介質(zhì)包括例如磁信息存儲介質(zhì)、光信息存儲介質(zhì)、電子信息存儲介質(zhì)等。申請人用“電子存儲介質(zhì)”表示諸如PROM,EPROM,EEPROM,閃存PROM,微型閃存,智能閃存等的器件。
盡管已詳細(xì)描述出本發(fā)明的優(yōu)選實施例,不過應(yīng)該理解,在不偏離如所附權(quán)利要求所限定的本發(fā)明范圍的條件下,本領(lǐng)域技術(shù)人員可對這些實施例進行修改和變型。
權(quán)利要求
1.一種用于將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式,且同時在掉電期間保持?jǐn)?shù)據(jù)完整性的方法,所述方法包括步驟提供信息存儲與檢索系統(tǒng),該信息存儲與檢索系統(tǒng)包含有包括按第一扇區(qū)格式寫入的多個第一扇區(qū)的信息;設(shè)備控制器;數(shù)據(jù)存儲設(shè)備,其中,所述數(shù)據(jù)存儲設(shè)備包括信息存儲介質(zhì),信息存儲介質(zhì)包括均包括第二扇區(qū)格式的多個第二扇區(qū);包括數(shù)據(jù)隊列,緩沖器和非易失性存儲器的扇區(qū)格式轉(zhuǎn)換設(shè)備;互連所述扇區(qū)格式轉(zhuǎn)換設(shè)備和所述設(shè)備控制器的通信鏈路;其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備與所述數(shù)據(jù)存儲設(shè)備互連;設(shè)置電源故障報警時間間隔;形成均包括多個第一扇區(qū)的多個DMA數(shù)據(jù)有效載荷,其中,所述多個DMA數(shù)據(jù)有效載荷均包括開始邏輯塊地址和末尾邏輯塊地址;將一個或多個所述DMA數(shù)據(jù)有效載荷發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備;將DMA元數(shù)據(jù)發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備,其中,第(i)個DMA元數(shù)據(jù)包括第(i)個DMA數(shù)據(jù)有效載荷的開始和末尾邏輯塊地址;將所述第(i)個DMA元數(shù)據(jù)存儲在所述扇區(qū)格式轉(zhuǎn)換設(shè)備中;通過所述扇區(qū)格式轉(zhuǎn)換設(shè)備將第(i)個DMA數(shù)據(jù)有效載荷覆蓋到多個第二扇區(qū)的部分或所有上,以形成第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷排入所述數(shù)據(jù)隊列中;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)中。
2.根據(jù)權(quán)利要求1的方法,還包括步驟將所述一個或多個DMA數(shù)據(jù)有效載荷存儲在所述緩沖器中;以及從所述緩沖器中檢索第(i)個DMA數(shù)據(jù)有效載荷。
3.根據(jù)權(quán)利要求1的方法,還包括步驟提供多個進入目標(biāo)指示,其中,每個進入目標(biāo)指示包括第一值或第二值,且其中第(i)個進入目標(biāo)指示與第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷相關(guān)聯(lián);當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備時,將第(i)個進入目標(biāo)指示設(shè)置為第二值;當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)之后,由所述數(shù)據(jù)存儲設(shè)備生成第(i)個寫入完成信號;當(dāng)接收到第(i)個寫入完成信號時,將第(i)個進入目標(biāo)指示重置為所述第一值。
4.根據(jù)權(quán)利要求3的方法,還包括提供包括有微碼的扇區(qū)格式轉(zhuǎn)換設(shè)備的步驟,其中,所述微碼包括多個標(biāo)志,其中,所述多個標(biāo)志包括所述多個進入目標(biāo)指示。
5.根據(jù)權(quán)利要求3的方法,還包括提供包括有微碼的扇區(qū)格式轉(zhuǎn)換設(shè)備的步驟,其中,所述微碼包括多個位,其中,所述多個位包括所述多個進入目標(biāo)指示。
6.根據(jù)權(quán)利要求3的方法,其中,所述重置步驟還包括通過所述扇區(qū)格式轉(zhuǎn)換設(shè)備對所述第(i)個進入目標(biāo)指示進行重置。
7.根據(jù)權(quán)利要求3的方法,還包括步驟確定是否收到電源故障報警;如果收到電源故障報警則進行如下操作開始所述電源故障報警時間間隔;在所述電源故障報警時間間隔內(nèi)將一個或多個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷從所述隊列提供給所述數(shù)據(jù)存儲設(shè)備,其中,所述隊列包括(P)個排隊的轉(zhuǎn)換DMA數(shù)據(jù)有效載荷;確定所述電源故障報警時間間隔是否終止;如果所述電源故障報警時間間隔終止則進行如下操作確定是否已將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì),其中,(j)大于或等于1以及小于或等于(P);如果當(dāng)所述電源故障報警時間間隔終止時未將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì),則進行操作,將第(j)個DMA元數(shù)據(jù)保存在非易失性存儲器中;失去對所述信息存儲與檢索系統(tǒng)的市電供應(yīng);恢復(fù)對所述信息存儲與檢索系統(tǒng)的市電供應(yīng);確定當(dāng)市電掉電時仍然保持進入目標(biāo)狀態(tài)的(Q)個轉(zhuǎn)換DMA有效載荷;檢索在市電掉電前未寫入到所述信息存儲介質(zhì)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的DMA元數(shù)據(jù);以及使用第(k)個檢索的DMA元數(shù)據(jù)重建第(k)個DMA數(shù)據(jù)有效載荷,其中,(k)大于或等于1以及小于或等于(Q)。
8.根據(jù)權(quán)利要求7的方法,還包括步驟完成已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷到所述數(shù)據(jù)存儲設(shè)備的發(fā)送,其中,在該發(fā)送期間接收所述電源故障報警;設(shè)置該發(fā)送的、已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷的進入目標(biāo)指示。
9.根據(jù)權(quán)利要求7的方法,還包括步驟當(dāng)恢復(fù)對所述信息存儲與檢索系統(tǒng)的市電供應(yīng)時,確定是否將第(k)個進入目標(biāo)指示設(shè)置成所述第二值;以及如果將第(k)個進入目標(biāo)指示設(shè)置為所述第二值,則進行操作,檢索第(k)個DMA元數(shù)據(jù)。
10.根據(jù)權(quán)利要求1的方法,還包括從由520字節(jié)扇區(qū),524字節(jié)扇區(qū)和528字節(jié)扇區(qū)組成的組中選出所述第一扇區(qū)格式的步驟。
11.根據(jù)權(quán)利要求1的方法,還包括將所述第二扇區(qū)格式設(shè)置成包括512字節(jié)扇區(qū)的步驟。
12.根據(jù)權(quán)利要求1的方法,還包括將所述電源故障報警時間間隔設(shè)置成約等于3毫秒的步驟。
13.一種制造產(chǎn)品,所述制造產(chǎn)品包括計算機可用介質(zhì),在計算機可用介質(zhì)中設(shè)置有用于將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式,而同時在掉電期間保持?jǐn)?shù)據(jù)完整性的計算機可讀程序代碼,所述制造產(chǎn)品還包括包括有按第一扇區(qū)格式寫入的多個第一扇區(qū)的信息;設(shè)備控制器;數(shù)據(jù)存儲設(shè)備,其中,所述數(shù)據(jù)存儲設(shè)備包括信息存儲介質(zhì),信息存儲介質(zhì)包括均包括第二扇區(qū)格式的多個第二扇區(qū);包括數(shù)據(jù)隊列,緩沖器和非易失性存儲器的扇區(qū)格式轉(zhuǎn)換設(shè)備;互連所述扇區(qū)格式轉(zhuǎn)換設(shè)備和所述設(shè)備控制器的通信鏈路,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備與所述數(shù)據(jù)存儲設(shè)備互連;所述計算機可讀程序代碼包括用于執(zhí)行以下操作的一系列計算機可讀程序步驟形成均包括多個第一扇區(qū)的多個DMA數(shù)據(jù)有效載荷,其中,所述多個DMA數(shù)據(jù)有效載荷均包括開始邏輯塊地址和末尾邏輯塊地址;將所述多個DMA數(shù)據(jù)有效載荷的一個或多個發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備;將DMA元數(shù)據(jù)發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備,其中,第(i)個DMA元數(shù)據(jù)包括第(i)個DMA數(shù)據(jù)有效載荷的開始和末尾邏輯塊地址;將所述第(i)個DMA元數(shù)據(jù)存儲在所述扇區(qū)格式轉(zhuǎn)換設(shè)備中;通過所述扇區(qū)格式轉(zhuǎn)換設(shè)備將第(i)個DMA數(shù)據(jù)有效載荷覆蓋到多個第二扇區(qū)的部分或所有上,以形成第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷排入所述數(shù)據(jù)隊列中;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備;將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)中。
14.根據(jù)權(quán)利要求13的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟將所述一個或多個DMA數(shù)據(jù)有效載荷存儲在所述緩沖器中;以及從所述緩沖器中檢索第(i)個DMA數(shù)據(jù)有效載荷。
15.根據(jù)權(quán)利要求13的制造產(chǎn)品,其中,所述制造產(chǎn)品還包括多個進入目標(biāo)指示,其中,每個進入目標(biāo)指示包括第一值或第二值,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟將第(i)個進入目標(biāo)指示與第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷相關(guān)聯(lián);當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備時,將第(i)個進入目標(biāo)指示設(shè)置為第二值;當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)之后,由所述數(shù)據(jù)存儲設(shè)備生成第(i)個寫入完成信號;當(dāng)接收到第(i)個寫入完成信號時,將第(i)個進入目標(biāo)指示重置為所述第一值。
16.根據(jù)權(quán)利要求15的制造產(chǎn)品,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備包括有微碼,其中,所述微碼包括多個標(biāo)志,且其中所述多個標(biāo)志包括所述多個進入目標(biāo)指示。
17.根據(jù)權(quán)利要求15的制造產(chǎn)品,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備包括有微碼,其中,所述微碼包括多個位,且其中所述多個位包括所述多個進入目標(biāo)指示。
18.根據(jù)權(quán)利要求15的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟確定是否收到電源故障報警;如果收到電源故障報警則進行如下操作獲得電源故障報警時間間隔;開始所述電源故障報警時間間隔;在所述電源故障報警時間間隔內(nèi)將一個或多個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷從所述隊列提供給所述數(shù)據(jù)存儲設(shè)備,其中,所述隊列包括(P)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷;確定所述電源故障報警時間間隔是否終止;如果所述電源故障報警時間間隔終止則進行如下操作確定是否已將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì),其中,(j)大于或等于1以及小于或等于(P);如果當(dāng)所述電源故障報警時間間隔終止時未將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì),則進行操作,將第(j)個DMA元數(shù)據(jù)保存在非易失性存儲器中;當(dāng)對所述信息存儲與檢索系統(tǒng)的市電供應(yīng)恢復(fù)時,從非易失性存儲器檢索在市電掉電前未寫入到所述信息存儲介質(zhì)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的DMA元數(shù)據(jù);以及使用第(k)個檢索的DMA元數(shù)據(jù)重建第(k)個DMA數(shù)據(jù)有效載荷。
19.根據(jù)權(quán)利要求18的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟完成已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷到所述數(shù)據(jù)存儲設(shè)備的發(fā)送,其中,在該發(fā)送期間接收所述電源故障報警;設(shè)置該發(fā)送的、已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷的進入目標(biāo)指示。
20.根據(jù)權(quán)利要求18的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟當(dāng)對所述信息存儲與檢索系統(tǒng)的市電供應(yīng)恢復(fù)時,確定是否將第(k)個進入目標(biāo)指示設(shè)置成所述第二值;以及如果將第(k)個進入目標(biāo)指示設(shè)置為所述第二值,則進行操作,檢索第(k)個DMA元數(shù)據(jù)。
21.根據(jù)權(quán)利要求13的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟從由520字節(jié)扇區(qū),524字節(jié)扇區(qū)和528字節(jié)扇區(qū)組成的組中選出所述第一扇區(qū)格式。
22.根據(jù)權(quán)利要求13的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟將所述第二扇區(qū)格式設(shè)置成包括512字節(jié)扇區(qū)。
23.根據(jù)權(quán)利要求13的制造產(chǎn)品,所述計算機可讀程序代碼還包括使得進行以下操作的一系列計算機可讀程序步驟將所述電源故障報警時間間隔設(shè)置成約等于3毫秒。
24.一種用于可編程計算機處理器的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品其中體現(xiàn)有用于在信息存儲與檢索系統(tǒng)中將數(shù)據(jù)有效載荷從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的計算機可讀程序代碼,且該信息存儲與檢索系統(tǒng)包括包括按第一扇區(qū)格式寫入的多個第一扇區(qū)的信息;設(shè)備控制器;數(shù)據(jù)存儲設(shè)備,其中,所述數(shù)據(jù)存儲設(shè)備包括信息存儲介質(zhì),信息存儲介質(zhì)包括均包括第二扇區(qū)格式的多個第二扇區(qū);包括數(shù)據(jù)隊列,緩沖器和非易失性存儲器的扇區(qū)格式轉(zhuǎn)換設(shè)備;互連所述扇區(qū)格式轉(zhuǎn)換設(shè)備和所述設(shè)備控制器的通信鏈路,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備與所述數(shù)據(jù)存儲設(shè)備互連,所述計算機程序產(chǎn)品包括使得所述可編程計算機處理器形成均包括多個第一扇區(qū)的多個DMA數(shù)據(jù)有效載荷的計算機可讀程序代碼,其中,所述多個DMA數(shù)據(jù)有效載荷均包括開始邏輯塊地址和末尾邏輯塊地址;使得所述可編程計算機處理器將所述多個DMA數(shù)據(jù)有效載荷的一個或多個發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備的計算機可讀程序代碼;使得所述可編程計算機處理器將DMA元數(shù)據(jù)發(fā)送到所述扇區(qū)格式轉(zhuǎn)換設(shè)備的計算機可讀程序代碼,其中,第(i)個DMA元數(shù)據(jù)包括對于第(i)個DMA數(shù)據(jù)有效載荷的開始和末尾邏輯塊地址;使得所述可編程計算機處理器將所述第(i)個DMA元數(shù)據(jù)存儲在所述扇區(qū)格式轉(zhuǎn)換設(shè)備中的計算機可讀程序代碼;使得所述可編程計算機處理器通過所述扇區(qū)格式轉(zhuǎn)換設(shè)備將第(i)個DMA數(shù)據(jù)有效載荷覆蓋到多個第二扇區(qū)的部分或所有上,以形成第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的計算機可讀程序代碼;使得所述可編程計算機處理器將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷排入所述數(shù)據(jù)隊列中的計算機可讀程序代碼;使得所述可編程計算機處理器將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備的計算機可讀程序代碼;使得所述可編程計算機處理器將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)的計算機可讀程序代碼。
25.根據(jù)權(quán)利要求24的計算機程序產(chǎn)品,還包括使得所述可編程計算機處理器將所述一個或多個DMA數(shù)據(jù)有效載荷存儲在所述緩沖器中的計算機可讀程序代碼;使得所述可編程計算機處理器從所述緩沖器中檢索第(i)個DMA數(shù)據(jù)有效載荷的計算機可讀程序代碼。
26.根據(jù)權(quán)利要求24的計算機程序產(chǎn)品,其中,所述制造產(chǎn)品還包括多個進入目標(biāo)指示,其中,每個進入目標(biāo)指示包括第一值或第二值,還包括使得所述可編程計算機處理器將第(i)個進入目標(biāo)指示與第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷相關(guān)聯(lián)的計算機可讀程序代碼;使得所述可編程計算機處理器當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷發(fā)送到所述數(shù)據(jù)存儲設(shè)備時,將第(i)個進入目標(biāo)指示設(shè)置為第二值的計算機可讀程序代碼;使得所述可編程計算機處理器當(dāng)將所述第(i)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)之后,由所述數(shù)據(jù)存儲設(shè)備生成第(i)個寫入完成信號的計算機可讀程序代碼;使得所述可編程計算機處理器當(dāng)接收到第(i)個寫入完成信號時將第(i)個進入目標(biāo)指示重置為所述第一值的計算機可讀程序代碼。
27.根據(jù)權(quán)利要求26的計算機程序產(chǎn)品,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備包括有微碼,其中,所述微碼包括多個標(biāo)志,且其中所述多個標(biāo)志包括所述多個進入目標(biāo)指示。
28.根據(jù)權(quán)利要求26的計算機程序產(chǎn)品,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備包括有微碼,其中,所述微碼包括多個位,且其中所述多個位包括所述多個進入目標(biāo)指示。
29.根據(jù)權(quán)利要求26的計算機程序產(chǎn)品,還包括使得所述可編程計算機處理器確定是否收到電源故障報警的計算機可讀程序代碼;如果收到電源故障報警則使得所述可編程計算機處理器進行如下操作的計算機可讀程序代碼獲得電源故障報警時間間隔;開始所述電源故障報警時間間隔;在所述電源故障報警時間間隔內(nèi)將一個或多個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷從所述隊列提供給所述數(shù)據(jù)存儲設(shè)備,其中,所述隊列包括(P)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷;確定所述電源故障報警時間間隔是否終止;如果所述電源故障報警時間間隔終止,使得所述可編程計算機處理器進行如下操作的計算機可讀程序代碼確定是否已將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)中,其中,(j)大于或等于1以及小于或等于(P);如果當(dāng)所述電源故障報警時間間隔終止時未將第(j)個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷寫入到所述信息存儲介質(zhì)中,則使得所述可編程計算機處理器將第(j)個DMA元數(shù)據(jù)保存在非易失性存儲器中的計算機可讀程序代碼;當(dāng)市電供應(yīng)恢復(fù)后,使得所述可編程計算機處理器檢索在市電掉電前未寫入到所述信息存儲介質(zhì)的每個轉(zhuǎn)換DMA數(shù)據(jù)有效載荷的DMA元數(shù)據(jù)的計算機可讀程序代碼;以及使得所述可編程計算機處理器使用第(k)個檢索的DMA元數(shù)據(jù)重建第(k)個DMA數(shù)據(jù)有效載荷的計算機可讀程序代碼。
30.根據(jù)權(quán)利要求29的計算機程序產(chǎn)品,還包括使得所述可編程計算機處理器完成已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷到所述數(shù)據(jù)存儲設(shè)備的發(fā)送的計算機可讀程序代碼,其中,在該發(fā)送期間接收所述電源故障報警;使得所述可編程計算機處理器設(shè)置該發(fā)送的、已轉(zhuǎn)換的DMA數(shù)據(jù)有效載荷的進入目標(biāo)指示的計算機可讀程序代碼。
31.根據(jù)權(quán)利要求29的計算機程序產(chǎn)品,還包括當(dāng)對所述信息存儲與檢索系統(tǒng)恢復(fù)市電供應(yīng)后,使得所述可編程計算機處理器確定是否將第(k)個進入目標(biāo)指示設(shè)置成所述第二值的計算機可讀程序代碼;以及如果將第(k)個進入目標(biāo)指示設(shè)置為所述第二值,則使得所述可編程計算機處理器檢索第(k)個DMA元數(shù)據(jù)的計算機可讀程序代碼。
32.一種扇區(qū)格式轉(zhuǎn)換設(shè)備,包括處理器;使得所述處理器將具有第一扇區(qū)格式的(N)個第一扇區(qū)覆蓋到具有第二扇區(qū)格式的M個第二扇區(qū)上的微碼;其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備不包含包括用戶模式和內(nèi)核模式的操作系統(tǒng)。
33.如權(quán)利要求32所述的扇區(qū)格式轉(zhuǎn)換設(shè)備,還包括非易失性存儲器。
34.如權(quán)利要求33所述的扇區(qū)格式轉(zhuǎn)換設(shè)備,還包括數(shù)據(jù)緩沖器。
35.如權(quán)利要求34所述的扇區(qū)格式轉(zhuǎn)換設(shè)備,還包括數(shù)據(jù)隊列。
36.如權(quán)利要求32所述的扇區(qū)格式轉(zhuǎn)換設(shè)備,還包括使得所述設(shè)備遵循SFF電源故障報警協(xié)議的微碼。
37.一種用于將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的方法,包括步驟提供扇區(qū)格式轉(zhuǎn)換設(shè)備,所述扇區(qū)格式轉(zhuǎn)換設(shè)備包括處理器,使所述處理器將具有第一扇區(qū)格式的(N)個第一扇區(qū)覆蓋到具有第二扇區(qū)格式的M個第二扇區(qū)上的微碼,且所述扇區(qū)格式轉(zhuǎn)換設(shè)備不包含包括用戶模式和內(nèi)核模式的操作系統(tǒng);提供包括數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù)存儲設(shè)備,其中,所述數(shù)據(jù)存儲設(shè)備能夠與所述扇區(qū)格式轉(zhuǎn)換設(shè)備進行通信,且其中所述數(shù)據(jù)存儲介質(zhì)包括具有第二扇區(qū)格式的多個第二扇區(qū);向所述扇區(qū)格式轉(zhuǎn)換設(shè)備提供第一數(shù)據(jù),所述第一數(shù)據(jù)包括具有第一扇區(qū)格式的(N)個第一扇區(qū);向所述扇區(qū)格式轉(zhuǎn)換設(shè)備提供(M)個第二扇區(qū);將所述(N)個第一扇區(qū)覆蓋到所述(M)個第二扇區(qū)上,以形成第二數(shù)據(jù);將所述第二數(shù)據(jù)發(fā)送到所述數(shù)據(jù)存儲設(shè)備;將所述第二數(shù)據(jù)寫入到所述數(shù)據(jù)存儲介質(zhì)。
38.根據(jù)權(quán)利要求37的方法,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備能夠與數(shù)據(jù)緩存通信,所述方法還包括從所述數(shù)據(jù)緩存提供所述第一數(shù)據(jù)的步驟。
39.根據(jù)權(quán)利要求38的方法,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備還包括數(shù)據(jù)緩沖器,所述方法還包括在執(zhí)行所述覆蓋步驟前將所述第一數(shù)據(jù)保存在所述數(shù)據(jù)緩沖器中的步驟。
40.根據(jù)權(quán)利要求39的方法,其中,所述扇區(qū)格式轉(zhuǎn)換設(shè)備還包括數(shù)據(jù)隊列,所述方法還包括在執(zhí)行所述發(fā)送步驟前將所述第二數(shù)據(jù)保存在所述數(shù)據(jù)隊列中的步驟。
41.根據(jù)權(quán)利要求39的方法,其中,所述第一扇區(qū)格式每扇區(qū)包括524字節(jié),且其中所述第二扇區(qū)格式每扇區(qū)包括512字節(jié)。
全文摘要
本發(fā)明披露了一種用于將數(shù)據(jù)從第一扇區(qū)格式轉(zhuǎn)換到第二扇區(qū)格式的設(shè)備。該扇區(qū)格式轉(zhuǎn)換設(shè)備包括處理器,和使處理器將具有第一扇區(qū)格式的(N)個第一扇區(qū)覆蓋到具有第二扇區(qū)格式的(M)個第二扇區(qū)上的微碼,且該扇區(qū)格式轉(zhuǎn)換設(shè)備不包含包括用戶模式和內(nèi)核模式的操作系統(tǒng)。
文檔編號G06F17/30GK1731373SQ20051008958
公開日2006年2月8日 申請日期2005年8月4日 優(yōu)先權(quán)日2004年8月5日
發(fā)明者約翰·C.·埃利奧特, 卡爾·E.·瓊斯, 羅伯特·A.·庫博, 格雷格·S.·盧卡斯 申請人:國際商業(yè)機器公司