欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

利用邏輯閃速存儲(chǔ)器件進(jìn)行最小單元更新的方法和設(shè)備的制作方法

文檔序號(hào):6540505閱讀:275來源:國知局
專利名稱:利用邏輯閃速存儲(chǔ)器件進(jìn)行最小單元更新的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及對(duì)包括幾個(gè)必須以一致方式或者全部一起成功或者全部一起失敗的低級(jí)操作的更新進(jìn)行處理的技術(shù)。本發(fā)明尤其涉及在執(zhí)行事務(wù)時(shí)使用內(nèi)存地址翻譯層的技術(shù)。
在保持文件系統(tǒng)領(lǐng)域廣泛使用執(zhí)行事務(wù)的概念,在文件系統(tǒng)中,數(shù)據(jù)的完整性及遵守特定的商務(wù)規(guī)則是主要的事情。作為例子,我們來研究金融應(yīng)用程序,在金融應(yīng)用程序中,帳戶文件列出當(dāng)前具有其有效余額的所有帳戶,并且分開的帳戶分錄文件列出所有實(shí)際帳戶分錄。假定對(duì)帳戶分錄文件進(jìn)行了新的記錄,說明對(duì)特定帳戶支付或提取特定金額。然而,不對(duì)帳戶文件進(jìn)行相應(yīng)更新操作。結(jié)果破壞了文件系統(tǒng)的數(shù)據(jù)完整性,即從帳戶文件讀取的特定帳戶的余額與在帳戶分錄文件內(nèi)檢索記錄獲得的余額不同。通常,將這種沖突稱為違反事務(wù)一致性。危險(xiǎn)情況的另一個(gè)例子是,違反所謂商務(wù)規(guī)則,這意味著破壞了特定應(yīng)用專用規(guī)則,例如,對(duì)本當(dāng)結(jié)帳待核的帳目進(jìn)行登帳。
事務(wù)概念意味著將導(dǎo)致文件系統(tǒng)內(nèi)數(shù)據(jù)變更的所有這種低級(jí)操作組織在一起形成一個(gè)所有操作必須或者一起成功或者一起失敗的實(shí)體。還將低級(jí)操作稱為更新操作。通常,將事務(wù)劃分為3個(gè)相繼的階段,即開始事務(wù)、更新數(shù)據(jù)以及執(zhí)行事務(wù)。如果出現(xiàn)嚴(yán)重系統(tǒng)故障(例如系統(tǒng)復(fù)位),則根據(jù)是否已經(jīng)到達(dá)執(zhí)行階段,或者對(duì)數(shù)據(jù)進(jìn)行所有更新操作,或者不改變數(shù)據(jù)。在執(zhí)行階段出現(xiàn)嚴(yán)重系統(tǒng)故障會(huì)導(dǎo)致系統(tǒng)掛起并在接著啟動(dòng)系統(tǒng)時(shí)結(jié)束掛起。如果在事務(wù)到達(dá)執(zhí)行階段之前發(fā)生嚴(yán)重系統(tǒng)故障,則在下次開機(jī)時(shí),自動(dòng)刪除該事務(wù)的所有記錄。
事務(wù)機(jī)制通常支持被稱為重新運(yùn)行事務(wù)的反向操作,這意味著刪除在更新階段所做的所有更新操作,而不是讓它們在整個(gè)執(zhí)行過程中保持不變。


