新四季網

基於文件級啟發式規則來執行緩存的方法和系統的製作方法

2023-04-30 01:39:31

專利名稱:基於文件級啟發式規則來執行緩存的方法和系統的製作方法
技術領域:
本發明涉及高速緩存的領域,並且更具體地說涉及基於文件級啟發式規則來執行 緩存,但並不排除涉及其它內容。
背景技術:
硬碟驅動器的性能已經顯著地落後於中央處理單元的性能。同樣地,到驅動器的 輸入/輸出(I/O)數據傳輸仍然是計算機系統的最大的瓶頸之一。即使更快的驅動器(例 如,固態驅動器)的出現減輕了該瓶頸,但是更快的驅動器的相對較高的成本還是阻礙了 大規模採用更快的驅動器作為主存儲設備。為了減輕瓶頸的問題,非易失性存儲器在系統中被用作硬碟驅動器的高速緩存。 例如,硬碟驅動器的一些磁碟扇區或邏輯塊地址(LBA)可以被緩存到非易失性存儲器中, 以使得中央處理器單元能夠以比硬碟驅動器更快的訪問速率來訪問非易失性存儲器中緩 存的數據。用於加速I/O數據傳輸的緩存方案主要基於LBA級訪問模式或來自作業系統或用 戶的、用於鎖定(Pin)或解鎖非易失性存儲器中的LBA的具體指令。


