国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于高速緩存器順序列表的動(dòng)態(tài)尺寸確定的系統(tǒng)和方法

      文檔序號(hào):6649261閱讀:140來(lái)源:國(guó)知局
      專利名稱:用于高速緩存器順序列表的動(dòng)態(tài)尺寸確定的系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明一般涉及數(shù)據(jù)高速緩存。
      背景技術(shù)
      高速緩存是在向諸如硬盤(pán)驅(qū)動(dòng)存儲(chǔ)器的存儲(chǔ)器寫(xiě)入數(shù)據(jù)或讀取數(shù)據(jù)時(shí)隱藏延遲的一種基礎(chǔ)技術(shù)。這些延遲可以被稱為輸入/輸出(I/O)等待時(shí)間。因?yàn)楦咚倬彺媸请[藏I/O等待時(shí)間的有效技術(shù),因此被廣泛地用于存儲(chǔ)控制器、數(shù)據(jù)庫(kù)、文件系統(tǒng)、以及操作系統(tǒng)中。
      高速緩存器因此可被定義為高速存儲(chǔ)器或存儲(chǔ)設(shè)備,其被用來(lái)減少針對(duì)較低速的存儲(chǔ)器或設(shè)備讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)所需的有效時(shí)間。一個(gè)現(xiàn)代的存儲(chǔ)控制器高速緩存器典型地包含用作讀緩存器的易失存儲(chǔ)器和用作寫(xiě)高速緩存器的非易失存儲(chǔ)器。讀緩存器的效果決定于其“命中”比,即,不需要磁盤(pán)訪問(wèn)(其代表在高速緩存器中尋找數(shù)據(jù)的“命中失誤”)地由高速緩存器進(jìn)行服務(wù)的請(qǐng)求的比例。本發(fā)明關(guān)注于改進(jìn)讀緩存器的性能,例如,增加命中比或等效地最小化命中失誤比。
      典型地,高速緩存器被管理成稱為頁(yè)的統(tǒng)一尺寸的單元。僅在出現(xiàn)高速緩存器的頁(yè)命中失誤的情況下,例如只有當(dāng)該頁(yè)被主機(jī)所需要并且在高速緩存器中不能找到該頁(yè),從而需要訪問(wèn)相對(duì)低速的磁盤(pán)時(shí),所謂的按需調(diào)頁(yè)才要求從低速存儲(chǔ)器(例如,磁盤(pán))拷貝頁(yè)到高速緩存器中。在按需調(diào)頁(yè)中,高速緩存器管理是相對(duì)簡(jiǎn)單的,并且當(dāng)高速緩存器已滿并且因一次“命中失誤”的緣故一個(gè)新的頁(yè)將被存儲(chǔ)到高速緩存器中時(shí),為進(jìn)行替換而尋求從高速緩存器智能地選擇一頁(yè)。一個(gè)眾所周知的策略簡(jiǎn)單地用新頁(yè)替換其下一次訪問(wèn)為將來(lái)最遠(yuǎn)發(fā)生的頁(yè)。另一種策略(最近最少使用的,或LRU)用新頁(yè)替換最近最少使用的頁(yè)。
      如此處所認(rèn)識(shí)到的,除按需調(diào)頁(yè)外,在隱藏I/O等待時(shí)間方面,更進(jìn)一步的改進(jìn)可通過(guò)推測(cè)性地預(yù)取或預(yù)備頁(yè)來(lái)完成。嘗試預(yù)測(cè)何時(shí)頁(yè)將被需要的相對(duì)復(fù)雜的算法已被引進(jìn),但商業(yè)系統(tǒng)很少使用非常復(fù)雜的預(yù)測(cè)模式,因?yàn)閺?fù)雜的預(yù)測(cè)模式要求保留大量的頁(yè)訪問(wèn)歷史。這是麻煩并昂貴的。此外,為行之有效,預(yù)取必須在預(yù)測(cè)的請(qǐng)求之前完成,其要求足夠預(yù)先的注意,而其獲得是不可行的。并且,長(zhǎng)期預(yù)測(cè)的準(zhǔn)確性可開(kāi)始較低,并可隨著大量不同工作負(fù)荷的交替而變得更差。最后,對(duì)于接近其峰值容量操作的磁盤(pán)子系統(tǒng),平均響應(yīng)時(shí)間隨著磁盤(pán)取次數(shù)的增加而急速增加,并且因此,導(dǎo)致磁盤(pán)取次數(shù)增加的低準(zhǔn)確性預(yù)測(cè)的預(yù)取可實(shí)際上使性能惡化。
      因此,本發(fā)明理解到,可采用利用順序性原理的更加簡(jiǎn)單的推測(cè)性預(yù)取解決方案,順序性為請(qǐng)求的數(shù)據(jù)(將被讀取的數(shù)據(jù))的特性,其中經(jīng)常要求具有升順的無(wú)間隙連續(xù)編號(hào)的頁(yè)。順序文件的訪問(wèn)存在于許多環(huán)境中,這些環(huán)境包括視頻點(diǎn)播,數(shù)據(jù)庫(kù)掃描、拷貝、備份、及修復(fù)。與復(fù)雜的預(yù)測(cè)方法相反,如此處所理解的,測(cè)定順序性是簡(jiǎn)單的,其要求很少的歷史信息并能獲得接近100%預(yù)測(cè)準(zhǔn)確性。
      然而,雖然看上去簡(jiǎn)單,然而如此處關(guān)鍵性地認(rèn)識(shí)到的,一個(gè)好的順序預(yù)取算法及相關(guān)的高速緩存替換策略令人吃驚地難以實(shí)現(xiàn)。要理解為什么會(huì)這樣,必須首先了解,在順序預(yù)取中,最初可利用同步預(yù)取(向高速緩存器放入命中失誤頁(yè)之后的順序頁(yè)),在這個(gè)啟動(dòng)階段之后,利用異步預(yù)取(向高速緩存器放入順序在被“命中”,即在高速緩存器中找到的所請(qǐng)求“觸發(fā)”頁(yè)之后的頁(yè))。因此,預(yù)取和高速緩存相互交織在一起,當(dāng)利用預(yù)取時(shí)用于高速緩存管理的一個(gè)策略為上面所提到的LRU,其中,兩個(gè)列表(一個(gè)列出順序頁(yè)而另一個(gè)列出隨機(jī)訪問(wèn)頁(yè))根據(jù)訪問(wèn)的新近程度而得到維護(hù)。在順序預(yù)取的環(huán)境下,當(dāng)軌道被預(yù)取或訪問(wèn)時(shí),它們被放置到順序列表的最近最多使用(MRU)端,而對(duì)于高速緩存替換來(lái)說(shuō),軌道被從列表的LRU端逐出。
      鑒于上面的背景介紹,本發(fā)明關(guān)鍵性地觀察到當(dāng)同步和異步預(yù)取策略與基于LRU的高速緩存一起使用并且訪問(wèn)異步觸發(fā)軌道時(shí),進(jìn)行下一組軌道的異步預(yù)取。在基于LRU的高速緩存器中,這些新近所取的軌道組連同異步觸發(fā)軌道一起被置于列表的MRU端,其中當(dāng)前預(yù)取組內(nèi)未被訪問(wèn)的軌道保留在它們?cè)贚RU列表中的位置處,因此,潛在地接近列表的LRU端。當(dāng)前預(yù)取組內(nèi)的這些未被訪問(wèn)的軌道可以在新近預(yù)取組中的軌道之前被訪問(wèn),使得取決于可用于順序數(shù)據(jù)的高速緩存空間量,可發(fā)生該未被訪問(wèn)的軌道中的某些軌道在被訪問(wèn)前從高速緩存器中被逐出,從而導(dǎo)致了順序的命中失誤的情況。此外,本發(fā)明理解到,這是可重復(fù)發(fā)生的,從而使采用異步預(yù)取的目的失敗。
      因此,當(dāng)基于LRU的高速緩存器與上面的預(yù)取策略一起使用時(shí),所得到的算法可破壞所謂的棧特性,并且因此當(dāng)供給順序預(yù)取數(shù)據(jù)的高速緩存空間量增加時(shí),順序的命中失誤不必定減少。如此處所理解的,該“?!碧匦栽谡_的高速緩存管理中可以是關(guān)鍵成分。如此處所進(jìn)一步理解的,以增加順序命中失誤為代價(jià),如果(i)僅使用同步預(yù)取,或(ii)如果同步預(yù)取和異步預(yù)取兩者都使用,則上面的兩個(gè)問(wèn)題可被隱藏,其中始終設(shè)置異步觸發(fā)為預(yù)取組中最后軌道,但是當(dāng)然,第一種方案與前面所示的異步預(yù)取的所有潛在益處相當(dāng),而第二種方案可導(dǎo)致順序命中失誤,如果被預(yù)取的軌道在其處于高速緩存器中之前被訪問(wèn)的話。鑒于以上問(wèn)題,本發(fā)明的一個(gè)目的是在不發(fā)生附加的順序命中失誤的情況下,避免破壞棧特性。更一般地,當(dāng)利用順序的預(yù)取時(shí),本發(fā)明代表了高速緩存管理中的顯著改進(jìn)。

      發(fā)明內(nèi)容
      根據(jù)此處的發(fā)明步驟對(duì)通用計(jì)算機(jī)編程。該發(fā)明也可以體現(xiàn)為一種產(chǎn)品(-種機(jī)器部件),其由數(shù)字處理裝置使用,并且其有形地體現(xiàn)可由數(shù)字處理裝置執(zhí)行以實(shí)現(xiàn)本發(fā)明邏輯的指令程序。本發(fā)明可在引起數(shù)字處理裝置執(zhí)行此處的發(fā)明方法步驟的關(guān)鍵機(jī)器部件中實(shí)現(xiàn)。
      因此,高速緩存數(shù)據(jù)的方法包括維護(hù)一個(gè)隨機(jī)數(shù)據(jù)列表和一個(gè)順序數(shù)據(jù)列表,以及動(dòng)態(tài)確定順序數(shù)據(jù)列表的期望尺寸。
      在一些實(shí)施例中,確定操作可包括確定順序數(shù)據(jù)列表的最近最少使用(LRU)部分就高速緩存命中失誤而言是否比隨機(jī)列表的最近最少使用(LRU)部分更有價(jià)值,以及如果如此,則增加期望尺寸,否則減小期望尺寸。在特定的實(shí)施例中,該方法包括根據(jù)順序命中失誤計(jì)算給順序數(shù)據(jù)列表增加空間的邊際效用,以及憑經(jīng)驗(yàn)確定給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用。基于該計(jì)算和確定行為,確立順序數(shù)據(jù)列表的期望尺寸。
      計(jì)算行為可將邊際效用確定為等于s/L和2s/L之間的一個(gè)數(shù),包括s/L和2s/L,其中s代表同步和異步預(yù)取的順序命中失誤的比率,而L代表順序數(shù)據(jù)列表的長(zhǎng)度。同樣地,憑經(jīng)驗(yàn)的確定行為可包括確定在隨機(jī)數(shù)據(jù)列表的底部ΔL部分的兩次連續(xù)高速緩存命中之間的順序命中失誤數(shù)量。如果計(jì)算出的給順序數(shù)據(jù)列表增加空間的邊際效用超過(guò)憑經(jīng)驗(yàn)確定的給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用,則增加期望尺寸,否則,減小期望尺寸。如果需要的話,該方法可進(jìn)一步包括將至少一個(gè)最近預(yù)取的軌道組連同該軌道組中的異步觸發(fā)軌道一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分。同樣地,該方法可包括將該軌道組中的至少一些未被訪問(wèn)的軌道移至順序數(shù)據(jù)列表的MRU部分。同樣地,如果需要,該方法可包括確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸,以及據(jù)此替換至少一個(gè)高速緩存器單元。
      在另一方面,揭示了一個(gè)利用最近最少使用(LRU)高速緩存模式的數(shù)據(jù)系統(tǒng),該模式從數(shù)據(jù)存儲(chǔ)設(shè)備中同步和異步預(yù)取數(shù)據(jù)。該系統(tǒng)在不導(dǎo)致額外的高速緩存順序命中失誤的同時(shí)基本上避免了破壞棧特性。
      在另一方面,計(jì)算機(jī)程序產(chǎn)品包括用于根據(jù)順序命中失誤計(jì)算給高速緩存器的順序列表增加空間的邊際效用的裝置。還提供了用于憑經(jīng)驗(yàn)確定在高速緩存器中給隨機(jī)列表增加空間的邊際效用的裝置。該計(jì)算機(jī)程序產(chǎn)品具有用于響應(yīng)計(jì)算和確定裝置而確立順序列表的期望尺寸的裝置。
      在另一方面,在與具有順序列表和隨機(jī)列表的至少一個(gè)高速緩存器相關(guān)聯(lián)的處理器中,提供了包括在操作期間嘗試使邊際效用相等的邏輯,其中兩個(gè)列表定義了各自的最近最少使用(LRU)部分,每個(gè)部分與在操作期間變化的各自的邊際效用相關(guān)聯(lián)。
      在另一方面,處理器與高速緩存器相關(guān)聯(lián),該高速緩存器用于執(zhí)行將新預(yù)取的軌道組連同該軌道組中的異步觸發(fā)軌道一起移至順序高速緩存列表的最近最多使用(MRU)部分的邏輯。該邏輯還將該軌道組中未被訪問(wèn)的軌道移至順序高速緩存器列表的MRU部分。
      在另一方面,與高速緩存器相關(guān)聯(lián)的處理器執(zhí)行用于確定順序高速緩存器列表的尺寸是否超過(guò)期望尺寸,并據(jù)此替換至少一個(gè)高速緩存器單元的邏輯。
      參考附圖下可更好地理解本發(fā)明的結(jié)構(gòu)和操作的細(xì)節(jié),其中類(lèi)似附圖標(biāo)記指示同類(lèi)部件,并且其中


      圖1是一個(gè)非限制性系統(tǒng)的方框圖,該系統(tǒng)中可利用本發(fā)明的高速緩存器管理策略;圖2是高速緩存器中隨機(jī)頁(yè)列表和順序頁(yè)列表的示意圖;圖3是高速緩存器尺寸管理邏輯的流程圖;以及圖4是高速緩存器替換邏輯的流程圖。
      具體實(shí)施例方式
      首先參考圖1,其示出一個(gè)系統(tǒng),一般指定為10,其圖解了一個(gè)其中可利用本發(fā)明的非限制性環(huán)境。一般而言,本發(fā)明為一個(gè)用于管理緩存來(lái)自低速存儲(chǔ)器的數(shù)據(jù)的數(shù)據(jù)高速緩存器的系統(tǒng)。例如,本發(fā)明可在數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn),例如DB2和Oracle,以及諸如本發(fā)明受讓人的“Shark”系統(tǒng)的基于RAID的系統(tǒng),以及其它的系統(tǒng),例如獨(dú)立硬盤(pán)驅(qū)動(dòng)器等。因此,應(yīng)當(dāng)理解,雖然圖1圖解了一個(gè)具有“Shark”結(jié)構(gòu)的非限制性實(shí)現(xiàn),然而其僅是可利用本發(fā)明的環(huán)境的代表。因此,本發(fā)明可在文件系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、或其它必須為可變尺寸數(shù)據(jù)對(duì)象分配空間的系統(tǒng)中實(shí)現(xiàn)。在一個(gè)預(yù)期的實(shí)施例中,本發(fā)明的處理器或多個(gè)處理器(計(jì)算機(jī))可為由Armonk,N.Y.的國(guó)際商業(yè)機(jī)器公司(IBM)制造的個(gè)人計(jì)算機(jī)或任何計(jì)算機(jī)。包括具有伴隨的IBM網(wǎng)絡(luò)工作站、以例如AS400的商標(biāo)出售的計(jì)算機(jī)。
      如圖所示,一個(gè)或多個(gè)處理器12通過(guò)具有毗連的連接器18的主機(jī)適配器的陣列16可與一個(gè)或多個(gè)主機(jī)14通信。同樣地,處理器或多個(gè)處理器12通過(guò)各自的設(shè)備適配器22可與諸如RAID配置的盤(pán)存儲(chǔ)系統(tǒng)20的低速存儲(chǔ)器通信。處理器12可具有各自的非易失存儲(chǔ)器(NVS)24,用來(lái)接收來(lái)自其它處理器以及各自的數(shù)據(jù)高速緩存器26(最好為固態(tài)實(shí)現(xiàn)的)的信息。一個(gè)或兩個(gè)處理器都被編程來(lái)執(zhí)行此處的邏輯。
      對(duì)于該邏輯,此處的流程圖和偽碼圖解了在計(jì)算機(jī)程序軟件中體現(xiàn)的由處理器12執(zhí)行的本發(fā)明邏輯的結(jié)構(gòu)。本領(lǐng)域技術(shù)人員將理解,流程圖和偽碼圖解了諸如計(jì)算機(jī)程序編碼單元或電子邏輯電路的邏輯單元的結(jié)構(gòu),其根據(jù)本發(fā)明運(yùn)行。顯然,本發(fā)明由機(jī)器部件在其主要的實(shí)施例中實(shí)施,該機(jī)器部件將邏輯單元呈現(xiàn)為指示數(shù)字處理裝置(即,計(jì)算機(jī))執(zhí)行與所示出的相對(duì)應(yīng)的功能步驟序列的形式。
      換言之,流程圖及/或偽碼可在由處理執(zhí)行的計(jì)算機(jī)程序中體現(xiàn)為一系列計(jì)算機(jī)可執(zhí)行的指令。這些指令可駐留在例如系統(tǒng)10的程序存儲(chǔ)設(shè)備中。程序存儲(chǔ)設(shè)備可以是RAM,或磁性或光學(xué)的盤(pán)或軟盤(pán)、DASD陣列、磁帶、電子只讀存儲(chǔ)器、或其它適當(dāng)?shù)臄?shù)據(jù)存儲(chǔ)設(shè)備。在本發(fā)明的一個(gè)圖解實(shí)施例中,計(jì)算機(jī)可執(zhí)行的指令可以是編譯的C/C++兼容代碼行。
      在所示的非限制性實(shí)現(xiàn)中,每個(gè)高速緩存器26具有8千兆字節(jié)(GB)(每集群)的容量,每個(gè)NVS 24具有2GB(每集群)的容量,可使用4個(gè)600MHz PowerPC/RS64IV CPU,以及16個(gè)具有72GB,10Krmp驅(qū)動(dòng)器的RAID-5(6+奇偶+備用)陣列可在數(shù)據(jù)存儲(chǔ)器20中使用。AIX計(jì)算機(jī)可用下面的配置實(shí)現(xiàn)主機(jī)1416GB RAM,具有1GHz PowerPC/Power4CPU的雙向SMP。主計(jì)算機(jī)14可通過(guò)實(shí)現(xiàn)主機(jī)適配器陣列16的兩個(gè)光纖通道卡連接到處理器12上。
      現(xiàn)在參考圖2,每個(gè)高速緩存器26可包括兩個(gè)棧式的列表,即,一個(gè)隨機(jī)列表28和一個(gè)順序列表(“SEQ”)30。隨機(jī)列表28列出了可以已經(jīng)根據(jù)例如讀請(qǐng)求被隨機(jī)訪問(wèn)過(guò)的高速緩存的頁(yè),而SEQ列表30維護(hù)根據(jù)推測(cè)性的順序高速緩存或順序讀請(qǐng)求而被高速緩存的頁(yè)的列表,這里描述了其原理。在每個(gè)列表28、30的頂部是其最近最多使用的(MRU)頁(yè),而列表的底部是最近最少使用的(LRU)頁(yè)。每個(gè)列表在其底部的各自部分32、34,例如2%的部分,可被認(rèn)作LRU部分。對(duì)于SEQ列表30,其LRU部分的期望尺寸36根據(jù)下面所闡述的邏輯被動(dòng)態(tài)地確定并調(diào)整以使高速緩存器性能最優(yōu)。
      優(yōu)選地,如在常規(guī)的基于LRU的高速緩存器中那樣,一個(gè)新預(yù)取的軌道組連同當(dāng)前軌道組中的異步觸發(fā)軌道一起被置于SEQ列表30的MRU(頂部)端。此外,根據(jù)本發(fā)明的原理,當(dāng)前軌道組中的所有未被訪問(wèn)的軌道也被移到列表30的MRU端,以在使其擺脫上面提到的反常行為的同時(shí)保持異步預(yù)取的好處。
      現(xiàn)在參考圖3,示出了用于在SEQ列表30和隨機(jī)列表28中間動(dòng)態(tài)地劃分高速緩存器空間量以使總命中失誤的比率最小的本發(fā)明自適應(yīng)、自調(diào)節(jié)、低開(kāi)銷(xiāo)的算法。從方框38開(kāi)始,計(jì)算給SEQ列表30增加空間的邊際效用。在一個(gè)圖解的非限制性實(shí)施例中,計(jì)算出方框38處的邊際效用為s/L和2s/L之間,并且為方便計(jì)可選擇為后者,其中“s”代表同步和異步預(yù)取的順序高速緩存的命中失誤比,以及“L”代表SEQ列表30的長(zhǎng)度(例如,4KB頁(yè))。在一個(gè)實(shí)施例中,“s”是潛在的多路同步和異步預(yù)取的各自順序高速緩存命中失誤比的和,其可直接觀察到。該“邊際效用”可被認(rèn)作有關(guān)順序高速緩存命中失誤的比率如何隨著列表尺寸的變化而變化的測(cè)量。
      圖3,方框40表明給RANDOM列表28增加空間的邊際效用也憑經(jīng)驗(yàn)來(lái)確定。在一個(gè)圖解的非限制實(shí)施例中,該邊際效用被確定為1/ΔL,其中ΔL為由隨機(jī)列表28的最底部部分中的兩次連續(xù)高速緩存命中所定義的時(shí)間周期期間,隨機(jī)列表28的最底部部分的長(zhǎng)度。因此,用于進(jìn)行方框40中的經(jīng)驗(yàn)確定的采樣時(shí)間周期可自適應(yīng)于實(shí)際操作條件,雖然一些固定的時(shí)間周期也可被使用。
      一旦得到了上面所討論的兩個(gè)邊際效用,邏輯流向判斷菱形框42以確定哪個(gè)邊際效用更大。如果增加SEQ高速緩存器的邊際效用超過(guò)增加隨機(jī)高速緩存器的邊際效用,則邏輯于方框44處增加SEQ列表30的期望尺寸36(圖2);否則,于方框46處增加期望的尺寸36。
      圖4示出了用于在高速緩存器中換頁(yè)的示例非限制性邏輯流。開(kāi)始于判斷菱形框48,可以確定邊界條件是否存在。邊界條件的非限制性示例包括隨機(jī)列表28下降到低于總高速緩存器尺寸的2%或超過(guò)總高速緩存器尺寸的98%。如果下面?zhèn)未a所示的初始化還沒(méi)有被執(zhí)行,可存在另一個(gè)邊界條件。
      如果邊界條件存在,則邏輯可流向判斷菱形框50以確定SEQ列表30中的LRU軌道是否比隨機(jī)列表28中的LRU軌道更舊,可以理解,該測(cè)試使用根據(jù)本領(lǐng)域已知的原理提供給高速緩存的數(shù)據(jù)的時(shí)間戳標(biāo)。如果判斷菱形框50的測(cè)試結(jié)果為否定,則于方框52處邏輯從隨機(jī)列表28換頁(yè);否則,于方框54處從SEQ列表?yè)Q頁(yè)。
      然而,如果邊界條件不存在,則邏輯流向判斷菱形框56以確定SEQ列表30的至少一部分,例如圖2中所示的LRU部分34,的尺寸是否超過(guò)期望尺寸36。如果是的話,邏輯流向方框54,否則流向方框52。
      圖3所示的邏輯連續(xù)地或周期性地返回至方框38,使得SEQ列表30的LRU部分的期望尺寸在操作期間被動(dòng)態(tài)地確立,隨高速緩存器利用的指示而變化。
      下面的偽碼是自說(shuō)明的,但是通過(guò)進(jìn)一步的說(shuō)明,確定列表之一中的命中是否確實(shí)在其LRU部分ΔL中,6和12行。因此,如果TMRU和TLRU分別代表SEQ中MRU和LRU軌道的時(shí)間戳標(biāo),L代表頁(yè)中SEQ的尺寸,而THIT代表命中軌道的時(shí)間戳標(biāo),那么如果(THIT-TLRU)≤ΔL/L(TMRU-TLRU),則發(fā)生了底部命中。相同的計(jì)算也可用于確定隨機(jī)列表中的底部命中。
      下面的代碼使用三個(gè)常量,其可以特定于具體實(shí)現(xiàn),并因此為非限制性的(i)“m”(18及32行)代表同步和異步預(yù)讀的程度;(ii)“g”(18和32行)代表當(dāng)本發(fā)明在RAID設(shè)備中實(shí)現(xiàn)時(shí),RAID組中的盤(pán)數(shù);并且(iii)“triggerOffset”(49行)是相對(duì)預(yù)取軌道組的末端的偏移,并被用來(lái)區(qū)分異步觸發(fā)。
      1-3行僅在初始化階段使用。計(jì)數(shù)器“seqmiss”跟蹤隨機(jī)列表中兩次連續(xù)底部命中之間的順序命中失誤的數(shù)量,并被初始化為零。變量“desiredSeqListSize”為SEQ列表30的期望尺寸36,并被初始化為零,意味著邊界條件最初存在。因此其余邏輯僅在SEQ被填充之后開(kāi)始(見(jiàn)69-73行)。變量“adapt”確定對(duì)desiredSeqListSize的適應(yīng)的瞬時(shí)量和方向。
      4-50行描述了高速緩存器管理策略。4行中的量比在一些非限制性實(shí)施例中可被置為(2*s*ΔL)/L。
      5-10行處理當(dāng)隨機(jī)列表中的軌道被命中時(shí)的情況。如果命中是在隨機(jī)列表的底部(6行),那么“seqmiss”被復(fù)位至零(7行),因?yàn)殡S機(jī)列表底部的兩次連續(xù)命中之間的順序命中失誤的數(shù)量是我們所關(guān)心的。8行設(shè)置變量“adapt”={2·seqmiss·ΔL}/L-1。然而,“adapt”不允許超過(guò)1或小于-1。注意到,如果“adapt”大于零,則desiredSeqListSize最好增加,否則它最好減小。該增加或減小在70行中得以執(zhí)行。并且,當(dāng)SEQ和隨機(jī)的邊際效用之間的不等量較大時(shí),“adapt”的值也較大,并且因此,采用較快的適應(yīng)速度,反之當(dāng)兩個(gè)邊際效用接近相等時(shí),“adapt”將接近于零,并且采用較慢的適應(yīng)速度。最后,70行(其實(shí)現(xiàn)實(shí)際的適應(yīng))僅當(dāng)軌道被從列表之一中確實(shí)逐出時(shí)才執(zhí)行。
      11-27行處理當(dāng)SEQ中的軌道被命中時(shí)的情況。如果命中是在SEQ列表的底部(12行)并且“ratio”已變大(13行),換句話說(shuō),在一段時(shí)間內(nèi)還沒(méi)有發(fā)現(xiàn)隨機(jī)列表底部有命中,那么“adapt”被置為1(14行),意味著“desiredSeqListSize”以可能的最快速度增加。如果命中的軌道是一個(gè)異步觸發(fā)軌道(17行),則18行異步預(yù)讀下一個(gè)順序軌道組。21-27行描述了用來(lái)檢測(cè)順序訪問(wèn)模式的非限制性方式的實(shí)現(xiàn)。
      28-40行處理高速緩存器命中失誤。對(duì)于一個(gè)順序命中失誤(29-31行),在32行軌道組被同步地預(yù)讀。余下的行處理順序訪問(wèn)模式的檢測(cè)。
      41-50行(i)從所給的軌道范圍中讀取命中失誤軌道;(ii)將所給范圍內(nèi)的全部軌道置于MRU位置;并且(iii)設(shè)置異步觸發(fā)。51-73行實(shí)現(xiàn)上面圖4的高速緩存器替換策略并實(shí)現(xiàn)適應(yīng)。如多線程系統(tǒng)中所常見(jiàn)的,本發(fā)明假設(shè)這些行可以在獨(dú)立線程上運(yùn)行(51行)。如果空閑隊(duì)列的尺寸下降到低于預(yù)定門(mén)限值(52行),則如果其超過(guò)desiredSeqListSize,軌道被從SEQ中逐出,否則從隨機(jī)列表中逐出軌道。不論哪種情況,被逐出的軌道均被放置于空閑隊(duì)列上。最后,68-73行將LRU軌道從期望列表中清除,并如上所述進(jìn)行適應(yīng)。
      初始化設(shè)置適應(yīng)變量為01設(shè)置seqMiss為02設(shè)置″adapt″為03設(shè)置desiredSeqListsize為0高速緩存器管理策略(CACHE MANAGEMENT Policy)請(qǐng)求Track x4設(shè)置ratio=(2·seqMiss·ΔL)/seqListsize5case Ix是RANDOM(HIT)的元素6ifx是RANDOM BOTTOM的元素then7Reset seqMiss=08set″adapt″=max(-1,min(ratio-1,1))9endif10Mru(x,RANDOM)11case iix是SEQ(HIT)的元素
      12if x是SEQ BOTTOM的元素then13if(ratio>20)then14Set″adapt″=115endif16endif17if x is Async Trigger then18ReadAndMru([x+1,x+m-x%g],SEO)19endif20Mru(x,SEQ)21if track(x-1)是(SEQ union with RANDOM)的元素then22if(seqCounter(x-1)==0)then23Set seqCounter(x)=max(seqThreshold,seqCounter(x-1)+i)24endif25else26Set seqCounter(x)=127endif28case iiix不是(SEQ union with RANDOM)(MISS)的元素29if(x-1)是(SEQ union with RANDOM)的元素then30if seqCounter(x-1)==seqThreshold then31seqMiss++32ReadAndMru(lx,x+m-x%q],SEG)33set seqCounter(x)=seqThreshold34else35ReadAndMru([x,x],RANDOM)36Set seqCounter(x)=seqCounter(x-1)+137endif38else39Set seqCounter(x)=1
      40endifReadAndMru([start,end],ListType)41for each track t in[start,end];do42if t不是(SEQ union with RANDOM)的元素then43從空閑隊(duì)列取得空閑軌道44從盤(pán)中讀取軌道t45endif46Mru(t,ListType)47done48if(ListType==SEQ)49Set AsyncTrigger as(end-triggerOffset)50endif空閑隊(duì)列管理(FREE QUEUE MANAGEMENT)FreeQThread()51while(true)do52if length(FreeQ)<FreeQThreshold then53if(seqListsize<ΔL or randomListsize<ΔL)then54if(SEQ的lru軌道比RANDOM的lru軌道更舊)then55EvictLruTrackAndAdapt(SEQ)56else57EvictLruTrackAndAdapt(RANDOM)58endif59else60if(seqListSize>desiredseqListSize)then
      61EvictLruTrackAndAdapt(SEQ)62else63EvictLruTrackAndAdapt(RANDOM)64endif65endif66endif67endwhileEvictLruTrackAndAdapt(ListType)68逐出listType中的lru軌道并將其加入空閑隊(duì)列69if(desiredseqListSize>O)then70Set desiredSeqListSize +=″adapt″/271else72set desiredSeqListSize=seqListSize73endif總而言之,本發(fā)明結(jié)合了高速緩存和順序預(yù)取,并且不要求保存歷史。
      盡管此處詳細(xì)所示并描述的特定的用于高速緩存器順序列表的動(dòng)態(tài)尺寸確定的系統(tǒng)和方法完全能夠達(dá)到本發(fā)明上面所描述的目的,然而可以理解,該特定的用于高速緩存器順序列表的動(dòng)態(tài)尺寸確定的系統(tǒng)和方法是本發(fā)明目前最優(yōu)的實(shí)施例,并因此代表被本發(fā)明所廣泛涵蓋的主題,可以理解,本發(fā)明的范圍充分包括本領(lǐng)域技術(shù)人員能夠想到的其它實(shí)施例,并且可以理解,本發(fā)明的范圍因此僅由附加的權(quán)利要求書(shū)來(lái)限定,其中以單數(shù)形式對(duì)要素的引用不表示“一個(gè)且唯一一個(gè)”,除非明確指出,而是“一個(gè)或多個(gè)”。對(duì)于設(shè)備或方法而言,不必解決每一個(gè)由本發(fā)明尋求解決的問(wèn)題,因?yàn)樗鼘⒈槐景l(fā)明的權(quán)利要求書(shū)所包括。更進(jìn)一步,無(wú)論單元、部件、或方法步驟在權(quán)利要求書(shū)中是否被明確地闡述,本公開(kāi)中的單元、部件、或方法步驟并不是僅提供給公眾的。盡管此處缺少明確的定義,然而權(quán)利要求中的術(shù)語(yǔ)將被給予所有普通和習(xí)慣的意義,其不與本說(shuō)明書(shū)和文件歷史相矛盾。
      權(quán)利要求
      1.一種用于高速緩存數(shù)據(jù)的方法,包括維護(hù)隨機(jī)數(shù)據(jù)列表和順序數(shù)據(jù)列表;以及動(dòng)態(tài)確定順序數(shù)據(jù)列表的期望尺寸。
      2.根據(jù)權(quán)利要求1的方法,其中確定步驟包含確定順序數(shù)據(jù)列表的最近最少使用(LRU)部分在高速緩存器命中失誤方面是否比隨機(jī)列表的最近最少使用(LRU)部分更有價(jià)值,以及如果如此,則增加期望尺寸,否則減小期望尺寸。
      3.根據(jù)權(quán)利要求1的方法,其中確定步驟包含憑經(jīng)驗(yàn)確定給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用;根據(jù)順序命中失誤的比率計(jì)算給順序數(shù)據(jù)列表增加空間的邊際效用;以及基于計(jì)算和確定步驟,確定順序數(shù)據(jù)列表的期望尺寸。
      4.根據(jù)權(quán)利要求3的方法,其中憑經(jīng)驗(yàn)的確定步驟包括根據(jù)在由隨機(jī)數(shù)據(jù)列表底部部分ΔL中兩次連續(xù)高速緩存器命中定義的時(shí)間周期內(nèi)順序命中失誤的數(shù)量,確定順序命中失誤的比率“s”。
      5.根據(jù)權(quán)利要求4的方法,其中計(jì)算步驟確定邊際效用等于s/L和2s/L之間的一個(gè)數(shù),包括s/L和2s/L,其中s代表同步和異步預(yù)取的順序命中失誤的比率,而L代表順序數(shù)據(jù)列表的長(zhǎng)度。
      6.根據(jù)權(quán)利要求5的方法,其中確定順序數(shù)據(jù)列表的期望尺寸的步驟包括如果計(jì)算出的給順序數(shù)據(jù)列表增加空間的邊際效用超過(guò)憑經(jīng)驗(yàn)確定的給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用,則增加期望尺寸,否則減小期望尺寸。
      7.根據(jù)權(quán)利要求1的方法,包括將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分;以及將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分。
      8.根據(jù)權(quán)利要求1的方法,包括確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸;以及基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的步驟,替換至少一個(gè)高速緩存器單元。
      9.一種利用基于從數(shù)據(jù)存儲(chǔ)設(shè)備中的同步和異步數(shù)據(jù)預(yù)取的最近最少使用(LRU)高速緩存模式的數(shù)據(jù)系統(tǒng),該系統(tǒng)在不導(dǎo)致高速緩存器的額外順序命中失誤的情況下基本上避免破壞棧特性。
      10.根據(jù)權(quán)利要求9的系統(tǒng),其中系統(tǒng)執(zhí)行包括以下的邏輯根據(jù)順序命中失誤的比率計(jì)算給順序列表增加空間的邊際效用;憑經(jīng)驗(yàn)確定給隨機(jī)列表增加空間的邊際效用;以及基于計(jì)算和確定步驟,動(dòng)態(tài)地確定順序列表的期望尺寸。
      11.根據(jù)權(quán)利要求10的系統(tǒng),其中通過(guò)根據(jù)在由隨機(jī)列表底部部分ΔL中兩次連續(xù)高速緩存器命中定義的時(shí)間周期內(nèi)順序命中失誤的數(shù)量來(lái)確定順序命中失誤的比率“s”,該邏輯執(zhí)行憑經(jīng)驗(yàn)確定步驟。
      12.根據(jù)權(quán)利要求11的系統(tǒng),其中該邏輯確定給順序數(shù)據(jù)列表增加空間的邊際效用等于s/L和2s/L之間的一個(gè)數(shù),包括s/L和2s/L,其中L代表順序數(shù)據(jù)列表的長(zhǎng)度。
      13.根據(jù)權(quán)利要求9的系統(tǒng),其中系統(tǒng)執(zhí)行包括以下的邏輯將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分;以及將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分。
      14.根據(jù)權(quán)利要求9的系統(tǒng),其中系統(tǒng)執(zhí)行包括以下的邏輯確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸;以及基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的結(jié)果,替換至少一個(gè)高速緩存器單元。
      15.一種計(jì)算機(jī)程序產(chǎn)品,包括用于維護(hù)隨機(jī)列表的裝置;用于維護(hù)順序列表的裝置;用于順序數(shù)據(jù)的同步和異步預(yù)取的裝置;用于根據(jù)順序命中失誤的比率計(jì)算給順序列表增加空間的邊際效用的裝置;用于憑經(jīng)驗(yàn)確定給隨機(jī)列表增加空間的邊際效用的裝置;以及用于響應(yīng)計(jì)算和確定裝置而確定順序列表的期望尺寸的裝置。
      16.根據(jù)權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,包括用于根據(jù)在由隨機(jī)列表底部部分ΔL中兩次連續(xù)高速緩存器命中定義的時(shí)間周期內(nèi)順序命中失誤的數(shù)量來(lái)確定順序命中失誤的比率“s”的裝置。
      17.根據(jù)權(quán)利要求16的計(jì)算機(jī)程序產(chǎn)品,包括用于計(jì)算s/L和2s/L的裝置,包括s/L和2s/L,其中L代表順序列表的長(zhǎng)度。
      18.根據(jù)權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,包括用于將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分的裝置;以及用于將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分的裝置。
      19.根據(jù)權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,包括用于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的裝置;以及用于基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的結(jié)果,替換至少一個(gè)高速緩存器單元的裝置。
      20.一種與至少一個(gè)具有順序列表和隨機(jī)列表的高速緩存器相關(guān)聯(lián)的處理器,這兩個(gè)列表都定義各自的最近最少使用(LRU)部分,其中每個(gè)部分與在操作期間變化的各自的邊際效用相關(guān)聯(lián),邏輯包括在操作期間嘗試使邊際效用相等。
      21.根據(jù)權(quán)利要求20的處理器,其中該邏輯包括根據(jù)順序命中失誤的比率計(jì)算給順序列表增加空間的邊際效用;憑經(jīng)驗(yàn)確定給隨機(jī)列表增加空間的邊際效用;以及基于計(jì)算和確定步驟,動(dòng)態(tài)地確定順序列表的期望尺寸。
      22.根據(jù)權(quán)利要求21的處理器,其中該邏輯包括根據(jù)在由隨機(jī)列表底部ΔL中兩次連續(xù)高速緩存器命中定義的時(shí)間周期內(nèi)順序命中失誤的數(shù)量來(lái)確定順序命中失誤的比率“s”。
      23.根據(jù)權(quán)利要求22的處理器,其中該邏輯確定給順序數(shù)據(jù)列表增加空間的邊際效用等于s/L和2s/L之間的一個(gè)數(shù),包括s/L和2s/L,其中L代表順序數(shù)據(jù)列表的長(zhǎng)度。
      24.根據(jù)權(quán)利要求23的處理器,其中該邏輯包括如果計(jì)算出的給順序列表增加空間的邊際效用超過(guò)憑經(jīng)驗(yàn)確定的給隨機(jī)列表增加空間的邊際效用,則增加期望尺寸,否則減小期望尺寸。
      25.根據(jù)權(quán)利要求20的處理器,其中該邏輯包括將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分;以及將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分。
      26.根據(jù)權(quán)利要求20的處理器,其中該邏輯包括確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸;以及基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的結(jié)果,替換至少一個(gè)高速緩存器單元。
      27.一種與高速緩存器相關(guān)聯(lián)的處理器,其執(zhí)行邏輯以便將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分;以及將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分。
      28.根據(jù)權(quán)利要求27的處理器,其中該邏輯包括確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸;以及基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的結(jié)果,替換至少一個(gè)高速緩存器單元。
      29.根據(jù)權(quán)利要求27的處理器,其中該邏輯包括憑經(jīng)驗(yàn)確定給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用;根據(jù)順序命中失誤的比率計(jì)算給順序數(shù)據(jù)列表增加空間的邊際效用;以及基于計(jì)算和確定步驟,確定順序數(shù)據(jù)列表的期望尺寸。
      30.一種與高速緩存器相關(guān)聯(lián)的處理器,其執(zhí)行邏輯以便確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸;以及基于確定順序數(shù)據(jù)列表的至少一部分的尺寸是否超過(guò)期望尺寸的結(jié)果,替換至少一個(gè)高速緩存器單元。
      31.根據(jù)權(quán)利要求30的處理器,其中該邏輯包括將至少一個(gè)新預(yù)取的數(shù)據(jù)單元組連同該數(shù)據(jù)單元組中的異步觸發(fā)數(shù)據(jù)單元一起移至順序數(shù)據(jù)列表的最近最多使用(MRU)部分;以及將該數(shù)據(jù)單元組中至少一些未被訪問(wèn)的數(shù)據(jù)單元移至順序數(shù)據(jù)列表的MRU部分。
      32.根據(jù)權(quán)利要求30的處理器,其中該邏輯包括憑經(jīng)驗(yàn)確定給隨機(jī)數(shù)據(jù)列表增加空間的邊際效用;根據(jù)順序命中失誤的比率計(jì)算給順序數(shù)據(jù)列表增加空間的邊際效用;以及基于計(jì)算和確定步驟,確定順序數(shù)據(jù)列表的期望尺寸。
      全文摘要
      一種自調(diào)節(jié)、低成本、易實(shí)現(xiàn)、局部自適應(yīng)、新穎的高速緩存器管理策略,其動(dòng)態(tài)地并自適應(yīng)地在順序和隨機(jī)流中間劃分高速緩存器空間以便減少讀命中失誤。
      文檔編號(hào)G06F12/12GK1755652SQ20051010705
      公開(kāi)日2006年4月5日 申請(qǐng)日期2005年9月29日 優(yōu)先權(quán)日2004年9月30日
      發(fā)明者賓尼·S·吉爾, 達(dá)蒙德拉·S·莫哈 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1