專利名稱::用于虛擬存儲器的管理的方法和分析高速緩存的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明總體涉及數(shù)據(jù)處理領(lǐng)域,更具體來說,涉及用于虛擬存儲器的管理的方法和預(yù)設(shè)置(profiling)高速緩存。
背景技術(shù):
:為了減少數(shù)據(jù)訪問時(shí)間,使用被稱為高速緩存的靜態(tài)隨機(jī)存取存儲器(RAM)的專用高速存儲空間來臨時(shí)存儲當(dāng)前在使用的數(shù)據(jù)。例如,高速緩存的數(shù)據(jù)可包括從主存儲器獲得的指令和/或數(shù)據(jù)的一個(gè)副本,用于被處理器快速訪問。處理器高速緩存通常位于靠近處理器或者與處理器集成在一起。在高速緩存中存儲的數(shù)據(jù)可以優(yōu)先地被處理器僅僅在一個(gè)處理器周期訪問,取回繼續(xù)處理所需的數(shù)據(jù);而不是必須停下來等待從諸如更高級高速緩存或主存儲器的次級存儲器取回?cái)?shù)據(jù)。程序在執(zhí)行加載(load)、存儲(store)、分支(branch)或高速緩存(cache)指令以及在取出下一個(gè)順序指令時(shí),利用由處理器計(jì)算的有效地址查閱(references)存儲器。有效地址被按照預(yù)定的翻譯程序翻譯成實(shí)地址。為了使地址翻譯時(shí)間最小化,通常用一個(gè)稱作翻譯后備緩沖器(TLB)的專用于地址翻譯的專用高速緩存來進(jìn)行地址翻譯。在有些已知的處理器設(shè)計(jì)中,將頁描述(pagedescriptions)或頁表?xiàng)l目(PTE-pagetableentries)存儲在翻譯后備緩沖器(TLB)中。當(dāng)對某個(gè)不在TLB中的頁進(jìn)行訪問時(shí),產(chǎn)生一個(gè)中斷,固件必須將頁表?xiàng)l目加載TLB。對于有些已知的硬件,固件無法知道哪些頁被頻繁使用。一般用先進(jìn)先出算法加載(load)和替換頁描述。需要一種改進(jìn)的管理虛擬存儲器的機(jī)制。
發(fā)明內(nèi)容本發(fā)明的主要目的是提供一種用于虛擬存儲器的管理的方法和分析高速緩存。本發(fā)明的其他重要目的是在基本上沒有副作用的情況下提供這樣的用于虛擬存儲器的管理的方法和分析高速緩存,以克服現(xiàn)有技術(shù)的安排的許多缺點(diǎn)。簡而言之,提供一種用于虛擬存儲器的管理的方法和分析高速緩存。在分析高速緩存中存儲一個(gè)條目集合。條目集合的每個(gè)條目包括頁地址、頁地址的時(shí)間戳、和最近最少使用的(LRU-leastrecentlyused)計(jì)數(shù)。對應(yīng)對頁地址的每個(gè)訪問,相應(yīng)地更新LRU計(jì)數(shù)。利用所存儲的LRU計(jì)數(shù),去除分析高速緩存中的條目。翻譯后備緩沖器(TLB)包括一個(gè)用于存儲多個(gè)臨時(shí)固定的(pinned)條目的第一TLB部分和一個(gè)用于存儲多個(gè)非固定的(non-pinned)條目的第二TLB部分。響應(yīng)一個(gè)TLB中斷,用先進(jìn)先出算法在第二TLB部分載入一個(gè)條目,以替代一個(gè)非固定的條目。用所識別的分析高速緩存中的條目集合中具有最早時(shí)間戳的條目定期更新第一TLB部分。按照本發(fā)明的特點(diǎn),分析高速緩存硬件提供存儲器預(yù)設(shè)置信息用于有效的存儲器管理。具有最早時(shí)間戳的分析高速緩存條目代表最頻繁使用的頁。當(dāng)遞減計(jì)數(shù)器終止時(shí),更新第一TLB部分,然后清空分析高速緩存,重新啟動遞減計(jì)數(shù)器。附圖簡介從以下對附圖中的本發(fā)明的最佳實(shí)施例的詳細(xì)說明可以更好地理解本發(fā)明及其上述和其它目的和優(yōu)點(diǎn)。圖1是按照最佳實(shí)施例的計(jì)算機(jī)系統(tǒng)的框圖表示;圖2是表示按照最佳實(shí)施例更新圖1的翻譯后備緩沖器的臨時(shí)固定的部分的示例性順序步驟的流程圖;圖3是表示按照最佳實(shí)施例用于實(shí)現(xiàn)翻譯后備緩沖器的臨時(shí)固定的部分的更新硬件的示意和邏輯流程圖;和圖4是表示按照最佳實(shí)施例的計(jì)算機(jī)程序產(chǎn)品的框圖。具體實(shí)施例方式現(xiàn)在參看各附圖,圖1中表示了一個(gè)用于實(shí)現(xiàn)最佳實(shí)施例的虛擬存儲器管理的計(jì)算機(jī)系統(tǒng),總體上由標(biāo)注符100表示。計(jì)算機(jī)系統(tǒng)100包括處理器102和翻譯后備緩沖器(TLB)104。計(jì)算機(jī)系統(tǒng)100包括一個(gè)處理器L1高速緩存106和一個(gè)預(yù)設(shè)置頁地址高速緩存108,后者包括一個(gè)最近最少使用的(LRU)表110和一個(gè)時(shí)間戳表112。計(jì)算機(jī)系統(tǒng)100包括一個(gè)遞減計(jì)數(shù)器114。當(dāng)遞減計(jì)數(shù)器114達(dá)到零時(shí),它向處理器102生成一個(gè)中斷,并發(fā)信號要預(yù)設(shè)置頁地址高速緩存108凍結(jié)(freeze)。按照本發(fā)明的特點(diǎn),在不需要過分的固件開銷的情況下讓操作系統(tǒng)120能確定哪些頁應(yīng)當(dāng)要被臨時(shí)固定在TLB104中。本發(fā)明的硬件部分或分析高速緩存108為有效的存儲器管理而監(jiān)視L1高速緩存接口106處的處理器總線并跟蹤最多被訪問的頁。根據(jù)存儲在分析高速緩存108中的那些被最頻繁地訪問的頁識別要被臨時(shí)固定在TLB104中的頁表?xiàng)l目(PTEs)。按照本發(fā)明的特點(diǎn),TLB104被劃分為兩部分130和132。第一TLB部分130中的TLB104的條目被用于頻繁訪問的頁并被定期評估。PTEs被臨時(shí)固定的在第一TLB部分130中。含有其余條目的TLB104的第二TLB部分132是按FIFO管理的,為了降低固件開銷,這些頁被認(rèn)為是非固定的。當(dāng)接收到一個(gè)TLB中斷時(shí),只有非固定的部分132中的條目被替換。在臨時(shí)固定的區(qū)中的PTEs,被按照圖2和3中所示并相應(yīng)地說明的最佳實(shí)施例定期地替換。按照本發(fā)明的特點(diǎn),將設(shè)定數(shù)目的地址存儲在頁地址高速緩存108中,后者用最少最近使用的(LRU)算法來去除條目,因?yàn)閷γ總€(gè)頁的訪問計(jì)數(shù)是不切實(shí)際的。高速緩存大小,例如預(yù)設(shè)置頁地址高速緩存的32個(gè)地址,是以對ASIC硬件單元(cell)數(shù)和性能的實(shí)際限制為根據(jù)的。預(yù)設(shè)置的根據(jù)是假設(shè)最一貫地被訪問的頁將不被從高速緩存108中去除。只有16頁用于如圖1中所示的TLB104的固定的部分130的頁地址高速緩存108的32的高速緩存大小允許噪聲被高速緩存108的LRU行為過濾掉。當(dāng)某條目被首次放入頁地址高速緩存108時(shí),在時(shí)間戳表112中存儲一個(gè)時(shí)間值,LRU表110中的LRU計(jì)數(shù)在每一次訪問時(shí)都被更新。在具有LRU的高速緩存108中持續(xù)時(shí)間最長的(最早的時(shí)間戳)的條目0-31是最頻繁被訪問的頁。如果某頁被逐出后又被恢復(fù)到高速緩存108中,則為該頁分配新的時(shí)間戳112。當(dāng)遞減定時(shí)器114終止時(shí),固件使TLB104中的所有條目無效,或者在第二TLB部分132中的條目被轉(zhuǎn)移到第一TLB部分130時(shí)使第二TLB部分132中的條目無效。然后將與具有最早時(shí)間戳的16個(gè)頁對應(yīng)的PTEs裝載到為臨時(shí)固定的頁保留的TLB的第一部分130中。某頁在高速緩存108中至此已經(jīng)度過的時(shí)間表示使用的頻率和在TLB104的固定的部分130中固定(pinning)這個(gè)頁的重要性。一旦新的條目被固定,高速緩存就被清空,遞減計(jì)時(shí)器114被重新啟動。參看圖2,圖中從框200開始顯示按照最佳實(shí)施例定期更新翻譯后備緩沖器104的臨時(shí)固定的部分130的示例性順序步驟。如框202所示,首先執(zhí)行等待遞減計(jì)時(shí)器114終止。也參看圖3,當(dāng)對不在TLB104中的某頁進(jìn)行訪問時(shí),向操作系統(tǒng)120生成一個(gè)中斷,操作系統(tǒng)尋找適當(dāng)?shù)捻摫項(xiàng)l目。根據(jù)先進(jìn)先出(FIFO)算法將該頁表?xiàng)l目裝載到TLB的非固定的部分132。預(yù)設(shè)置頁地址高速緩存108存儲該頁的地址。當(dāng)一個(gè)地址首次在頁地址高速緩存108中存儲時(shí),在時(shí)間戳表112中存儲一個(gè)計(jì)數(shù)器值。分析高速緩存108包括LRU域110,每次訪問特定頁地址時(shí),LRU域110都被更新。用LRU算法來從預(yù)設(shè)置頁地址高速緩存108中去除條目。當(dāng)遞減計(jì)時(shí)器114終止時(shí),對下面所有三個(gè)域執(zhí)行高速緩存排序功能(cachesortfunction)300地址108、LRU110和時(shí)間戳112。高速緩存排序功能300根據(jù)的是每個(gè)存儲的頁地址的時(shí)間戳112。圖3中地址108表示排序后的地址。當(dāng)遞減計(jì)數(shù)器114終止時(shí),識別在時(shí)間戳表112中存儲的具有最早的時(shí)間戳的設(shè)定數(shù)目的頁(asetnumberofpages),如圖2中的框204所示。對于在框204所識別的每個(gè)頁,檢查對應(yīng)該頁的PTE是否已經(jīng)在TLB104的非固定的部分132中,如判斷框206所示。如果PTE已經(jīng)在TLB104的非固定的部分132中,則將PTE從TLB104的非固定的部分132去除,如框208所示。然后將PTE放置到TLB104的固定的部分130中,如框210所示。檢查以便將更多的PTE加到TLB104的固定的區(qū)130,如判斷框212所示。當(dāng)有更多的PTE要加到TLB104的固定的區(qū)130,則順序步驟返回到框206,檢查PTE是否已經(jīng)在TLB104的非固定的部分132中。如果沒有更多的PTE要加到TLB104的固定的區(qū)130,則清空分析高速緩存108,如框214所示。然后重新啟動遞減計(jì)時(shí)器114,如框216所示。非固定的部分132中的TLB條目一直保留,直到被轉(zhuǎn)移到TLB104的固定的部分130為止,或者直到通過標(biāo)準(zhǔn)FIFO或循環(huán)替換算法被去除為止。于是,順序操作返回框202,等待遞減計(jì)數(shù)器114終止。應(yīng)當(dāng)明白,可以執(zhí)行按照本發(fā)明的替代步驟。例如,代替步驟206、208、210和212的替代步驟是,可以清空TLB104的固定的部分130和剩余的非固定的部分132中的所有頁條目,然后將代表分析高速緩存器108中具有最早時(shí)間戳的頁的PTEs放置到TLB104的固定的部分130,并且TLB104的非固定的部分132一直保持清空狀態(tài),直到隨著發(fā)生缺失(misses)而被重新填充?,F(xiàn)有技術(shù)計(jì)算缺失的解決方案對具有瞬間高通信量(withburstytraffic)的頁與被穩(wěn)定地訪問的頁賦予相等的優(yōu)先權(quán)。計(jì)算缺失僅僅告訴你某頁每隔多久在TLB中缺失一次,而不告訴你固件每隔多久訪問特定頁一次。對頁的一次訪問就可能產(chǎn)生TLB缺失,這個(gè)單一訪問并不使某頁重要。最佳實(shí)施例的分析高速緩存方法通過將高頻率被訪問的頁臨時(shí)固定的在TLB104的第一部分130,使得能進(jìn)行有效的存儲器管理?,F(xiàn)在參看圖4,圖中表示本發(fā)明的制造產(chǎn)品或計(jì)算機(jī)程序產(chǎn)品400。計(jì)算機(jī)程序產(chǎn)品400包括記錄介質(zhì)402-諸如軟盤、光學(xué)讀光盤或CD-ROM形式的大容量只讀存儲器、磁帶、傳輸類型的介質(zhì)-諸如數(shù)字或模擬通信鏈路、或類似的計(jì)算機(jī)程序產(chǎn)品。記錄介質(zhì)402在介質(zhì)402上存儲程序404、406、408、410,用于執(zhí)行實(shí)現(xiàn)圖1的系統(tǒng)100的最佳實(shí)施例的虛擬存儲器管理的方法。由所記錄的程序方法404、406、408、410定義的一系列程序指令或者一個(gè)或多個(gè)關(guān)聯(lián)模塊的邏輯組合指導(dǎo)計(jì)算機(jī)系統(tǒng)100執(zhí)行最佳實(shí)施例的虛擬存儲器管理方法。盡管已經(jīng)結(jié)合附圖所示的最佳實(shí)施例的細(xì)節(jié)描述了本發(fā)明,這些細(xì)節(jié)并非是要限制按權(quán)利要求書要求了權(quán)利的本發(fā)明的范圍。權(quán)利要求1.一種采用分析高速緩存管理虛擬存儲器的方法,包含以下步驟在分析高速緩存中存儲一個(gè)條目集合,所述條目集合的每個(gè)條目包括頁地址、頁地址的時(shí)間戳、和最近最少使用的(LRU)計(jì)數(shù);所述LRU計(jì)數(shù)對應(yīng)于對頁地址的每次訪問而被更新;利用所述LRU計(jì)數(shù)去除分析高速緩存中的條目;提供一個(gè)翻譯后備緩沖器(TLB),其包括一個(gè)用于存儲多個(gè)臨時(shí)固定的條目的第一TLB部分和一個(gè)用于存儲多個(gè)非固定的條目的第二TLB部分;響應(yīng)一個(gè)TLB中斷,用先進(jìn)先出算法在第二TLB部分載入一個(gè)條目,以替代所述非固定的條目;定期地用所識別的分析高速緩存中所述條目集合的具有最早時(shí)間戳的條目更新所述第一TLB部分。2.如權(quán)利要求1所述的方法,其中,所述所識別的分析高速緩存中所述條目集合的具有最早時(shí)間戳的條目代表最頻繁使用的頁表?xiàng)l目。3.權(quán)利要求1所述的方法,其中,定期地更新所述第一TLB部分的步驟包括以下步驟識別一個(gè)終止的遞減計(jì)數(shù)器,更新所述第一TLB部分,清空分析高速緩存,重新啟動遞減計(jì)數(shù)器。4.權(quán)利要求1所述的方法,其中,在分析高速緩存中存儲所述條目集合的步驟包括在分析高速緩存中存儲三十二個(gè)條目的步驟。5.權(quán)利要求1所述的方法,其中,所述提供包括用于存儲多個(gè)臨時(shí)固定的條目的第一TLB部分和用于存儲多個(gè)非固定的條目的第二TLB部分的翻譯后備緩沖器(TLB)的步驟包括提供用于存儲十六個(gè)臨時(shí)固定的條目的所述第一TLB部分的步驟。6.權(quán)利要求5所述的方法,包括提供用于存儲至少三十二個(gè)非固定的條目的所述第二TLB部分的步驟。7.權(quán)利要求1所述的方法,包括響應(yīng)更新所述第一TLB部分而清除所述第二TLB部分中的所述多個(gè)非固定的條目的步驟。8.權(quán)利要求1所述的方法,其中,定期地更新所述第一TLB部分的步驟包括下列步驟識別包含在所識別的分析高速緩存條目中的所述第二TLB部分內(nèi)的一個(gè)具有最早時(shí)間戳的條目,將所述條目從所述第二TLB部分刪除,將所述條目放入所述第一TLB部分。9.一種用于管理虛擬存儲器的裝置,包含翻譯后備緩沖器(TLB),所述TLB包括一個(gè)用于存儲多個(gè)臨時(shí)固定的條目的第一TLB部分和一個(gè)用于存儲多個(gè)非固定的條目的第二TLB部分;分析高速緩存,用于存儲一個(gè)條目集合,所述條目集合的每個(gè)條目包括頁地址、頁地址的時(shí)間戳、和最近最少使用的(LRU)計(jì)數(shù);所述LRU計(jì)數(shù)對應(yīng)于對頁地址的每次訪問而被更新;和虛擬存儲器管理程序,用于定期地用所識別的分析高速緩存中所述條目集合的具有最早時(shí)間戳的條目更新所述第一TLB部分。10.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,所述用于存儲多個(gè)非固定的條目的第二TLB部分是用先進(jìn)先出(FIFO)算法更新的。11.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,分析高速緩存是利用所述最近最少使用的(LRU)計(jì)數(shù)而被更新的。12.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,所述分析高速緩存存儲三十二個(gè)條目的所述集合。13.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,所述第一TLB部分用于存儲十六個(gè)臨時(shí)固定的條目。14.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,所述第二TLB部分用于存儲至少三十二個(gè)非固定的條目。15.權(quán)利要求9所述的用于管理虛擬存儲器的裝置,其中,響應(yīng)一個(gè)TLB中斷而在所述第二TLB部分中裝載一個(gè)條目。16.權(quán)利要求15所述的用于管理虛擬存儲器的裝置,其中,采用先進(jìn)先出算法替換一個(gè)所述非固定的條目以裝載所述條目。全文摘要用于虛擬存儲器的管理的方法和分析高速緩存包括在分析高速緩存中存儲的條目集合。條目集合的每個(gè)條目包括頁地址、頁地址的時(shí)間戳、和最近最少使用的(LRU)計(jì)數(shù);對應(yīng)對頁地址的每次訪問,相應(yīng)地更新LRU計(jì)數(shù)。利用LRU計(jì)數(shù)去除分析高速緩存中的條目。翻譯后備緩沖器(TLB)包括用于存儲多個(gè)臨時(shí)固定的條目的第一TLB部分和用于存儲多個(gè)非固定的條目的第二TLB部分。響應(yīng)一個(gè)TLB中斷,用先進(jìn)先出算法在第二TLB部分裝入條目,以替代非固定的條目。用所識別的分析高速緩存中的條目集合中具有最早時(shí)間戳的條目定期更新第一TLB部分。文檔編號G06F12/12GK1512352SQ20031010067公開日2004年7月14日申請日期2003年10月9日優(yōu)先權(quán)日2002年10月10日發(fā)明者K·A·博特米勒,B·W·杰科布斯,J·A·皮特里克,KA博特米勒,杰科布斯,皮特里克申請人:國際商業(yè)機(jī)器公司