根據以下對所述主題的詳細描述,本發明的實施例的特徵和有點將變得顯而易 見,其中圖1說明了根據本發明的一個實施例的、用於實現本文公開的方法的系統;圖2說明了根據本發明的一個實施例的、用於實現本文公開的方法的系統結構;圖3說明了根據本發明的一個實施例的作業系統中的模塊的框圖;圖4說明了根據本發明的一個實施例的作業系統(OS)中的模塊的框圖;圖5說明了根據本發明的一個實施例的將LBA映射到文件級信息的表;以及圖6說明了根據本發明的一個實施例的用於執行高速緩存策略的步驟的流程圖。
具體實施例方式在說明書中提及的本發明的「一個實施例」或「實施例」意味著結合實施例描述的 特定特徵、結構或特性包括在本發明的至少一個實施例中。因此,貫穿說明書各處出現的短 語「在一個實施例中」並不必然都是指同一實施例。本發明的實施例提供了 一種用於至少基於一個或多個文件級啟發式規則 (file-level heuristics)來執行高速緩存的方法和系統。在本發明的一個實施例中,高速 緩存策略引擎將來自持久性存儲介質的數據緩存到高速緩存設備中。高速緩存策略引擎接 收存儲介質的數據的I/O訪問的文件級信息,並且至少基於所接收的文件級信息來將存儲 介質的數據緩存到高速緩存設備中或將其逐出高速緩存設備。在本發明的一個實施例中, 通過使用關於與存儲介質的數據相關聯的文件和文件操作的信息,高速緩存策略引擎能夠做出關於將從存儲介質選擇的數據緩存到高速緩存設備中還是將其逐出高速緩存設備的 更好的決定。可以達到更高的高速緩存命中率,並且提高了使用高速緩存策略引擎的系統 的性能。存儲介質可以包括但並不限於固態驅動器、硬碟驅動器、磁帶驅動器、光碟(⑶)、 軟盤、通用串行總線閃速存儲器驅動器或任何其它形式的非易失性計算機數據存儲介質。 高速緩存設備包括,但並不限於非易失性介質、固態驅動器、NAND快閃記憶體、相變存儲器或任何 其它形式的非易失性計算機數據存儲介質。圖1說明了根據本發明的一個實施例的用於實現本文公開的方法的系統100。系 統100包括但並不限於臺式計算機、膝上型計算機、筆記本電腦、上網本計算機、個人數字 助(PDA)、伺服器、工作站、蜂窩電話、移動計算設備、網際網路裝置或任何其它類型的計算設 備。在另一個實施例中,用於實現本文公開的方法的系統100可以是片上系統(S0C)。系統100包括存儲器/圖形控制器120和I/O控制器150。存儲器/圖形控制 器120通常提供存儲器和I/O管理功能以及可以由處理器110訪問或使用的多個通用和/ 或專用寄存器、計時器等。可以使用一個或多個處理器或者使用多核處理器來實現處理器 110。I/O控制器150具有根據本發明的實施例的高速緩存策略引擎152。高速緩存策略引 擎(CPE) 152便於在I/O控制器150、存儲介質160和高速緩存設備170之間的I/O數據的 訪問°存儲器/圖形控制器120執行允許處理器110訪問主存儲器140並與其進行通信 的功能,所述主存儲器140包括易失性存儲器142和/或非易失性存儲器144。在本發明的 另一個實施例中,高速緩存策略引擎152可以被集成在存儲器/圖形控制器120而不是1/ 0控制器152中。易失性存儲器142包括但並不限於同步動態隨機存取存儲器(SDRAM)、動 態隨機存取存儲器(DRAM)、RAMBUS動態隨機存取存儲器(RDRAM)和/或其它類型的隨機存 取存儲器設備。非易失性存儲器144包括但是並不限於NAND快閃記憶體存儲器、R0M、EEPR0M和/ 或任何其它期望類型的存儲器設備。主存儲器140存儲信息和由處理器110執行的指令。 主存儲器140還可以在處理器110執行指令時存儲臨時變量或其它中間信息。在本發明的 另一個實施例中,存儲器/圖形控制器120是處理器110的一部分。存儲器/圖形控制器120連接到顯示設備130,其包括但是並不限於液晶顯示器 (LCD)、陰極射線管(CRT)顯示器或任何其它形式的可視顯示設備。I/O控制器150耦合到 存儲介質160、高速緩存設備170、網絡接口 180和鍵盤/滑鼠190,但並不限於此。特別地, I/O控制器150執行允許處理器110與存儲介質160、高速緩存設備170、網絡接口 180和鍵 盤/滑鼠190進行通信的功能。使用任何類型的公知的網絡接口標準來實現網絡接口 180,所述標準包括但並不 限於乙太網接口、通用串行總線(USB)、快速外圍部件互連(PCI)接口、無線接口和/或任何 其它合適類型的接口。無線接口根據電氣和電子工程師協會(IEEE)無線標準族802. 11、家 庭插電AV(HPAV)、超寬帶(UWB)、藍牙、WiMax或任何形式的無線通信協議來操作,但並不限 於此。圖2說明了根據本發明的一個實施例的用於實現本文公開的方法的系統結構 200。系統結構200示出了本發明的一個實施例,其中,一個或多個高速緩存設備和存儲介 質可以連接到系統100。在系統結構200中,存儲介質220經由通信鏈路連接到系統100。通信鏈路包括但並不限於高級技術附件(ATA)接口、串行ATA(SATA)接口和串行連接小型 計算機系統接口(SCSI) (SAS)和任何其它有線或無線通信鏈路。類似地,高速緩存設備230 經由通信鏈路連接到系統100,所述通信鏈路包括但並不限於SATA接口、SAS接口、PCI-E 接口和0NFI。在本發明的一個實施例中,在高速緩存設備230和系統100之間的通信鏈路 可以比在存儲介質220和系統100之間的通信鏈路快。系統100還經由網絡/橋210連接到存儲介質240和高速緩存設備250。系統結 構200示出了存在將存儲介質220、240和高速緩存設備230、250連接到系統100的多種方 法。在圖1和2中示出的高速緩存設備和存儲介質的結構並不意味著限制性的,相關領域 中的普通技術人員將意識到,可以在沒有影響本發明的工作的情況下,使用其它結構。高速 緩存設備可以經由通信鏈路從內部連接到系統100或從外部連接到系統100。例如,在本 發明的一個實施例中,高速緩存設備170可以經由通信鏈路從平臺100的內部連接到CPE 152,所述通信鏈路包括但並不限於PCI-E接口、SATA接口和0NFI。在另一個示例中,在本 發明的一個實施例中,高速緩存設備170可以經由USB通信鏈路從平臺100的外部連接。圖3說明了根據本發明的一個實施例的作業系統(OS)中的模塊的框圖300。OS 具有應用程式層310和文件系統320。應用程式層310能夠訪問由文件系統320組織的文 件。文件系統320具有文件系統過濾驅動器(FFD) 322,用於監視存儲介質160的數據的1/ 0訪問。FFD 322監視文件級信息,其包括但並不限於訪問的數據的LBA、訪問的文件的文件 類型、訪問的文件的文件名稱、訪問的文件的文件大小、在訪問的文件上執行的文件操作、 來自文件創建操作的屬性的用戶或應用程式意圖以及可用作高速緩存啟發式規則的任何 其它文件級信息。OS還具有存儲驅動器堆棧330和塊驅動器340。塊驅動器具有高速緩存策略引擎 344,其便於存儲介質160和高速緩存設備170的訪問。CPE 344從FFD 322接收存儲介質 160的數據的I/O訪問的文件級信息,並且至少基於一個或多個文件級啟發式規則來將存 儲介質160的數據緩存在高速緩存設備170中,或將其逐出高速緩存設備170。利用文件級 信息的知識,CPE 344可以針對是將存儲介質160的數據緩存到高速緩存設備170還是將 其逐出高速緩存設備170做出更好的決定。在本發明的一個實施例中,CPE 344將高速緩存設備170劃分成多個高速緩存行。 每個高速緩存行存儲存儲介質160的一個或多個LBA。在本發明的另一個實施例中,沒有以 LBA來安排存儲介質160的數據,並且可以使用替代的尋址方案。CPE 344的每個高速緩存 行存儲替代尋址方案的一個或多個單元。在本發明的另一個實施例中,CPE 344使用插入或 逐出決定來確定是將文件移動到高速緩存設備170還是將文件移出高速緩存設備170。相 關領域中的普通技術人員將容易地理解,可以由CPE 344使用除了 LBA方案之外的替代尋 址方案,以將來自高速緩存設備170的數據緩存或逐出,並且可以在不影響本發明的工作 的情況下使用替代的尋址方案。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當與數據相關聯的文件被刪除時,從高速緩存設備170中逐出存儲介質160的數據。例如, 在本發明的一個實施例中,如果在存儲介質160中存儲的文件被緩存在高速緩存設備170 的一個或多個高速緩存行中,當FFD 332檢測到文件被OS刪除時,FFD 332向CPE 344通 知 事件。CPE 344基於高速緩存策略來就是否將與該文件相關聯的數據逐出高速緩存設備170做出決定。文件刪除發生在以下情況中,其包括但並不限於將文件移動到微軟 Windows OS的回收站、永久刪除文件或使得文件被臨時或永久刪除的任何其它事件。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當與數據相關聯的文件被從一個LBA位置移動到另一個LBA位置時,在高速緩存設備170 中更新存儲介質160的緩存數據的LBA信息。例如,在本發明的一個實施例中,高速緩存設 備170的每一個高速緩存行包含其緩存的數據的LBA信息。當在存儲介質160的整理碎片 操作期間,由OS將文件從存儲介質160中的一個LBA位置移動到另一個LBA位置時,FFD 332通知CPE 344更新高速緩存設備170中的、存儲與文件相關聯的數據的相應的高速緩存 行中的LBA信息。在另一個示例中,當對文件執行微小的更新時,也可以由OS將文件從存 儲介質160中的一個LBA位置移動到另一個LBA位置。FFD 332也通知CPE 344更新高速 緩存設備170中的、存儲與文件相關聯的數據的相應的高速緩存行中的LBA信息。通過更 新LBA信息,避免了需要將存儲介質160的無效或舊的LBA保持在高速緩存設備170中或 逐出高速緩存設備170。當將文件從存儲介質160中的一個LBA位置移動到另一個LBA位 置時,也不需要將新的LBA再次插入到高速緩存設備170中。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當在移動文件之後,與數據相關聯的文件的元數據被更新時,更新存儲介質160的緩存數 據的數據鎖定信息(data pinning information)。例如,在本發明的一個實施例中,可以由 系統的用戶或OS來直接地或間接地指定一個或多個文件放置在高速緩存設備170中。所 述一個或多個文件被稱為鎖定的文件(Pinned files),並且當由OS移動鎖定的文件時僅 導致更新鎖定的文件的元數據時,CPE 344更新數據鎖定信息以確保與鎖定的文件對應的 數據仍然在高速緩存設備170中鎖定。此外,CPE 344還可以更新高速緩存設備170中的、 存儲與鎖定的文件相關聯的數據的各個高速緩存行中的LBA信息。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 在高速緩存設備170中標記與一文件相關聯的緩存數據,以當訪問信息指示了文件被複製 時,允許其它文件引用或指向所述緩存數據。例如,在本發明的一個實施例中,當一文件被 緩存在高速緩存設備170中時,CPE 344標記與該文件相關聯的緩存數據,以使得多個文件 或LBA可以指向或引用所述緩存數據。通過這樣做,可以加速關於文件的所有副本的數據 1/0,而無需在高速緩存設備170中多次存儲相同數據。在本發明的一個實施例中,可以通 過設置與緩存數據相關聯的寄存器位或通過指示緩存數據可以由多個文件或LBA來引用 的任何其它方法,來標記緩存數據。在本發明的一個實施例中,FFD 322向CPE 344提供0S的虛擬存儲器頁文件的扇 區映射,以允許頁文件的高速緩存插入。在本發明的一個實施例中,CPE 344的高速緩存策 略或文件級啟發式規則包括緩存映射0S的虛擬存儲器頁文件的一個或多個LBA。FFD 322 還可以向CPE 344發送數據1/0訪問的進程識別信息。在本發明的一個實施例中,CPE 344 的高速緩存策略或文件級啟發式規則包括當進程識別信息指示啟動數據1/0訪問的應用 程序是挖掘應用程式時,不對與文件相關聯的數據進行緩存。挖掘應用程式包括但並不限 於病毒掃描應用程式、數據備份應用程式、數據搜索應用程式或訪問數據而不重用該數據 的任何應用程式。例如,在本發明的一個實施例中,當由0S來訪問文件時,FFD 320可以檢 查文件是否在被挖掘應用程式訪問。如果是的話,那麼不在高速緩存設備170中緩存與文件相關聯的數據。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當與數據相關聯的文件被具有相同文件名的另一個文件替換時,逐出存儲介質160的數 據。例如,在一個實施例中,當文件被複製到包含具有同一名稱的文件的目的地目錄時,目 的地目錄中的文件被替換並且從高速緩存設備170逐出與隱式刪除的文件相關聯的數據。 與被複製的文件相關聯的數據不被插入到高速緩存設備170中。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當與數據相關聯的文件被從緩存存儲設備移動到非緩存存儲設備時,將存儲介質160中的 數據逐出高速緩存設備170。例如,在一個實施例中,系統100具有兩個存儲介質,並且高速 緩存設備170僅緩存所述存儲介質中的一個。由高速緩存設備170緩存的存儲介質被稱為 緩存存儲設備,不由高速緩存設備170緩存的存儲介質被稱為非緩存存儲設備。當緩存存 儲設備中存儲的文件被緩存在高速緩存設備170中時,如果文件被從緩存存儲設備移動到 非緩存存儲設備,那麼CPE 344逐出與該文件相關聯的數據。在另一個示例中,在本發明的 一個實施例中,除了用作高速緩存設備以外,高速緩存設備還可以被用作存儲介質。當高速 緩存設備170中的文件被從高速緩存設備170移動到存儲介質160時,CPE 344逐出與該 文件相關聯的數據。在本發明的一個實施例中,CPE 344的高速緩存策略或文件級啟發式規則包括 當文件被從緩存存儲設備複製到非緩存存儲設備時,降低與文件相關聯的數據的優先級。 例如,在一個實施例中,當在緩存存儲設備中存儲的文件被緩存到高速緩存設備170中時, 如果文件被從緩存存儲設備複製到非緩存存儲設備,那麼CPE 344在高速緩存設備170中 降低與文件相關聯的數據的優先級。在另一個示例中,在一個實施例中,如果緩存存儲設備 中存儲的文件不在高速緩存設備170中,當文件被從緩存存儲設備移動到非緩存存儲設備 時,CPE 344不在高速緩存設備170中插入或緩存數據。圖4說明了根據本發明的一個實施例的OS中的模塊的框圖400。框圖400示出了 CPE 422可以是文件系統420的一部分。例如,在本發明的一個實施例中,CPE是FFD的一 部分,並且CPE 422能夠獲得存儲介質160的數據的I/O訪問的文件級信息,並且能夠至少 基於一個或多個文件級啟發式規則來將存儲介質160的數據緩存在高速緩存設備170中或 將其逐出高速緩存設備170。在本發明的一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則包括 當為了讀取訪問而打開文件時,緩存與文件相關聯的數據。例如,在本發明的一個實施例 中,當僅具有讀取訪問許可的文件被打開時,如果在高速緩存設備170中存在可用的存儲 空間,那麼從存儲介質160中預取與文件相關聯的數據,並且將其緩存在高速緩存設備170 中。在本發明的另一個實施例中,可以標記預取的數據以指示預取的數據近期沒有被訪問。在本發明的一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則包括 當為了重寫而打開文件時,逐出與該文件相關聯的數據。在本發明的另一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則包括當為了讀取訪問而打開文件並且文件的快 速I/O標誌被設置時,逐出與所述文件相關聯的數據。例如,在本發明的一個實施例中,OS 可以為緩存在系統高速緩存中的數據設置快速I/O標誌,並且在用戶緩衝器和系統高速緩 存之間直接傳輸所述數據,從而繞過文件系統420和存儲驅動器堆棧430。當為了由在系統
9上執行的OS來進行讀取訪問而打開文件並且該文件的快速I/O標誌被設置時,CPE 422逐 出與該文件相關聯的數據。當文件的快速I/O標誌被設置時,與該文件相關聯的數據被OS 緩存到系統高速緩存中,並且提高了文件的訪問速率。因此,在本發明的一個實施例中,由 於文件的訪問速率已經提高,所以CPE 422不對與該文件相關聯的數據進行緩存。OS可以結合提前讀取操作來執行快速I/O讀取操作。例如,當OS執行快速I/O讀 取操作時,OS檢查是否需要執行提前讀取操作。如果需要提前讀取操作,那麼OS在快速1/ 0讀取操作期間發出提前讀取命令。在本發明的一個實施例中,CPE 422的高速緩存策略或 文件級啟發式規則包括當OS在快速I/O讀取操作期間發出提前讀取命令時,緩存與提前 讀取命令相關聯的數據。通過緩存與提前讀取命令相關聯的數據,能夠進一步改進快速1/ 0操作。在本發明的一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則包括 當文件被關閉時,逐出與文件相關聯的數據。在本發明的另一個實施例中,與文件相關聯 的數據可以被降低優先級而保留在高速緩存設備170中,因為在沒有中間文件操作以打開 文件的情況下,不太可能再次使用所述數據。在本發明的一個實施例中,CPE 422的高速 緩存策略或文件級啟發式規則包括如果文件是媒體流文件,那麼不緩存與該文件相關聯 的數據。例如,在本發明的一個實施例中,當0S對流媒體文件執行順序讀取操作時,CPE 422不在高速緩存設備170中緩存流媒體文件。流媒體文件是以如下所述的格式工作的文 件,所述格式包括但並不限於音頻視頻交錯(AVI)格式、運動圖像專家組(MPEG) 1音頻層 3 (MP3)格式、MP4格式、QuickTime格式和任何其它流媒體格式。在本發明的一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則包括 當文件的大小比閾值大時,逐出與文件相關聯的數據。例如,在本發明的一個實施例中,當 CPE 422接收到關於文件的大小的信息時,它基於閾值來決定將與文件相關聯的數據緩存 在高速緩存設備170中。在一個實施例中,CPE 422設置閾值為小的或中等的值,以使得大 文件可以留在存儲介質160中,並且允許更多的小文件留在高速緩存設備170中。可以在 後臺或對文件讀取訪問操作來進行該操作。0S可以根據優先級方案來標記與文件相關聯的數據。在本發明的一個實施例中, CPE 422的高速緩存策略或文件級啟發式規則包括當文件被標記為低優先級時,不緩存 與該文件相關聯的數據。在其它實施例中,如果標記為低優先級的文件已經被緩存在高速 緩存設備170中,那麼CPE 422降低與該文件相關聯的數據的優先級。在本發明的一個實 施例中,CPE 422的高速緩存策略或文件級啟發式規則包括當將由標記為高優先級的應 用程序來訪問文件時,緩存與該文件相關聯的數據。例如,在本發明的一個實施例中,當應 用程序被標記為高優先級時,CPE 422檢查要執行的任何應用程式的進程標識是否匹配所 述應用程式。如果匹配,那麼由該應用程式訪問的數據被緩存在高速緩存設備170中。可以由CPE 422來使用關於所訪問的文件的文件類型或文件擴展名的信息,以定 義包括列表和排除列表。包括列表包括將包括在高速緩存設備170中的一個或多個文件 類型或擴展名的文件,排除列表包括在高速緩存設備170中排除的一個或多個文件類型 或擴展名的文件。在本發明的一個實施例中,CPE 422的高速緩存策略或文件級啟發式規則 包括當文件的文件類型或文件擴展名屬於包括列表時,緩存與該文件相關聯的數據,當文 件的文件類型或文件擴展名屬於排除列表時,避免緩存或逐出與該文件相關聯的數據。例如,在一個實施例中,包括列表可以包括具有文件擴展名「DOC」的所有文件。此外,在本發 明的另一個實施例中,可以結合包括或排除列表增加額外的規則。例如,規則可以指定可 執行的文件類型的文件將被包括在包括列表中並且文件大小不應大於256千字節。可以由FFD 322、CPE 344和422或由系統中的另一個部件來執行本文描述的高速 緩存策略或文件級啟發式規則。儘管在圖1中CPE被顯示為I/O控制器的一部分、在圖3中 被顯示為塊驅動器340的一部分,並且在圖4中顯示為文件系統420的一部分,但這不意味 著是限制性的。高速緩存策略引擎可以是系統的另一個部件的一部分,或者是應用程式的 一部分,或者是另一個過濾驅動器,或者可以被包括作為系統上的硬體/固件的一部分。本 文描述的高速緩存策略或文件級啟發式規則並不意味著是限制性的,相關領域中的普通技 術人員將容易理解,還可以在不影響本發明的工作的情況下,使用其它文件級啟發式規則。 在本發明的其它實施例中,CPE可以結合文件級啟發式規則來使用其它啟發式規則,以便更 好地決定將緩存在高速緩存設備中或從高速緩存設備逐出的存儲介質的數據選擇。其它啟 髮式規則包括但並不限於最近最少觸碰的數據、最先插入的數據和最後插入的數據。圖5說明了根據本發明的一個實施例的將LBA映射到文件級信息的表500。在本 發明的一個實施例中,FFD 322接收每個I/O數據訪問的文件級信息。表500示出了 LBA 510與文件名稱520、文件大小530、文件類型540和文件操作550之間的映射。在本發明 的一個實施例中,CPE 344使用表500來確定要執行的適當的高速緩存策略動作。FFD 322 維護表500,並且CPE 344從表500中查詢或提取文件級信息,以基於文件級信息中的一項 或多項來進行其緩存操作。在本發明的另一個實施例中,CPE 422在沒有FFD 322幫助的情況下維護表500, 即,CPE是FFD 322的一部分。例如,在本發明的一個實施例中,根據一個文件級啟發式規 則,CPE 422的高速緩存策略確定文件music. mp3是流媒體文件,因此不在高速緩存設備 170中緩存文件music. mp3。可以在平臺的主存儲器140、高速緩存設備170或CPE能夠訪 問的任何其它位置中維護表500。表500中所示的文件級信息並不意味著是限制性的,表 500可以維護或多或少的文件級信息,以允許CPE做出更好的決定。圖6說明了根據本發明的一個實施例的用於執行高速緩存策略的步驟的流程圖 600。在步驟610中,存儲介質160的數據的I/O訪問的文件級信息被接收。在步驟620,基 於接收的文件級信息來確定適當的高速緩存策略動作。在步驟630,執行適當的動作。本文 描述的高速緩存策略啟發式規則並不意味著是限制性的,相關領域中的普通技術人員可以 在不影響本發明的工作的情況下,至少基於文件級信息來應用其它高速緩存策略啟發式規 則。儘管描述了所公開的主題的實施例的例子,但是相關領域中的普通技術人員將容 易地理解,可以替代地使用實現所公開的主題的多種其它方法。在前述描述中,已經描述了 所公開的主題的各個方面。為了解釋的目的,闡明了具體的數量、系統和配置,以便於透徹 理解所述主題。但是,對於受益於該公開的相關領域中的技術人員來說,可以在沒有這些具 體的細節的情況下實現本主題是顯而易見的。在其它實例中,公知的特徵、部件或模塊被省 略、簡化、組合或分離,以便不模糊所公開的主題。本文使用的術語「可操作的」意味著當設備或系統處於斷電的狀態時,設備、系 統、協議等能夠操作或適合操作以用於期望的功能。可以用硬體、固件、軟體或其組合來實現所公開的主題的各個實施例,並且可以參考或結合程序代碼來描述其,所述程序代碼例 如指令、函數、過程、數據結構、邏輯、應用程式、用於設計的仿真、模擬和製造的設計表示或 格式,當由機器訪問它們時,導致機器執行任務、定義抽象數據類型或低級硬體環境、或產 生結果。可以使用在一個或多個計算設備(例如,通用計算機或計算設備)上存儲並執行 的代碼和數據來實現圖中所示的技術。這種計算設備使用機器可讀介質(例如機器可讀存 儲介質,例如磁碟,光碟,隨機存取存儲器,只讀存儲器,閃速存儲器設備,相變存儲器)和 機器可讀通信介質(例如,電子的、光的、聲的或其它形式的傳播信號-例如載波、紅外信 號、數位訊號等)來對代碼和數據進行存儲和傳送(在內部以及通過網絡與其它計算設備 傳送)。雖然參考示例性實施例描述了所公開的主題,但是該描述並非旨在以限制性的含 義來解釋。對於公開主題所屬領域中的技術人員來說顯而易見的示例性的實施例的各種變 型以及本主題的其它實施例被認為在所公開的主題的範圍內。
1權利要求
一種系統,包括存儲介質,用於存儲數據;NAND快閃記憶體,用於對所述存儲介質的數據進行緩存;以及高速緩存策略引擎,用於至少基於與所述數據相關聯的一個或多個文件級啟發式規則,將所述存儲介質的數據緩存在所述NAND快閃記憶體中或逐出所述存儲介質的數據。
2.根據權利要求1所述的系統,其中,所述NAND快閃記憶體具有比所述存儲介質更快的訪問 速度。
3.根據權利要求1所述的系統,其中,所述高速緩存策略引擎是塊驅動器的一部分,並 且其中,所述塊驅動器便於由所述系統來訪問所述NAND快閃記憶體和所述存儲介質。
4.根據權利要求1所述的系統,其中,所述一個或多個文件級啟發式規則包括當與所 述數據相關聯的文件被在所述系統上執行的作業系統(OS)刪除時,逐出所述數據。
5.根據權利要求1所述的系統,其中,所述高速緩存策略引擎還用於當由在所述系統 上執行的作業系統(OS)將與所述存儲介質的緩存數據相關聯的文件從一個LBA位置移動 到另一個LBA位置時,更新所述存儲介質的緩存數據的邏輯塊地址(LBA)信息,而不將所述 數據再次寫入所述存儲介質。
6.根據權利要求1所述的系統,其中,所述一個或多個文件級啟發式規則包括當與所 述數據相關聯的文件被在所述系統上執行的作業系統(OS)打開時,緩存所述數據的至少 一部分。
7.根據權利要求1所述的系統,其中,所述一個或多個文件級啟發式規則包括當與所 述數據相關聯的文件是流媒體文件時,不緩存所述數據。
8.根據權利要求1所述的系統,其中,所述一個或多個文件級啟發式規則包括當與所 述數據相關聯的文件的大小比閾值大時,不緩存所述數據、逐出所述數據、降低所述數據的 優先級或者增加所述數據的壽命。
9.一種方法,包括接收在存儲介質中存儲的數據的輸入/輸出(I/O)訪問的文件級信息;以及至少基於所述接收的文件級信息來將所述存儲介質中存儲的數據緩存到高速緩存設 備中或從所述高速緩存設備中逐出。
10.根據權利要求9所述的方法,其中,將所述存儲介質中存儲的數據緩存到所述高 速緩存設備或從所述高速緩存設備逐出包括將所述存儲介質的一個或多個邏輯塊地址 (LBA)中存儲的數據緩存到所述高速緩存設備中或從所述高速緩存設備中逐出。
11.根據權利要求9所述的方法,其中,所述文件級信息包括文件刪除、文件複製、文 件打開、文件讀取、文件大小、文件類型和文件移動信息中的至少一個。
12.根據權利要求9所述的方法,其中,將所述存儲介質中存儲的數據緩存到所述高速 緩存設備中或從所述高速緩存設備中逐出包括當所述數據的文件類型或文件擴展名屬於 包括列表時,緩存所述數據,並且當所述數據的文件類型屬於排除列表時,不緩存所述數據 或逐出所述數據。
13.根據權利要求9所述的方法,其中,所述文件級信息包括作業系統(OS)對所述數據 的訪問優先級,並且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或從 所述高速緩存設備中逐出包括當所述數據的訪問優先級較低時,不緩存所述數據或逐出所述數據,並且當所述數據的訪問優先級較高時,緩存所述數據。
14.根據權利要求9所述的方法,其中,所述文件級信息包括執行所述數據的I/O訪問 的應用程式的信息,並且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中 或從所述高速緩存設備中逐出包括當所述應用程式是挖掘應用程式時,不緩存所述數據。
15.根據權利要求10所述的方法,其中,所述存儲介質的一個或多個LBA被映射到虛擬 存儲器頁文件,並且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或從 所述高速緩存設備中逐出包括將映射到所述虛擬存儲器頁文件的一個或多個LBA緩存到 所述高速緩存設備。
16.一種計算機可讀存儲介質,其上存儲有指令,當所述指令被執行時,使得處理器執 行以下方法接收存儲介質中存儲的數據的輸入/輸出(I/O)訪問的文件級信息;以及至少基於所述接收的文件級信息來將所述存儲介質中存儲的數據緩存到高速緩存設 備中或從所述高速緩存設備中逐出。
17.根據權利要求16所述的介質,其中,將所述存儲介質中存儲的數據緩存到所述高 速緩存設備中或從所述高速緩存設備中逐出的所述處理器將所述存儲介質的一個或多個 邏輯塊地址(LBA)中存儲的數據緩存到所述高速緩存設備中或從所述高速緩存設備中逐 出ο
18.根據權利要求16所述的介質,其中,所述文件級信息包括文件刪除、文件複製、文 件打開、文件讀取、文件大小、文件類型和文件移動信息中的至少一個。
19.根據權利要求17所述的介質,其中,所述處理器還用於當與所述存儲介質的緩存 數據相關聯的文件被在所述處理器上執行的作業系統(OS)移動時,更新所述存儲介質的 緩存數據的LBA信息。
20.根據權利要求17所述的介質,其中,所述處理器還用於當與所述存儲介質的緩存 數據相關聯的文件被在所述處理器上執行的作業系統(OS)從一個LBA移動到另一個LBA 時,更新所述存儲介質的緩存數據的LBA信息。
21.根據權利要求16所述的介質,其中,所述文件級信息包括所述數據的訪問信息,並 且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或從所述高速緩存設備 中逐出的處理器用於預取所述存儲介質中存儲的所述數據;以及當所述訪問信息指示為了讀取操作而打開與所述數據相關聯的文件時,將所述存儲介 質中存儲的數據緩存到所述高速緩存設備中。
22.根據權利要求16所述的介質,其中,所述文件級信息包括所述數據的訪問信息,並 且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或從所述高速緩存設備 中逐出的處理器用於當所述訪問信息指示為了重寫操作而打開與所述數據相關聯的文件 時,逐出所述數據。
23.一種裝置,包括高速緩存策略引擎,用於至少基於與存儲介質中存儲的數據相關聯的一個或多個文件 級啟發式規則來將所述數據緩存到NAND快閃記憶體中或從NAND快閃記憶體中逐出。
24.根據權利要求23所述的裝置,其中,所述高速緩存策略引擎是文件系統過濾驅動器的一部分,並且其中,所述高速緩存策略引擎便於由所述系統來訪問所述NAND快閃記憶體和所 述存儲介質。
25.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述NAND快閃記憶體中或從所 述NAND快閃記憶體中逐出的所述高速緩存策略引擎用於當所述訪問信息指示與所述數據相關 聯的文件被關閉時,逐出所述數據。
26.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述NAND快閃記憶體或從所述 NAND快閃記憶體中逐出的所述高速緩存策略引擎用於當所述訪問信息指示為了讀取操作而打 開與所述數據相關聯的文件並且所述文件的快速I/O標誌被設置時,逐出所述數據。
27.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述NAND快閃記憶體或從所述 NAND快閃記憶體中逐出的所述高速緩存策略引擎用於當所述訪問信息指示在數據的快速I/O讀 取操作期間發出了提前讀取命令時,對與所述提前讀取命令相關聯的數據進行緩存。
28.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,所述高速緩存策略引擎還用於當所述訪問信息指示文件被復 制時,標記所述文件的緩存數據以允許由其它文件來引用所述緩存數據。
29.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或 從所述高速緩存設備中逐出的所述高速緩存策略引擎用於當所述訪問信息指示與所述數 據相關聯的文件被具有相同文件名的另一個文件替換時,逐出所述數據。
30.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述高速緩存設備中或 從所述高速緩存設備中逐出的所述高速緩存策略引擎用於當所述訪問信息指示與所述數 據相關聯的文件被從緩存存儲設備移動到非緩存存儲設備時,逐出所述數據。
31.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,所述高速緩存策略引擎還用於當所述訪問信息指示與所述數 據相關聯的文件被從緩存存儲設備複製到非緩存存儲設備時,降低與所述高速緩存設備中 的所述文件相關聯的數據的優先級。
32.根據權利要求23所述的裝置,其中,所述一個或多個文件級啟發式規則包括所述 數據的訪問信息,並且其中,將所述存儲介質中存儲的數據緩存到所述NAND快閃記憶體或從所述 NAND快閃記憶體中逐出的所述高速緩存策略引擎用於當所述訪問信息指示訪問文件的應用程 序被標記為高優先級時,對與所述文件相關聯的數據進行緩存。
全文摘要
一種用於至少基於一個或多個文件級啟發式規則來執行緩存的方法和系統。由高速緩存策略引擎來執行在高速緩存設備中的存儲介質的緩存。高速緩存策略引擎接收存儲介質的數據的輸入/輸出訪問的文件級信息,並且基於接收的文件級信息來將存儲介質的數據緩存在高速緩存設備中或從高速緩存設備中逐出。在本發明的一個實施例中,通過使用關於與存儲介質的磁碟扇區或邏輯塊地址相關聯的文件和文件操作的信息,高速緩存策略引擎可以更好的決定是將存儲介質的數據緩存在高速緩存設備中還是將其逐出高速緩存設備。可以達到更高的高速緩存命中率,並且提高了使用高速緩存策略引擎的系統的性能。
文檔編號G06F12/02GK101853208SQ201010158578
公開日2010年10月6日 申請日期2010年3月31日 優先權日2009年3月31日
發明者A·D·赫夫曼, D·J·於內曼, F·T·哈迪, G·J·欣頓, J·A·博伊德, O·P·平託, S·E·伯裡奇, S·N·特麗卡, S·R·蒂特裡克, T·J·巴恩斯 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