用于插入緩存塊的方法和系統的制作方法
【專利說明】
[0001] 本申請是申請?zhí)枮?01180049886. 3、申請日為2011年8月31日、名稱為"用于插 入緩存塊的方法和系統"的發(fā)明專利申請的分案申請。
技術領域
[0002] 本發(fā)明涉及用于插入緩存塊的方法和系統。
【背景技術】
[0003] 隨著計算機處理能力的增強,技術用戶和應用的需求也增強。對于許多行業(yè),這會 導致資源優(yōu)先級排序的快速的移動。例如,在許多關系數據庫應用中,非易失性存儲器容量 的相對重要性和成本急速地降低。對于系統管理員,關于存儲容量的關心已經轉移到對性 能和可靠性的關心,因為存儲技術的事務延遲限制了更快的并且更加強大微處理器的潛在 的好處。
[0004] 在半導體工業(yè)內,存在類似的現象。遵循摩爾定律的處理能力和計算速度的理論 增益大大地受到諸如存儲器訪問速度之類的非CPU瓶頸的限制。隨著研宄人員探索下一范 式轉移存儲技術,諸如改善的緩存方法之類的中間技術幫助彌合該縫隙。通過跨一系列不 同的應用利用多種類型的緩存存儲設備,對于某些應用,可以降低訪問延遲的瓶頸。
[0005] 對緩存設計和緩存算法的研宄導致緩存和緩存管理設備的復雜性的增大。對于從 (PU緩存到磁盤緩存和數據庫緩存的一切,緩存系統在總體系統性能方面和跨每一層的計 算譜變得越來越重要。緩存算法主要處理緩存數據項的插入、刪除,以及修改。被緩存的數 據的相關性和優(yōu)先級排序優(yōu)于緩存的有效的操作。通過將頻繁地使用的數據項保持在緩存 中,并清除在未來很少會使用的那些,傳統的緩存算法旨在提高緩存命中率和性能。
【發(fā)明內容】
[0006]-般而言,一方面,本發(fā)明涉及將緩存塊插入到緩存隊列中的方法。該方法包括檢 測緩存隊列的第一緩存未中,識別響應于所述緩存未中接收訪問的存儲塊,計算包括所述 存儲塊的第一存儲容器的第一估計的緩存未中成本,基于所述第一估計的緩存未中成本的 數學公式來計算所述第一存儲容器的插入概率,從均勻分布中隨機地選擇插入概率數,以 及,響應于所述插入概率超過所述插入概率數,將對應于所述存儲塊的新緩存塊插入到所 述緩存隊列中。
[0007] 一般而言,一方面,本發(fā)明涉及將緩存塊插入到緩存隊列中的方法。該方法包括計 算緩存隊列內的緩存塊的估計的緩存未中成本,從所述緩存隊列清除所述緩存塊,以及,將 對應于所述緩存塊的存儲塊的條目插入到對應于所述緩存隊列的遮蔽列表中。該方法還包 括檢測引用存儲塊的緩存隊列的緩存未中,響應于所述緩存未中,訪問所述遮蔽列表內的 條目,基于從所述緩存隊列清除的緩存塊的多個估計的舊緩存未中成本的數學公式計算估 計的緩存未中成本閾值,以及,響應于所述估計的緩存未中成本超過所述估計的緩存未中 成本閾值,將對應于所述存儲塊的新緩存塊插入到所述緩存隊列中。
[0008]-般而言,一方面,本發(fā)明涉及存儲用于將緩存塊插入到緩存隊列中的指令的計 算機可讀存儲介質。指令包括檢測緩存隊列的第一緩存未中,識別響應于所述緩存未中接 收訪問的存儲塊,計算包括所述存儲塊的第一存儲容器的第一估計的緩存未中成本,基于 所述第一估計的緩存未中成本的數學公式計算第一存儲容器的插入概率,以及,從均勻分 布中隨機地選擇插入概率數的功能。進一步地,指令還包括響應于所述插入概率超過所述 概率數,將對應于所述存儲塊的新緩存塊插入到緩存隊列中的功能。
[0009]-般而言,一方面,本發(fā)明涉及用于插入緩存塊的系統。該系統包括在緩存隊列的 末尾處包括試用段的緩存隊列,與所述試用段相鄰的保護段。該系統還包括在處理器上執(zhí) 行并被配置成檢測緩存隊列的緩存未中、識別響應于所述緩存未中接收訪問的存儲塊,計 算包括所述存儲塊的存儲容器的估計的緩存未中成本,基于所述估計的緩存未中成本的數 學公式計算所述存儲容器的插入概率,從均勻分布中隨機地選擇概率數,以及,響應于所述 插入概率超過所述概率數,將對應于所述存儲塊的新緩存塊插入到緩存隊列中的試用段的 開始處的緩存管理器。
[0010]通過下面的描述和所附權利要求書,本發(fā)明的其他方面將變得顯而易見。
【附圖說明】
[0011]圖1A和1B描繪了根據本發(fā)明的一個或多個實施例的系統的示意框圖。
[0012] 圖2、3、4A、4B、6、7、9,以及10描繪了根據本發(fā)明的一個或多個實施例的流程圖。
[0013]圖5A、5B,以及5C描繪了根據本發(fā)明的一個或多個實施例的緩存隊列的示例。
[0014]圖8A和8B描繪了根據本發(fā)明的一個或多個實施例的系統的示意框圖。
[0015]圖11描繪了根據本發(fā)明的一個或多個實施例的計算機系統。
【具體實施方式】
[0016]現在將參考附圖詳細描述本發(fā)明的具體實施例。為確保一致性,各附圖中的相同 元件通過相同附圖標記來表示。
[0017]在下面的對本發(fā)明的各實施例的詳細描述中,闡明了眾多具體細節(jié)以提供對本發(fā) 明的各實施例的更加全面的理解。然而,對本領域的技術人員顯而易見的是,本發(fā)明也可以 在沒有這些具體細節(jié)的情況下實施。在其他情況下,沒有對已知的特征進行詳細描述,以避 免不必要地使描述復雜化。
[0018]一般而言,本發(fā)明的各實施例提供了用于管理緩存的方法和系統。具體而言,本發(fā) 明的各實施例向存儲容器分配估計的緩存未中成本。估計的緩存未中成本是對存儲容器內 的存儲塊的緩存未中的成本的估計。估計的緩存未中成本可以被用來概率地將對應于存儲 塊的新緩存塊插入到緩存隊列中。
[0019]出于說明的目的,緩存操作可以是指任何對緩存的訪問和/或修改。緩存操作的 示例可以包括但不僅限于:讀取操作、寫入操作、回寫操作、任何類型的緩存命中、任何類型 的緩存未中,和/或任意數量的其他緩存操作。在本發(fā)明的一個或多個實施例中,緩存操作 可以是指導致緩存隊列中的一個或多個緩存塊被回收利用的任何緩存請求?;厥绽每梢?是指緩存隊列內的一個或多個緩存塊的任何反向移動。對存儲容器的緩存操作和/或訪問 可以是指對存儲容器內的存儲塊的訪問。
[0020] 出于說明的目的,緩存未中可以是指請求對緩存(和/或相關聯的緩存隊列,如果 適用的話)中不存在的存儲塊的讀取或寫入的緩存操作。因此,在本發(fā)明的一個或多個實 施例中,存儲塊被直接從相應的存儲設備讀取,隨后被插入到緩存中。在本發(fā)明的一個或多 個實施例中,緩存未中可以是指寫入未中、讀取未中,和/或需要對當前不存儲在緩存內的 存儲塊的訪問的寫入和讀取請求的某種組合。
[0021] 出于說明的目的,緩存命中可以是指訪問當前存儲在緩存(以及相關聯的緩存隊 列,如果適用的話)中的存儲塊的緩存操作。根據本發(fā)明的各實施例,緩存命中可以包括對 相應于該緩存的緩存隊列的修改。"讀取"緩存命中可以是指讀取緩存內的存儲單元的內容 的請求。"寫入"緩存命中可以是指將值從緩存中的存儲單元寫入到存儲設備中的相應的存 儲塊的請求。在本發(fā)明的一個或多個實施例中,寫入操作可以通過將所述值寫入到存儲單 元而不修改存儲塊(例如,在回寫緩存中)來執(zhí)行。然后,在某個預定時間或在事件觸發(fā)之 后,該值可以被回寫到存儲塊。
[0022] 出于說明的目的,舊緩存塊是自從被插入到緩存隊列中以來接收到至少一個緩存 命中的緩存塊。新緩存塊是指自從被插入到緩存隊列中以來沒有接收到緩存命中的緩存 塊。
[0023] 圖1A示出了根據本發(fā)明的一個實施例的系統(199)。如圖1A所示,系統(199)具 有多個組件,包括緩存(100)、存儲設備(110)、一組存儲容器(例如,存儲容器1(120)、存 儲容器Z (130))、一組存儲塊(例如,存儲塊A (122)、存儲塊B (124)、存儲塊C (126)、存儲塊 D(128)、存儲塊E(132)、存儲塊F(134)、存儲塊G(136)、存儲塊H(138))、緩存管理器(140)、 緩存隊列(142),以及管理模塊(144)。系統(199)的組件可以位于同一個設備上(例如,月艮 務器、大型機、臺式個人計算機(PC)、膝上型計算機、個人數字助理(PDA)、電話、移動電話、 自助服務終端、電纜盒,以及任何其他設備)或可以位于通過網絡(例如,因特網)利用有 線和/或無線段連接的分離的設備上。本領域技術人員將認識到,可以有多于一個的每一 個單獨的組件在設備上運行,以及在本發(fā)明的給定實施例內可以有這些組件的任意組合。
[0024] 在本發(fā)明的一個或多個實施例