圖1示出可以用于執(zhí)行事務(wù)的簡單、傳統(tǒng)文件系統(tǒng)??刂茊卧?01管理日志文件102和數(shù)據(jù)庫文件103??刂茊卧?01首先將構(gòu)成事務(wù)的操作寫入日志文件102,如箭頭104所示。在成功將所有操作寫入日志文件102后,控制單元101將它們重寫(即進(jìn)行相應(yīng)變更)到數(shù)據(jù)庫文件103??梢詫⒋瞬僮骺醋靼炎兏鼜娜罩疚募?02傳送到數(shù)據(jù)庫文件103,如箭頭105所示。
如果將圖1所示的日志文件設(shè)備與數(shù)據(jù)庫文件103內(nèi)的面向非事務(wù)的直通式更新數(shù)據(jù)進(jìn)行比較,可注意到前者把文件寫操作量加了一倍,并且引入了在后者不出現(xiàn)的文件讀操作。顯然,如此加載文件系統(tǒng)肯定具有某種有害影響,特別在大規(guī)模系統(tǒng),諸如在日交易量很容易達(dá)到幾十萬件甚或上百萬件的金融應(yīng)用程序方面。
本發(fā)明目的是提供一種比圖1所示的現(xiàn)有技術(shù)設(shè)備對(duì)文件系統(tǒng)加載較少的情況下,執(zhí)行事務(wù)的方法和設(shè)備。本發(fā)明另一個(gè)目的是提供一種可靠并且經(jīng)濟(jì)地執(zhí)行事務(wù)的方法和設(shè)備。本發(fā)明的再一個(gè)目的是提供這樣一種方法和設(shè)備,以致可以容易地按照單位時(shí)間的事務(wù)量確定其規(guī)模。
通過將閃速存儲(chǔ)器或類似功能器件用作數(shù)據(jù)存儲(chǔ)器,并按特定順序?qū)ω?fù)荷量數(shù)據(jù)內(nèi)容和所述數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)地址信息進(jìn)行操作,可以實(shí)現(xiàn)本發(fā)明的各目的。
根據(jù)本發(fā)明更新第一數(shù)字?jǐn)?shù)據(jù)塊的方法的特征在于,按如下順序該方法包括步驟· 啟動(dòng)第一標(biāo)識(shí)符,該第一標(biāo)識(shí)符對(duì)所有那些涉及第一數(shù)據(jù)塊,并且必須或者全部一起成功或者全部一起失敗的更新操作是公共的;
· 執(zhí)行所有那些涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的更新操作;· 將更新的第一數(shù)字?jǐn)?shù)據(jù)塊和使更新了的第一數(shù)據(jù)塊與所述第一標(biāo)識(shí)符相關(guān)的數(shù)值一起存儲(chǔ)到邏輯閃速存儲(chǔ)器件中;以及· 關(guān)閉所述第一標(biāo)識(shí)符。
本發(fā)明適于一種排除基于邏輯閃速存儲(chǔ)器件的文件系統(tǒng)的系統(tǒng)故障的方法。其特征在于,該方法包括步驟· 在啟動(dòng)了的標(biāo)識(shí)符表內(nèi)檢驗(yàn)?zāi)膫€(gè)標(biāo)識(shí)符在系統(tǒng)出現(xiàn)故障時(shí)是啟動(dòng)了的;以及· 檢驗(yàn)物理存儲(chǔ)位置以定位含有使各數(shù)據(jù)塊與發(fā)生系統(tǒng)故障時(shí)處于啟動(dòng)了的狀態(tài)的標(biāo)識(shí)符相關(guān)的數(shù)值的數(shù)據(jù)塊,以及將含有此數(shù)據(jù)塊的各非易失性存儲(chǔ)器地址的狀態(tài)指示符設(shè)置為指示該存儲(chǔ)單元含有無效數(shù)據(jù)的數(shù)值。
本發(fā)明還可以應(yīng)用于其特征在于包括下列內(nèi)容的設(shè)備· 邏輯閃速存儲(chǔ)器件· 啟動(dòng)裝置,用于啟動(dòng)第一標(biāo)識(shí)符,該第一標(biāo)識(shí)符對(duì)所有那些涉及第一數(shù)據(jù)塊并且或者全部一起成功或者全部一起失敗的更新操作是公共的;· 裝置,用于執(zhí)行所有那些涉及第一數(shù)據(jù)塊并且或者全部一起成功或者全部一起失敗的更新操作;· 裝置,用于將更新了的第一數(shù)字?jǐn)?shù)據(jù)塊和使更新第一數(shù)據(jù)塊與所述第一標(biāo)識(shí)符關(guān)聯(lián)的數(shù)值一起存儲(chǔ)到所述邏輯閃速存儲(chǔ)器件;以及· 裝置,用于關(guān)閉所述第一標(biāo)識(shí)符。
閃速存儲(chǔ)器的第一典型特征是物理存儲(chǔ)單元的某種隨意使用性。作為所述第一特征的一種結(jié)果的另一個(gè)典型特征是將這種存儲(chǔ)器排列成可利用特定訪問規(guī)則組單獨(dú)訪問的模塊。根據(jù)本發(fā)明,許多模塊用于存儲(chǔ)某些負(fù)荷量數(shù)據(jù)的未更新的形式和更新了的形式,所述這些數(shù)據(jù)的內(nèi)容在事務(wù)中可能會(huì)受到修改。所述模塊的地址信息和標(biāo)題用于宣告哪個(gè)模塊在任意給定瞬時(shí)含有最有效的負(fù)荷量數(shù)據(jù)形式。
閃速存儲(chǔ)器的概念可以擴(kuò)展為包括邏輯閃速存儲(chǔ)器件或LFMD,即安排以根據(jù)閃速存儲(chǔ)器的所述典型特征運(yùn)行的任意存儲(chǔ)裝置將存儲(chǔ)數(shù)據(jù)組織為塊、向塊定寫入的一決性、狀態(tài)指示符以指出模塊內(nèi)的數(shù)據(jù)狀態(tài)。LFMD的一般定義還包括至少使用兩個(gè)物理上分離的存儲(chǔ)單元存儲(chǔ)邏輯上的完整的數(shù)據(jù)塊的混合解決方案。
例如,設(shè)置傳統(tǒng)磁盤驅(qū)動(dòng)器或靜態(tài)RAM(隨機(jī)存取存儲(chǔ)器)可以安排得象LFMD那樣運(yùn)行。通常,不要求磁盤驅(qū)動(dòng)器全面模仿閃速存儲(chǔ)器特征,即在其內(nèi)通常不物理擦除數(shù)據(jù)塊。磁盤驅(qū)動(dòng)器與實(shí)際固態(tài)閃速存儲(chǔ)器組合在一起可以提供優(yōu)勢框架混合解決方案,例如,將數(shù)據(jù)塊標(biāo)題(或部分?jǐn)?shù)據(jù)塊標(biāo)題,諸如狀態(tài)指示符)存儲(chǔ)到閃速存儲(chǔ)器,而將數(shù)據(jù)塊剩余部分,特別是數(shù)據(jù)負(fù)荷量存儲(chǔ)到磁盤驅(qū)動(dòng)器。盡管有兩個(gè)物理上分離的存儲(chǔ)單元,但是在邏輯上,該數(shù)據(jù)塊是完整的。同樣,本發(fā)明還可以獨(dú)立應(yīng)用于所有LFMD,無論它們在物理上是否基于閃速存儲(chǔ)技術(shù)。
作為本發(fā)明的賦能特征,提供一種最小可更新數(shù)據(jù)單元的故障安全最小單元更新過程。這種數(shù)據(jù)單元包括具有特定狀態(tài)指示符的標(biāo)題字段,該狀態(tài)指示符具有有限數(shù)量的容許值。在更新數(shù)據(jù)被寫入其內(nèi)時(shí),改變更新數(shù)據(jù)單元的狀態(tài)指示符以指出相應(yīng)負(fù)荷量數(shù)據(jù)的有效性。然后,改變相應(yīng)舊數(shù)據(jù)單元的狀態(tài)指示符以指出舊負(fù)荷量數(shù)據(jù)失效。
臨時(shí)存儲(chǔ)特定事務(wù)標(biāo)識(shí)符以指出在進(jìn)行相應(yīng)事務(wù)。利用同一個(gè)事務(wù)標(biāo)識(shí)符,或者利用與其無歧義相關(guān)的標(biāo)識(shí)符,標(biāo)記作為所述事務(wù)一部分的所有更新操作。完成所有更新操作后,通過從其臨時(shí)存儲(chǔ)器內(nèi)刪除該事務(wù)標(biāo)識(shí)符,或者通過另外對(duì)它進(jìn)行標(biāo)記以指出完成該事務(wù),執(zhí)行該項(xiàng)事務(wù)。
通過對(duì)由每個(gè)并行的事務(wù)要更新的數(shù)據(jù)分配一個(gè)單獨(dú)的臨時(shí)存儲(chǔ)單元,可以增加對(duì)單個(gè)可更新塊內(nèi)存儲(chǔ)的數(shù)據(jù)的不重疊部分上操作的多項(xiàng)并行事務(wù)的支持。在臨時(shí)存儲(chǔ)單元內(nèi)執(zhí)行并行更新操作,并且只有在此后才更新實(shí)際的存儲(chǔ)存儲(chǔ)單元。
本發(fā)明允許在低分級(jí)水平(進(jìn)入文件系統(tǒng))進(jìn)行事務(wù)處理,這樣可以提供許多優(yōu)勢。代表高分級(jí)水平并剩余文件系統(tǒng)存儲(chǔ)數(shù)據(jù)的應(yīng)用程序不需要知道實(shí)際上如何執(zhí)行事務(wù)處理過程。文件系統(tǒng)級(jí)的事務(wù)處理執(zhí)行過程獨(dú)立于高級(jí)應(yīng)用程序的執(zhí)行過程,這樣就可以使事務(wù)處理過程非常健全并且容易適應(yīng)不同應(yīng)用程序。較高的分級(jí)水平可能含有其它的更復(fù)雜的操作,所述更復(fù)雜的操作依賴于要么完成其子部分的全部,要么根本不完成的原則。
在所附權(quán)利要求中對(duì)被認(rèn)為是本發(fā)明特征的新穎特征進(jìn)行了具體說明。然而,通過結(jié)合附圖閱讀特定實(shí)施例的以下說明,可以最好地理解本發(fā)明本身的結(jié)構(gòu)和操作方法及其其它目的和優(yōu)勢。
圖1示出傳統(tǒng)文件系統(tǒng)的更新過程;圖2示出閃速存儲(chǔ)器內(nèi)的公知分級(jí)概念;圖3示出公知的地址翻譯層;圖4示出更新數(shù)據(jù)的公知方式;圖5a示出故障安全最小單元更新操作設(shè)備;圖5b示出故障安全最小單元更新操作方法;圖6示出根據(jù)本發(fā)明使用的數(shù)據(jù)塊結(jié)構(gòu);圖7示出執(zhí)行閃速存儲(chǔ)事務(wù)的方法;圖8示出執(zhí)行并行閃速存儲(chǔ)事務(wù)的設(shè)備;圖9a至圖9h示出執(zhí)行并行閃速存儲(chǔ)事務(wù)的方法;
圖10a至圖10f示出利用鏈接寫操作執(zhí)行閃速存儲(chǔ)事務(wù)的方法;以及圖11示出根據(jù)本發(fā)明實(shí)施例的設(shè)備。
以上在說明現(xiàn)有技術(shù)時(shí)對(duì)圖1進(jìn)行了說明,因此在利用本發(fā)明的優(yōu)勢實(shí)施例對(duì)本發(fā)明所做的以下說明中,主要集中在圖2至圖11。
為了全面理解本發(fā)明,首先簡要說明閃速存儲(chǔ)器以及在邏輯上具有類似結(jié)構(gòu)和操作過程的其它設(shè)備的一些公知特征。通常,不首先擦除存儲(chǔ)器的一個(gè)完整的邏輯塊,就不能將閃速存儲(chǔ)數(shù)據(jù)更新到同一個(gè)物理存儲(chǔ)位置。擦除塊級(jí)之后,被擦除塊內(nèi)的所有數(shù)位都具有通常為1的共同的第一常數(shù)。然后,通過將其值變更為通常為0的第二常數(shù),可以單獨(dú)地寫塊內(nèi)的每個(gè)二進(jìn)數(shù)位一次。此后,變更此位的數(shù)值的唯一方法是重新擦除整個(gè)塊。
圖2示意表示被劃分為各閃速存儲(chǔ)擦除塊(FMEB)的閃速存儲(chǔ)器件201。總共有大值正整數(shù)M個(gè)FMEB,圖2分別示出其中的4個(gè)FMEB(202、203、204和205)。FMEB是可以從存儲(chǔ)器件的其它部分單獨(dú)擦除的最小邏輯存儲(chǔ)單元。FMEB的大小依賴于存儲(chǔ)器件的類型,并且通常在4kB到64kB之間,其中kB為千字節(jié)。
每個(gè)FMEB分別含有一個(gè)或多個(gè)邏輯數(shù)據(jù)塊(LDB)。圖2示出將第一FMEB 202劃分為N個(gè)LDB的情況,其中分別示出5個(gè)LDB(206、207、208、209和210)。LDB是邏輯閃速數(shù)據(jù)塊設(shè)備內(nèi)的最小可更新數(shù)據(jù)單元。從理論上說,它等于硬盤驅(qū)動(dòng)器內(nèi)的數(shù)據(jù)扇區(qū)。將每個(gè)LDB進(jìn)一步劃分為LDB標(biāo)題(LDBH) (如圖2內(nèi)的211所示)和負(fù)荷量數(shù)據(jù)或稱LDB數(shù)據(jù)部分212(縮寫為LDBD)。LDBH特別包括LDB標(biāo)識(shí)符字段213,其內(nèi)容用于無歧義地識(shí)別各LDB;以及狀態(tài)字段214,指出相應(yīng)物理存儲(chǔ)區(qū)內(nèi)的各數(shù)據(jù)的有效性。
由于LDB內(nèi)的位數(shù)值只能寫入一次,所以只有通過將整個(gè)LDB寫入在最后塊級(jí)擦除之前未接觸過的“未用”或“空白”存儲(chǔ)單元內(nèi),才能夠?qū)DB內(nèi)的負(fù)荷量數(shù)據(jù)進(jìn)行隨意更新。通過為其LDBH內(nèi)的狀態(tài)指示符設(shè)置相應(yīng)數(shù)值,可以宣告舊存儲(chǔ)單元“臟”。
前面已經(jīng)間接說明了將LDB存儲(chǔ)到至少兩個(gè)物理分離單元的可能性。從邏輯的觀點(diǎn)出發(fā),物理存儲(chǔ)格式不重要,只要對(duì)物理變換設(shè)置適當(dāng)邏輯從而使數(shù)據(jù)塊表現(xiàn)為邏輯上的完整實(shí)體即可。這種變換及其實(shí)際實(shí)現(xiàn)過程對(duì)于本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員是眾所周知的。
圖3示出作為使物理存儲(chǔ)單元地址與各LDB標(biāo)識(shí)符相關(guān)的一種變換表的物理閃速存儲(chǔ)地址翻譯層邏輯(LTPTL)的原理圖。在必須讀取某個(gè)LDB時(shí),系統(tǒng)參考LTPTL獲得當(dāng)前含有特定LDB的物理存儲(chǔ)地址。將該過程稱為物理地址映射邏輯(LPAM)。更新LDB意味著改變其在物理閃速存儲(chǔ)器內(nèi)的存儲(chǔ)單元。在LTPTL內(nèi)進(jìn)行相應(yīng)改變,這樣其內(nèi)的新物理存儲(chǔ)地址就指向含有更新LDB的新存儲(chǔ)單元。
如上所述,存儲(chǔ)器件可以根據(jù)上述參考圖2和圖3所述的原則運(yùn)行,而與其物理實(shí)現(xiàn)過程是否依賴于實(shí)際閃速存儲(chǔ)技術(shù),或者數(shù)據(jù)塊的物理存儲(chǔ)是否占據(jù)一個(gè)或多個(gè)單獨(dú)存儲(chǔ)單元無關(guān)。
圖4示出在閃速存儲(chǔ)器內(nèi)的“適當(dāng)位置”更新數(shù)據(jù)的已知方式。第一步驟,將整個(gè)FMEB 401的內(nèi)容讀入易失性存儲(chǔ)器402,易失性存儲(chǔ)器402通常為隨機(jī)存取存儲(chǔ)器或RAM。這種存儲(chǔ)器通常不限制對(duì)位數(shù)值重復(fù)進(jìn)行反向變換和正向變換,因此第二步驟更新RAM 402內(nèi)的數(shù)據(jù)。在第三步驟,擦除原始FMEB單元401,并在第四步驟將更新數(shù)據(jù)寫回其原始閃速存儲(chǔ)單元。如果在第三步驟或第四步驟期間出現(xiàn)嚴(yán)重錯(cuò)誤,則有可能丟失有效數(shù)據(jù),因?yàn)樗鼈儍H出現(xiàn)在易失性存儲(chǔ)器內(nèi)。圖4所示方法的附加優(yōu)勢是,擦一寫類型更新的效率通常非常低,并且容易導(dǎo)致閃速存儲(chǔ)器老化。
圖5a和圖5b示出LDB的故障安全最小單元更新過程。圖中示出了一個(gè)LDB大小的兩個(gè)物理存儲(chǔ)單元501和502。假定對(duì)LDBH內(nèi)的狀態(tài)字段定義一組容許值,以致至少可以指出狀態(tài)“未使用”、“寫”、“有效”、“臟”以及“斷路”。其中狀態(tài)“斷路”意味著相應(yīng)物理存儲(chǔ)單元不能正常運(yùn)行,因此根本不能使用它。“斷路”狀態(tài)涉及到存儲(chǔ)器件的一般使用過程,對(duì)于本發(fā)明并不重要。此外,在圖5中示出可以用作工作空間的某種易失性存儲(chǔ)器503。
更新存儲(chǔ)在當(dāng)前常駐在第一存儲(chǔ)單元501內(nèi)的LDB的負(fù)荷量部分的數(shù)據(jù)的第一步驟551是將負(fù)荷量部分讀入易失性存儲(chǔ)器503。在下一步驟552更新易失性存儲(chǔ)器503內(nèi)的數(shù)據(jù)。在此方面所述方法類似于圖4所示的傳統(tǒng)、非故障安全方法。然而,不將更新數(shù)據(jù)寫入同一個(gè)物理存儲(chǔ)單元,而是寫入閃速存儲(chǔ)單元502。為了保證即使在出現(xiàn)不希望的系統(tǒng)故障之后,仍能保證始終可以得到有效數(shù)據(jù)拷貝,要執(zhí)行仔細(xì)設(shè)計(jì)的系列后續(xù)步驟。
在步驟553,第二存儲(chǔ)單元502的狀態(tài)指示符字段522由“未使用”變更為“寫”。在步驟554,將LDB標(biāo)識(shí)符從第一存儲(chǔ)單元501的LDB標(biāo)識(shí)符字段511拷貝到第二存儲(chǔ)單元502的LDB標(biāo)識(shí)符字段521。在步驟551,從第一存儲(chǔ)單元讀取LDB標(biāo)識(shí)符和負(fù)荷量數(shù)據(jù),或者事先從其它位置(例如LTPTL)獲得LDB標(biāo)識(shí)符,其最大優(yōu)勢在于,無需在步驟554對(duì)第一存儲(chǔ)單元進(jìn)行實(shí)際讀取操作。然而,從理論上說,最容易認(rèn)為準(zhǔn)備新存儲(chǔ)單元502的部分過程是直接從舊存儲(chǔ)單元501內(nèi)拷貝LDB標(biāo)識(shí)符。在步驟555,將更新負(fù)荷量數(shù)據(jù)寫入新存儲(chǔ)單元502的負(fù)荷量數(shù)據(jù)字段523??梢愿淖儾襟E554和步驟555的相互順序,而對(duì)本發(fā)明的應(yīng)用沒有顯著影響。
只有在成功將LDB標(biāo)識(shí)符和更新負(fù)荷量數(shù)據(jù)均寫入新存儲(chǔ)單元502后,才能在步驟556將新存儲(chǔ)單元502的相應(yīng)字段522內(nèi)的狀態(tài)指示符從“寫”狀態(tài)變更為“有效”狀態(tài)。此后,在步驟557,這樣更新物理閃速存儲(chǔ)器地址映射邏輯,以致它使LDB標(biāo)識(shí)符(同樣分別出現(xiàn)在舊存儲(chǔ)單元和新存儲(chǔ)單元的標(biāo)識(shí)符字段511和521內(nèi))與新物理存儲(chǔ)單元502相關(guān)。在步驟558,將舊存儲(chǔ)單元501的相應(yīng)字段512內(nèi)的狀態(tài)指示符從“有效”變更為“臟”。在之后某個(gè)瞬時(shí),執(zhí)行步驟559,在步驟559,擦除舊存儲(chǔ)單元所屬的FMEB(未示出),同時(shí)將舊存儲(chǔ)單元501內(nèi)的相應(yīng)字段512內(nèi)的狀態(tài)指示符由“臟”變更為“未使用”。
更新物理閃速存儲(chǔ)器地址映射邏輯的步驟關(guān)系不重要。最大優(yōu)勢在于,在將更新負(fù)荷量數(shù)據(jù)寫入新存儲(chǔ)單元步驟之后,并在擦除舊存儲(chǔ)單元之前,或者至少在下一次訪問更新負(fù)荷量數(shù)據(jù)之前,執(zhí)行此步驟。以下將對(duì)涉及物理閃速存儲(chǔ)器地址映射邏輯的更新步驟的存儲(chǔ)單元進(jìn)行研究。
總之,由于在各瞬時(shí),在非易失性閃速存儲(chǔ)器內(nèi)存在特性有效數(shù)據(jù)拷貝,所以圖5a和圖5b所示方法可以應(yīng)用于事務(wù)處理過程。如下的狀態(tài)表示出在圖5b所示各步驟之后,狀態(tài)指示符字段內(nèi)的值。
表1
由不希望的嚴(yán)重故障恢復(fù)的一般原則是,從其內(nèi)的LDB狀態(tài)指示符字段指出數(shù)據(jù)有效的存儲(chǔ)單元選擇數(shù)據(jù)。然而,從表1中可以看出,在步驟556結(jié)束之后,并且在步驟558開始之前,存在兩個(gè)存儲(chǔ)單元均要求包括有效數(shù)據(jù)的短暫周期,但是更新新存儲(chǔ)單元內(nèi)的數(shù)據(jù),而不更新舊存儲(chǔ)單元內(nèi)的數(shù)據(jù)。從這種情況恢復(fù)的簡單原則是,隨機(jī)選擇其內(nèi)的LDB指示符相同的存儲(chǔ)單元之一并而拋開其它存儲(chǔ)單元,即將其狀態(tài)指示符由“有效”變更為“臟”。因此,如果選擇舊存儲(chǔ)單元為有效,則未更新數(shù)據(jù)保持有效并且可以認(rèn)為根本沒有進(jìn)行企圖進(jìn)行的更新。如果選擇新存儲(chǔ)單元,則可以認(rèn)為企圖的更新已經(jīng)成功。
還有一種處理“有效+有效”情況的方法,這種情況僅略比所屬隨機(jī)選擇復(fù)雜,然而用全確定性取代了與隨機(jī)選擇相關(guān)的不確定性。可以規(guī)定LDB包括許多位,這些位用作基于時(shí)效順序的循環(huán)指示符。每次在將LDB寫入閃速存儲(chǔ)器時(shí),根據(jù)循環(huán)方式,直截了當(dāng)?shù)卣f,根據(jù)方式00→01→10→11→00等,指示符位的值從其先前值開始變更(或者如果每次優(yōu)先改變一位的數(shù)值,則00→01→10→11→00等)。如果在存儲(chǔ)器內(nèi)發(fā)現(xiàn)同一個(gè)LDB的兩個(gè)拷貝,則通過比較其循環(huán)指示符位,可以容易地發(fā)現(xiàn)其中哪個(gè)是新拷貝,哪個(gè)是舊拷貝。具有特定位數(shù)的循環(huán)指示符的有效性依賴于假定將同一個(gè)LDB的舊拷貝標(biāo)記為“臟”或者在指示符數(shù)值的循環(huán)完成之前將同一個(gè)LDB的舊拷貝擦除。循環(huán)指示符內(nèi)的位數(shù)越多,該數(shù)值的循環(huán)越長,并且通過檢驗(yàn)循環(huán)指示符值可以無歧義跟蹤的相應(yīng)“LDB歷史”越長。
在表1內(nèi)的用下劃線和黑體字強(qiáng)調(diào)說明可以從其內(nèi)有效讀取數(shù)據(jù)的存儲(chǔ)單元。
根據(jù)上述對(duì)故障安全更新過程的說明,現(xiàn)在,說明完全閃速存儲(chǔ)事務(wù)的優(yōu)勢實(shí)施例。我們假定在系統(tǒng)內(nèi)將其它字段附加到各LDB的LDB標(biāo)題。圖6示出其標(biāo)題包括LDB標(biāo)識(shí)符字段602、LDB狀態(tài)指示符字段603以及事務(wù)標(biāo)識(shí)符字段604的LDB 601的原理圖。我們進(jìn)一步假定LDB狀態(tài)指示符字段603的容許值對(duì)應(yīng)于狀態(tài)“未使用”、“寫”、“事務(wù)寫”、“有效”、“臟”以及“斷路”,其中“事務(wù)寫”狀態(tài)上述描述狀態(tài)的附加狀態(tài)。此外,假定系統(tǒng)在理論上具有選擇事務(wù)標(biāo)識(shí)符供其使用,因此在給定瞬時(shí),各事務(wù)標(biāo)識(shí)符或者處于使用狀態(tài)(“有效”狀態(tài))或者處于空閑(“無效”狀態(tài))狀態(tài),并且假定至少指定一個(gè)LDB作為有效LDB的存儲(chǔ)區(qū)。我們將此特定LDB稱為LDB#T。
現(xiàn)在,參考圖7,在步驟701,通過啟動(dòng)事務(wù)標(biāo)識(shí)符,即選擇到目前為止無效事務(wù)標(biāo)識(shí)符并將它寫入LDB#T,開始進(jìn)行事務(wù)。我們將此特定事務(wù)標(biāo)識(shí)符稱為#TID。通過利用參考圖5a和圖5b說明的故障安全最小單元更新過程,可以實(shí)現(xiàn)此寫入過程。在成功啟動(dòng)#TID后,就可以認(rèn)為已經(jīng)開始執(zhí)行事務(wù)。
啟動(dòng)事務(wù)標(biāo)識(shí)符的概念對(duì)于本發(fā)明具有一般重要性,并且,顯然,將它寫入LDB#T不是唯一可行實(shí)際實(shí)現(xiàn)過程。在本發(fā)明上下文中,將啟動(dòng)事務(wù)標(biāo)識(shí)符理解為可以將事務(wù)標(biāo)識(shí)符設(shè)置為特定第一狀態(tài)的所有此過程,在特定第一狀態(tài),可以無歧義恢復(fù)它,即使系統(tǒng)發(fā)生故障。相應(yīng)地,啟動(dòng)特定事務(wù)標(biāo)識(shí)符意味著將它設(shè)置為特定第二狀態(tài),即使在系統(tǒng)發(fā)生故障之后,仍可以無歧義識(shí)別特定第二狀態(tài)與所述特定第一狀態(tài)??梢詫⒁呀?jīng)啟動(dòng)并且還未關(guān)閉的所有這種事務(wù)標(biāo)識(shí)符指定為有效事務(wù)標(biāo)識(shí)符。
閃速存儲(chǔ)事務(wù)情況下的實(shí)際數(shù)據(jù)更新過程包括多個(gè)分別涉及單個(gè)LDB的更新操作。在步驟702,將特定LDB標(biāo)識(shí)符LDB#X標(biāo)識(shí)的LDB的內(nèi)容從第一閃速存儲(chǔ)單元讀入易失性工作空間存儲(chǔ)器,并且在步驟703,對(duì)其負(fù)荷量數(shù)據(jù)部分內(nèi)的數(shù)據(jù)進(jìn)行更新。在步驟704,新的第二閃速存儲(chǔ)單元的狀態(tài)指示符字段由“未使用”變更為“寫”,并且在步驟705,將LDB#X寫入第二存儲(chǔ)單元的LDB標(biāo)識(shí)符字段。在步驟706,將#TID寫入第二存儲(chǔ)單元的事務(wù)標(biāo)識(shí)符字段,在步驟707,將更新數(shù)據(jù)寫入第二存儲(chǔ)單元的負(fù)荷量數(shù)據(jù)部分。還可以改變步驟705、706和707之間的相互順序。在將正確LDB標(biāo)識(shí)符(LDB#X)、事務(wù)標(biāo)識(shí)符(#TID)以及更新負(fù)荷量數(shù)據(jù)成功發(fā)送到第二存儲(chǔ)單元后,在步驟708,將其狀態(tài)指示符字段的數(shù)值從“寫”變更為“事務(wù)寫”。
在步驟709,檢驗(yàn)完成LDB更新操作是否是最后一個(gè)閃速存儲(chǔ)事務(wù)。如果步驟709的檢驗(yàn)結(jié)果是否定的,則意味著在當(dāng)前事務(wù)情況下,仍然存在待執(zhí)行的其它LDB更新操作,因此,除了開始點(diǎn)與上述不同并且更新結(jié)果寫入的第二存儲(chǔ)單元與上述第二存儲(chǔ)單元不同之外,返回步驟702。如果步驟709的檢驗(yàn)結(jié)果是肯定的,則意味著與當(dāng)前事務(wù)相關(guān)的數(shù)據(jù)更新過程已經(jīng)結(jié)束,因此該事務(wù)進(jìn)入其執(zhí)行階段。
圖7所示的閃速存儲(chǔ)事務(wù)的執(zhí)行階段包括步驟701,在步驟701,從LDB#T內(nèi)刪除#TID。故障安全最小單元更新過程還用于進(jìn)行此刪除過程。此時(shí),應(yīng)該注意,被更新的與事務(wù)相關(guān)的所有舊存儲(chǔ)單元被其狀態(tài)指示符字段宣告有效。因此,以包括步驟711、712、713和714的循環(huán)方式繼續(xù)進(jìn)行事務(wù)。在步驟711,更新物理閃速存儲(chǔ)器地址映射邏輯,從而使LDB標(biāo)識(shí)符LDB#X與新物理存儲(chǔ)單元相關(guān)。與其它方法步驟有關(guān)的地址映射更新步驟的實(shí)際存儲(chǔ)單元不象上述根據(jù)故障安全最小單元更新過程說明的那樣重要。在步驟712,容納被稱為LDB#X的舊、未更新特定數(shù)據(jù)塊的特定第一存儲(chǔ)單元的狀態(tài)指示符由“有效”變更為“臟”。
在步驟713,容納被稱為LDB#X的新、更新數(shù)據(jù)塊的相應(yīng)第二存儲(chǔ)單元的狀態(tài)指示符由“事務(wù)寫”變更為“有效”。如果未使用同一個(gè)事務(wù)標(biāo)識(shí)符,則不必明確執(zhí)行步驟713,以下將詳細(xì)說明延遲步驟713。在步驟714,檢驗(yàn)與執(zhí)行事務(wù)相關(guān)的所有LDB是否在步驟711、712和713進(jìn)行改變,如果檢驗(yàn)結(jié)果是否定的,則返回步驟711以處理另一個(gè)第一—第二存儲(chǔ)單元對(duì),如果步驟714的檢驗(yàn)結(jié)果是肯定的,則意味著檢驗(yàn)處理過程已經(jīng)完成。
如下的狀態(tài)表示出在圖7所示各步驟之后位于特定舊存儲(chǔ)單元和新存儲(chǔ)單元內(nèi)的狀態(tài)指示符的數(shù)值。為了簡潔起見使用簡略符號(hào),即簡略符號(hào)U表示“未使用”、W表示“寫”、T表示“建議寫”、V表示“有效”、D表示“臟”。
表2
表2內(nèi)的黑體字和下劃線強(qiáng)調(diào)說明在給定瞬時(shí)其內(nèi)的有效數(shù)據(jù)可用的存儲(chǔ)單元。我們現(xiàn)在分析處理事務(wù)過程的一般規(guī)則方面的數(shù)據(jù)有效性。
在上述說明中,我們注意到事務(wù)的所有更新操作必須或者全部一起成功或者全部一起失敗。這兩者之間取舍分界線是事務(wù)的執(zhí)行階段。在圖7中,步驟710為執(zhí)行步驟。
如果在事務(wù)到達(dá)步驟710之前,即在從有效事務(wù)標(biāo)識(shí)符的指定存儲(chǔ)器刪除事務(wù)標(biāo)識(shí)符#TID之前,出現(xiàn)嚴(yán)重系統(tǒng)故障,則基本上不能確定是否正確完成所有LDB更新。因此,唯一合理方法是使事務(wù)無效,即使所有更新操作無效。換句話說,在出現(xiàn)嚴(yán)重錯(cuò)誤之后,接著啟動(dòng)系統(tǒng)時(shí),所有物理存儲(chǔ)單元均被標(biāo)記為“臟”,這樣就可用滿足下列兩個(gè)判據(jù)之一· 其狀態(tài)指示符字段的數(shù)值表示“寫”狀態(tài)· 其狀態(tài)指示符字段的數(shù)值表示“事務(wù)寫”狀態(tài),并且其事務(wù)標(biāo)識(shí)符字段內(nèi)的事務(wù)標(biāo)識(shí)符還出現(xiàn)在有效事務(wù)標(biāo)識(shí)符的指定存儲(chǔ)器內(nèi)。
在某些情況下,待宣告為“臟”的物理存儲(chǔ)單元還滿足其LDB標(biāo)識(shí)符字段的數(shù)值還出現(xiàn)在另一個(gè)(舊)物理存儲(chǔ)單元的相應(yīng)字段內(nèi)的判據(jù)。然而,這種特征不是因?yàn)閹讉€(gè)原因待宣告為“臟”的物理存儲(chǔ)單元的可靠霍爾標(biāo)記。其中最重要的是在將其擦除之前,舊物理存儲(chǔ)單元保持該狀態(tài)多長時(shí)間的典型不確定性。背景清除例程連續(xù)監(jiān)視閃速存儲(chǔ)器的狀態(tài)并試圖通過移動(dòng)數(shù)據(jù)塊、擦除FMEB產(chǎn)生空閑存儲(chǔ)空間。此外,在某些情況下,會(huì)出現(xiàn)在沒有LDB的“舊”拷貝的操作的最初階段發(fā)生系統(tǒng)故障,因?yàn)樵诖龍?zhí)行的第一事務(wù)導(dǎo)致“新”拷貝被寫入閃速存儲(chǔ)器之前,閃速存儲(chǔ)器被清除。
如果在完成步驟710之后,即在從有效事務(wù)標(biāo)識(shí)符的指定存儲(chǔ)器刪除事務(wù)標(biāo)識(shí)符#TID之后,出現(xiàn)嚴(yán)重系統(tǒng)故障,則可以確定正確進(jìn)行了LDB更新。因此,可以安全宣告事務(wù)被成功執(zhí)行,并且可以在接著啟動(dòng)系統(tǒng)時(shí),從“新”存儲(chǔ)單元讀取更新LDB。在這種情況下,所有物理存儲(chǔ)單元被標(biāo)記為“臟”,這樣就滿足了以下3個(gè)判據(jù)· 其LDB標(biāo)識(shí)符字段的數(shù)值還出現(xiàn)在另一個(gè)(新)物理存儲(chǔ)單元的相應(yīng)字段內(nèi);· 其狀態(tài)指示符字段的數(shù)值表示狀態(tài)“有效”;· 在具有相同LDB標(biāo)識(shí)符的其它(新)物理存儲(chǔ)單元的事務(wù)標(biāo)識(shí)符字段建立的事務(wù)標(biāo)識(shí)符不出現(xiàn)在有效事務(wù)標(biāo)識(shí)符的指定存儲(chǔ)器內(nèi)。
此外,將所有物理存儲(chǔ)單元標(biāo)記為有效,這樣就滿足如下兩個(gè)判據(jù)· 其狀態(tài)指示符字段的數(shù)值表示狀態(tài)“事務(wù)寫”· 在其事務(wù)標(biāo)識(shí)符字段建立的事務(wù)標(biāo)識(shí)符不出現(xiàn)在有效事務(wù)標(biāo)識(shí)符的指定存儲(chǔ)器內(nèi)。
可以延遲執(zhí)行上述說明的將“事務(wù)寫”塊變更為“有效”的步驟,直到存儲(chǔ)在其事務(wù)標(biāo)識(shí)符字段內(nèi)的同一個(gè)TID下一次被啟動(dòng),或者直到重新更新這些特定塊。
在分析如果在系統(tǒng)執(zhí)行步驟710時(shí)發(fā)生嚴(yán)重系統(tǒng)故障會(huì)出現(xiàn)什么問題時(shí),我們參考結(jié)合圖5a和圖5b說明的故障安全最小單元更新操作過程。我們給出了從不意外故障恢復(fù)的原則,因此在大多數(shù)情況下,不可能出現(xiàn)不確定性。只有在舊物理存儲(chǔ)單元和新物理存儲(chǔ)單元均有效時(shí),如果允許隨機(jī)選擇舊物理存儲(chǔ)單元或新物理存儲(chǔ)單元,會(huì)出現(xiàn)發(fā)生嚴(yán)重系統(tǒng)故障時(shí)閃速存儲(chǔ)器所處的狀態(tài)不能明確確定在下一次啟動(dòng)系統(tǒng)時(shí)是選擇重新運(yùn)行中斷事務(wù),還是選擇執(zhí)行中斷事務(wù)。如果更新LDB#T,我們自然要規(guī)定始終選擇“有效+有效”情況,例如在其內(nèi)存儲(chǔ)少量(大量)事務(wù)標(biāo)識(shí)符的存儲(chǔ)單元情況,因此或多(或少)可以將步驟710解釋為已經(jīng)完成。在此應(yīng)用程序之前,最具優(yōu)勢的方法是可以將循環(huán)指示符用作更新LDB#T過程的一部分,因此可以取消上述隨機(jī)性。
接著,將對(duì)本發(fā)明應(yīng)用于并行事務(wù)的情況進(jìn)行說明。事務(wù)處理的一個(gè)基本原則是,從來不允許進(jìn)行兩個(gè)并行事務(wù)以準(zhǔn)確并行更新同一個(gè)邏輯數(shù)據(jù)區(qū)。然而,可以允許兩個(gè)或多個(gè)并行事務(wù)來并行更新特定LDB的非重疊部分,只要是順序執(zhí)行事務(wù)執(zhí)行階段即可,也就是只有在不同時(shí)執(zhí)行另一個(gè)并行事務(wù)的執(zhí)行階段時(shí),才可以開始特定并行事務(wù)之一的執(zhí)行階段。
為了簡潔起見,我們僅說明并行事務(wù)對(duì)單個(gè)LDB的影響。然而,什么都不防礙把并行事務(wù)應(yīng)用于更新非常大量LDB。在以下說明中易于推廣到涵蓋這種情況。
圖8以及圖9a至圖9j示出利用閃速存儲(chǔ)器實(shí)現(xiàn)并行事務(wù)的設(shè)備和方法。在圖8中,示出舊物理存儲(chǔ)單元800、多個(gè)新物理存儲(chǔ)單元以及多個(gè)易失性存儲(chǔ)器(RAM)緩沖區(qū)。為了處理并行事務(wù),優(yōu)勢在于,有多少對(duì)單個(gè)LDB產(chǎn)生影響的并行事務(wù)就有多少新物理存儲(chǔ)單元和多少易失性存儲(chǔ)器緩沖區(qū)。在此,假定并行事務(wù)數(shù)為3,則有3個(gè)新物理存儲(chǔ)單元810、820和830,并且有3個(gè)易失性存儲(chǔ)器緩沖區(qū)841、842和843。3個(gè)并行事務(wù)與特定事務(wù)標(biāo)識(shí)符TID#A、TID#B和TID#C相關(guān)。通常,利用正整數(shù)N表示并行事務(wù)數(shù)。LDB結(jié)構(gòu)與上述相同,即在LDB標(biāo)題,存在LDB標(biāo)識(shí)符字段、LDB狀態(tài)指示符字段和事務(wù)標(biāo)識(shí)符字段。假定將作為并行更新目標(biāo)的LDB表示為LDB#X。在開始執(zhí)行并行事務(wù)時(shí),其TID字段的內(nèi)容不重要,因此可以用TID#?來表示它。
如果在非常不同的時(shí)間啟動(dòng)并行事務(wù),則可以取消對(duì)有多少并行事務(wù)就有多少新物理存儲(chǔ)單元和有多少易失性存儲(chǔ)器緩沖區(qū)的要求,因此其中某些可以使它較早完成并且可以釋放對(duì)其分配的資源。同樣,可以對(duì)易失性存儲(chǔ)器緩沖區(qū)的大小進(jìn)行優(yōu)化,以致各易失性存儲(chǔ)器緩沖區(qū)的大小足以包含使用此易失性存儲(chǔ)器緩沖區(qū)的特定事務(wù)允許更新的這些數(shù)據(jù)位。易失性存儲(chǔ)器緩沖區(qū)尤其不需要包括待更新的LDB的標(biāo)題字段的存儲(chǔ)空間;通過用虛線示出相應(yīng)部分,在圖中說明此情況。實(shí)際上,完全可以認(rèn)為,通過在更新過程中在用新數(shù)據(jù)替換舊數(shù)據(jù)的各步驟使用新閃速存儲(chǔ)單元,就可以實(shí)現(xiàn)此事務(wù),而無需易失性存儲(chǔ)器緩沖區(qū)。然而,與以相對(duì)較大塊形式將數(shù)據(jù)從邏輯閃速存儲(chǔ)器件讀入易失性工作空間存儲(chǔ)器,在易失性工作空間存儲(chǔ)器內(nèi)執(zhí)行所有更新過程并將更新塊重新寫入閃速存儲(chǔ)器的解決方案相比,這種“從閃速到閃速”更新過程的效率通常非常低。
將允許進(jìn)行特定事務(wù)TID#i以進(jìn)行更新的LDB#X的未更新拷貝內(nèi)的數(shù)據(jù)位標(biāo)記為i1,其中i=A、B、C。在此,假定幾乎同步進(jìn)行并行事務(wù),但是并不限定要求在開始一個(gè)事務(wù)之前,在相當(dāng)長時(shí)間內(nèi)進(jìn)行另一個(gè)事務(wù)。在我們的例子中,通過將事務(wù)標(biāo)識(shí)符TID#A、TID#B和TID#C寫入有效事務(wù)標(biāo)識(shí)符850的存儲(chǔ)器內(nèi),開始進(jìn)行并行事務(wù)處理過程。通過將LDB#X從舊物理存儲(chǔ)單元800讀入所有分配易失性存儲(chǔ)器緩沖區(qū)841、842和843,開始進(jìn)行數(shù)據(jù)更新過程。圖9a示出讀操作之后的情況,在此步驟,不對(duì)數(shù)據(jù)進(jìn)行更新,因?yàn)楦魇聞?wù)同步開始。
僅允許各并行事務(wù)分別更新在易失性存儲(chǔ)器緩沖區(qū)之一內(nèi)與其相關(guān)的數(shù)據(jù)選擇,因此我們可以假定TID#A更新緩沖區(qū)841內(nèi)的A位、TID#B更新緩沖區(qū)842內(nèi)的B位,TID#C更新緩沖區(qū)843內(nèi)的C位。此時(shí),不改變新物理存儲(chǔ)單元8 10、820和830內(nèi)的內(nèi)容。
圖9b示出最快并行事務(wù)之一(即事務(wù)TID#A)完成必須在相應(yīng)易失性存儲(chǔ)器緩沖區(qū)841內(nèi)執(zhí)行的所有更新時(shí)的情況,即利用更新A2位代替所有A1位情況。然后,根據(jù)上述結(jié)合單個(gè)事務(wù)說明的方法步驟,將該易失性存儲(chǔ)器緩沖區(qū)的內(nèi)容寫入相應(yīng)新閃速存儲(chǔ)單元810。圖9b示出如何通過將狀態(tài)標(biāo)識(shí)符從“未使用”變更為“寫”并且通過將LDB標(biāo)識(shí)符LDB#X和事務(wù)標(biāo)識(shí)符TID#A寫入正確標(biāo)題字段開始進(jìn)行寫。
圖9c示出如何將第一易失性存儲(chǔ)器緩沖區(qū)841的內(nèi)容寫入相應(yīng)新閃速存儲(chǔ)單元810。此外,圖9c還示出并行事務(wù)處理過程中的重要步驟還將第一事務(wù)執(zhí)行的更新A1→A2拷貝到其它易失性存儲(chǔ)器緩沖區(qū)842和843。把完成的新閃速存儲(chǔ)單元810的狀態(tài)標(biāo)識(shí)符從“寫”變更為“事務(wù)寫”。
圖9d示出并行事務(wù)處理中的另外兩個(gè)改進(jìn)步驟。通過從有效事務(wù)標(biāo)識(shí)符850的存儲(chǔ)器內(nèi)刪除其標(biāo)識(shí)符、將舊物理存儲(chǔ)單元800的狀態(tài)指示符從“有效”變更為“臟”并將完成新物理存儲(chǔ)單元的狀態(tài)指示符從“事務(wù)寫”變更為“有效”,完成事務(wù)TID#A。同時(shí),發(fā)生了第二最快速事務(wù)TID#B到達(dá)在易失性存儲(chǔ)器緩沖區(qū)842內(nèi)進(jìn)行所有更新的階段,因此通過將狀態(tài)標(biāo)識(shí)符從“未使用”變更為“寫”并且通過將LDB標(biāo)識(shí)符LDB#X和事務(wù)標(biāo)識(shí)符TID#B寫入正確標(biāo)題字段,開始寫入相應(yīng)閃速存儲(chǔ)單元820。
顯然,除了以下不同之外,圖9e和圖9f所示的步驟分別與圖9c和圖9d所示的步驟相同· 在圖9e中,完成寫入第二閃速存儲(chǔ)單元820,并且就是B1→B2的更新被拷貝到剩余易失性存儲(chǔ)器緩沖區(qū)(最大優(yōu)勢在于,在此步驟不分配緩沖區(qū)841,通過將它放在括號(hào)內(nèi)表示的)
· 在圖9f中,執(zhí)行事務(wù)TID#B(使先前有效物理存儲(chǔ)單元810“臟”并使最新物理存儲(chǔ)單元820有效)并且就是最后事務(wù)TID#C結(jié)束易失性存儲(chǔ)器緩沖區(qū)843內(nèi)的更新,從而開始寫入第三閃速存儲(chǔ)單元830。
顯然,除了完成寫入第三閃速存儲(chǔ)單元830,并且圖9g所示的步驟最大優(yōu)勢在于,在此步驟不分配所有其它易失性存儲(chǔ)器緩沖區(qū),所以不將C1→C2更新拷貝到任何其它易失性存儲(chǔ)器緩沖區(qū),除此之外,圖9g所示的步驟與圖9e所示步驟相同。在圖9h中,通過從有效事務(wù)標(biāo)識(shí)符850的存儲(chǔ)器內(nèi)刪除標(biāo)識(shí)符TID#C、將相應(yīng)狀態(tài)標(biāo)識(shí)符從“事務(wù)寫”變更為“有效”以及使先前有效物理存儲(chǔ)單元820變成“臟”,執(zhí)行完成事務(wù)TID#C。
由于利用上述說明的最小單元更新過程,所以更新LTPTL表以指向特定LDB的最新有效拷貝的各步驟的存儲(chǔ)單元并不重要,但是最大優(yōu)勢在于,它是在將所述最新有效拷貝寫入閃速存儲(chǔ)器之后并且在擦除舊、無效拷貝之后發(fā)生的。
通過分別分析并行事務(wù)的各執(zhí)行階段,可以容易地發(fā)現(xiàn)上述過程與一般事務(wù)處理原則之間的一致性。在所有這些事務(wù)中,留待在下一次啟動(dòng)系統(tǒng)時(shí),執(zhí)行在最后出現(xiàn)系統(tǒng)故障之前從有效事務(wù)標(biāo)識(shí)符850的存儲(chǔ)器內(nèi)刪除的標(biāo)識(shí)符,因?yàn)榫哂斜贿@些事務(wù)更新的數(shù)據(jù)的閃速存儲(chǔ)單元處于“有效”狀態(tài)。重新運(yùn)行仍然具有被作為有效標(biāo)識(shí)符存儲(chǔ)的所有這些事務(wù)。
在對(duì)本發(fā)明實(shí)施例的說明中,到目前為止假定在完成從邏輯閃速存儲(chǔ)器件讀取舊LDB之后,并且在將新、完成更新LDB寫入閃速存儲(chǔ)器之前,完成數(shù)據(jù)的所有更新過程。為了實(shí)現(xiàn)完整性(接著將參考圖10a至圖10f說明),采用對(duì)閃速存儲(chǔ)器進(jìn)行所謂鏈接寫操作的本發(fā)明實(shí)施例。為了使本說明簡潔,我們僅研究單個(gè)、非并行事務(wù),但是同樣的原理完全適用于并行事務(wù)。
圖10a示出在將數(shù)據(jù)從舊物理存儲(chǔ)單元1000讀入易失性工作空間存儲(chǔ)器(未示出)進(jìn)行第一次更新的開始階段時(shí)的舊物理存儲(chǔ)單元1000和兩個(gè)新物理存儲(chǔ)單元1010和1020。在圖10b所示的步驟,準(zhǔn)備利用被稱為TID#Y的事務(wù)進(jìn)行第一次更新,因此開始將部分更新LDB寫入第一新物理存儲(chǔ)單元1010。在此,還假定首先寫入標(biāo)題字段,并使?fàn)顟B(tài)指示符獲得數(shù)值“寫”。在圖10c所示的步驟,結(jié)束寫入部分更新拷貝,因此其狀態(tài)指示符被變更為“事務(wù)寫”。與此同時(shí),第二次更新接近結(jié)束,因此開始寫入第二新物理存儲(chǔ)單元1020。
圖10d示出也已經(jīng)結(jié)束寫入完成更新拷貝,因此也將其狀態(tài)指示符變更為“事務(wù)寫”的步驟。圖10e示出舊、部分更新狀態(tài)指示符變?nèi)绾胃鼮椤芭K”,同時(shí)仍保持執(zhí)行事務(wù)。下一個(gè)步驟是通過從有效事務(wù)標(biāo)識(shí)符(未示出)的存儲(chǔ)器內(nèi)刪除TID#Y,執(zhí)行事務(wù)的步驟。在只有一個(gè)更新數(shù)據(jù)保持“事務(wù)寫”狀態(tài)階段進(jìn)行此執(zhí)行步驟,因?yàn)槿绻趫?zhí)行之后,立即發(fā)生系統(tǒng)故障,則在下一次啟動(dòng)時(shí),處于此狀態(tài)的多個(gè)更新數(shù)據(jù)會(huì)產(chǎn)生歧義。圖10f所示的最后步驟包括這樣地更新狀態(tài)指示符使第二新物理存儲(chǔ)單元1020現(xiàn)在具有有效數(shù)據(jù),而其它物理存儲(chǔ)單元為“臟”。
在鏈接的寫操作情況下,變更物理存儲(chǔ)單元的狀態(tài)指示符的順序有幾種選擇。例如,即使是在開始寫入第二新物理存儲(chǔ)單元1020之前,仍可以將第一新物理存儲(chǔ)單元1010內(nèi)的部分更新拷貝的狀態(tài)變更為“臟”。換句話說,圖10c所示的狀態(tài)指示符從上到下是V、D和W,并且在進(jìn)一步步驟中,第一新物理存儲(chǔ)單元的狀態(tài)將保持“臟”。另一種可能性是,在開始寫入第二新物理存儲(chǔ)單元1020之后,而在將第二新物理存儲(chǔ)單元1020的狀態(tài)從“寫”變更為“事務(wù)寫”之前,將第一新物理存儲(chǔ)單元1010內(nèi)的部分更新拷貝的狀態(tài)變更為“臟”。換句話說,第一新物理存儲(chǔ)單元是圖10d、圖10e和圖10f所示的“臟”。
以上結(jié)合并行事務(wù)說明的一般方法可以應(yīng)用于實(shí)現(xiàn)基于RAM的閃速存儲(chǔ)寫高速緩存,該基于RAM的閃速存儲(chǔ)寫高速緩存有助于精簡鏈接寫操作方法。這意味著,在事務(wù)TID#X第一次更新LDB#X并且僅將部分更新LDB#X寫入高速緩存時(shí),始終將特定LDBD#的閃速拷貝寫入RAM。即使當(dāng)前不存在更新同一個(gè)LDB的其它事務(wù),仍將數(shù)據(jù)從閃速存儲(chǔ)器讀入RAM緩沖器。如果同時(shí)存在更新該LDB的其它事務(wù),則直接進(jìn)行處理并行事務(wù)的處理過程。從數(shù)據(jù)的完整性觀點(diǎn)出發(fā),在其執(zhí)行階段之前在執(zhí)行事務(wù)期間進(jìn)行的寫高速緩存是安全的??梢燥@著改善文件系統(tǒng)的性能,特別是在事務(wù)中僅更新LDB的一位或一個(gè)字節(jié)情況下。
圖11示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的設(shè)備1100的原理圖。閃速存儲(chǔ)器1101通過讀寫單元1103連接到工作空間RAM1102,讀寫單元1103在閃速存儲(chǔ)器1101與工作空間RAM1102之間實(shí)現(xiàn)實(shí)際數(shù)據(jù)傳送,并利用地址映射塊1104將邏輯數(shù)據(jù)塊標(biāo)識(shí)符映射到閃速存儲(chǔ)器內(nèi)的物理存儲(chǔ)單元。通過執(zhí)行從程序存儲(chǔ)器1106讀取和/或從輸入/輸出接口1107獲得的程序,程序執(zhí)行塊1105控制操作過程。背景清除單元1108以公知方式保持閃速存儲(chǔ)器1101的狀態(tài)。
上述說明的本發(fā)明典型實(shí)施例不應(yīng)限制以其它方式應(yīng)用本發(fā)明,顯然,根據(jù)上述說明,在所附權(quán)利要求所述的本發(fā)明范圍內(nèi),本技術(shù)領(lǐng)域內(nèi)的熟練技術(shù)人員可以實(shí)現(xiàn)各種變換實(shí)施例。例如,即使我們指出這樣將事務(wù)標(biāo)識(shí)符與更新LDB一起存儲(chǔ)到閃速存儲(chǔ)器,仍可以通過使更新LDB與特定事務(wù)標(biāo)識(shí)符無歧義相關(guān)的某些其它數(shù)值與更新LDB一起存儲(chǔ),實(shí)現(xiàn)同樣效果。
權(quán)利要求
1.一種通過執(zhí)行一些必須或者全部一起成功或者全部一起失敗的更新操作用于更新第一數(shù)字?jǐn)?shù)據(jù)塊(601)的方法,所述一些的數(shù)量大于或大于1,其特征在于,該方法包括下列順序的步驟· 啟動(dòng)(701)對(duì)涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有這些更新操作通用的第一標(biāo)識(shí)符(TID);· 執(zhí)行(703)涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有更新操作;· 將更新第一數(shù)字?jǐn)?shù)據(jù)塊與使更新第一數(shù)據(jù)塊與所述第一標(biāo)識(shí)符相關(guān)的數(shù)值一起存儲(chǔ)(707)到邏輯閃速存儲(chǔ)器件(1101);以及· 關(guān)閉(710)所述第一標(biāo)識(shí)符。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,啟動(dòng)(701)第一標(biāo)識(shí)符的步驟包括將所述第一標(biāo)識(shí)符存儲(chǔ)到為有效標(biāo)識(shí)符的存儲(chǔ)器分配的非易失性存儲(chǔ)單元(850)的分步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,啟動(dòng)第一標(biāo)識(shí)符的步驟包括分步驟a) 將為有效標(biāo)識(shí)符的存儲(chǔ)器分配的第一非易失性存儲(chǔ)單元(501)的內(nèi)容拷貝讀入(551)工作空間存儲(chǔ)器(503);b)利用待啟動(dòng)的第一標(biāo)識(shí)符(604)補(bǔ)充(552)被讀入工作空間存儲(chǔ)器(503)的拷貝,從而產(chǎn)生更新拷貝;c)將第二非易失性存儲(chǔ)單元(502)的狀態(tài)指示符(522)設(shè)置(553)為表示該存儲(chǔ)單元進(jìn)行寫操作的第一數(shù)值;d)將所述第二非易失性存儲(chǔ)單元(502)內(nèi)的數(shù)據(jù)塊標(biāo)識(shí)符(521)設(shè)置(554)為與所述第一非易失性存儲(chǔ)單元(501)內(nèi)的相應(yīng)數(shù)據(jù)塊標(biāo)識(shí)符(511)相同;e)將所述更新拷貝寫入(555)所述第二非易失性存儲(chǔ)單元(502);f)將所述第二非易失性存儲(chǔ)單元(502)的所述狀態(tài)指示符設(shè)置(556)為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的第二數(shù)值;g)更新(557)地址映射實(shí)體以使所述第二非易失性存儲(chǔ)單元(502)內(nèi)的所述數(shù)據(jù)塊標(biāo)識(shí)符(521)與所述第二非易失性存儲(chǔ)單元(502)的物理地址相關(guān);以及h)將所述第一非易失性存儲(chǔ)單元(501)的狀態(tài)指示符(512)設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的第三數(shù)值。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,分步驟e)包括將循環(huán)指示符數(shù)值與所述更新拷貝一起寫入所述第二非易失性存儲(chǔ)單元(502)的子分步驟,這樣,在所述第一非易失性存儲(chǔ)單元(501)內(nèi),將循環(huán)指示符數(shù)值從相應(yīng)循環(huán)指示符數(shù)值增加1。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,關(guān)閉(710)所述第一標(biāo)識(shí)符的步驟包括從對(duì)有效標(biāo)識(shí)符的存儲(chǔ)器分配的所述非易失性存儲(chǔ)單元(850)內(nèi)刪除所述第一標(biāo)識(shí)符的分步驟。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,關(guān)閉所述第一標(biāo)識(shí)符的方法包括分步驟a)將對(duì)有效標(biāo)識(shí)符的存儲(chǔ)器分配的第二非易失性存儲(chǔ)單元(502)的內(nèi)容拷貝讀入(551)工作空間存儲(chǔ)器(503);b)從讀入工作空間存儲(chǔ)器(503)的拷貝中刪除(552)待關(guān)閉的第一標(biāo)識(shí)符,從而產(chǎn)生更新拷貝;c)將第三非易失性存儲(chǔ)單元(502)的狀態(tài)指示符設(shè)置(553)為表示該存儲(chǔ)單元進(jìn)行寫操作的第一數(shù)值;d)將所述第三非易失性存儲(chǔ)單元內(nèi)的數(shù)據(jù)塊標(biāo)識(shí)符設(shè)置(554)為與所述第二非易失性存儲(chǔ)單元(502)內(nèi)的相應(yīng)數(shù)據(jù)塊標(biāo)識(shí)符相同;e)將所述更新拷貝寫入(555)所述第三非易失性存儲(chǔ)單元;f)將所述第三非易失性存儲(chǔ)單元的所述狀態(tài)指示符設(shè)置(556)為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的第二數(shù)值;g)更新(557)地址映射實(shí)體以使所述第三非易失性存儲(chǔ)單元內(nèi)的所述數(shù)據(jù)塊標(biāo)識(shí)符與所述第三非易失性存儲(chǔ)單元的物理地址相關(guān);以及h)將所述第二非易失性存儲(chǔ)單元(502)的狀態(tài)指示符(522)設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的第三數(shù)值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,分步驟e)包括將循環(huán)指示符數(shù)值與所述更新拷貝一起寫入其循環(huán)指示符數(shù)值從所述第二非易失存儲(chǔ)單元(502)內(nèi)的相應(yīng)循環(huán)指示符數(shù)值增加1的所述第三非易失性存儲(chǔ)單元的子分步驟。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,關(guān)閉(710)所述第一標(biāo)識(shí)符的步驟包括將所述第一標(biāo)識(shí)符存儲(chǔ)到對(duì)關(guān)閉標(biāo)識(shí)符的存儲(chǔ)器分配的非易失性存儲(chǔ)器內(nèi)的分步驟。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)行更新操作和存儲(chǔ)更新第一數(shù)字?jǐn)?shù)據(jù)塊的步驟包括分步驟a)將對(duì)待更新數(shù)據(jù)的存儲(chǔ)器分配的第一非易失性存儲(chǔ)單元的內(nèi)容拷貝讀入(701)工作空間存儲(chǔ)器;b)更新(703)讀入工作空間存儲(chǔ)器的拷貝,從而產(chǎn)生更新的拷貝;c)將第二非易失性存儲(chǔ)單元的狀態(tài)指示符設(shè)置(704)為表示該存儲(chǔ)單元進(jìn)行寫操作的第一數(shù)值;d)將所述第二非易失性存儲(chǔ)單元內(nèi)的數(shù)據(jù)塊標(biāo)識(shí)符設(shè)置(705)為與所述第一非易失性存儲(chǔ)單元內(nèi)的相應(yīng)數(shù)據(jù)塊標(biāo)識(shí)符相同;e)將所述啟動(dòng)第一標(biāo)識(shí)符寫入(706)所述第二非易失性存儲(chǔ)單元;f)將所述更新的拷貝寫入(707)所述第二非易失性存儲(chǔ)單元;g)將所述第二非易失性存儲(chǔ)單元的所述狀態(tài)指示符設(shè)置(708)為表示該存儲(chǔ)單元含有已經(jīng)作為一些必須或者全部一起成功或者全部一起失敗的更新操作的一部分被更新的數(shù)據(jù)的第二數(shù)值;以及h)檢驗(yàn)(709)必須或者全部一起成功或者全部一起失敗的所述許多更新操作是否進(jìn)行了,如果沒有進(jìn)行的話,重新開始步驟a),從而在步驟c)、d)、e)、f)和g)涉及到不同的第二非易失性存儲(chǔ)單元。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,該方法還包括分步驟i)更新(711)地址映射實(shí)體從而使含有存儲(chǔ)更新拷貝的非易失性存儲(chǔ)單元內(nèi)的各數(shù)據(jù)塊標(biāo)識(shí)符與非易失性存儲(chǔ)單元的物理地址相關(guān);j)將經(jīng)過分步驟a)的各非易失性存儲(chǔ)單元的狀態(tài)指示符設(shè)置(712)為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的第三數(shù)值;k)將各第二非易失性存儲(chǔ)單元的所述狀態(tài)指示符設(shè)置(713)為表示該存儲(chǔ)單元第一有效數(shù)據(jù)的第四數(shù)值。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于,在啟動(dòng)(701)對(duì)必須或者全部一起成功或者全部一起失敗的所有更新操作通用的第一標(biāo)識(shí)符的步驟與關(guān)閉(710)所述第一標(biāo)識(shí)符之間,該方法還包括步驟· 執(zhí)行(703)這樣的更新操作它們與其它數(shù)據(jù)塊而不是第一數(shù)據(jù)塊有關(guān)系,并且與第一數(shù)據(jù)塊的所述更新操作必須或者全部一起成功或者全部一起失敗;以及· 將數(shù)字?jǐn)?shù)據(jù)的各更新塊與使各數(shù)據(jù)更新塊和所述第一標(biāo)識(shí)符相關(guān)的數(shù)值一起存儲(chǔ)(707)到邏輯閃速存儲(chǔ)器件內(nèi)。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行所有那些與第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有更新操作步驟包括選擇第一數(shù)據(jù)塊的第一部分(A1)作為涉及所述第一標(biāo)識(shí)符(TID#A)的更新操作的目標(biāo)這樣的步驟。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,該方法還包括步驟· 啟動(dòng)對(duì)涉及第一數(shù)據(jù)塊(800)并且必須或者全部一起成功或者全部一起失敗的,但是不要求與涉及所述第一標(biāo)識(shí)符(TID#A)的更新操作一起成功或者一起失敗的許多更新操作通用的第二標(biāo)識(shí)符(TID#B)· 選擇第一數(shù)據(jù)塊的第二部分(B1)作為涉及所述第二標(biāo)識(shí)符(TID#B)的更新操作目標(biāo),這樣第二部分就不會(huì)與所述第一部分(A1)重疊;· 執(zhí)行涉及第一數(shù)據(jù)塊、與第二標(biāo)識(shí)符(TID#B)相關(guān)并且必須或者全部一起成功或者全部一起失敗的所有更新操作;· 將與所述標(biāo)識(shí)符(TID#A)之一相關(guān)并且在與其它所述標(biāo)識(shí)符(TID#B)之一相關(guān)的更新操作之前完成的更新操作的更新結(jié)果(A2)變換為利用與其它所述標(biāo)識(shí)符之一相關(guān)的更新操作操作的數(shù)據(jù)塊的拷貝;· 將更新第一數(shù)字?jǐn)?shù)據(jù)塊與使更新第一數(shù)據(jù)塊和所述第二標(biāo)識(shí)符(TID#B)相關(guān)的數(shù)值一起存儲(chǔ)到邏輯閃速存儲(chǔ)器件;以及· 關(guān)閉所述第二標(biāo)識(shí)符(TID#B)。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,將更新第一數(shù)字?jǐn)?shù)據(jù)塊與使更新第一數(shù)據(jù)塊和所述第一標(biāo)識(shí)符(TID#A)相關(guān)的數(shù)值一起存儲(chǔ)到邏輯閃速存儲(chǔ)器件的步驟以及將更新第一數(shù)字?jǐn)?shù)據(jù)與使更新第一數(shù)據(jù)塊和所述第二標(biāo)識(shí)符(TID#B)相關(guān)的數(shù)值一起存儲(chǔ)到邏輯閃速存儲(chǔ)器件的步驟包括分步驟a)將第一非易失性存儲(chǔ)單元(810)的狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元進(jìn)行寫操作的第一數(shù)值(W);b)將與所述標(biāo)識(shí)符之一(TID#A)相關(guān)并且在完成與其它所述標(biāo)識(shí)符之一(TID#B)相關(guān)的更新操作之前完成的更新操作產(chǎn)生的這些更新拷貝寫入所述第一非易失性存儲(chǔ)單元(810);c)還將與產(chǎn)生在分步驟b)寫入的更新拷貝的更新操作相關(guān)的標(biāo)識(shí)符(TID#A)寫入所述第一非易失性存儲(chǔ)單元(810);d)將所述第一非易失性存儲(chǔ)單元(810)的所述狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有作為或者全部一起成功或者全部一起失敗的許多更新操作的一部分被更新的數(shù)據(jù)的第二數(shù)值(T);e)關(guān)閉與產(chǎn)生在分步驟b)寫入的更新拷貝的更新操作相關(guān)的標(biāo)識(shí)符(TID#A);f)將其內(nèi)的數(shù)據(jù)塊被作為更新目標(biāo)的非易失性存儲(chǔ)單元(800)的狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的第三數(shù)值(D);g)將所述第一非易失性存儲(chǔ)單元(810)的所述狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有用戶數(shù)據(jù)的第四數(shù)值(V);h)將第二非易失性存儲(chǔ)單元(820)的狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元進(jìn)行寫操作的第一數(shù)值(W);i)將與剩余有效所述標(biāo)識(shí)符之一(TID#B)相關(guān)的更新操作產(chǎn)生的更新拷貝寫入所述第二非易失性存儲(chǔ)單元(820);j)還將與產(chǎn)生在分步驟i)寫入的更新拷貝的更新操作相關(guān)的標(biāo)識(shí)符(TID#B)寫入所述第二非易失性存儲(chǔ)單元(820);k)將所述第二非易失性存儲(chǔ)單元(820)的所述狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有作為必須或者全部一起成功或者全部一起失敗的許多更新操作的一部分被更新的數(shù)據(jù)的第二數(shù)值(T);l)關(guān)閉與產(chǎn)生在分步驟i)寫入的更新拷貝的更新操作相關(guān)的標(biāo)識(shí)符(TID#B);m)將所述第一非易失性存儲(chǔ)單元(810)的所述狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的第三數(shù)值(D);以及n)將所述第二非易失性存儲(chǔ)單元(820)的所述狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的第四數(shù)值(V);
15.一種在基于邏輯閃速存儲(chǔ)器件的文件系統(tǒng)內(nèi)排除系統(tǒng)故障的方法,其特征在于,該方法包括步驟· 從有效標(biāo)識(shí)符表(850)內(nèi)檢驗(yàn)?zāi)男?biāo)識(shí)符在發(fā)生系統(tǒng)故障的瞬間是有效的;以及· 檢驗(yàn)物理存儲(chǔ)單元以定位含有使它們與發(fā)生系統(tǒng)故障瞬間有效的標(biāo)識(shí)符相關(guān)的數(shù)值的數(shù)據(jù)塊,并將含有這種數(shù)據(jù)塊的各非易失性存儲(chǔ)單元的狀態(tài)指示符設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的數(shù)值。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,該方法還包括步驟· 檢驗(yàn)物理存儲(chǔ)單元以定位數(shù)據(jù)塊對(duì);其中· 同一個(gè)數(shù)據(jù)塊標(biāo)識(shí)符(602)出現(xiàn)在該數(shù)據(jù)塊對(duì)的各數(shù)據(jù)塊內(nèi);· 數(shù)據(jù)塊對(duì)內(nèi)沒有數(shù)據(jù)塊與發(fā)生系統(tǒng)故障瞬間的有效標(biāo)識(shí)符相關(guān);· 將數(shù)據(jù)塊對(duì)內(nèi)的第一數(shù)據(jù)塊存儲(chǔ)到具有表示該存儲(chǔ)單元含有有效數(shù)據(jù)的狀態(tài)指示符(603)的存儲(chǔ)單元內(nèi);以及· 將數(shù)據(jù)塊對(duì)內(nèi)的第二數(shù)據(jù)塊存儲(chǔ)到具有表示該存儲(chǔ)單元含有作為必須或者全部一起成功或者全部一起失敗的許多更新操作的一部分被更新的數(shù)據(jù)的狀態(tài)指示符(603)的存儲(chǔ)單元內(nèi);· 將含有數(shù)據(jù)塊對(duì)內(nèi)的第一數(shù)據(jù)塊的每個(gè)這種非易失性存儲(chǔ)單元的狀態(tài)指示符(603)設(shè)置為表示該存儲(chǔ)單元含有無效數(shù)據(jù)的數(shù)值(D);以及· 將含有數(shù)據(jù)塊對(duì)內(nèi)的第二數(shù)據(jù)塊的每個(gè)這種非易失性存儲(chǔ)單元的狀態(tài)指示符(603)設(shè)置為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的數(shù)值(V)。
17.根據(jù)權(quán)利要求15所述的方法,其特征在于,該方法還包括步驟· 檢驗(yàn)物理存儲(chǔ)單元以定位這樣的數(shù)據(jù)塊,即· 與發(fā)生系統(tǒng)故障瞬時(shí)有效的標(biāo)識(shí)符無關(guān)并且· 存儲(chǔ)在具有表示該存儲(chǔ)單元含有作為必須或者全部一起成功或者全部一起失敗的許多更新操作的一部分被更新的數(shù)據(jù)的狀態(tài)指示符(603)的存儲(chǔ)單元內(nèi);以及· 將含有這種數(shù)據(jù)塊的每個(gè)這種非易失性存儲(chǔ)單元的狀態(tài)指示符(603)設(shè)置為表示該存儲(chǔ)單元含有有效數(shù)據(jù)的數(shù)值(V)。
18.根據(jù)權(quán)利要求15所述的方法,其特征在于,在有效標(biāo)識(shí)符表(850)內(nèi)檢驗(yàn)?zāi)男?biāo)識(shí)符在發(fā)生系統(tǒng)故障瞬間是有效的步驟包括分步驟a)在邏輯閃速存儲(chǔ)器件內(nèi)定位含有有效標(biāo)識(shí)符表和表示該存儲(chǔ)單元含有有效數(shù)據(jù)的狀態(tài)指示符的所有非易失性存儲(chǔ)單元;b)如果在分步驟a)僅定位一個(gè)所述類型的非易失性存儲(chǔ)單元,則選擇其內(nèi)的有效標(biāo)識(shí)符表作為有效標(biāo)識(shí)符的有效表;以及c)如果在分步驟a)定位不止一個(gè)所述類型的非易失性存儲(chǔ)單元,則把定位的非易失性存儲(chǔ)單元內(nèi)的有效標(biāo)識(shí)符表選為有效標(biāo)識(shí)符的有效表。
19.根據(jù)權(quán)利要求18所述的方法,其特征在于,分步驟c)含有子分步驟c1)從每個(gè)定位的非易失性存儲(chǔ)單元內(nèi)讀取循環(huán)指示符數(shù)值;以及c2)在該定位的非易失性存儲(chǔ)單元內(nèi)選擇有效標(biāo)識(shí)符表作為與最高級(jí)循環(huán)指示符相關(guān)的有效標(biāo)識(shí)符的有效表。
20.一種通過執(zhí)行必須或者全部一起成功或者全部一起失敗的許多更新操作來更新第一數(shù)字?jǐn)?shù)據(jù)塊的設(shè)備(1100),所述許多為大于或等于1,其特征在于,該設(shè)備包括· 邏輯閃速存儲(chǔ)器件(1101);· 裝置(1102、1103、1104、1105),用于啟動(dòng)對(duì)涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有更新操作通用的第一標(biāo)識(shí)符;· 裝置(1102、1103、1104、1105),用于執(zhí)行涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有更新操作;· 裝置(1102、1103、1104、1105),用于將更新第一數(shù)字?jǐn)?shù)據(jù)塊與使更新第一數(shù)據(jù)塊和所述第一標(biāo)識(shí)符相關(guān)的數(shù)值一起存儲(chǔ)到所述邏輯閃速存儲(chǔ)器件(1101)內(nèi);以及· 裝置(1102、1103、1104、1105),用于關(guān)閉所述第一標(biāo)識(shí)符。
21.根據(jù)權(quán)利要求20所述的設(shè)備,其特征在于,所述邏輯閃速存儲(chǔ)器件(1101)至少包括兩個(gè)在物理上的分離存儲(chǔ)器件,這兩個(gè)分離存儲(chǔ)器件一起構(gòu)成邏輯上的整體存儲(chǔ)器件。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其特征在于,所述至少兩個(gè)物理上的分離存儲(chǔ)器件包括固態(tài)閃速存儲(chǔ)器和磁盤驅(qū)動(dòng)器。
全文摘要
本發(fā)明披露了一種通過執(zhí)行必須或者全部一起成功或者全部一起失敗的許多更新操作來更新第一數(shù)字?jǐn)?shù)據(jù)塊(601)的方法和設(shè)備。更新操作的數(shù)量大于或等于1。啟動(dòng)(701)對(duì)涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的所有更新操作通用的第一標(biāo)識(shí)符(TID)。執(zhí)行(703)所有那些涉及第一數(shù)據(jù)塊并且必須或者全部一起成功或者全部一起失敗的更新操作。將更新第一數(shù)據(jù)塊與使更新第一數(shù)據(jù)塊和所述第一標(biāo)識(shí)符相關(guān)的數(shù)值一起存儲(chǔ)(707)到邏輯閃速存儲(chǔ)器件(1101)。關(guān)閉(710)所述第一標(biāo)識(shí)符。
文檔編號(hào)G06F12/16GK1384937SQ00814956
公開日2002年12月11日 申請(qǐng)日期2000年10月25日 優(yōu)先權(quán)日1999年10月26日
發(fā)明者馬泰洛·雅利 申請(qǐng)人:特拉博斯股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
塘沽区| 水城县| 体育| 永兴县| 寿宁县| 黑山县| 错那县| 油尖旺区| 盐山县| 禄丰县| 鹿邑县| 鄂托克旗| 连山| 名山县| 青铜峡市| 瓮安县| 嫩江县| 江油市| 许昌市| 甘泉县| 嘉黎县| 石棉县| 武城县| 漯河市| 高雄市| 黎川县| 嘉善县| 龙井市| 沁阳市| 昌吉市| 盐亭县| 新营市| 惠州市| 定远县| 柘城县| 闽侯县| 镇赉县| 曲松县| 安吉县| 沐川县| 浦城县|