專利名稱:安全存儲(chǔ)管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于數(shù)據(jù)存儲(chǔ)的安全管理的安全數(shù)據(jù)存儲(chǔ)管理系統(tǒng)和方法。
背景技術(shù):
在數(shù)據(jù)存儲(chǔ)領(lǐng)域,在多個(gè)參與方(party)存取單個(gè)存儲(chǔ)器(store)的情況下, 需要以保持?jǐn)?shù)據(jù)的完整性及一致性的方式管理多個(gè)參與方和存儲(chǔ)器之間的 通信鏈接以及管理向各個(gè)參與方分配存儲(chǔ)器內(nèi)的存儲(chǔ)空間。
不同的參與方可以例如是單獨(dú)的個(gè)人計(jì)算機(jī)、在計(jì)算機(jī)網(wǎng)絡(luò)中的單獨(dú)機(jī)
器、在計(jì)算機(jī)網(wǎng)絡(luò)中的單獨(dú)的操作系統(tǒng)、或在單個(gè)搡作系統(tǒng)中的不同的進(jìn)程。 下文中將所有的這些參與方稱為"進(jìn)程(process)"。
為了確保存儲(chǔ)的數(shù)據(jù)的完整性,已知在傳統(tǒng)的存儲(chǔ)管理系統(tǒng)中采用公共 存儲(chǔ)器管理器來(lái)管理進(jìn)程和存儲(chǔ)器之間的進(jìn)程間通信。這樣的傳統(tǒng)存儲(chǔ)管理 系統(tǒng)的框圖如圖l所示。如圖所示,該系統(tǒng)包括多個(gè)進(jìn)程IO,稱為進(jìn)程l、 進(jìn)程2…進(jìn)程N(yùn),它們通過(guò)各自的通信鏈接14經(jīng)由存儲(chǔ)器管理器進(jìn)程16來(lái) 與存儲(chǔ)器12進(jìn)行通信。存儲(chǔ)器管理器進(jìn)程16通過(guò)通信鏈接14從進(jìn)程10接 收請(qǐng)求,以向存儲(chǔ)器12讀寫數(shù)據(jù),并且負(fù)責(zé)處理向保持?jǐn)?shù)據(jù)完整性的連續(xù) 請(qǐng)求的單個(gè)隊(duì)列的多個(gè)并發(fā)請(qǐng)求。在實(shí)際中,存儲(chǔ)器管理器進(jìn)程16采用高 速緩沖存儲(chǔ)器1S作為臨時(shí)存儲(chǔ)器容量并且將僅在數(shù)據(jù)提交周期(commit cycle)結(jié)束時(shí)更新存儲(chǔ)器12。由于高速緩沖存儲(chǔ)器與存儲(chǔ)器12相比是相對(duì)快 速的器件,因此這具有提高處理速度的優(yōu)點(diǎn)。
圖1所示的存儲(chǔ)管理系統(tǒng)的一個(gè)缺點(diǎn)是在這種類型的系統(tǒng)中的進(jìn)程間通 信一般不安全,因而數(shù)據(jù)有可能被攔截和操縱。
圖l所示的存儲(chǔ)管理系統(tǒng)的另一個(gè)缺點(diǎn)是它需要存儲(chǔ)器管理器進(jìn)程的形 式的單獨(dú)的附加進(jìn)程,與相關(guān)的高速緩沖存儲(chǔ)器共同管理數(shù)據(jù)存儲(chǔ)。
這樣的存儲(chǔ)器管理器進(jìn)程消耗整個(gè)系統(tǒng)的中央處理單元的資源和周期, 需要將來(lái)自不同進(jìn)程10的所有的讀寫請(qǐng)求引導(dǎo)進(jìn)單獨(dú)的附加進(jìn)程中,所有 這些降低了整個(gè)系統(tǒng)的搡作的性能和速度。此外,向存儲(chǔ)器管理器進(jìn)程的通
信需要通信協(xié)議,這又增加了性能開(kāi)銷。也可能存在提供存儲(chǔ)器管理器進(jìn)程 16不經(jīng)濟(jì)或不實(shí)際的情況,例如,在一種現(xiàn)有的計(jì)算機(jī)系統(tǒng)中,其具有可以向其中添加新進(jìn)程io的存儲(chǔ)器12,但當(dāng)前卻不存在存儲(chǔ)器管理器進(jìn)程16。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種存儲(chǔ)管理系統(tǒng)和方法,其中避免了對(duì)于輔 助存儲(chǔ)器管理器進(jìn)程的需要。
本發(fā)明的另一個(gè)目的是提供一種存儲(chǔ)管理系統(tǒng)和方法,其能夠管理從多 個(gè)進(jìn)程存取單個(gè)數(shù)據(jù)存儲(chǔ)器的并發(fā)請(qǐng)求。
本發(fā)明的另一個(gè)目的是提供一種存儲(chǔ)管理系統(tǒng)和方法,其能夠以保持?jǐn)?shù)
并發(fā)請(qǐng)求。
本發(fā)明的另 一個(gè)目的是至少以其優(yōu)選形式提供一種容錯(cuò)的存儲(chǔ)管理系 統(tǒng)和方法。
本發(fā)明的另 一個(gè)目的是至少以其優(yōu)選形式提供一種存儲(chǔ)管理系統(tǒng)和方 法,其中用于管理在共享存儲(chǔ)器中的存儲(chǔ)的部件包括在基本進(jìn)程內(nèi)。
根據(jù)本發(fā)明,提供了一種存儲(chǔ)管理系統(tǒng),包括數(shù)據(jù)處理部件、用于臨 時(shí)存儲(chǔ)由所述數(shù)據(jù)處理部件產(chǎn)生的數(shù)據(jù)的高速緩沖存儲(chǔ)器、以及用于管理所 述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳送的控制單元,所述控制單元 包括管理器,用于監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用性 以及用于將數(shù)據(jù)分配到可用的存儲(chǔ)位置;接口,用于將所分配的數(shù)據(jù)傳送到 所述可用的存儲(chǔ)位置;以及鎖定裝置,用于在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器, 以確保排他存取,從而保持?jǐn)?shù)據(jù)的完整性。
本發(fā)明也提供了一種共享網(wǎng)絡(luò),包括多個(gè)進(jìn)程、公共存儲(chǔ)器、以及每 個(gè)進(jìn)程各自的存儲(chǔ)管理系統(tǒng),所述存儲(chǔ)管理系統(tǒng)包括數(shù)據(jù)處理部件、用于 臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理部件產(chǎn)生的數(shù)據(jù)的高速緩沖存儲(chǔ)器、以及用于管理 所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳送的控制單元,所述控制單 元包括管理器,用于監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用 性以及用于將數(shù)據(jù)分配到可用的存儲(chǔ)位置;接口,用于將所分配的數(shù)據(jù)傳送 到所述可用的存儲(chǔ)位置;以及鎖定裝置,用于在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ) 器,以確保排他存取,從而保持?jǐn)?shù)據(jù)的完整性。
此外,本發(fā)明提供了存儲(chǔ)管理的方法,包括通過(guò)數(shù)據(jù)處理單元產(chǎn)生數(shù)
據(jù);在高速緩沖存儲(chǔ)器中臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理單元產(chǎn)生的數(shù)據(jù);以及通 過(guò)以下步驟來(lái)管理所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳送,所述 步驟包括監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用性;將數(shù)據(jù) 分配到可用的存儲(chǔ)位置;將所分配的數(shù)據(jù)傳送到所述可用的存儲(chǔ)位置;以及 在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器,以確保排他存取,從而保持?jǐn)?shù)據(jù)的完整性。
通過(guò)參照附圖僅以示例的方式來(lái)進(jìn)一步描迷本發(fā)明,其中
圖1是傳統(tǒng)的存儲(chǔ)管理系統(tǒng)的框圖2是根據(jù)本發(fā)明的存儲(chǔ)管理系統(tǒng)的框圖3是圖2中所示的并采用了本發(fā)明的存儲(chǔ)管理單元的框圖4是示出圖3中的存儲(chǔ)器的內(nèi)容的圖解視圖5a、 5b和5c是表示圖3的存儲(chǔ)管理單元的基本例程(routine)的流程
圖6是圖5a中的例程的子例程的流程圖7是圖6的子例程中的子例程的流程圖8到10是圖5a的例程中的子例程的流程圖11到14是圖10的子例程中的子例程的流程圖15是在圖5b的例程中的子例程的流程圖16是在圖13的子例程中的子例程的流程圖;以及
圖17是在圖5c的例程中的子例程的流程圖。
具體實(shí)施例方式
現(xiàn)在將參照?qǐng)D中所示的實(shí)施例來(lái)描述本發(fā)明。應(yīng)當(dāng)理解,所描述的實(shí)施 例僅僅是示范性的,各種修改都是可能的,在以下的描述中會(huì)提到這樣的一 些修改。
現(xiàn)在將首先參照附圖中的圖2來(lái)描述本發(fā)明的優(yōu)選實(shí)施例。根據(jù)該優(yōu)選 實(shí)施例,存儲(chǔ)管理系統(tǒng)包括多個(gè)進(jìn)程20,稱為進(jìn)程l、進(jìn)程2,,進(jìn)程N(yùn)。 在進(jìn)行存儲(chǔ)器存取時(shí),進(jìn)程20的每一個(gè)通過(guò)操作系統(tǒng)與數(shù)據(jù)存儲(chǔ)器22進(jìn)行 通信,由線路24標(biāo)明。為了管理共享存取,每個(gè)進(jìn)程20包括各自的多可尋
址容錯(cuò)安全存儲(chǔ)(MAFTSS )控制單元26,其被配置為與關(guān)聯(lián)的高速緩沖存 儲(chǔ)器28合作管理對(duì)存儲(chǔ)器22的存取和存儲(chǔ)器22的利用。
更具體地,采用塊存儲(chǔ)來(lái)管理數(shù)據(jù)并將其存儲(chǔ)在存儲(chǔ)器22中,控制單 元26提供數(shù)據(jù)的加密和驗(yàn)證以及在存儲(chǔ)器22之內(nèi)的數(shù)據(jù)存儲(chǔ)塊的管理,以 使得在多個(gè)用戶進(jìn)程間能夠共享存儲(chǔ)器22。
圖2示出了具有關(guān)聯(lián)的高速緩沖存儲(chǔ)器28的多個(gè)進(jìn)程20和單個(gè)存儲(chǔ)器 22。應(yīng)當(dāng)理解,整個(gè)系統(tǒng)可以是單個(gè)操作系統(tǒng)的一部分、或者除存儲(chǔ)器22 以外的系統(tǒng)可以是具有外部存儲(chǔ)器22的單個(gè)操作系統(tǒng)的一部分、或者每個(gè) 進(jìn)程20和關(guān)聯(lián)的高速緩沖存儲(chǔ)器28可以是每個(gè)都與單個(gè)外部存儲(chǔ)器22相 關(guān)的各個(gè)操作系統(tǒng)的一部分。在最后一種情況中,每個(gè)進(jìn)程20和關(guān)聯(lián)的高 速緩沖存儲(chǔ)器28可以包括單個(gè)計(jì)算機(jī),從而多個(gè)進(jìn)程在分離的機(jī)器中。此 外,存儲(chǔ)器22可以是任意一種存儲(chǔ)器,包括快閃存儲(chǔ)器或機(jī)械存儲(chǔ)器。但 是,在每種情況下,該系統(tǒng)必須包括用于排他地鎖定存儲(chǔ)器22的構(gòu)造 (provision), 如下所述。
在本實(shí)施例中,進(jìn)程20和MAFTSS控制單元26都是軟件程序,其中 控制單元26是軟件算法的形式。但是,進(jìn)程20和/或控制單元26可能是硬 件產(chǎn)品的形式,例如各個(gè)進(jìn)程20包括其中嵌入包括控制單元26的硬件部件 的硬件設(shè)備。
現(xiàn)在將參照?qǐng)D3來(lái)描述控制單元26的每一個(gè),隨后將參照?qǐng)D4到l5描 述使用該控制單元26的數(shù)據(jù)存儲(chǔ)的管理。由于所有的控制單元26的基本結(jié) 構(gòu)和操作都是相同的,因此僅描述一個(gè)就已足夠。
參照?qǐng)D3,控制單元26包括多個(gè)處理例程和具有不同功能的子例程。更 具體地,控制單元26包括用于管理存儲(chǔ)器22中的地址的分配和對(duì)存儲(chǔ)器22 中的地址的存取的地址表管理器30。該地址表管理器30與塊管理器32合作 來(lái)指定并使用存儲(chǔ)器22中的特定存儲(chǔ)塊。
為此,塊管理器32包括塊映射322,其代表當(dāng)前存在于存儲(chǔ)器22中的 所有的存儲(chǔ)塊,而不管是否已分配。該存儲(chǔ)器基于使用基地址和相對(duì)地址來(lái) 存儲(chǔ)數(shù)據(jù)而進(jìn)行操作,因此塊映射322是有效的偏移和塊尺寸的映射。塊管 理器32還包括空閑(free)塊映射324,其代表存儲(chǔ)器22中尚未被分配的那 些塊;以及空閑鎖定塊映射326,其代表先前已被分配過(guò)并且不再需要但是 由于以下"i兌明的一些原因而暫時(shí)不可用的那些塊。地址表管理器30包括地址映射302,其代表已被分配的所有塊。換句話說(shuō),地址映射302包含用于 已分配的塊的地址列表。地址表管理器30還包括空閑地址列表304,其代表 先前已被分配過(guò)并且不再需要的那些塊的地址,因而這些地址現(xiàn)在是空閑的 以便再次使用。地址表管理器也包括下一地址計(jì)數(shù)器306、地址存取器特性 (trait) 308和地址類型特性310,用于分別指定要被分配的下一空閑地址的 編號(hào)和位置以及用于該下一空閑地址的地址版本。
包括在控制單元26中的進(jìn)一步的功能是用于加密數(shù)據(jù)的塊編碼器特性 34、用于校驗(yàn)數(shù)據(jù)(具體來(lái)說(shuō),用于檢測(cè)數(shù)據(jù)損壞)的塊校驗(yàn)器特性36、以 及代表存儲(chǔ)器22并通過(guò)簡(jiǎn)單應(yīng)用程序接口 (API)使能對(duì)存儲(chǔ)器22的存取 的塊存儲(chǔ)器特性38。關(guān)于塊校驗(yàn)器特性36,可檢測(cè)的數(shù)據(jù)損壞的類型依賴 于所采用的校驗(yàn)算法的特性。
在任一方面,控制單元26確保在存儲(chǔ)系統(tǒng)中存在來(lái)自進(jìn)程20的兩組工 作的進(jìn)程數(shù)據(jù),即當(dāng)前進(jìn)程數(shù)據(jù)和在當(dāng)前進(jìn)程數(shù)據(jù)之前的先前進(jìn)程數(shù)據(jù)。此 外,控制單元26在存儲(chǔ)器22內(nèi)存儲(chǔ)一組管理數(shù)據(jù),該管理數(shù)據(jù)代表由控制 單元26自身所采用的數(shù)據(jù)并且包括
偏移和尺寸的映射(在塊映射322中的數(shù)據(jù))
空閑偏移列表(在空閑塊映射324中的數(shù)據(jù))
鎖定空閑偏移列表(在空閑鎖定塊映射326中的數(shù)據(jù))
地址映射(在地址映射302中的數(shù)據(jù))
空閑地址列表(在空閑地址列表304中的數(shù)據(jù))
由從O開(kāi)始的數(shù)字所代表的最大分配地址(基于在下一地址計(jì)數(shù)器306 中的數(shù)據(jù)和在地址存取器和地址類型特性308、 310中的數(shù)據(jù))
圖4示出了數(shù)據(jù)如何存儲(chǔ)在存儲(chǔ)器22中。存儲(chǔ)器22包括包含每組數(shù) 據(jù)的基地址的首部(header)40、通過(guò)其偏移和其尺寸而定位的 一 系列分配的 #1據(jù)塊42、通過(guò)其偏移和其尺寸而定位的一系列空閑塊44。首部、分配的 塊42和空閑塊44包括存儲(chǔ)器22中的文件(file),在該文件之后的空閑存 儲(chǔ)空間可以在其它進(jìn)程20存取存儲(chǔ)器22時(shí)由所述其它進(jìn)程20使用。
圖5a、 5b和5c分別示出了控制單元26的基本使用,包括用于向存儲(chǔ) 器22寫入數(shù)據(jù)、用于從存儲(chǔ)器22讀出數(shù)據(jù)以及釋放存儲(chǔ)器22中的地址的 例程。在這些例程中的每一個(gè)例程中,系統(tǒng)的過(guò)程代碼使用用于控制單元26 的代碼來(lái)初始化并控制事件序列,如圖所示。應(yīng)當(dāng)理解,這些事件可以不是
一個(gè)緊接著 一 個(gè),而是可以在它們之間過(guò)去了真實(shí)的時(shí)間后發(fā)生。
根據(jù)圖5a所示的進(jìn)程,在用于控制單元26的代碼的控制下,過(guò)程代碼 首先將數(shù)據(jù)寫入到關(guān)聯(lián)的高速緩沖存儲(chǔ)器28中,然后將該數(shù)據(jù)從高速緩沖 存儲(chǔ)器28傳送到存儲(chǔ)器22。根據(jù)圖5b所示的進(jìn)程,在用于控制單元26的 代碼的控制下,過(guò)程代碼首先從存儲(chǔ)器22中讀出數(shù)據(jù),然后將該數(shù)據(jù)傳送 到關(guān)聯(lián)的高速緩沖存儲(chǔ)器28中。根據(jù)圖5c所示的進(jìn)程,過(guò)程代碼通過(guò)驗(yàn)證 不再需要在存儲(chǔ)器22中先前被分配過(guò)的地址中的數(shù)據(jù)并通過(guò)將該地址添加 到空閑地址列表304中來(lái)釋放該地址。
具體地,現(xiàn)在參照?qǐng)D5a,當(dāng)從進(jìn)程20中的一些部分接收到寫指令時(shí), 在步驟500開(kāi)始將數(shù)據(jù)寫入到存儲(chǔ)器22的過(guò)程。過(guò)程代碼進(jìn)入步驟502并 通過(guò)如下圖6所示的子例程來(lái)鎖定存儲(chǔ)器22。鎖定存儲(chǔ)器22確保在寫例程 持續(xù)期間進(jìn)程20排他地存取存儲(chǔ)器22,沒(méi)有其它的進(jìn)程20能夠在數(shù)據(jù)可能 損壞時(shí)進(jìn)行存取。這樣,保證了數(shù)據(jù)的完整性。在鎖定存儲(chǔ)器22后,過(guò)程 代碼進(jìn)入從空閑地址列表304中分配存儲(chǔ)器22中的地址的步驟504以及將 要被輸入的數(shù)據(jù)寫入到所述地址中的步驟506。實(shí)際上,在這個(gè)階段,與已 被分配的地址有關(guān)的信息和用于寫入到那個(gè)地址中的數(shù)據(jù)被存儲(chǔ)于高速緩 沖存儲(chǔ)器28中。如下所述,圖8和9示出了用于地址分配和數(shù)據(jù)寫入的子 例程。接著,過(guò)程代碼進(jìn)入步驟508,并將數(shù)據(jù)從高速緩沖存儲(chǔ)器28傳送到 存儲(chǔ)器22中所分配的地址中,其后,過(guò)程代碼通過(guò)如下所述、圖10中所示 的子例程來(lái)解鎖存儲(chǔ)器22。數(shù)據(jù)寫入例程進(jìn)入步驟510并且完成。
轉(zhuǎn)到圖5b,在步驟512中,當(dāng)從進(jìn)程20接收到讀指令時(shí),讀例程開(kāi)始。 過(guò)程代碼進(jìn)入到步驟514,并通過(guò)如下所述、圖13示出的子例程來(lái)從存儲(chǔ)器 22中給定的地址中讀取數(shù)據(jù)。將讀取的數(shù)據(jù)從存儲(chǔ)器22傳送到高速緩沖存 儲(chǔ)器28,然后過(guò)程代碼進(jìn)入到步驟516,意味著讀例程已完成。在該例程中 需要鎖定存儲(chǔ)器22,但是以與圖5a所示的不同的方式進(jìn)行鎖定,如將在下 面參照?qǐng)D15來(lái)描述的。
接著參照?qǐng)D5c,將描述分配地址的過(guò)程。當(dāng)由于用戶不再需要已被寫入 存儲(chǔ)器22中的數(shù)據(jù)而要將其刪除時(shí),進(jìn)程20在步驟518中指示不再需要所 述數(shù)據(jù),并且指示可以將存儲(chǔ)器22中的相關(guān)地址釋放并使該相關(guān)地址可重 用。過(guò)程代碼接著進(jìn)入到步驟520,在該步驟中通過(guò)如下在圖6中所示的、 與在圖5a的步驟502中所采用的相同的例程來(lái)鎖定存儲(chǔ)器22。過(guò)程代碼隨
后進(jìn)行至釋放存儲(chǔ)器22中的相關(guān)地址,并通過(guò)高速緩沖存儲(chǔ)器28將該地址 添加到控制單元26中的地址列表304,如在下面描述的圖17中所示。最后, 過(guò)程代碼在步驟524中使用與圖5a的步驟508和圖IO示出的相同的子例程 來(lái)解鎖存儲(chǔ)器22。過(guò)程代碼現(xiàn)在進(jìn)入到步驟526,意味著釋放地址的例程已 冗成。
.
現(xiàn)在將參照?qǐng)D6到17描述圖5a至5c中示出的子例程的各個(gè)細(xì)節(jié)。首 先參照?qǐng)D8和9描述分配存儲(chǔ)器22中的地址的步驟和將該地址分配給在高 速緩沖存儲(chǔ)器28中的數(shù)據(jù)的步驟,接著參照?qǐng)D14和15描述讀取在存儲(chǔ)器 中的地址的步驟。接著,將參照?qǐng)D17描述釋放存儲(chǔ)器22中的地址的子例程, 最后將參照?qǐng)D6、 7和10到14描述鎖定和解鎖存儲(chǔ)器22以及向/從存儲(chǔ)器 22傳送數(shù)據(jù)的、根據(jù)本發(fā)明的主要子例程。
圖8示出了在圖5a的步驟504中的分配地址的過(guò)程,并在進(jìn)程單元20 發(fā)出分配存儲(chǔ)器22中的地址以寫數(shù)據(jù)的指令時(shí)從步驟800開(kāi)始。在步驟802 中,控制單元26詢問(wèn)空閑地址列表304特定的現(xiàn)有地址是否空閑。如果回 答為否,則控制單元26將下一地址計(jì)數(shù)器306中的計(jì)數(shù)值增加1。當(dāng)步驟 802的結(jié)果為是時(shí),表明現(xiàn)有空閑地址已被定位,則控制單元26進(jìn)入到步驟 806并從空閑地址列表304中移除該地址。接著,控制單元26進(jìn)入到步驟 808,并將該新地址添加到地址映射302中,同時(shí)向地址類型特性添加一個(gè) 該地址的修訂號(hào)。控制單元26接著進(jìn)入步驟810并返回存儲(chǔ)器22中數(shù)據(jù)將 要被寫入的地址。
如圖9所示,在步驟506中的寫數(shù)據(jù)隨著進(jìn)程單元20發(fā)出寫地址命令 在步驟900進(jìn)行。控制單元26進(jìn)入到步驟卯2并詢問(wèn)已在步驟810中返回 的地址是否是有效地址,即,該地址是否將在地址映射302中找到以及該地 址的修訂號(hào)是否與地址類型特性中所示的匹配。如果回答為否,則控制單元 26在步驟904中記錄一條失敗的寫入結(jié)果。另一方面,如果在步驟902中認(rèn) 為地址是有效的,則控制單元26在步驟906中將該地址和要4皮寫入的數(shù)據(jù) 添加到高速緩沖存儲(chǔ)器28的寫入部分??刂茊卧?6然后在步驟908中記錄 一條成功的寫入結(jié)果。
參照?qǐng)D5b中的步驟514所述的從存儲(chǔ)器22中讀取數(shù)據(jù)和將數(shù)據(jù)從存儲(chǔ) 器22傳送到高速緩沖存儲(chǔ)器28在圖15中示出,并且隨著在步驟1500中進(jìn) 程單元20發(fā)出讀地址指令、給出存儲(chǔ)器22中的一個(gè)選定的地址而開(kāi)始。在
步驟l502中,控制單元26鎖定存儲(chǔ)器22,在步驟1504中,控制單元26 詢問(wèn)給定的地址是否是有效的,即,其是否是在存儲(chǔ)器22中包含可讀數(shù)據(jù) 的地址。如果對(duì)步驟1504的詢問(wèn)的回答為否,則控制單元26進(jìn)入到步驟1506 并解鎖存儲(chǔ)器22,并在步驟1508中記錄一條失敗的讀取地址嘗試。另一方 面,如果在步驟1504中的詢問(wèn)的結(jié)果為是,則控制單元26進(jìn)入到步驟1510, 并詢問(wèn)該地址的內(nèi)容是否將在高速緩沖存儲(chǔ)器28中找到。如果回答為是, 則控制單元26進(jìn)入到步驟1512并解鎖存儲(chǔ)器22,以及在步驟1520中從高 速緩沖存儲(chǔ)器28中返回?cái)?shù)據(jù)。另一方面,如果對(duì)在步驟1510中的詢問(wèn)的回 答為否,則控制單元26進(jìn)入到步驟1514,并獲取對(duì)于相關(guān)地址在存儲(chǔ)器22 中的偏移值??刂茊卧?6接著在步驟1516中使用圖16所示的子例程從相 關(guān)數(shù)據(jù)的地址中存取各自的存儲(chǔ)器偏移并讀取數(shù)據(jù),并在步驟1518中將該 數(shù)據(jù)傳送到高速緩沖存儲(chǔ)器28??刂茊卧?6然后回到步驟1512并解鎖存儲(chǔ) 器22,然后在步驟1520中返回來(lái)自高速緩沖存儲(chǔ)器28的相關(guān)數(shù)據(jù)。
如圖16中所示,在步驟1516中用于從存儲(chǔ)器讀取數(shù)據(jù)的子例程隨著步 驟1600中從存儲(chǔ)器22讀取數(shù)據(jù)的指令而開(kāi)始。在步驟1602中,控制單元 26讀取在存儲(chǔ)器22中的給定偏移處的加密的數(shù)據(jù),然后在步驟M04中通過(guò) 來(lái)自塊編碼器特性34的密鑰來(lái)解碼該加密的數(shù)據(jù)。在步驟1606,控制單元 26接著使用塊校驗(yàn)器特性36詢問(wèn)該解碼的數(shù)據(jù)是否是有效的,即不是損壞 的。但是,如果步驟1606的詢問(wèn)結(jié)果為是,則控制單元26返回到步驟l"8, 并將該解碼的數(shù)據(jù)從存儲(chǔ)器22傳送到高速緩沖存儲(chǔ)器28。
圖5c的步驟522中指示的用于檢測(cè)數(shù)據(jù)并釋放存儲(chǔ)器22中的地址的子 例程如圖17所示,并且現(xiàn)在將對(duì)其進(jìn)行描述。當(dāng)在步驟1700中控制單元26 從檢測(cè)單元20接收到釋放地址的指令時(shí),控制單元26在步驟HO2中檢查 該地址的位置是否是有效的,即給定地址是否攜帶可讀取的數(shù)據(jù)。如果回答 為否,表明該地址不包含任何有用的信息且可以被覆寫,則控制單元26在 步驟1704中從地址映射302中移除對(duì)于該偏移的地址。但是,如果在步驟 1702中詢問(wèn)的結(jié)果為是,表明該地址盡管可重用但是由于 一些下面將說(shuō)明的 原因而仍然需要先前的數(shù)據(jù),因此該地址仍然包含不能被覆寫的信息,則控 制單元進(jìn)入到步驟1708并將該地址添加到空閑鎖定塊映射326中??刂茊?元26接著如前所述進(jìn)入步驟1704。接下來(lái),控制單元26在步驟n08中增 大關(guān)于該地址的修訂號(hào),以代表在相關(guān)地址中的數(shù)據(jù)的當(dāng)前修訂號(hào)。接著,
在步驟ni0中,控制單元26將該地址添加到地址表管理器30中的空閑地 址列表304中??刂茊卧?6接著進(jìn)入到步驟1712,并從高速緩沖存儲(chǔ)器28 的讀寫部分中移除該^:據(jù),然后在步驟1714中指示該地址已被釋放。
根據(jù)本發(fā)明,當(dāng)從高速緩沖存儲(chǔ)器28向存儲(chǔ)器22傳送數(shù)據(jù)以及當(dāng)更改 存儲(chǔ)器22中的數(shù)據(jù)時(shí),存儲(chǔ)器22是鎖定的。為此用于鎖定存儲(chǔ)器的子例程 如圖5的步驟502和520所示,而用于隨后解鎖存儲(chǔ)器22的子例程則如圖5 的步驟508和524所示?,F(xiàn)在將描述這些子例程,先從圖6和7所示的鎖定 子例程開(kāi)始。
圖6是代表在圖5的步驟502和520以及在圖15的1502中的鎖定子例 程中的步驟的流程圖。首先,在步驟600中進(jìn)程單元20發(fā)出鎖定命令。在 步驟602中,控制單元26利用唯一標(biāo)識(shí)符產(chǎn)生互斥量(mutex )并采用這個(gè) 互斥量來(lái)完成對(duì)存儲(chǔ)器22的全局鎖定??刂茊卧?6接著進(jìn)入到步驟604并 檢查在高速緩沖存儲(chǔ)器28中的數(shù)據(jù)是否是有效的。換句話說(shuō),控制單元26 檢查高速緩沖存儲(chǔ)器28是否包含存儲(chǔ)器22中的相關(guān)進(jìn)程和管理數(shù)據(jù)的最新 的表示。如果回答為是,則控制單元26進(jìn)入到步驟606,并且鎖定子例程完 成。另一方面,如果對(duì)步驟604的問(wèn)題的回答為否,則控制單元26進(jìn)入到 步驟608并將相關(guān)數(shù)據(jù)從存儲(chǔ)器22加載到高速緩沖存儲(chǔ)器28中,以使得在 鎖定周期的保持期間,控制單元26能夠與高速緩沖存儲(chǔ)器28中的數(shù)據(jù)一起 工作。隨后,控制單元26從步驟608進(jìn)入到步驟606,并且鎖定子例程完成。
用于加載管理數(shù)據(jù)組的子例程608如圖7所示,并且下面將對(duì)其進(jìn)行描 述。當(dāng)在圖6中的步驟604指示在高速緩沖存儲(chǔ)器28中的管理數(shù)據(jù)不是最 新的時(shí),控制單元26在步驟700發(fā)出加載最新的管理數(shù)據(jù)的指令??刂茊?元26然后進(jìn)入到步驟702以讀取存儲(chǔ)器22中的首部40,其后接著進(jìn)入步驟 704以讀取并解密在存儲(chǔ)器22中的分配的塊42中的當(dāng)前數(shù)據(jù)組。在步驟704 之后,控制單元26在步驟706中通過(guò)檢查管理數(shù)據(jù)的首部以確定該文件是 否是無(wú)效的以及是否包含損壞的數(shù)據(jù)或例如通過(guò)指明解密失敗,來(lái)詢問(wèn)讀取 是否失敗。如果讀取未失敗并且因而完成,則控制單元26進(jìn)入到步驟708, 并將下一數(shù)據(jù)管理例程中需要的任何數(shù)據(jù)從存儲(chǔ)器22加載到高速緩沖存儲(chǔ) 器28中。將這樣的數(shù)據(jù)加載到高速緩沖存儲(chǔ)器的首部,而將對(duì)于下一數(shù)據(jù) 管理例程來(lái)說(shuō)是多余的數(shù)據(jù)保留在存儲(chǔ)器22中。如果由于任何原因在步驟 706中判定存儲(chǔ)器22中的當(dāng)前數(shù)據(jù)組的數(shù)據(jù)讀取失敗,則控制單元26進(jìn)入 到步驟710并開(kāi)始讀取保留在存儲(chǔ)器22中的先前的數(shù)據(jù)組。當(dāng)讀完先前的 數(shù)據(jù)組時(shí),控制單元26再次在步驟712中詢問(wèn)讀取是否失敗。如果回答為 否,則控制單元26返回到步驟708并將存儲(chǔ)在存儲(chǔ)器22中的先前的數(shù)據(jù)中 的真正需要的數(shù)據(jù)加載到高速緩沖存儲(chǔ)器28中。另一方面,如果控制單元 26在步驟712中判定先前數(shù)據(jù)組的讀取失敗,則控制單元26進(jìn)入到步驟714 并刪除整個(gè)存儲(chǔ)器22,在這之后,控制單元26在步驟716中為存儲(chǔ)器22 寫入新的首部。最后,控制單元26適當(dāng)?shù)貜牟襟E708或步驟716進(jìn)入到步 驟718,表示存儲(chǔ)器22中的數(shù)據(jù)組在一個(gè)可用的情況下已被加載到高速緩沖 存儲(chǔ)器28中。
已描述了在圖5a和5c中的步驟502和520中所示的鎖定子例程。現(xiàn)在 將參照?qǐng)D10到14描述在圖5a和5c中的步驟508和524的解鎖子例程。
基本解鎖子例程如圖IO所示并且開(kāi)始于步驟1000。當(dāng)使用高速緩沖存 儲(chǔ)器28以及處于鎖定狀態(tài)的存儲(chǔ)器22完成需要的任何數(shù)據(jù)管理例程時(shí),進(jìn) 程單元20在步驟1000發(fā)出解鎖指令。在這一點(diǎn)上,在解鎖能夠發(fā)生之前, 來(lái)自保留在高速緩沖存儲(chǔ)器28中的最近的數(shù)據(jù)管理例程的所有信息將需要 傳送到存儲(chǔ)器22。因此,控制單元26進(jìn)入到步驟1002并檢查是否有任何數(shù) 據(jù)已被寫入到高速緩沖存儲(chǔ)器28中。更特別地,控制單元26詢問(wèn)寫入高速 緩沖存儲(chǔ)器(為寫入分配的高速緩沖存儲(chǔ)器的部分)是否為空以及是否有任 何進(jìn)程數(shù)據(jù)已被寫入到該寫入高速緩沖存儲(chǔ)器。
如果對(duì)于詢問(wèn)寫入高速緩沖存儲(chǔ)器28是否為空的回答為否,則控制單 元進(jìn)入到步驟1004并為包含在寫入高速緩沖存儲(chǔ)器28中的進(jìn)程數(shù)據(jù)分配存 儲(chǔ)器22中的塊。接著,在步驟1006,控制單元26開(kāi)始將這樣的進(jìn)程數(shù)據(jù)寫 入到存儲(chǔ)器22中。在步驟1008,控制單元26詢問(wèn)在存儲(chǔ)器22中是否已存 在對(duì)于此特定進(jìn)程數(shù)據(jù)的有效的原有位置。如果回答為是,則在步驟1010 中控制單元26將該位置添加到空閑鎖定塊映射326,以便臨時(shí)保留這一先前 凄t據(jù)組,然后進(jìn)入到步驟1012。如果對(duì)步驟1008中的詢問(wèn)的回答為否,則 控制單元26直接進(jìn)入到步驟1012。在步驟1012中,控制單元26更新塊映 射322,以便為當(dāng)前進(jìn)程數(shù)據(jù)指定存儲(chǔ)器22中的新位置??刂茊卧狹然后 進(jìn)入到步驟1014并詢問(wèn)在該高速緩沖存儲(chǔ)器中是否有多個(gè)進(jìn)程項(xiàng)要寫入到 存儲(chǔ)器22中,并且如果回答為是,則返回到步驟1004,以便為這些更多的 進(jìn)程數(shù)據(jù)分配存儲(chǔ)器22中的新的塊。如果回答為否,則控制單元26進(jìn)入到
步驟1016。
返回到步驟1002,如果控制單元26發(fā)現(xiàn)寫入高速緩沖存儲(chǔ)器為空,則 控制單元26直接進(jìn)入到步驟1016,并估計(jì)在高速緩沖存儲(chǔ)器28中的管理數(shù) 據(jù)組的大小,然后在步驟1018中為該管理數(shù)據(jù)在存儲(chǔ)器22中分配一個(gè)或多 個(gè)合適的塊44。在步驟1020,控制單元26檢查在存儲(chǔ)器22的末尾處的空 閑塊。如果沒(méi)有找到空閑塊,則控制單元直接進(jìn)入到步驟1022。另一方面, 如果找到任何這樣的空閑塊,則控制單元26丟棄它們從而減小存儲(chǔ)器22的 尺寸??刂茊卧?6接著再次進(jìn)入到步驟1022,在該步驟中,控制單元26 詢問(wèn)在此周期中已變?yōu)榭臻e但是由于它們包含先前的數(shù)據(jù)而至今不能被覆 寫的偏移的空閑鎖定塊映射326是否為空。如果對(duì)于步驟1022中的詢問(wèn)的 回答為是,則控制單元26進(jìn)入到步驟1026并將新的數(shù)據(jù)組寫入到存儲(chǔ)器22 中,該新的數(shù)據(jù)組代表其尺寸在步驟1016中進(jìn)行估計(jì)的當(dāng)前管理數(shù)據(jù)組。 另一方面,如果步驟1022的結(jié)果是空閑鎖定塊映射326不為空,則控制單 元26進(jìn)入到步驟1028,并釋放存儲(chǔ)器22中現(xiàn)在可用的塊中的第一個(gè)。這意 味著該塊在此周期中不能被覆寫,并且其將在下一周期中包含來(lái)自先前數(shù)據(jù) 組的數(shù)據(jù),在這之后,其能夠被覆寫??刂茊卧?6接著進(jìn)入到步驟1030, 并詢問(wèn)空閑鎖定塊映射326是否仍為空或是否存在更多的塊要釋放。如果回 答為是,則控制單元26返回到步驟1028并釋放另一個(gè)塊。如果回答為否, 則控制單元26進(jìn)入到步驟1026并且現(xiàn)在將管理數(shù)據(jù)組寫入到存儲(chǔ)器22中。 在完成了這步后,控制單元26在步驟1032中解鎖存儲(chǔ)器22并在步驟1034 中發(fā)出解鎖過(guò)程已完成的指示。
在步驟1006中將進(jìn)程數(shù)據(jù)寫入到存儲(chǔ)器22中的子例程;在步驟1018 中控制單元26為管理數(shù)據(jù)分配塊的子例程;在步驟1028中釋放可用塊的子 例程;以及在步驟1026中將管理數(shù)據(jù)寫入到存儲(chǔ)器22中的子例程分別如圖 11到14所示,現(xiàn)在將對(duì)其進(jìn)行描述。
圖11示出了用于將進(jìn)程數(shù)據(jù)寫入到存儲(chǔ)器22中的子例程。當(dāng)在步驟 1006中在高速緩沖存儲(chǔ)器28中存在要被寫入到存儲(chǔ)器22中的進(jìn)程數(shù)據(jù)時(shí), 控制單元26在步驟1100中發(fā)出寫入到存儲(chǔ)器中的指令,然后在步驟1102 中產(chǎn)生要加到該數(shù)據(jù)的校-瞼和值(checksum )以用于隨后的數(shù)據(jù)有效性的監(jiān) 測(cè)。該校驗(yàn)和值由塊管理器32參照塊校驗(yàn)器特性36產(chǎn)生。接著,控制單元 26進(jìn)入到步驟1104并使用包含在塊編碼器特性34中的加密算法來(lái)加密高速
緩沖存儲(chǔ)器28中的數(shù)據(jù)。在步驟1106中,控制單元26計(jì)算加密數(shù)據(jù)的尺 寸,并將尺寸值和所述校驗(yàn)和值添加到該加密數(shù)據(jù)的首部中。接著,在步驟 1108中,控制單元26將數(shù)據(jù)從高速緩沖存儲(chǔ)器28傳送到存儲(chǔ)器22并將數(shù) 據(jù)存儲(chǔ)于其中。然后在步驟1110中發(fā)出數(shù)據(jù)寫入成功指示。
圖12示出了用于為管理數(shù)據(jù)分配塊的步驟1018的子例程和用于為進(jìn)程 數(shù)據(jù)分配塊的步驟1004的子例程,并且在控制單元26發(fā)出分配塊的指令時(shí) 從步驟1200開(kāi)始??刂茊卧?6進(jìn)入到步驟1202并在塊映射322中搜索與 要被寫入的數(shù)據(jù)形成最佳匹配的空閑塊。在這種情況下,最佳匹配表明該塊 的尺寸與數(shù)據(jù)尺寸精確匹配或者表明該塊大于所需的尺寸但是小于或等于 空閑塊映射326中的任何其它空閑塊??刂茊卧?6接著進(jìn)入到步驟1204并 詢問(wèn)是否找到了合適的空閑塊。如果回答為否,則控制單元26進(jìn)入到步驟 1206并將存儲(chǔ)器22的尺寸增加對(duì)于要被分配的塊來(lái)說(shuō)所必需的量,在這之 后,控制單元26在步驟1208中將新創(chuàng)建的塊添加到塊映射322中??刂茊?元26接著進(jìn)入到步驟1210。另一方面,如果對(duì)步驟1204中的詢問(wèn)的回答為 是,則控制單元26進(jìn)入到步驟1212并詢問(wèn)空閑塊的尺寸是否是精確匹配的。 如果回答為是,則控制單元26在步驟1214中從空閑塊映射324中移除該塊, 并進(jìn)入到步驟1210。如果對(duì)于步驟1212中的詢問(wèn)回答為否,則控制單元26 在步驟1216中將該新找到的塊分成兩部分,以使得一部分(塊X)的尺寸與相 關(guān)數(shù)據(jù)精確匹配。在步驟1218中,控制單元26將另一個(gè)(塊Y)添加到空閑 塊映射324中,并進(jìn)入到步驟1220,在該步驟中從空閑塊映射324中移除第 一塊X。在步驟1210中完成該子例程,在該步驟中發(fā)出塊已被分配的指示。
用于釋放可用塊的步驟1028的子例程如圖13所示,并且在控制單元26 發(fā)出釋放相關(guān)塊Z的指令時(shí)從步驟1300開(kāi)始。在步驟1302中,控制單元 26將該塊Z添加到空閑塊映射324中,并且在步驟1304中,控制單元26 找出存儲(chǔ)器22中緊接在此空閑塊之后的塊,并將該塊指定為塊A。在步驟 1306中,控制單元26詢問(wèn)塊A是否是空閑的,如果回答為是,則在步驟D08 中通過(guò)將塊A的尺寸加到空閑塊Z的尺寸來(lái)將塊A與空閑塊Z合并。控制 單元26進(jìn)入到步驟1310并從空閑塊映射324中以及從塊映射322中刪除塊 A,從而新的空閑塊此時(shí)就是合并的塊,指定為Z,。 控制單元26接著進(jìn)入 到步驟1312。如杲對(duì)步驟1310中的詢問(wèn)回答為否,則控制單元26直接進(jìn)入 到步驟1312。在步驟1312中,控制單元26搜索存儲(chǔ)器中緊鄰在原始空閑塊Z之前的塊,其也是緊鄰在合并塊Z,之前的塊,并將該塊指定為塊B??刂?br>
單元26進(jìn)入到步驟1314并詢問(wèn)塊B是否是空閑的。如果回答為是,則控制 單元26進(jìn)入到步驟1316并將空閑塊Z,的尺寸加到塊B的尺寸,創(chuàng)建新的 合并塊B,。 控制單元26進(jìn)入到步驟1318并從空閑塊映射324中以及從塊 映射322中刪除塊Z,。控制單元26接著進(jìn)入到步驟1320。如果對(duì)步驟1314 中的詢問(wèn)回答為否,則控制單元26直接進(jìn)入到步驟1320,在該步驟中,發(fā) 出該塊已被釋放的指示。
現(xiàn)在轉(zhuǎn)到圖14,將描述圖10中的步驟1026的子例程。在該步驟中,管 理數(shù)據(jù)組將從高速緩沖存儲(chǔ)器28寫入到存儲(chǔ)器22中,并且控制單元26在 步驟1400中利用寫入數(shù)據(jù)組指令而開(kāi)始該子例程??刂茊卧?6接著進(jìn)入到 步驟1402并在存儲(chǔ)器22中將已成為存儲(chǔ)器22中的當(dāng)前管理數(shù)據(jù)組的管理 數(shù)據(jù)組重新指定為新的先前管理數(shù)據(jù)組??刂茊卧?6接著在步驟1404中將 高速緩沖存儲(chǔ)器28中的當(dāng)前管理數(shù)據(jù)組寫入到存儲(chǔ)器22中作為新的當(dāng)前管 理數(shù)據(jù)組。在這之后,控制單元26在步驟1406中對(duì)于該新的當(dāng)前管理數(shù)據(jù) 組更新存儲(chǔ)器22中的偏移細(xì)節(jié),并在步驟1408中將計(jì)數(shù)值加1,以指示當(dāng) 前管理數(shù)據(jù)的當(dāng)前版本已增加了一個(gè)版本。最后,在步驟M10中,控制單 元26更新存儲(chǔ)器22中的首部40,并在步驟1412中發(fā)出已寫入管理數(shù)據(jù)組 的指示。
本發(fā)明提供了一種存儲(chǔ)管理系統(tǒng),其可以用于任何類型的存儲(chǔ)器,其采 用基于版本的地址,并且如果檢測(cè)到錯(cuò)誤則后退到前一個(gè)已知狀態(tài),并且其 還采用通過(guò)收回不再需要的存儲(chǔ)位置的無(wú)用單元收集策略以便減小存儲(chǔ)器 的尺寸。因而,任何時(shí)候存儲(chǔ)器都包含任何特定數(shù)據(jù)組的兩個(gè)版本,所述數(shù) 據(jù)是管理數(shù)據(jù)或者是進(jìn)程數(shù)據(jù)(但必須是如果在實(shí)際中這兩組進(jìn)程數(shù)據(jù)相 同,則系統(tǒng)僅保留一組這樣的數(shù)據(jù)),并且如果校驗(yàn)和值指示發(fā)生錯(cuò)誤,則 錯(cuò)誤檢測(cè)配置允許返回到先前數(shù)據(jù)組。
如上所述,本發(fā)明提供了一種高效安全的、從多個(gè)不同的進(jìn)程20中的 各個(gè)進(jìn)程在單個(gè)存儲(chǔ)器22中存取和管理數(shù)據(jù)的過(guò)程。本發(fā)明的優(yōu)點(diǎn)是每個(gè) 進(jìn)程20管理其自己的對(duì)存儲(chǔ)器22的存取,同時(shí)防止干擾另 一個(gè)進(jìn)程20對(duì) 存儲(chǔ)器22的存取,并且不需要附加的存儲(chǔ)器管理器進(jìn)程。因此各個(gè)進(jìn)程20 監(jiān)視它們自己的數(shù)據(jù)管理和數(shù)據(jù)完整性,并且對(duì)此的控制能夠包括在出售的 軟件包(package)中。因此,能夠在網(wǎng)絡(luò)上實(shí)現(xiàn)進(jìn)程20,而不論存儲(chǔ)器管理器
進(jìn)程是否已存在,并且如果不是已經(jīng)存在存儲(chǔ)器管理器進(jìn)程'也不需要單獨(dú) 進(jìn)4亍購(gòu)買。
權(quán)利要求
1、一種存儲(chǔ)管理系統(tǒng),包括數(shù)據(jù)處理部件,高速緩沖存儲(chǔ)器,用于臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理部件產(chǎn)生的數(shù)據(jù),以及控制單元,用于管理所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳送,所述控制單元包括管理器,用于監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用性以及用于將數(shù)據(jù)分配到可用的存儲(chǔ)位置,接口,用于將所分配的數(shù)據(jù)傳送到所述可用的存儲(chǔ)位置,以及鎖定裝置,用于在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器,以確保排他存取,從而保持?jǐn)?shù)據(jù)的完整性。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述管理器包括容錯(cuò)裝置,用 于在發(fā)生數(shù)據(jù)錯(cuò)誤時(shí)恢復(fù)未損壞的數(shù)據(jù)。
3、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元還包括數(shù)據(jù)校驗(yàn) 器,用于檢測(cè)數(shù)據(jù)的損壞。
4、 根據(jù)權(quán)利要求3所述的系統(tǒng),其中,所述管理器被配置為與所述數(shù) 據(jù)校驗(yàn)器合作以取消損壞的數(shù)據(jù)。
5、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元采用對(duì)于數(shù)據(jù)存 儲(chǔ)的版本控制,并且其中,所述管理器包括數(shù)據(jù)版本管理器,用于確保存儲(chǔ) 于所述存儲(chǔ)器中的數(shù)據(jù)包括當(dāng)前數(shù)據(jù)組和先前數(shù)據(jù)組。
6、 根據(jù)權(quán)利要求5所述的系統(tǒng),其中,所述控制單元包括數(shù)據(jù)校驗(yàn)器, 用于檢查數(shù)據(jù)損壞,并且其中,所述管理器響應(yīng)于該數(shù)據(jù)校驗(yàn)器來(lái)取消損壞 的數(shù)據(jù)并返回到該數(shù)據(jù)的先前版本。
7、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元還包括數(shù)據(jù)編碼 器,用于加密數(shù)據(jù)。
8、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元將該數(shù)據(jù)分成數(shù) 據(jù)塊,以傳送到公共存儲(chǔ)器中,并且其中,所述管理器確定數(shù)據(jù)塊的尺寸并 將該數(shù)據(jù)塊分配到存儲(chǔ)器中的選定地址和偏移。
9、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元包括至少一個(gè)代 表該存儲(chǔ)器內(nèi)的存儲(chǔ)位置的映射。
10、 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述至少一個(gè)映射包括代表存 儲(chǔ)器內(nèi)的存儲(chǔ)塊的塊映射和代表已分配的存儲(chǔ)塊的地址的地址映射。
11、 根據(jù)權(quán)利要求9所迷的系統(tǒng),還包括至少一個(gè)代表該存儲(chǔ)器內(nèi)的當(dāng)前可用的存儲(chǔ)位置的列表。
12、 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述至少一個(gè)列表包括空閑鎖定列表,其代表存儲(chǔ)器中先前已被分配且不再需要、但是當(dāng)前被鎖定因而 不能被覆寫的塊。
13、 根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述至少一個(gè)列表包括代表 該存儲(chǔ)器中尚未被分配的塊的空閑偏移列表,以及代表存儲(chǔ)器中先前已被分 配且現(xiàn)在空閑可重用的塊的地址的空閑地址列表。
14、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制單元采用無(wú)用單元收
15、 一種共享的接入網(wǎng)絡(luò),包括 多個(gè)進(jìn)程,公共存儲(chǔ)器,以及每個(gè)進(jìn)程各自的存儲(chǔ)管理系統(tǒng),所述存儲(chǔ)管理系統(tǒng)包括 數(shù)據(jù)處理部件,高速緩沖存儲(chǔ)器,用于臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理部件產(chǎn)生的數(shù)據(jù)'以及控制單元,用于管理所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù) 傳送,所述控制單元包括管理器,用于監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可 用性以及用于將數(shù)據(jù)分配到可用的存儲(chǔ)位置,接口,用于將所分配的數(shù)據(jù)傳送到所述可用的存儲(chǔ)位置,以及 鎖定裝置,用于在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器,以確保排他存 取,從而保持?jǐn)?shù)據(jù)的完整性。
16、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述管理器包括容錯(cuò)裝置' 用于在發(fā)生數(shù)據(jù)錯(cuò)誤時(shí)恢復(fù)未損壞的數(shù)據(jù)。
17、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元還包括數(shù)據(jù)校 驗(yàn)器,用于檢測(cè)數(shù)據(jù)的損壞。
18、 根據(jù)權(quán)利要求17所述的網(wǎng)絡(luò),其中,所述管理器被配置為與所述數(shù)據(jù)校驗(yàn)器合作以取消該損壞的數(shù)據(jù)。
19、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元采用對(duì)于數(shù)據(jù) 存儲(chǔ)的版本控制,以及其中,所述管理器包括數(shù)據(jù)版本管理器,用于確保存 儲(chǔ)于所述存儲(chǔ)器中的數(shù)據(jù)包括當(dāng)前數(shù)據(jù)組和先前數(shù)據(jù)組。
20、 根據(jù)權(quán)利要求19所述的網(wǎng)絡(luò),其中,所述控制單元包括數(shù)據(jù)校驗(yàn) 器,用于檢查數(shù)據(jù)損壞,以及其中,所述管理器響應(yīng)于該數(shù)據(jù)校驗(yàn)器來(lái)取消 損壞的數(shù)據(jù)并返回到該數(shù)據(jù)的先前版本。
21、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元還包括數(shù)據(jù)編 碼器,用于加密數(shù)據(jù)。
22、 根椐權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元將該數(shù)據(jù)分成 數(shù)據(jù)塊,以傳送到所述存儲(chǔ)器中,以及其中,所述管理器確定數(shù)據(jù)塊的尺寸 并將該數(shù)據(jù)塊分配到存儲(chǔ)器中的選定地址和偏移。
23、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元包括至少一個(gè) 代表存儲(chǔ)器內(nèi)的存儲(chǔ)位置的映射。
24、 根據(jù)權(quán)利要求23所述的網(wǎng)絡(luò),其中,所述至少一個(gè)映射包括代表 存儲(chǔ)器內(nèi)的存儲(chǔ)塊的塊映射和代表已分配的存儲(chǔ)塊的地址的地址映射。
25、 根據(jù)權(quán)利要求23所述的網(wǎng)絡(luò),還包括至少一個(gè)代表該存儲(chǔ)器內(nèi)當(dāng)前可用的存儲(chǔ)位置的列表。
26、 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò),其中,所述至少一個(gè)列表包括空閑 鎖定列表,其代表該存儲(chǔ)器中之前已被分配且不再需要、但是當(dāng)前被鎖定因 而不能被覆寫的塊。
27、 根據(jù)權(quán)利要求25所述的網(wǎng)絡(luò),其中,所述至少一個(gè)列表包括代表 該公共存儲(chǔ)器中尚未被分配的塊的空閑偏移列表,以及代表存儲(chǔ)器中之前已 被分配且現(xiàn)在空閑可重用的塊的地址的空閑地址列表。
28、 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò),其中,所述控制單元采用無(wú)用單元 收集策略。
29、 一種存儲(chǔ)管理的方法,包括 通過(guò)數(shù)據(jù)處理單元產(chǎn)生數(shù)據(jù),在高速緩沖存儲(chǔ)器中臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理單元產(chǎn)生的數(shù)據(jù),以及 通過(guò)以下步驟來(lái)管理所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳 送,所述步驟包括監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用性, 將數(shù)據(jù)分配到可用的存儲(chǔ)位置,將所分配的數(shù)據(jù)傳送到所述可用的存儲(chǔ)位置,以及在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器,以確保排他存取,從而保持?jǐn)?shù)據(jù) 的完整性。
30、 根據(jù)權(quán)利要求29所述的方法,還包括當(dāng)發(fā)生數(shù)據(jù)錯(cuò)誤時(shí),恢復(fù) 損壞的數(shù)據(jù)。
31、 根據(jù)權(quán)利要求29所述的方法,其中,所述控制單元還包括數(shù)據(jù)檢 驗(yàn)步驟,用于檢測(cè)數(shù)據(jù)的損壞。
32、 根據(jù)權(quán)利要求31所述的方法,還包括取消損壞的數(shù)據(jù)的步驟。
33、 根據(jù)權(quán)利要求31所述的方法,還包括對(duì)于數(shù)據(jù)存儲(chǔ)采用版本控 制,以及在所述存儲(chǔ)器中存儲(chǔ)當(dāng)前數(shù)據(jù)組和先前數(shù)據(jù)組。
34、 根據(jù)權(quán)利要求33所述的方法,還包括數(shù)據(jù)檢驗(yàn)步驟,用于檢查數(shù) 據(jù)損壞,以及如果數(shù)據(jù)損壞,則取消損壞的數(shù)據(jù)并返回到先前數(shù)據(jù)組。
35、 根據(jù)權(quán)利要求29所述的方法,還包括加密將要存儲(chǔ)的數(shù)據(jù)。
36、 根據(jù)權(quán)利要求29所述的網(wǎng)絡(luò),還包括將數(shù)據(jù)分成數(shù)據(jù)塊以傳送 到所述存儲(chǔ)器中,以及確定數(shù)據(jù)塊的尺寸并將該數(shù)據(jù)塊分配到存儲(chǔ)器中的選 定地址和偏移。
37、 根據(jù)權(quán)利要求29所述的方法,采用無(wú)用單元收集策略以減小存儲(chǔ) 器的尺寸。
全文摘要
本發(fā)明提供了一種用于管理多個(gè)進(jìn)程和一個(gè)公共存儲(chǔ)器之間的存取的存儲(chǔ)管理系統(tǒng)和方法。根據(jù)本發(fā)明,每個(gè)單獨(dú)的進(jìn)程包括數(shù)據(jù)處理部件、用于臨時(shí)存儲(chǔ)由所述數(shù)據(jù)處理部件產(chǎn)生的數(shù)據(jù)的高速緩沖存儲(chǔ)器、以及用于管理所述高速緩沖存儲(chǔ)器和公共存儲(chǔ)器之間的數(shù)據(jù)傳送的控制單元。所述控制單元包括管理器,用于監(jiān)視所述存儲(chǔ)器中接收和存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的可用性以及用于將數(shù)據(jù)分配到可用的存儲(chǔ)位置;接口,用于將所分配的數(shù)據(jù)傳送到所述可用的存儲(chǔ)位置;以及鎖定裝置,用于在數(shù)據(jù)傳送期間鎖定所述存儲(chǔ)器,以確保排他存取,從而保持?jǐn)?shù)據(jù)的完整性。
文檔編號(hào)G06F11/30GK101198937SQ200680021754
公開(kāi)日2008年6月11日 申請(qǐng)日期2006年6月9日 優(yōu)先權(quán)日2005年6月17日
發(fā)明者戴維·C·懷爾斯 申請(qǐng)人:麥克羅維西恩公司