管理高速緩存存儲區(qū)的系統(tǒng)、方法和計算機可讀介質(zhì)的制作方法
【專利摘要】本發(fā)明涉及管理高速緩存存儲區(qū)的系統(tǒng)、方法和計算機可讀介質(zhì)。具有高速緩存存儲區(qū)并且與存儲系統(tǒng)關(guān)聯(lián)的高速緩存控制器跨高速緩存控制器的重啟地維持保存在高速緩存存儲區(qū)中的信息。高速緩存控制器與主計算機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)通信。高速緩存控制器分割高速緩沖存儲器以包括元數(shù)據(jù)部分和日志部分。一個獨立的部分用于緩存數(shù)據(jù)元素。高速緩存控制器將元數(shù)據(jù)的副本保持在主計算機系統(tǒng)可訪問的獨立存儲器中。當元數(shù)據(jù)日志達到其容量時,數(shù)據(jù)被寫入高速緩存存儲區(qū)中。當重啟時,元數(shù)據(jù)被復制回到主計算機系統(tǒng),遍歷元數(shù)據(jù)日歷,以將未被保存的高速緩存中的其它變化復制到數(shù)據(jù)存儲系統(tǒng)。
【專利說明】管理高速緩存存儲區(qū)的系統(tǒng)、方法和計算機可讀介質(zhì)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲系統(tǒng),更具體地,涉及采用基于閃存的數(shù)據(jù)高速緩存的數(shù)據(jù)存儲系統(tǒng)。
【背景技術(shù)】
[0002]一些常規(guī)的計算系統(tǒng)采用非易失性存儲器作為較慢的數(shù)據(jù)存儲器(例如,磁盤存儲介質(zhì)、光盤存儲介質(zhì)或者可通過網(wǎng)絡(luò)訪問的一個或多個數(shù)據(jù)存儲裝置)的塊級或文件級存儲替代物,以改善計算系統(tǒng)和/或由計算系統(tǒng)執(zhí)行的應(yīng)用程序的性能。在這方面,由于與往來于較慢的存儲裝置相比,對于某些非易失性存儲器(為簡單起見,下面稱為“高速緩存裝置”),可以明顯較快地進行輸入/輸出(I/O)操作,因此,高速緩存裝置的使用提供顯著提高I/o操作的速率的機會。
[0003]已知結(jié)合數(shù)據(jù)緩存,以勝過數(shù)據(jù)存儲管理器和存儲陣列支持的數(shù)據(jù)存儲系統(tǒng)的I/O性能地提高I/O性能。例如,在圖1中例示的系統(tǒng)中,數(shù)據(jù)存儲管理器10按照能夠?qū)崿F(xiàn)可靠的數(shù)據(jù)存儲的方式,控制存儲陣列12。主(計算機)系統(tǒng)14通過數(shù)據(jù)存儲管理器10,將數(shù)據(jù)保存在存儲陣列12中和從存儲陣列12取回數(shù)據(jù)。即,按照應(yīng)用程序或APP18工作的處理器16發(fā)出將數(shù)據(jù)寫入存儲陣列12或者從存儲陣列12讀取數(shù)據(jù)的請求。盡管為清楚起見,主機系統(tǒng)14和數(shù)據(jù)存儲管理器在圖1中被描述成單獨的元件,不過,數(shù)據(jù)存儲管理器10通常被物理體現(xiàn)為插入所述主機系統(tǒng)14的母板或底板中的卡。
[0004]這種系統(tǒng)可根據(jù)訪問保存在存儲陣列12的數(shù)據(jù)存儲裝置24、26、28和30中的某些數(shù)據(jù)的頻率,來緩存數(shù)據(jù)。所述緩存數(shù)據(jù)或者“熱”數(shù)據(jù),例如,元素A被保存在基于閃存的存儲器15的高速緩存模塊22中。可在塊級或者文件級,標識元素A。之后,諸如APP18之類應(yīng)用程序關(guān)于“熱”數(shù)據(jù)發(fā)出的請求由基于閃存的存儲器15服務(wù),而不是由數(shù)據(jù)存儲系統(tǒng)服務(wù)。這種常規(guī)的數(shù)據(jù)緩存系統(tǒng)可縮放,并且只由基于閃存的存儲裝置15的容量限制。因而,填充基于閃存的存儲裝置15的整個容量要花費相當大量的時間。盡管可以指令基于閃存的高速緩存裝置15緩存主機系統(tǒng)14頻繁讀取的數(shù)據(jù)項,不過跨基于閃存的裝置15的重啟,記憶哪些數(shù)據(jù)被緩存仍然是重要的。如果缺少關(guān)于主機系統(tǒng)14頻繁需要哪些數(shù)據(jù)的信息,那么緩存數(shù)據(jù)的重建會花費大量的時間,在所述時間內(nèi),基于閃存的高速緩存裝置15的性能和/或主機系統(tǒng)14的性能會受到影響,導致這種常規(guī)系統(tǒng)的用戶可覺察到的應(yīng)用性能的降低。
[0005]與數(shù)據(jù)存儲管理器10通信的獨立并且不同的高速緩存模塊21可在配置成可靠地跨存儲陣列12的存儲元件24、26、28和30分發(fā)數(shù)據(jù)的處理步驟之前或期間,臨時緩存數(shù)據(jù)元素B。
[0006]廉價(或獨立)磁盤的冗余陣列(RAID)是一種通過能夠從一個或多個存儲裝置的故障復原,來解決可靠性問題的常見數(shù)據(jù)存儲系統(tǒng)。已知在RAID系統(tǒng)中結(jié)合數(shù)據(jù)緩存。在圖1中例示的系統(tǒng)中,數(shù)據(jù)存儲管理器10包括以塊為單位緩存數(shù)據(jù)的RAID處理系統(tǒng)20,所述塊可被稱為讀高速緩存塊(RCB)和寫高速緩存塊(WCB)。WCB包括作為將數(shù)據(jù)保存在存儲陣列12中的請求的一部分,主機系統(tǒng)14發(fā)送給數(shù)據(jù)存儲管理器10的所述數(shù)據(jù)。響應(yīng)來自主機系統(tǒng)14的這種寫請求,數(shù)據(jù)存儲管理器10將WCB緩存或臨時保存在一個或多個高速緩存模塊21中,隨后向主機系統(tǒng)14返回確認消息10。在稍后的某個時間點,數(shù)據(jù)存儲管理器10將緩存的WCB ( 一般連同其它先前緩存的WCB —起)傳送給存儲陣列12。RCB包含數(shù)據(jù)存儲管理器10響應(yīng)來自主機系統(tǒng)14的讀取請求,頻繁地從存儲陣列12讀取的數(shù)據(jù)。緩存頻繁請求的數(shù)據(jù)比每次主機系統(tǒng)14請求數(shù)據(jù)時從存儲陣列12讀取該數(shù)據(jù)更高效,因為高速緩存模塊21是與數(shù)據(jù)存儲陣列12包含的那種存儲器(例如,磁盤驅(qū)動器)相比,能夠被更快速地訪問的一種存儲器,比如閃存。
【發(fā)明內(nèi)容】
[0007]在例證實施例中,舉例說明了管理高速緩存存儲區(qū),以便在重啟操作之后,改善高速緩存等待時間的系統(tǒng)和方法的實施例。聞速緩存等待時間是聞速緩存控制器為恢復和確認保存在高速緩存中的數(shù)據(jù)元素的內(nèi)容所用的時間。
[0008]在例證實施例中,高速緩存控制器包括用于與主計算機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)通信的至少一個接口。高速緩存控制器還包括高速緩存存儲區(qū)和處理系統(tǒng)。處理系統(tǒng)響應(yīng)保存在高速緩存存儲區(qū)中的標題信息和可執(zhí)行指令。處理系統(tǒng)被配置成以可編程方式響應(yīng)對高速緩存控制器的當前狀態(tài)作出響應(yīng)的狀態(tài)標識符,標識元數(shù)據(jù)日志的下一個可用序列號,標識高速緩存存儲區(qū)中的元數(shù)據(jù)存儲區(qū)的位置和大小,標識高速緩存存儲區(qū)中的元數(shù)據(jù)日志的位置和大小,標識高速緩存存儲區(qū)中的多個高速緩存窗口的位置和大小,每個高速緩存窗口包括由高速緩存控制器進一步標識的多個高速緩存行。響應(yīng)指定的條件,處理系統(tǒng)還被配置成將保存在元數(shù)據(jù)的表示中并且可通過主計算機系統(tǒng)訪問的信息寫入高速緩存存儲區(qū),并替換元數(shù)據(jù)日志中的下一個可用序列號。
[0009]在另一個例證實施例中,公開一種管理高速緩存存儲區(qū)的方法,所述高速緩存存儲區(qū)與主計算機系統(tǒng)和數(shù)據(jù)存儲區(qū)相關(guān),跨越高速緩存主機控制器的重啟地維持高速緩存存儲區(qū)中的信息。所述方法包括以下步驟:分割高速緩存存儲區(qū),以提供用于保存元數(shù)據(jù)的第一部分、用于保存被數(shù)據(jù)存儲管理器標識成應(yīng)歸入高速緩存存儲區(qū)的數(shù)據(jù)的數(shù)據(jù)值的第二部分、用于保存元數(shù)據(jù)的變化的第三部分和包含與主機和高速緩存存儲區(qū)有關(guān)的信息的第四部分;按數(shù)據(jù)存儲管理器的指示,用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示,所述數(shù)據(jù)存儲管理器根據(jù)表示在期望時間內(nèi)對保存在數(shù)據(jù)存儲系統(tǒng)中的特定數(shù)據(jù)項的請求的頻率值,標識待保存在高速緩存存儲區(qū)中的數(shù)據(jù)項;每當按數(shù)據(jù)存儲管理器的指示用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示時,在高速緩存存儲區(qū)的第三部分中創(chuàng)建一個條目,其中第一部分、第二部分和第三部分的表示被保存在通過主計算機系統(tǒng)、數(shù)據(jù)存儲管理器和高速緩存主機控制器中的一個或多個能夠訪問的易失性存儲器中;比較在高速緩存存儲區(qū)的第三部分中的當前索引和初始索引,以判定何時達到第三部分的數(shù)據(jù)存儲容量,當已達到第三部分的數(shù)據(jù)存儲容量時,將在第一部分的表示中的信息寫入高速緩存存儲區(qū)的對應(yīng)第一存儲區(qū)中,和用高速緩存存儲區(qū)的第三部分中的下一個可用存儲位置替換初始索引。
[0010]在例證實施例中,當完成高速緩存控制器的重啟時,處理系統(tǒng)執(zhí)行可執(zhí)行指令,所述可執(zhí)行指令讀取高速緩存存儲區(qū)的表示的內(nèi)容,所述內(nèi)容保存在主計算機系統(tǒng)可訪問的易失性存儲器中,并且還包含下一個可用序列號,將元數(shù)據(jù)存儲區(qū)的內(nèi)容復制到主計算機系統(tǒng)可訪問的易失性存儲器,在元數(shù)據(jù)存儲區(qū)中的一個或多個條目之上應(yīng)用有效日志條目,以生成恢復的元數(shù)據(jù),遍歷恢復的元數(shù)據(jù),以標識適當?shù)母咚倬彺娲翱?,從而用來自?shù)據(jù)存儲系統(tǒng)的對應(yīng)數(shù)據(jù)更新,修改適當?shù)母咚倬彺娲翱诘臓顟B(tài),將高速緩存窗口插入散列表和優(yōu)先級索引中,并更新向數(shù)據(jù)存儲系統(tǒng)指示對高速緩沖存儲器的I/o操作被允許的標記。
【專利附圖】
【附圖說明】
[0011]圖1是圖解說明耦接到主計算機和存儲系統(tǒng)的常規(guī)高速緩存裝置的方框圖。
[0012]圖2是圖解說明按照本發(fā)明的例證實施例的改進的高速緩存控制器的方框圖。
[0013]圖3是圖2的聞速緩存存儲區(qū)的不意圖。
[0014]圖4是圖3的元數(shù)據(jù)存儲區(qū)的示意圖。
[0015]圖5是圖3的日志存儲區(qū)的示意圖。
[0016]圖6是圖2的主機存儲器表示或高速緩存存儲區(qū)鏡像的示意圖。
[0017]圖7是表示隨著時間的過去,圖3的日志存儲區(qū)的使用的示意圖。
[0018]圖8是圖2的高速緩存軟件的示意圖。
[0019]圖9A和9B包括圖解說明管理高速緩存存儲區(qū),以跨越高速緩存裝置的重啟,改善等待時間的方法的流程圖。
【具體實施方式】
[0020]具有高速緩存存儲區(qū)并且與存儲系統(tǒng)關(guān)聯(lián)的高速緩存控制器跨越高速緩存控制器的重啟地維持保存在高速緩存存儲區(qū)中的信息。高速緩存控制器與主計算機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)通信。改進的高速緩存控制器可以用在與主計算機系統(tǒng)耦接的基于閃存的高速緩存裝置中。高速緩存控制器分割高速緩沖存儲器,以包括元數(shù)據(jù)部分和日志部分。一個獨立的部分被用于緩存的數(shù)據(jù)元素。高速緩存控制器將元數(shù)據(jù)的副本保持在主計算機系統(tǒng)可訪問的獨立的存儲器中。當元數(shù)據(jù)日志達到其容量時,數(shù)據(jù)被寫入高速緩存存儲區(qū)中。當重啟時,元數(shù)據(jù)被復制回到主計算機系統(tǒng),遍歷元數(shù)據(jù)日志,以將未被保存的高速緩存中的其它變化復制到數(shù)據(jù)存儲系統(tǒng)和/或高速緩存存儲區(qū)。
[0021]如圖2中圖解所示,在本發(fā)明的說明性或例證實施例中,主機系統(tǒng)100與數(shù)據(jù)存儲區(qū)140和基于閃存的高速緩存裝置130耦接。數(shù)據(jù)存儲區(qū)140可以是直接附加存儲(DAS)或存儲區(qū)域網(wǎng)(SAN)。在這些實施例中,按照數(shù)據(jù)存儲管理器的指示,數(shù)據(jù)存儲區(qū)140將包括多個數(shù)據(jù)存儲裝置,比如結(jié)合存儲陣列12(圖1)說明的那些數(shù)據(jù)存儲裝置。盡管為了清楚起見,這里未詳細舉例說明,不過應(yīng)理解,通過跨多個數(shù)據(jù)存儲裝置地分配數(shù)據(jù),數(shù)據(jù)存儲管理器可提供RAID保護,比如RAID-5保護。
[0022]RAID控制器(未示出)通過接口,比如總線,與數(shù)據(jù)存儲區(qū)140通信,還通過另一個接口,比如另一條總線,與主(計算機)系統(tǒng)100通信。為簡單起見,在圖2中,用主機系統(tǒng)100和數(shù)據(jù)存儲區(qū)140之間的雙向箭頭,圖解說明RAID控制器和與RAID控制器、主機系統(tǒng)100和數(shù)據(jù)存儲區(qū)140的接口。RAID控制器可被物理地包含在可插入主機系統(tǒng)100的母板或底板(未示出)中的組合件,或者任何其它適當?shù)慕Y(jié)構(gòu)中。
[0023]主機系統(tǒng)100將數(shù)據(jù)保存在數(shù)據(jù)區(qū)140中,和從數(shù)據(jù)存儲區(qū)140取回數(shù)據(jù)。S卩,按照應(yīng)用程序124或類似軟件工作的主機系統(tǒng)100中的處理器110發(fā)出往來于數(shù)據(jù)存儲區(qū)140讀取和寫入數(shù)據(jù)的請求。注意,盡管應(yīng)用程序124被概念地描述成保存或駐留在存儲器120中,不過,本領(lǐng)域的技術(shù)人員可理解這種軟件可以采取按照常規(guī)的計算原則,酌情載入存儲器120中的多個模塊、片段、程序、文件等的形式。類似地,盡管為了清楚起見,存儲器120被描述成單個元件,不過,存儲器120可包括多個元件。同樣地,盡管為了清楚起見,處理器110被描述成單個元件,不過,處理器110可包括多個元件。
[0024]除了應(yīng)用程序124之外,存儲器120還包括管理數(shù)據(jù)文件和程序的文件系統(tǒng)122、高速緩存存儲區(qū)鏡像600和高速緩存軟件800。將結(jié)合圖6中的例示的說明,詳細說明高速緩存存儲區(qū)鏡像600的體系結(jié)構(gòu)和使用。類似地,將結(jié)合圖8中的例示的說明,詳細說明高速緩存軟件800的體系結(jié)構(gòu)和操作。
[0025]基于閃存的高速緩存裝置130被安排成通過頗具策略地將數(shù)據(jù)存儲區(qū)140中最頻繁訪問的數(shù)據(jù)緩存在高速緩存存儲區(qū)300中,改善諸如APP124之類的應(yīng)用程序的性能。基于主機系統(tǒng)的軟件,比如高速緩存軟件800用于檢測保存在數(shù)據(jù)存儲區(qū)140中的被頻繁訪問的數(shù)據(jù)項,并將這些數(shù)據(jù)項保存在高速緩存存儲區(qū)300中。
[0026]基于閃存的高速緩存裝置130的高速緩存控制器(未示出)通過接口,比如總線,與主機系統(tǒng)100和數(shù)據(jù)存儲區(qū)140通信。基于閃存的高速緩存裝置130可被物理地包含在可插入主機系統(tǒng)100的母板或底板(未示出)的組合件中,或者任何其它適當?shù)慕Y(jié)構(gòu)中。在優(yōu)選實施例中,基于閃存的高速緩存裝置130通過利用雙向箭頭描述的高速外設(shè)互聯(lián)標準
2.0(PCIe)接口總線,耦接到主機系統(tǒng)100。
[0027]圖3是圖2的高速緩存存儲區(qū)300的示意圖。高速緩存存儲區(qū)300被劃分或分割成至少4個獨立的存儲區(qū)。第一部分或分區(qū)包括標題信息310。第二部分包括一組高速緩存窗口 320。第三部分包括元數(shù)據(jù)存儲區(qū)400。第四部分包括日志存儲區(qū)500。標題信息包括指示基于閃存的高速緩存裝置130(圖1)的操作狀態(tài)的標記中其它指示符,用于導航日志存儲區(qū)500中的條目的下一個可用序列號,表示元數(shù)據(jù)存儲區(qū)400的位置和大小的信息,表示日志存儲區(qū)500的位置和大小的信息,以及表示第二部分中的高速緩存窗口 322的數(shù)目的信息。高速緩存存儲區(qū)400的相當大量的存儲容量被分配給在例證中被標識成高速緩存窗口的區(qū)域。每個高速緩存窗口被進一步細分成期望大小的高速緩存塊或高速緩存行。
[0028]訪問數(shù)據(jù)存儲區(qū)140的規(guī)定區(qū)域的I/O操作被分配虛擬高速緩存窗口。在規(guī)定區(qū)域的重復訪問時(和在達到閾值之后),虛擬高速緩存窗口(VCW)被轉(zhuǎn)換成物理高速緩存窗口。在VCW被釋放的時候,物理高速緩存窗口(CW)(即,高速緩存窗口 322之一)被填充來自數(shù)據(jù)存儲區(qū)140的規(guī)定區(qū)域的數(shù)據(jù)。在成功完成對CW的寫操作之后,規(guī)定區(qū)域的后續(xù)讀取請求將由基于閃存的高速緩存裝置130而不是數(shù)據(jù)存儲區(qū)140處理。
[0029]當基于閃存的高速緩存裝置130最初被介紹給主機系統(tǒng)100時,高速緩存窗口對象在主機存儲器120中被分配并添加到空閑高速緩存窗口列表(未示出)中。足夠數(shù)目的VCW對象還被分配并放入空閑虛擬高速緩存窗口列表中。當收到I/O操作時,搜索散列表,以尋找VCW或CW。如果找到一個VCW或CW,那么從空閑列表中除去該VCW,將其用于跟蹤接收的I/O的區(qū)域。該VCW現(xiàn)在被插入散列表中。當收到對VCW的足夠訪問時,從空閑列表中取得一個物理CW。在高速緩存存儲區(qū)300中的所述一組高速緩存窗口 320中的對應(yīng)位置,填充高速緩存窗口 322。當高速緩存存儲區(qū)300首次被初始化時,標題信息310將包含為O的下一個可用序列號,并且日志存儲區(qū)500和元數(shù)據(jù)存儲區(qū)400中的所有條目將被初始化成期望的二進制值(即,邏輯O或邏輯I)。
[0030]圖4是圖3的元數(shù)據(jù)存儲區(qū)400中的條目402的示意圖。元數(shù)據(jù)條目402包括一組字段,所述一組字段保持與保存在高速緩存存儲區(qū)300中的數(shù)據(jù)有關(guān)的信息。元數(shù)據(jù)存儲區(qū)400中的每個條目402代表一個物理CW(即,保存在一組高速緩存窗口 320中的一個高速緩存窗口 322)。元數(shù)據(jù)存儲區(qū)400的大小取決于分配的CW322的數(shù)目。元數(shù)據(jù)存儲區(qū)400中的每個元數(shù)據(jù)條目402映射或標識高速緩存存儲區(qū)300中的特定CW322。每個元數(shù)據(jù)條目402包括虛擬目錄標識符(VDI)、虛擬目錄邏輯塊地址(VD LBA)、優(yōu)先級索引(PI)、和已被傳送給高速緩存存儲區(qū)300的數(shù)據(jù)的范圍或塊的高速緩存行位圖。每個元數(shù)據(jù)條目400還包括用于保存“臟”位的保留存儲區(qū)。臟位記錄高速緩存存儲區(qū)中的未被回傳送給數(shù)據(jù)存儲區(qū)140中的對應(yīng)存儲位置I數(shù)據(jù)的變化。
[0031 ] 在優(yōu)選實施例中,VDI包括標識多達64個虛擬磁盤的6個位,所述64個虛擬磁盤以1:1的關(guān)系對應(yīng)于數(shù)據(jù)存儲區(qū)140中的多達64個數(shù)據(jù)存儲裝置。VD LBA包括26個位,標識從為O的邏輯源地址或基準位置到從基準位置移動多達64TB的位置緩存的一系列數(shù)據(jù)。PI包括4個位,標識其中邏輯地插入CW的16個優(yōu)先級或隊列。高速緩存行位圖指示哪些高速緩存塊在使用中。可構(gòu)思元數(shù)據(jù)條目402中的各個字段的備選排列(即,位置和位長度)。
[0032]表示主機系統(tǒng)100上的應(yīng)用程序如何頻繁地訪問數(shù)據(jù)的度量的PI索引隨某些CW按第一優(yōu)先級或桶(bucket)移入高速緩存存儲區(qū)300,并且隨著時間的過去而上移或下移優(yōu)先級而不斷變化。當高速緩存控制器使用存儲容量時,替代不經(jīng)常被訪問的緩存CW。優(yōu)先級索引使高速緩存控制器能夠根據(jù)區(qū)域內(nèi)的高速緩存命中的權(quán)重,區(qū)分CW中的數(shù)據(jù)。在規(guī)定時間內(nèi)的足夠數(shù)目的命中之后,特定的CW將被提升到更高的優(yōu)先值或索引。如果在一段時間內(nèi),特定的CW未得到足夠的I/O操作,那么該CW將被降級到較低的優(yōu)先級。當不再可得到存儲容量時,Cff在被從最低優(yōu)先級除去之后被重新使用或重新分配。
[0033]在高速緩存數(shù)據(jù)存儲區(qū)容量為1TB,CW為IMB的例證實施例中,需要I百萬個CW。為了表示I百萬個CW,元數(shù)據(jù)存儲區(qū)400需要8MB的存儲容量。額外的64MB數(shù)據(jù)容量被分配或劃分給日志存儲區(qū)500。日志存儲區(qū)500可用于記錄當處理I/O操作時對分配的CW322任意之一的元數(shù)據(jù)的更新。
[0034]通過為每個基于閃存的高速緩存裝置130配置和維持元數(shù)據(jù)存儲區(qū)400,可以部署多個基于閃存的高速緩存裝置。當這樣部署多個基于閃存的高速緩存裝置130時,高速緩存軟件800將將所述裝置和指定的群標識符聯(lián)系起來,并跟蹤所述裝置。
[0035]圖5是圖3的日志存儲區(qū)500中的條目502的示意圖。日志條目502包括與在元數(shù)據(jù)條目402中提供的相同的一組字段。除了該信息之外,日志條目502還包括標識日志存儲區(qū)中的可供條目之用的位置的檢查點或序列號,和表示高速緩存存儲區(qū)300中的單個CW322的CW索引。
[0036]每當可高速緩存的區(qū)域變“熱”時(被標識成被在主機系統(tǒng)100上運行的一個或多個應(yīng)用程序頻率訪問時),VCW就被轉(zhuǎn)換成物理CW。依據(jù)CW322的每個I/O訪問,如果高速緩存行未被充滿,那么從數(shù)據(jù)存儲區(qū)140取回所需范圍的數(shù)據(jù)(例如,64KB),并填充到高速緩存存儲區(qū)300中的對應(yīng)空間中。同時,在CW322內(nèi)的高速緩存行位圖中啟用適當?shù)奈?。當I/O操作重疊高速緩存行和或CW322時,特別要注意。
[0037]每當CW被從空閑池利用時,高速緩存行位圖變化,發(fā)生優(yōu)先級桶內(nèi)的CW提升/降級。因而,在保持在與主機系統(tǒng)100相關(guān)的存儲器120中的高速緩存存儲鏡像600 (元數(shù)據(jù)存儲器和高速緩存窗口對象的表示)中,更新對應(yīng)的信息。根據(jù)高速緩存裝置CW位置,在元數(shù)據(jù)存儲區(qū)內(nèi)選擇元數(shù)據(jù)條目位置。隨后,生成日志條目并記錄在高速緩存條目300的條目存儲區(qū)500中。當所有元數(shù)據(jù)事務(wù)完成時,完成主機系統(tǒng)I/O。
[0038]一旦在為日志存儲區(qū)500分配的存儲空間(例如,64MB)中,填充了所有的日志條目,元數(shù)據(jù)塊或元數(shù)據(jù)鏡像的主機存儲器表示就被寫入基于閃存的高速緩存裝置130的高速緩存存儲區(qū)300。在元數(shù)據(jù)存儲區(qū)400的成功更新之后,用下一個可用日志序列號更新高速緩存存儲區(qū)300的標題信息310。
[0039]當CW索引被分配20個位時,圖5中圖解說明的日志條目排列能夠表示多達I百萬個CW,從而提供ITB的高速緩存存儲容量。序列號將具有能夠環(huán)繞日志存儲區(qū)500的值??蓸?gòu)思日志條目502中的各個字段的備選排列(即,位置和位長度)。
[0040]圖6是圖2的主機存儲器表示或高速緩存存儲鏡像600的示意圖。如圖6中所示,高速緩存軟件800將高速緩存存儲區(qū)鏡像600保持在主機系統(tǒng)存儲器120中。高速緩存存儲區(qū)鏡像包括來自基于閃存的高速緩存裝置130上的高速緩存存儲區(qū)300的元數(shù)據(jù)存儲區(qū)的副本,并保留指定傳送給高速緩存存儲區(qū)300的CW的高速緩存窗口對象。如上所述,只有在高速緩存存儲區(qū)300中的日志存儲區(qū)500達到其存儲容量之后,高速緩存存儲區(qū)鏡像600中的信息才被用于更新高速緩存存儲區(qū)300中的信息。
[0041]圖7是表示隨著時間的過去,圖3的日志存儲區(qū)500的使用的示意圖。如圖7中所示,當在日志存儲器500中記錄日志條目712時,從用箭頭710示意指示的初始檢查點或序列號開始,順序添加日志條目712。如上所述,在高速緩存存儲區(qū)300的標題信息310中,定義初始序列號。
[0042]圖8是圖2的高速緩存軟件800的示意圖。在例證實施例中,各個邏輯元件或模塊被彼此分離地表示成高速緩存軟件800的單個組件。在這點上,高速緩存軟件800包括管理邏輯805、分區(qū)邏輯810、高速緩存存儲區(qū)邏輯812、日志條目邏輯814、比較邏輯816和元數(shù)據(jù)恢復邏輯818。管理邏輯805包括可執(zhí)行指令,用于當被處理器執(zhí)行時,協(xié)調(diào)主機系統(tǒng)100內(nèi)的數(shù)據(jù)操作,包括往來于數(shù)據(jù)存儲區(qū)140和往來于基于閃存的高速緩存裝置130的I/O操作。操作中,管理邏輯805使能數(shù)據(jù)存儲管理器標識數(shù)據(jù)存儲器140中的應(yīng)緩存在基于閃存的高速緩存裝置130中的數(shù)據(jù)。
[0043]分區(qū)邏輯810包括可執(zhí)行指令,當被處理器執(zhí)行時,協(xié)調(diào)基于閃存的高速緩存裝置130的高速緩存存儲區(qū)300內(nèi)的標題信息310、CW存儲區(qū)320、元數(shù)據(jù)存儲區(qū)400和日志存儲區(qū)500的相對放置和大小。分區(qū)邏輯810可包括按照標識數(shù)據(jù)存儲區(qū)140和基于閃存的高速緩存裝置130的特性的一個或多個輸入?yún)?shù),計算元數(shù)據(jù)存儲區(qū)400和日志存儲區(qū)500的最佳大小和放置的規(guī)則和算法。
[0044]高速緩存存儲區(qū)邏輯812包括可執(zhí)行指令,當被處理器執(zhí)行時,協(xié)調(diào)往來于基于閃存的高速緩存裝置130的I/O操作。如上所述,高速緩存存儲區(qū)邏輯812管理VCW、Cff,VCW空閑列表,具有表格和優(yōu)先級列表或桶。高速緩存存儲區(qū)邏輯812可以與監(jiān)視主機系統(tǒng)100和數(shù)據(jù)存儲區(qū)140之間的I/O操作以標識保存在其中的應(yīng)被傳送給基于閃存的高速緩存裝置130的數(shù)據(jù)項的模塊相結(jié)合。另一方面,高速緩存存儲區(qū)邏輯812可從在主機系統(tǒng)100上運行,并被配置成標識這種“熱”數(shù)據(jù)的獨立應(yīng)用程序接收輸入。另外,高速緩存存儲區(qū)邏輯812指導呈條目402形式的適當排列的信息到元數(shù)據(jù)存儲區(qū)400的傳送。
[0045]日志條目邏輯814包括可執(zhí)行指令,如上結(jié)合圖5中圖解說明的實施例舉例所述,當被處理器執(zhí)行時,確定什么信息將被傳送到日志存儲區(qū)500中的適當排列的日志條目502。另外如上所述,日志條目邏輯814將取回初始索引或序列號,順序輸入每個日志條目,同時每個日志條目與高速緩存存儲區(qū)300中的CW322成1:1關(guān)系地,通過與元數(shù)據(jù)存儲區(qū)400的條目中的那些字段一樣的信息字段,被映射到位于數(shù)據(jù)存儲區(qū)140中的數(shù)據(jù)。
[0046]比較邏輯816包括當被處理器執(zhí)行時,確定日志存儲區(qū)500中的有效日志條目的可執(zhí)行指令。在這點上,比較每個條目的序列號和下一個條目的序列號。采用唯一的遞增序列號。從而,只要序列號的差異為O或1,日志條目就有效(從而被應(yīng)用于元數(shù)據(jù)400)。當所述差異不為O或I時,比較邏輯816指出處理已到達無效的日志條目,從而終止日志的進一步處理。如上所述,標題信息310提供將在比較中使用的第一個序列號。
[0047]在初始化處理期間,選擇隨機序列號。隨機序列號被記錄在高速緩存存儲區(qū)上的標題信息中。第一日志條目將利用保存在標題信息中的序列號。對隨后的日志條目來說,序列號被加I。另外如上所述,序列號是按照處理將從邏輯存儲區(qū)500的結(jié)尾繞回到邏輯存儲區(qū)500的起點的方式排列的。當依據(jù)不為O或I的差異值確定日志已滿時,易失性存儲器中的元數(shù)據(jù)被寫入高速緩存存儲區(qū)中,序列號被加1,并被保存在標題信息中。對日志的下一次更新將在依據(jù)序列號標識的日志位置。
[0048]元數(shù)據(jù)恢復邏輯818包括可執(zhí)行指令,當被處理器執(zhí)行時,進行根據(jù)元數(shù)據(jù)存儲區(qū)400的內(nèi)容和日志存儲器500中的有效條目重建高速緩存鏡像600的一系列活動。首先,讀取高速緩存存儲區(qū)300中的標題信息310,以了解高速緩存存儲區(qū)300的布局和取回下一個可用序列號。元數(shù)據(jù)存儲區(qū)的內(nèi)容被復制到主機系統(tǒng)100的存儲器120中的高速緩存鏡像600。對照從標題信息310恢復的下一個可用序列號,檢查第一個日志條目。如果序列號匹配,那么日志條目有效,與該日志條目相關(guān)的數(shù)據(jù)應(yīng)被恢復。之后,遞增序列號,并關(guān)于有效的日志條目,檢查序列號。在高速緩存鏡像600之上應(yīng)用有效的日志條目。當序列號不匹配時,最新的元數(shù)據(jù)被保存在高速緩存存儲區(qū)中,并終止日志的處理。遍歷高速緩存鏡像600中的元數(shù)據(jù),更新適當?shù)腃W。恢復的元數(shù)據(jù)被寫入高速緩存存儲區(qū),下一個可用序列號被保存在標題信息310中。這些CW從空閑列表中除去,并按適當?shù)膬?yōu)先級索引或優(yōu)先值,插入散列表和優(yōu)先級列表中。另外,CW命中計數(shù)被初始化成優(yōu)先級索引或桶和提升閾值的函數(shù),以確保在適當?shù)妮^“熱”范圍中標識CW。之后,允許主機I/O操作。下一個日志條目將按照保存在標題信息310中的序列號,被保存在日志存儲區(qū)中。
[0049]圖9A和9B包括圖解說明管理高速緩存存儲區(qū),以跨越高速緩存裝置的重啟來改善等待時間的方法900的流程圖。等待時間是高速緩存控制器從重啟操作恢復所用的時間?;謴鸵馕陡咚倬彺娲鎯^(qū)300被復原到包括所有的“熱度”和優(yōu)先隊列特性的有效狀態(tài)。換句話說,高速緩存歷史被無損失地恢復。
[0050]應(yīng)注意,方法900包括多個步驟,所述多個步驟包括建立能夠跨越重啟操作地維持元數(shù)據(jù)的系統(tǒng)的預備步驟,以及當檢測到源于重啟的系統(tǒng)恢復時進行的步驟。方法900始于方框902,在方框902,高速緩存存儲區(qū)被分區(qū),以支持元數(shù)據(jù)存儲區(qū)、日志存儲區(qū)、一組CW和標題信息存儲區(qū)。在方框904,在主機系統(tǒng)可訪問的獨立存儲器中,填充元數(shù)據(jù)副本和CW對象的副本。在方框906,每當在保存在獨立存儲器中的副本中更新元數(shù)據(jù)副本和CW對象時,就在高速緩存裝置的日志存儲區(qū)中創(chuàng)建一個條目。在方框908,比較日志存儲區(qū)中的當前索引或序列號與初始索引或檢查點,以判定何時達到了日志存儲區(qū)的容量。在判定框910,判定日志是否已滿。當日志未達到容量時,如用退出判定框910的標記“NO”的流程控制箭頭所示,處理返回方框906。否則,處理繼續(xù)進行方框912,在方框912,所述獨立存儲器中的元數(shù)據(jù)副本和CW對象被傳送給高速緩存存儲區(qū)。之后,如在方框914中所示,用獨立存儲器中的下一個可用存儲位置,替換標題信息中的初始索引或序列號。
[0051]如用連接符A所示,方法900繼續(xù)進行判定框916,在判定框916,判定高速緩存裝置是否已從重啟操作恢復。如果否,那么處理繼續(xù)進行方框906,如用連接符B所示。否則,系統(tǒng)已重啟,處理繼續(xù)進行方框918,在方框918,設(shè)定狀態(tài)標記,以從高速緩存裝置130暫停主機I/O操作,從高速緩存存儲區(qū)讀取標題信息,以標識日志中的下一個可用存儲位置。在方框920,保存在高速緩存中的元數(shù)據(jù)的內(nèi)容被復制到主機系統(tǒng)可訪問的獨立存儲器中的元數(shù)據(jù)鏡像中。在方框922,在元數(shù)據(jù)之上應(yīng)用有效日志條目。在方框924,處理恢復的元數(shù)據(jù),以標識需要用來自數(shù)據(jù)存儲系統(tǒng)的信息更新的CW。在方框926,該CW從空閑列表中被除去,在散列表中被更新,并按照優(yōu)先級索引被插入適當?shù)奈恢谩T诜娇?28,按照優(yōu)先級索引提升閾值,初始化計數(shù)器。之后,如在判定框932中所示,判定下一個日志條目是否有效。如果是,那么用唯一的序列號遞增索引,如在方框932中所示,然后處理返回方框924。否則,所有的日志條目都已被處理,從而在方框934中復位狀態(tài)標記,以指示允許I/O操作。
[0052]結(jié)果,如果高速緩存已滿,并且新的數(shù)據(jù)元素被標識成應(yīng)歸入高速緩存中,那么高速緩存控制器將將在剛好在重啟之前的一段時間內(nèi),收到相對較低的I/O請求的CW標識成用于CW替換的合適候選者。這樣,改進的高速緩存控制器重新使用接收較低的I/O請求的CW,而不是從高速緩存存儲區(qū)中丟棄相對“較熱”的數(shù)據(jù)區(qū)。
[0053]為了降低在CW被頻繁升級或降級時的日志更新的頻度,可以修改日志條目中的更新的粒度。例如,當CW被提升或降低不止25%的優(yōu)先級時,不管有多少級,都只記錄一個日志條目。
[0054]應(yīng)理解,圖9A和9B的流程圖只是用來例證或說明成為所述方法的基礎(chǔ)的邏輯。本領(lǐng)域的技術(shù)人員會理解,在各個實施例中,可以按照任意各種方式設(shè)計或配置包括高速緩存處理系統(tǒng)或高速緩存控制器的數(shù)據(jù)處理系統(tǒng),以實現(xiàn)所述方法。上面說明的步驟或動作可按任何適當?shù)捻樞蚧蛐蛄邪l(fā)生,包括并行或者彼此同步地發(fā)生。在一些實施例中,上面關(guān)于圖9A和9B說明的步驟或動作可以與其它步驟或動作結(jié)合,或者被省略。盡管為了清楚起見,以圖9A和9B中的流程圖的形式進行了說明,基礎(chǔ)的邏輯可被模塊化,或者以任何適當?shù)姆绞讲贾?。本領(lǐng)域的技術(shù)人員能夠容易地編程或配置適當?shù)能浖蜻m當?shù)倪壿嫞热缫詫S眉呻娐?ASIC)或者類似裝置或者裝置的組合的形式,以實現(xiàn)上面說明的方法。另夕卜,應(yīng)理解軟件指令或類似邏輯與其中保存或包含這樣的軟件指令或類似邏輯,以便由處理器110執(zhí)行的局部存儲器120或其它存儲器的組合包括“計算機可讀介質(zhì)”或“計算機程序產(chǎn)品”,如在專利詞典中使用該術(shù)語一樣。
[0055]應(yīng)注意為了說明本發(fā)明的原理和概念,參考一個或多個例證實施例,說明了本發(fā)明。本發(fā)明并不局限于這些實施例。鑒于這里提供的說明,本領(lǐng)域的技術(shù)人員會明白,可對這里說明的實施例作出許多變化,所有這樣的變化都在權(quán)利要求書中限定的本發(fā)明的范圍之內(nèi)。
【權(quán)利要求】
1.一種管理高速緩存存儲區(qū)的方法,所述高速緩存存儲區(qū)與主計算機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)相關(guān),用于跨越高速緩存主機控制器的重啟地維持高速緩存存儲區(qū)中的信息,所述方法包括: 分割高速緩存存儲區(qū),以提供用于保存元數(shù)據(jù)的第一部分、用于保存被數(shù)據(jù)存儲管理器標識成應(yīng)歸入高速緩存存儲區(qū)的數(shù)據(jù)的數(shù)據(jù)值的第二部分、用于保存元數(shù)據(jù)的變化的第三部分和包含與主機和高速緩存存儲區(qū)有關(guān)的信息的第四部分; 按數(shù)據(jù)存儲管理器的指示,用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示,所述數(shù)據(jù)存儲管理器根據(jù)表示在期望時間內(nèi)對保存在數(shù)據(jù)存儲系統(tǒng)中的特定數(shù)據(jù)項的請求的頻率值,標識待保存在高速緩存存儲區(qū)中的數(shù)據(jù)項; 每當按數(shù)據(jù)存儲管理器的指示用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示時,在高速緩存存儲區(qū)的第三部分中創(chuàng)建一個條目,其中第一部分和第二部分的表示被保存在通過主計算機系統(tǒng)、數(shù)據(jù)存儲管理器和高速緩存主機控制器中的一個或多個能夠訪問的易失性存儲器中; 比較在高速緩存存儲區(qū)的第三部分中的當前索引和初始索引,以判定何時達到第三部分的數(shù)據(jù)存儲容量,當已達到第三部分的數(shù)據(jù)存儲容量時: 將在第一部分的表示中的信息寫入高速緩存存儲區(qū)的對應(yīng)第一存儲區(qū)中;和 用高速緩存存儲區(qū)的第三部分中的下一個可用存儲位置替換初始索引。
2.按照權(quán)利要求1所述的方法,還包括: 將第一部分的表示、第二部 分的表示和第三部分的表示初始化成期望的二進制值。
3.按照權(quán)利要求1所述的方法,其中第四部分包含主機的狀態(tài)的指示、定義第一部分的位置和大小的第一標識符和第一范圍、標識第二部分中的高速緩存存儲單元的數(shù)目和高速緩存存儲單元內(nèi)的每個高速緩存行的大小的第二標識符和第三標識符、以及定義第三部分的相應(yīng)位置和大小的第四標識符和第四范圍。
4.按照權(quán)利要求1所述的方法,其中第一部分包含第一條目,第一條目包括虛擬目標標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域和高速緩存行位圖。
5.按照權(quán)利要求1所述的方法,其中第三部分包含序列號、高速緩存行位圖、虛擬目錄標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域和高速緩存窗口索引。
6.按照權(quán)利要求1所述的方法,還包括: 當高速緩存主機控制器重啟時,讀取第四部分的內(nèi)容以標識下一個可用序列號;將高速緩存存儲裝置的第一部分復制到數(shù)據(jù)存儲管理器和高速緩存存儲區(qū)可訪問的易失性存儲器中; 在數(shù)據(jù)存儲管理器和高速緩存存儲區(qū)可訪問的易失性存儲器的第一部分中的一個或多個條目之上,應(yīng)用有效日志條目,以生成恢復的元數(shù)據(jù); 遍歷恢復的元數(shù)據(jù)以標識適當?shù)母咚倬彺娲翱?,從而用來自?shù)據(jù)存儲系統(tǒng)的對應(yīng)數(shù)據(jù)進行更新; 修改所述適當?shù)母咚倬彺娲翱诘臓顟B(tài); 將高速緩存窗口插入散列表和優(yōu)先級索引中;和 一旦遍歷了所有的元數(shù)據(jù)條目,就向高速緩存主機控制器發(fā)送指示。
7.按照權(quán)利要求6所述的方法,其中確定有效日志條目包括第一條目中的序列號和隨后的條目中的序列號的比較。
8.按照權(quán)利要求7所述的方法,其中所述比較包括: 計算第一條目中的序列號與下一個條目中的序列號之間的差異; 確定所述差異是否為O或I ;和 當所述差異不為O或I時,終止恢復的元數(shù)據(jù)的遍歷。
9.一種高速緩存控制器,包括: 用于與主計算機系統(tǒng)和數(shù)據(jù)存儲系統(tǒng)進行數(shù)據(jù)通信的接口; 高速緩存存儲區(qū);和 對保存在高速緩存存儲區(qū)中的標題信息作出響應(yīng)的處理系統(tǒng),所述處理系統(tǒng)被配置成: 以可編程方式響應(yīng)對高速緩存控制器的當前狀態(tài)作出響應(yīng)的狀態(tài)標識符; 標識元數(shù)據(jù)日志的下一個可用序列號; 標識高速緩存存儲區(qū)內(nèi)的元數(shù)據(jù)存儲區(qū)的位置和大小; 標識高速緩存存儲區(qū)內(nèi)的元數(shù)據(jù)日志的位置和大?。? 標識高速緩存存儲區(qū)內(nèi)的多個高速緩存窗口的位置和大小,每個高速緩存窗口包括由聞速緩存控制器進一步標識的多個聞速緩存行; 將保存在元數(shù)據(jù)的表示中并且通過主計算機系統(tǒng)能夠訪問的信息寫入高速緩存存儲區(qū);和 替換元數(shù)據(jù)日志中的下一個可用序列號。
10.按照權(quán)利要求9所述的高速緩存控制器,其中處理系統(tǒng)還被配置成: 將元數(shù)據(jù)、高速緩存窗口對象和元數(shù)據(jù)日志保持在高速緩存存儲區(qū)中。
11.按照權(quán)利要求10所述的高速緩存控制器,其中元數(shù)據(jù)包括至少一個條目,所述條目包括虛擬目錄標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域和高速緩存行位圖。
12.按照權(quán)利要求11所述的高速緩存控制器,其中元數(shù)據(jù)日志包括序列號、高速緩存行位圖、虛擬目錄標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域信息和高速緩存窗口索引。
13.按照權(quán)利要求9所述的高速緩存控制器,其中處理系統(tǒng)還被配置成: 當高速緩存控制器的重啟完成時, 讀取高速緩存存儲區(qū)的表示的內(nèi)容,所述內(nèi)容保存在主計算機系統(tǒng)可訪問的易失性存儲器中并且還包含下一個可用序列號; 將元數(shù)據(jù)存儲區(qū)的內(nèi)容復制到主計算機系統(tǒng)可訪問的易失性存儲器中; 在元數(shù)據(jù)存儲區(qū)中的一個或多個條目之上應(yīng)用有效日志條目,從而生成恢復的元數(shù)據(jù); 遍歷恢復的元數(shù)據(jù)以標識適當?shù)母咚倬彺娲翱?,從而用來自?shù)據(jù)存儲系統(tǒng)的對應(yīng)數(shù)據(jù)進行更新; 修改適當?shù)母咚倬彺娲翱诘臓顟B(tài); 將高速緩存窗口插入散列表和優(yōu)先級索引中;和 更新向數(shù)據(jù)存儲系統(tǒng)指示對高速緩沖存儲器的輸入/輸出操作被允許的標記。
14.按照權(quán)利要求13所述的高速緩存控制器,其中通過第一條目中的隨后序列號和隨后的條目中的隨后序列號的比較,標識有效日志條目。
15.按照權(quán)利要求14所述的高速緩存控制器,其中所述比較包括: 計算第一條目中的隨后序列號與下一個條目中的隨后序列號的差異;和 確定所述差異是否為O或I。
16.一種計算機可讀介質(zhì),具有保存在其上的計算機可執(zhí)行的非臨時性的指令,所述指令當在高速緩存控制器的處理系統(tǒng)上執(zhí)行時指導處理系統(tǒng): 分割高速緩存存儲區(qū),以提供用于保存元數(shù)據(jù)的第一部分、用于保存被數(shù)據(jù)存儲管理器標識成應(yīng)歸入高速緩存存儲區(qū)的數(shù)據(jù)的數(shù)據(jù)值的第二部分、用于保存元數(shù)據(jù)的變化的第三部分和包含與主機和高速緩存存儲區(qū)有關(guān)的信息的第四部分; 按數(shù)據(jù)存儲管理器的指示,用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示,所述數(shù)據(jù)存儲管理器根據(jù)表示在期望時間內(nèi)對保存在數(shù)據(jù)存儲系統(tǒng)中的特定數(shù)據(jù)項的請求的頻率值,標識待保存在高速緩存存儲區(qū)中的數(shù)據(jù)項; 每當按數(shù)據(jù)存儲管理器的指示用元數(shù)據(jù)填充第一部分的表示和用數(shù)據(jù)值填充第二部分的表示時,在高速緩存存儲區(qū)的第三部分中創(chuàng)建條目,其中第一部分和第二部分的表示被保存在通過主計算機系統(tǒng)、數(shù)據(jù)存儲管理器和高速緩存主機控制器中的一個或多個能夠訪問的易失性存儲器中; 比較在高速緩存存儲區(qū)的第三部分中的當前索引和初始索引,以判定何時達到第三部分的數(shù)據(jù)存儲容量,當已達到第三部分的數(shù)據(jù)存儲容量時: 將在第一部分的表示中的信息寫入高速緩存存儲區(qū)的對應(yīng)第一存儲區(qū)中;和 用高速緩存存儲區(qū)的第三 部分中的下一個可用存儲位置替換初始索引。
17.按照權(quán)利要求16所述的計算機可讀介質(zhì),其中處理器還被指導將第一部分的表示、第二部分的表示和第三部分的表示初始化成期望的二進制值。
18.按照權(quán)利要求16所述的計算機可讀介質(zhì),其中第四部分包含主機的狀態(tài)的指示、定義第一部分的位置和大小的第一標識符和第一范圍、標識第二存儲部分中的高速緩存存儲單元的數(shù)目和高速緩存存儲單元內(nèi)的每個高速緩存行的大小的第二標識符和第三標識符、以及定義第三部分的相應(yīng)位置和大小的第四標識符和第四范圍。
19.按照權(quán)利要求16所述的計算機可讀介質(zhì),其中第一部分包含第一條目,第一條目包括虛擬目標標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域和高速緩存行位圖,其中第三部分包含序列號、高速緩存行位圖、虛擬目錄標識符、邏輯塊地址、優(yōu)先級索引、保留區(qū)域和高速緩存窗口索引。
20.按照權(quán)利要求16所述的計算機可讀介質(zhì),其中處理器還被指導: 當高速緩存主機控制器重啟時,讀取第四部分的內(nèi)容,以標識下一個可用序列號; 將高速緩存存儲區(qū)的第一部分復制到通過數(shù)據(jù)存儲管理器、主計算機系統(tǒng)和高速緩存控制器可訪問的易失性存儲器中; 在通過數(shù)據(jù)存儲管理器和高速緩存存儲區(qū)可訪問的易失性存儲器的第一部分中的一個或多個條目之上,應(yīng)用有效日志條目,以生成恢復的元數(shù)據(jù); 遍歷恢復的元數(shù)據(jù)以標識適當?shù)母咚倬彺娲翱?,從而用來自?shù)據(jù)存儲系統(tǒng)的對應(yīng)數(shù)據(jù)進行更新; 修改所述適當?shù)母咚倬彺娲翱诘臓顟B(tài); 將高速緩存窗口插入散列表和優(yōu)先級索引中;和一旦遍歷了所 有的元數(shù)據(jù)條目,就向高速緩存主機控制器發(fā)送指示。
【文檔編號】G06F13/16GK104050094SQ201410053087
【公開日】2014年9月17日 申請日期:2014年2月17日 優(yōu)先權(quán)日:2013年3月11日
【發(fā)明者】V·B·施瓦山卡拉, S·帕拉麥思沃倫, M·艾什 申請人:Lsi公司