專利名稱:用于存儲(chǔ)器管理的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)器管理,特別涉及作為高速緩存系統(tǒng)一部分的標(biāo)簽控制(tag controlled)預(yù)取緩沖器管理系統(tǒng)。
背景技術(shù):
在諸如計(jì)算機(jī)的處理系統(tǒng)中,要由處理器利用的數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器(例如,主存儲(chǔ)器,低級(jí)存儲(chǔ)器)中,并且控制邏輯電路響應(yīng)由處理器發(fā)出的請(qǐng)求而管理存儲(chǔ)器與處理器之間的數(shù)據(jù)傳輸。存儲(chǔ)在主存儲(chǔ)器中的數(shù)據(jù)通常包括要由處理器執(zhí)行的指令和要由處理器操作的數(shù)據(jù)。為簡(jiǎn)單起見(jiàn),除非上下文另外要求,否則指令和真實(shí)數(shù)據(jù)在此統(tǒng)稱作“數(shù)據(jù)”。主存儲(chǔ)器訪問(wèn)所花的時(shí)間相對(duì)于現(xiàn)代處理器的操作速度較長(zhǎng)。為了解決此問(wèn)題,通常在主存儲(chǔ)器與處理器之間介入具有較短訪問(wèn)時(shí)間的高速緩沖存儲(chǔ)器,并且控制邏輯電路管理將從主存儲(chǔ)器檢索的數(shù)據(jù)存儲(chǔ)在高速緩存中以及將數(shù)據(jù)從高速緩存提供給處理器。
典型的高速緩存以多條“線(line)”組織,每條線為來(lái)自主存儲(chǔ)器的數(shù)據(jù)線提供存儲(chǔ),其中來(lái)自主存儲(chǔ)器的數(shù)據(jù)線在長(zhǎng)度上可以為很多字節(jié)。當(dāng)處理器發(fā)出對(duì)包含在頁(yè)或塊內(nèi)的特定線中的數(shù)據(jù)的請(qǐng)求時(shí),控制邏輯電路確定該線是否存儲(chǔ)在高速緩存中。如果該線存儲(chǔ)在高速緩存中(即,存在高速緩存命中(cache hit)),則從高速緩存檢索該數(shù)據(jù)。如果該線未存儲(chǔ)在高速緩存中(即,存在高速緩存未命中(cache miss)),則必須從主存儲(chǔ)器檢索數(shù)據(jù),并且在發(fā)生該操作時(shí)停止處理器。由于高速緩存訪問(wèn)比低級(jí)存儲(chǔ)器訪問(wèn)快得多,因此顯然期望管理該系統(tǒng)以便實(shí)現(xiàn)較高的高速緩存命中與高速緩存未命中之比。
存儲(chǔ)器延遲對(duì)于計(jì)算機(jī)系統(tǒng)性能成為日益重要的因素。該日益提高的重要性意味著來(lái)自最慢芯片上高速緩存的高速緩存失敗(cache fault)在性能方面變得更加昂貴。一種減輕該問(wèn)題的方法是增大高速緩存的大小。增大高速緩存的大小可以提高性能,然而,高速緩沖存儲(chǔ)器與較慢的低級(jí)存儲(chǔ)器相比是昂貴的。因此,盡可能地高效利用高速緩沖存儲(chǔ)器空間是重要的。
一種提高高速緩沖存儲(chǔ)器系統(tǒng)的效率且減小存儲(chǔ)器延遲時(shí)間的方法是試圖預(yù)測(cè)處理器請(qǐng)求并且預(yù)先從存儲(chǔ)器檢索數(shù)據(jù)線。該技術(shù)稱作預(yù)取。預(yù)取可以通過(guò)注意基準(zhǔn)數(shù)據(jù)流的動(dòng)態(tài)屬性如順序和/或跨越(stride)訪問(wèn)來(lái)執(zhí)行。可選地,預(yù)取可以根據(jù)所存儲(chǔ)的信息來(lái)執(zhí)行。該所存儲(chǔ)的信息可能與頁(yè)內(nèi)或頁(yè)間的訪問(wèn)模式或者由編譯器和/或編程人員產(chǎn)生的提示相關(guān)。
在帶有預(yù)取的高速緩存結(jié)構(gòu)中,一種常見(jiàn)方法是具有保存已被預(yù)取的線的預(yù)取緩沖器。具有這樣的單獨(dú)緩沖器避免了由于錯(cuò)誤的預(yù)取而污染高速緩存。然而,經(jīng)常難以通過(guò)作為正在進(jìn)行的訪問(wèn)或所存儲(chǔ)的信息的函數(shù)而確定要預(yù)取什么的邏輯來(lái)協(xié)調(diào)該預(yù)取緩沖器的內(nèi)容。另外,搜索預(yù)取緩沖器可能需要單個(gè)操作的多個(gè)關(guān)聯(lián)查詢。
發(fā)明內(nèi)容
本發(fā)明的一方面是一種用于存儲(chǔ)器管理的系統(tǒng)。該系統(tǒng)包括與存儲(chǔ)器裝置通信的標(biāo)簽控制緩沖器。該存儲(chǔ)器裝置包括多個(gè)頁(yè),其分成多條可單獨(dú)尋址的線。該標(biāo)簽控制緩沖器包括預(yù)取緩沖器,其包括來(lái)自存儲(chǔ)器裝置的可單獨(dú)尋址線的至少之一。標(biāo)簽控制緩沖器還包括與預(yù)取緩沖器通信的標(biāo)簽高速緩存。該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,其中每個(gè)標(biāo)簽與存儲(chǔ)器裝置中的一頁(yè)相關(guān)聯(lián),并且每個(gè)標(biāo)簽包括指向預(yù)取緩沖器中的至少一條線的指針。對(duì)預(yù)取緩沖器中的線的訪問(wèn)由標(biāo)簽高速緩存控制。
本發(fā)明的另一方面是一種包括隨機(jī)存取存儲(chǔ)器的用于存儲(chǔ)器管理的系統(tǒng)。該隨機(jī)存取存儲(chǔ)器包括至少一條線。每條線與存儲(chǔ)器裝置中的一頁(yè)相關(guān)聯(lián),并且逐線地分配隨機(jī)存取存儲(chǔ)器中的空間。該系統(tǒng)還包括具有多個(gè)標(biāo)簽的第一高速緩存裝置。每個(gè)標(biāo)簽對(duì)應(yīng)于存儲(chǔ)器裝置中的一頁(yè),并且每個(gè)標(biāo)簽表示與該標(biāo)簽相關(guān)聯(lián)的至少一條線在隨機(jī)存取存儲(chǔ)器中的位置。
本發(fā)明的另一方面是一種用于存儲(chǔ)器管理的方法。該方法包括從第一高速緩存裝置接收失敗通知。該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符。訪問(wèn)第二高速緩存裝置以確定隨機(jī)存取存儲(chǔ)器中的線是否對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符。該隨機(jī)存取存儲(chǔ)器包括與存儲(chǔ)器裝置中的頁(yè)相關(guān)聯(lián)的至少一條線。第二高速緩存裝置包括多個(gè)標(biāo)簽,其各自對(duì)應(yīng)于存儲(chǔ)器裝置中的一頁(yè),并且每個(gè)標(biāo)簽表示與對(duì)應(yīng)于該標(biāo)簽的頁(yè)相關(guān)聯(lián)的至少一條線在隨機(jī)存取存儲(chǔ)器中的位置。響應(yīng)導(dǎo)致在隨機(jī)存取存儲(chǔ)器中定位對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線的訪問(wèn),將來(lái)自隨機(jī)存取存儲(chǔ)器的對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線傳輸?shù)降谝桓咚倬彺嫜b置。在第二高速緩存裝置中更新對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,以反映該傳輸。
本發(fā)明的另一方面是一種用于存儲(chǔ)器管理的方法。該方法包括從請(qǐng)求者接收失敗通知。該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符。該方法還包括確定對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽是否位于標(biāo)簽高速緩存中。該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,每個(gè)標(biāo)簽包括至少一個(gè)指向預(yù)取緩沖器中的線的指針,并且標(biāo)簽高速緩存指定至少一條預(yù)取線。響應(yīng)定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者,并且更新對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽以反映該傳輸。響應(yīng)未定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,將對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的新標(biāo)簽插入到標(biāo)簽高速緩存中。另外,將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者,并且通過(guò)標(biāo)簽高速緩存將包括在新標(biāo)簽中的預(yù)取線插入到預(yù)取緩沖器中。
本發(fā)明的另一方面是一種用于存儲(chǔ)器管理的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括一種存儲(chǔ)介質(zhì),其可由處理電路讀取,并且存儲(chǔ)用于由處理電路執(zhí)行以執(zhí)行一種包括從請(qǐng)求者接收失敗通知的方法的指令。該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符。該方法還包括確定對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽是否位于標(biāo)簽高速緩存中。該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,每個(gè)標(biāo)簽包括至少一個(gè)指向預(yù)取緩沖器中的線的指針,并且標(biāo)簽高速緩存指定至少一條預(yù)取線。響應(yīng)定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者,并且更新對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽以反映該傳輸。響應(yīng)未定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,將對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的新標(biāo)簽插入到標(biāo)簽高速緩存中。另外,將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者,并且通過(guò)標(biāo)簽高速緩存將包括在新標(biāo)簽中的預(yù)取線插入到預(yù)取緩沖器中。
現(xiàn)在參照附圖,其中相同的單元在若干附圖中采用相同的附圖標(biāo)記圖1是根據(jù)本發(fā)明示例性實(shí)施例的包括預(yù)取緩沖器和標(biāo)簽高速緩存的高速緩存系統(tǒng)的方框圖;圖2示出本發(fā)明示例性實(shí)施例中的標(biāo)簽內(nèi)容;圖3是本發(fā)明示例性實(shí)施例中的用于執(zhí)行預(yù)取的方法的流程圖;圖4是可由本發(fā)明示例性實(shí)施例利用的標(biāo)簽高速緩存的更替邏輯的流程圖;以及圖5是預(yù)取緩沖器中的存儲(chǔ)分配的示例性實(shí)施例的方框圖。
具體實(shí)施例方式
本發(fā)明的示例性實(shí)施例包括具有由標(biāo)簽控制的內(nèi)容的預(yù)取緩沖器。每個(gè)標(biāo)簽對(duì)應(yīng)于存儲(chǔ)器中的一頁(yè)。該標(biāo)簽包括頁(yè)內(nèi)各線的訪問(wèn)歷史,或者對(duì)應(yīng)于該標(biāo)簽的頁(yè)與其他頁(yè)之間的訪問(wèn)歷史。為了確定來(lái)自頁(yè)的特定線是否在預(yù)取緩沖器中,使用標(biāo)簽執(zhí)行搜索。這些標(biāo)簽包括指向存儲(chǔ)在預(yù)取緩沖器中的線在預(yù)取緩沖器(例如,共享存儲(chǔ)器池)中的位置的指針。標(biāo)簽還保存相關(guān)引用信息以幫助將來(lái)的預(yù)取。這些標(biāo)簽控制預(yù)取緩沖器中線的存在和/或不存在,并且對(duì)預(yù)取緩沖器中的線的所有訪問(wèn)都通過(guò)標(biāo)簽。該設(shè)計(jì)的優(yōu)點(diǎn)是所有搜索都以保存標(biāo)簽的結(jié)構(gòu)為中心,從而避免單個(gè)操作的多個(gè)關(guān)聯(lián)查詢。此外,該設(shè)計(jì)可以幫助確保最近進(jìn)入的標(biāo)簽被保證其預(yù)取線的空間。
本發(fā)明的示例性實(shí)施例包括具有第二級(jí)(L2)高速緩存、預(yù)取緩沖器和包含最近引用的標(biāo)簽的標(biāo)簽高速緩存的存儲(chǔ)器系統(tǒng)。標(biāo)簽高速緩存中的每個(gè)標(biāo)簽與主存儲(chǔ)器或低級(jí)存儲(chǔ)器中的單獨(dú)頁(yè)相關(guān)聯(lián)。在本發(fā)明的示例性實(shí)施例中,低級(jí)存儲(chǔ)器內(nèi)的各個(gè)頁(yè)為四千(4k)字節(jié)。標(biāo)簽保存在存儲(chǔ)器中,并且在引用預(yù)取緩沖器時(shí)被訪問(wèn)。搜索與低級(jí)存儲(chǔ)器中的給定頁(yè)相關(guān)聯(lián)的標(biāo)簽采用在高速緩沖存儲(chǔ)器技術(shù)領(lǐng)域內(nèi)公知的任何方式(例如,通過(guò)一致類(congruence class)內(nèi)的關(guān)聯(lián)搜索)來(lái)執(zhí)行。在本發(fā)明的示例性實(shí)施例中,為簡(jiǎn)單起見(jiàn),假定標(biāo)簽高速緩存是完全關(guān)聯(lián)的。這些標(biāo)簽包括用于預(yù)取或更替決策的信息。在本發(fā)明的示例性實(shí)施例中,這些標(biāo)簽包括有關(guān)假如在其一條線上發(fā)生了高速緩存失敗則應(yīng)當(dāng)從頁(yè)取出什么線的信息、以及一些標(biāo)志位。預(yù)取緩沖器隨同標(biāo)簽高速緩存一起統(tǒng)稱作標(biāo)簽控制緩沖器(TCB)。
特定事件(例如,對(duì)頁(yè)內(nèi)的一條線的引用)可導(dǎo)致(例如,從頁(yè)表)取出頁(yè)標(biāo)簽并且將其置于標(biāo)簽高速緩存中,從而有可能更替一個(gè)或多個(gè)其他標(biāo)簽。使用保存在標(biāo)簽中的信息從與該標(biāo)簽以及有可能地來(lái)自其他頁(yè)的標(biāo)簽對(duì)應(yīng)的頁(yè)預(yù)取線。將所取線置于共享預(yù)取緩沖器中,其中該共享預(yù)取緩沖器可由居于處理器集成電路上的共享存儲(chǔ)器池實(shí)現(xiàn)。將與標(biāo)簽相關(guān)聯(lián)的預(yù)取線置于預(yù)取緩沖器中通過(guò)由硬件和/或軟件維護(hù)的空閑空間列表確定的位置上。如果對(duì)于預(yù)取線沒(méi)有足夠的空間,則從標(biāo)簽高速緩存中刪除其他標(biāo)簽,并且將其寫(xiě)回到存儲(chǔ)器以便釋放足夠的空間。另外,從預(yù)取緩沖器刪除與被刪除標(biāo)簽對(duì)應(yīng)的預(yù)取緩沖器中的線。由于引用線(即,為了解決L2高速緩存失敗),因此可以從緩沖器刪除這些線,并且將其置于L2高速緩存中。然后,將預(yù)取緩沖器中的這些線所占的空間置于空閑空間列表中。更新所更替的標(biāo)簽,并且將其寫(xiě)回到存儲(chǔ)器。
圖1是根據(jù)本發(fā)明示例性實(shí)施例的包括L2高速緩存106、低級(jí)存儲(chǔ)器108、預(yù)取緩沖器104、標(biāo)簽高速緩存102和處理器114的示例性高速緩存系統(tǒng)的方框圖。為了示例說(shuō)明起見(jiàn),假定低級(jí)存儲(chǔ)器108分成多頁(yè),每頁(yè)為4K字節(jié)。另外,假定高速緩存線包含一百二十八(128)字節(jié),從而每頁(yè)存在三十二(32)線。標(biāo)簽控制緩沖器(TCB)110包括標(biāo)簽高速緩存102和預(yù)取緩沖器104。如圖1所示,TCB110與高速緩存106和低級(jí)存儲(chǔ)器108通信,以允許預(yù)取緩沖器將線傳輸?shù)礁咚倬彺?06中,從低級(jí)存儲(chǔ)器讀取數(shù)據(jù),并且將標(biāo)簽讀取/寫(xiě)入到低級(jí)存儲(chǔ)器108中。另外,高速緩存106與低級(jí)存儲(chǔ)器108通信,以在這兩者之間傳送數(shù)據(jù)。TCB110還與處理器114通信。處理器114包括實(shí)現(xiàn)在此所述的過(guò)程的指令,并且可以在物理上位于可被TCB110訪問(wèn)的各種裝置內(nèi)(例如,在TCB110上,在存儲(chǔ)器控制器上)。另外,在本技術(shù)領(lǐng)域內(nèi)是公知的,這些指令可以在物理上位于一個(gè)或多個(gè)處理器114上。
圖1所示的標(biāo)簽高速緩存102包括最近引用的TCB標(biāo)簽112,其包括指向預(yù)取緩沖器104中的一個(gè)或多個(gè)位置的指針。另外,TCB標(biāo)簽112可包括與保存在預(yù)取緩沖器104中的線相關(guān)的其他信息。在本發(fā)明的示例性實(shí)施例中,標(biāo)簽高速緩存102被組織為標(biāo)準(zhǔn)高速緩存結(jié)構(gòu),其中TCB標(biāo)簽112的存儲(chǔ)分成一組等價(jià)類,其中通過(guò)等價(jià)類搜索TCB標(biāo)簽112。在本技術(shù)領(lǐng)域內(nèi)公知的其他高速緩存結(jié)構(gòu)可以由標(biāo)簽高速緩存102實(shí)現(xiàn)。在本發(fā)明的示例性實(shí)施例中,對(duì)預(yù)取緩沖器104的內(nèi)容的訪問(wèn)僅通過(guò)標(biāo)簽高速緩存102。
圖2示出本發(fā)明示例性實(shí)施例中的標(biāo)簽內(nèi)容。TCB標(biāo)簽112存儲(chǔ)在標(biāo)簽高速緩存102中,而存儲(chǔ)器標(biāo)簽216存儲(chǔ)在低級(jí)存儲(chǔ)器108中。TCB標(biāo)簽112的示例性實(shí)施例包括頁(yè)標(biāo)識(shí)字段202、存在位字段204、歷史向量字段206、指針字段208以及標(biāo)志字段210。頁(yè)標(biāo)識(shí)字段202包括低級(jí)存儲(chǔ)器108中的頁(yè)地址(即真實(shí)地址)。存在位字段204為頁(yè)中的每線都包括一位。如前所述,對(duì)于4K的頁(yè),由于線為一百二十八(128)字節(jié),因此每頁(yè)存在三十二(32)線。因此,在存在位字段204中包括有三十二(32)個(gè)存在位,其中每位對(duì)應(yīng)于頁(yè)中的不同線。如果對(duì)應(yīng)線當(dāng)前包括在預(yù)取緩沖器104中,則將存在位設(shè)為“1”,而如果對(duì)應(yīng)線當(dāng)前不包括在預(yù)取緩沖器104中,則將存在位設(shè)為“0”。
TCB標(biāo)簽112中的歷史向量字段206包括關(guān)于在過(guò)去如何引用了頁(yè)內(nèi)的線的信息的集合。當(dāng)訪問(wèn)TCB標(biāo)簽112并且引用線時(shí),可以更新該字段,并且使用其來(lái)幫助確定應(yīng)當(dāng)將什么數(shù)據(jù)包括在預(yù)取緩沖器104中。在本發(fā)明的示例性實(shí)施例中,歷史向量字段206被存儲(chǔ)為包含三十二(32)個(gè)來(lái)自該頁(yè)的最近線引用的歷史序列或向量。指針字段208包含表示該頁(yè)內(nèi)當(dāng)前存儲(chǔ)在預(yù)取緩沖器104中的線的位置。指針字段208包括指向與通過(guò)存在位字段204的值確定當(dāng)前位于預(yù)取緩沖器104中的來(lái)自該頁(yè)的每線對(duì)應(yīng)的預(yù)取緩沖器位置的指針。標(biāo)志字段210包括可用于其他目的如頁(yè)狀態(tài)的備用位。
當(dāng)從標(biāo)簽高速緩存102逐出TCB標(biāo)簽112時(shí),將TCB標(biāo)簽112的子集作為存儲(chǔ)器標(biāo)簽216存儲(chǔ)回到低級(jí)存儲(chǔ)器108中。圖2所示的存儲(chǔ)器標(biāo)簽216包括頁(yè)標(biāo)識(shí)字段202、引用歷史字段212和標(biāo)志字段214。頁(yè)標(biāo)識(shí)字段202是前面關(guān)于TCB標(biāo)簽112所述的相同字段,并且它包括真實(shí)地址。在本發(fā)明的示例性實(shí)施例中,引用歷史字段212包括與TCB標(biāo)簽112中的歷史向量字段206相同的數(shù)據(jù)。在可選示例性實(shí)施例中,存儲(chǔ)器標(biāo)簽216中的引用歷史字段212包括TCB標(biāo)簽112中的歷史向量字段206的子集和/或不同于其的附加數(shù)據(jù)。引用歷史字段212中的數(shù)據(jù)可以用來(lái)確定當(dāng)對(duì)應(yīng)于頁(yè)的標(biāo)簽進(jìn)入標(biāo)簽高速緩存202時(shí)應(yīng)當(dāng)預(yù)取來(lái)自該頁(yè)的哪些線。標(biāo)志字段214包含可用于其他目的的備用位。參照?qǐng)D2所述的TCB標(biāo)簽112和存儲(chǔ)器標(biāo)簽216是一種實(shí)現(xiàn)方法的例子。在本技術(shù)領(lǐng)域內(nèi)是公知的,它們可以通過(guò)增加和/或刪除字段來(lái)修改而不脫離本發(fā)明的精神。
圖3是本發(fā)明示例性實(shí)施例中的用于執(zhí)行預(yù)取的方法的流程圖。在步驟302,由于引用當(dāng)前未在高速緩存106中的線,發(fā)生高速緩存失敗。當(dāng)發(fā)生高速緩存失敗時(shí),從預(yù)取緩沖器104或者低級(jí)存儲(chǔ)器108取出失敗線。在步驟304,進(jìn)行檢查,以確定與失敗線相關(guān)聯(lián)的TCB標(biāo)簽112當(dāng)前是否在標(biāo)簽高速緩存102中。這通過(guò)訪問(wèn)標(biāo)簽高速緩存102并且在頁(yè)標(biāo)識(shí)字段202中搜索匹配與失敗線相關(guān)聯(lián)的頁(yè)標(biāo)識(shí)的頁(yè)標(biāo)識(shí)來(lái)執(zhí)行。如上所述,使用標(biāo)準(zhǔn)高速緩存方法來(lái)執(zhí)行搜索,例如執(zhí)行一致類內(nèi)的關(guān)聯(lián)搜索。
如果與低級(jí)存儲(chǔ)器中存儲(chǔ)了失敗線的頁(yè)對(duì)應(yīng)的TCB標(biāo)簽112位于標(biāo)簽高速緩存102中,則執(zhí)行步驟306,以將失敗線取到高速緩存106中。在存在位字段204中檢查對(duì)應(yīng)于失敗線的位的值。如果該位值表示失敗線位于預(yù)取緩沖器中,則將該線移到高速緩存106中并且將其從預(yù)取緩沖器中刪除。由于對(duì)預(yù)取緩沖器104的訪問(wèn)通過(guò)標(biāo)簽高速緩存102,因此通過(guò)將對(duì)應(yīng)于線的位值變至“0”來(lái)有效地刪除線。另外,可以刪除指針字段208中對(duì)應(yīng)于失敗線的指針的值,以便從預(yù)取緩沖器中刪除失敗線??蛇x地,與失敗線相關(guān)聯(lián)的位值可以表示失敗線當(dāng)前不位于預(yù)取緩沖器中(例如,該位值的值為“0”)。在這種情況下,將失敗線從低級(jí)存儲(chǔ)器直接取到高速緩存106中。一旦將該線取到高速緩存106中,則處理在步驟312結(jié)束。
如果在步驟304確定與低級(jí)存儲(chǔ)器中存儲(chǔ)了失敗線的頁(yè)對(duì)應(yīng)的TCB標(biāo)簽112不位于標(biāo)簽高速緩存102中,則執(zhí)行步驟308,以將與失敗線相關(guān)聯(lián)的存儲(chǔ)器標(biāo)簽216取到標(biāo)簽高速緩存102中,并且創(chuàng)建與包含失敗線的頁(yè)相關(guān)聯(lián)的TCB標(biāo)簽112。存儲(chǔ)器標(biāo)簽216可以位于低級(jí)存儲(chǔ)器108或高速緩存106中。一旦向標(biāo)簽高速緩存102添加了與失敗線相關(guān)聯(lián)的TCB標(biāo)簽112,則如前所述,通過(guò)將失敗線從低級(jí)存儲(chǔ)器直接取到高速緩存106中,執(zhí)行步驟306。一旦將該線取到高速緩存106中,則處理在步驟312結(jié)束。在可選示例性實(shí)施例中,顛倒執(zhí)行步驟306和308的次序,從而導(dǎo)致首先將線取到高速緩存106中,然后在標(biāo)簽高速緩存102中創(chuàng)建TCB標(biāo)簽112。在另一個(gè)可選示例性實(shí)施例中,可以同時(shí)執(zhí)行步驟306和308。
除了步驟306之外,一旦執(zhí)行了步驟308,如果與失敗線相關(guān)聯(lián)的線沒(méi)有已經(jīng)包含在高速緩存106或預(yù)取緩沖器104中,則執(zhí)行步驟310,以將關(guān)聯(lián)線取到預(yù)取緩沖器104中。在本發(fā)明的示例性實(shí)施例中,關(guān)聯(lián)線是在TCB標(biāo)簽112的歷史向量字段206中具有條目的那些線。在本技術(shù)領(lǐng)域內(nèi)公知的任何用于確定要預(yù)取的線的算法可由本發(fā)明的示例性實(shí)施例實(shí)現(xiàn)。這可導(dǎo)致附加的TCB標(biāo)簽112進(jìn)入標(biāo)簽高速緩存102和/或附加的線進(jìn)入預(yù)取緩沖器104。在步驟310,更新TCB標(biāo)簽112的存在位字段204,以反映包含在預(yù)取緩沖器104中的對(duì)應(yīng)線。當(dāng)步驟310完成時(shí),處理在步驟312結(jié)束。
圖4是可由本發(fā)明示例性實(shí)施例利用的標(biāo)簽高速緩存的更替邏輯的流程圖。為了簡(jiǎn)單起見(jiàn),在描述高速緩存更替邏輯中,假定對(duì)于標(biāo)簽高速緩存102采用最近最少使用(LRU)更替算法。在本技術(shù)領(lǐng)域內(nèi)公知的其他高速緩存更替邏輯也可以由本發(fā)明的示例性實(shí)施例利用。對(duì)于LRU更替邏輯,TCB標(biāo)簽112根據(jù)它們被引用的新近程度來(lái)排序。這里,引用包括讀取或修改TCB標(biāo)簽112的操作。在步驟402,通過(guò)取出和擴(kuò)增存儲(chǔ)器標(biāo)簽216來(lái)創(chuàng)建當(dāng)前TCB標(biāo)簽112。按照次序?qū)?dāng)前TCB標(biāo)簽112插入到標(biāo)簽高速緩存102中的最近最多引用的位置上??蛇x地,在步驟402,通過(guò)讀取或修改已經(jīng)位于標(biāo)簽高速緩存102中的TCB標(biāo)簽112來(lái)創(chuàng)建當(dāng)前TCB標(biāo)簽112。
在步驟404,確定對(duì)于TCB標(biāo)簽112,在標(biāo)簽高速緩存102中是否存在足夠空間。如果在標(biāo)簽高速緩存102中存在足夠空間,則執(zhí)行步驟406,以如果當(dāng)前TCB標(biāo)簽112沒(méi)有已經(jīng)存在于標(biāo)簽高速緩存102中,則將其插入到標(biāo)簽高速緩存102中,并且處理在步驟412繼續(xù)。可選地,如果在標(biāo)簽高速緩存102中需要附加空間,則執(zhí)行步驟410,并且從標(biāo)簽高速緩存102刪除最近最少引用的TCB標(biāo)簽112。該刪除通過(guò)更新TCB標(biāo)簽112以創(chuàng)建存儲(chǔ)器標(biāo)簽216并且將存儲(chǔ)器標(biāo)簽216寫(xiě)回到低級(jí)存儲(chǔ)器108來(lái)執(zhí)行。另外,然后將當(dāng)前保存在預(yù)取緩沖器中的由TCB標(biāo)簽112引用的來(lái)自該頁(yè)的線添加到空閑空間列表。在本發(fā)明的示例性實(shí)施例中,所寫(xiě)回的存儲(chǔ)器標(biāo)簽216包括頁(yè)標(biāo)識(shí)符字段202中的頁(yè)標(biāo)識(shí)符、引用歷史向量字段212中的來(lái)自該頁(yè)的三十二(32)條最近最多引用的線的引用歷史向量、以及上述標(biāo)志位字段214。
接下來(lái),在步驟412,進(jìn)行檢查以確定在預(yù)取緩沖器104中對(duì)于與當(dāng)前TCB標(biāo)簽112相關(guān)聯(lián)的當(dāng)前預(yù)取線是否存在足夠的空間。如果對(duì)于當(dāng)前預(yù)取線存在足夠的空間,則執(zhí)行步驟414,以將當(dāng)前預(yù)取線插入到預(yù)取緩沖器104中。如前所述,這通過(guò)將向緩沖器添加當(dāng)前預(yù)取線并且更新對(duì)應(yīng)TCB標(biāo)簽112以表示預(yù)取緩沖器104中新線的存在(通過(guò)將存在位字段204中的對(duì)應(yīng)位設(shè)為“1”)和位置(通過(guò)更新指針字段208中的數(shù)據(jù))來(lái)執(zhí)行。然后,處理在步驟408結(jié)束。可選地,如果在步驟412確定對(duì)于與當(dāng)前TCB標(biāo)簽112相關(guān)聯(lián)的當(dāng)前預(yù)取線不存在足夠的空間,則執(zhí)行步驟416以釋放預(yù)取緩沖器104中的空間。在步驟416,刪除TCB標(biāo)簽112和預(yù)取緩沖器104中的關(guān)聯(lián)線,直到在預(yù)取緩沖器104中對(duì)于與當(dāng)前TCB標(biāo)簽112相關(guān)聯(lián)的當(dāng)前預(yù)取線存在足夠的空閑空間為止。這可以采用LRU算法來(lái)執(zhí)行。然后,處理繼續(xù)到如前所述的步驟414。
圖5是預(yù)取緩沖器104中的存儲(chǔ)分配的示例性實(shí)施例的方框圖。圖5示出包含用于在預(yù)取緩沖器104中保存高速緩存線的可用位置列表的空閑空間列表502的操作和使用。當(dāng)通過(guò)刪除標(biāo)簽高速緩存102中的條目如上所述釋放空間時(shí),將由對(duì)應(yīng)線使用的位置添加到空閑空間列表502。當(dāng)分配空間時(shí),從空閑空間列表502刪除附加空間的位置。不管是硬件和/或軟件,在本技術(shù)領(lǐng)域內(nèi)公知的任何數(shù)據(jù)結(jié)構(gòu)和/或方法都可用來(lái)實(shí)現(xiàn)空閑空間列表502。例如,空閑空間列表502可以采用鏈接表和關(guān)聯(lián)邏輯來(lái)實(shí)現(xiàn)。
本發(fā)明的示例性實(shí)施例可以與包括與上述具體所述不同的尺寸的頁(yè)、線、標(biāo)記和高速緩存的系統(tǒng)一起使用。另外,本發(fā)明的示例性實(shí)施例不局限于特定級(jí)別的高速緩存(例如,如前所述的L2),而是它可以應(yīng)用于存儲(chǔ)分級(jí)結(jié)構(gòu)的任何級(jí)別。
本發(fā)明的示例性實(shí)施例包括使預(yù)取緩沖器中預(yù)取線的位置由標(biāo)簽高速緩存中的標(biāo)簽條目?jī)?nèi)的指針來(lái)指定。該設(shè)計(jì)的優(yōu)點(diǎn)是所有搜索都以保存標(biāo)簽的結(jié)構(gòu)為中心,從而避免了單個(gè)操作的多個(gè)關(guān)聯(lián)查詢。這將導(dǎo)致當(dāng)試圖隨同居于預(yù)取緩沖器中的來(lái)自同一頁(yè)的任何其他線一起訪問(wèn)可能位于預(yù)取緩沖器中的高速緩存線時(shí)只需一次搜索,不過(guò)這需要找到關(guān)聯(lián)標(biāo)簽以及高速緩存線。另外,當(dāng)從標(biāo)簽高速緩存刷新(flush)標(biāo)簽并且將其寫(xiě)回到存儲(chǔ)器時(shí),釋放預(yù)取緩沖器中其關(guān)聯(lián)線的空間。這可以幫助確保最近進(jìn)入的標(biāo)簽被保證其關(guān)聯(lián)預(yù)取線的空間。
如上所述,本發(fā)明的實(shí)施例可采取用于執(zhí)行這些過(guò)程的計(jì)算機(jī)實(shí)現(xiàn)過(guò)程和裝置的形式來(lái)實(shí)施。本發(fā)明的實(shí)施例還可采取計(jì)算機(jī)程序代碼的形式來(lái)實(shí)施,該計(jì)算機(jī)程序代碼包含在有形介質(zhì)如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或任何其他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中實(shí)施的指令,其中,當(dāng)將該計(jì)算機(jī)程序代碼裝載到計(jì)算機(jī)中并且由其執(zhí)行時(shí),該計(jì)算機(jī)成為用于實(shí)現(xiàn)本發(fā)明的裝置。本發(fā)明的實(shí)施例還可以采取例如無(wú)論是存儲(chǔ)在存儲(chǔ)介質(zhì)中,裝載到計(jì)算機(jī)中并且/或者由其執(zhí)行,還是在某傳輸介質(zhì)上例如在電線或電纜上、通過(guò)光纖或者通過(guò)電磁輻射而傳輸?shù)挠?jì)算機(jī)程序代碼的形式來(lái)實(shí)施,當(dāng)將該計(jì)算機(jī)程序代碼裝載到計(jì)算機(jī)中并且由其執(zhí)行時(shí),該計(jì)算機(jī)成為用于實(shí)現(xiàn)本發(fā)明的裝置。當(dāng)在通用微處理器上實(shí)現(xiàn)時(shí),該計(jì)算機(jī)程序代碼段配置微處理器以創(chuàng)建特定邏輯電路。
雖然本發(fā)明是參照示例性實(shí)施例來(lái)描述的,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以進(jìn)行各種改變并且用等價(jià)物代替其單元而不脫離本發(fā)明的范圍。另外,可以進(jìn)行很多修改以使特定情形或材料適于本發(fā)明的講授而不脫離其本質(zhì)范圍。因此,本發(fā)明不旨在局限于作為被認(rèn)為是實(shí)施本發(fā)明的最佳方式而公開(kāi)的特定實(shí)施例,而是本發(fā)明應(yīng)當(dāng)包括落在所附權(quán)利要求的范圍內(nèi)的所有實(shí)施例。而且,使用術(shù)語(yǔ)第一、第二等不表示任何次序或重要度,而是術(shù)語(yǔ)第一、第二等用來(lái)相互區(qū)分各單元。
權(quán)利要求
1.一種用于存儲(chǔ)器管理的系統(tǒng),該系統(tǒng)包括標(biāo)簽控制緩沖器,其與存儲(chǔ)器裝置通信,所述存儲(chǔ)器裝置包括多個(gè)頁(yè),該頁(yè)分成多條可單獨(dú)尋址的線,其中所述標(biāo)簽控制緩沖器包括預(yù)取緩沖器,其包括來(lái)自存儲(chǔ)器裝置的可單獨(dú)尋址線的至少之一;以及標(biāo)簽高速緩存,其與預(yù)取緩沖器通信,該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,其中每個(gè)所述標(biāo)簽與存儲(chǔ)器裝置中的一頁(yè)相關(guān)聯(lián),每個(gè)所述標(biāo)簽包括指向預(yù)取緩沖器中的至少一條線的指針,并且對(duì)預(yù)取緩沖器中的線的訪問(wèn)由標(biāo)簽高速緩存控制。
2.如權(quán)利要求1所述的系統(tǒng),其中訪問(wèn)包括將新線插入到預(yù)取緩沖器中、從預(yù)取緩沖器刪除一條線、以及在預(yù)取緩沖器中讀取一條線中的至少之一。
3.如權(quán)利要求1所述的系統(tǒng),其中標(biāo)簽控制緩沖器響應(yīng)來(lái)自標(biāo)簽高速緩存的命令將預(yù)取緩沖器中的一條線傳輸?shù)礁咚倬彺嫜b置。
4.如權(quán)利要求1所述的系統(tǒng),其中預(yù)取緩沖器由隨機(jī)存取存儲(chǔ)器實(shí)現(xiàn)。
5.如權(quán)利要求1所述的系統(tǒng),其中響應(yīng)從標(biāo)簽高速緩存刪除一個(gè)標(biāo)簽,刪除與標(biāo)簽高速緩存中的該標(biāo)簽對(duì)應(yīng)的預(yù)取緩沖器中的所有線。
6.如權(quán)利要求1所述的系統(tǒng),其中該系統(tǒng)還包括實(shí)現(xiàn)標(biāo)簽高速緩存中的標(biāo)簽和預(yù)取緩沖器中的線的更替算法的指令,其中當(dāng)將新標(biāo)簽插入到標(biāo)簽高速緩存中時(shí),刪除足夠數(shù)目的標(biāo)簽,以為新標(biāo)簽和與新標(biāo)簽相關(guān)聯(lián)的預(yù)取線騰出空間。
7.如權(quán)利要求6所述的系統(tǒng),其中將所刪除的標(biāo)簽寫(xiě)回到低級(jí)存儲(chǔ)器。
8.如權(quán)利要求6所述的系統(tǒng),其中將所刪除的標(biāo)簽寫(xiě)回到低級(jí)存儲(chǔ)器,并且低級(jí)存儲(chǔ)器中的標(biāo)簽包括頁(yè)標(biāo)識(shí)符字段和引用歷史字段。
9.如權(quán)利要求8所述的系統(tǒng),其中低級(jí)存儲(chǔ)器中的標(biāo)簽還包括標(biāo)志字段。
10.如權(quán)利要求1所述的系統(tǒng),其中該系統(tǒng)還包括實(shí)現(xiàn)包括以下操作的方法的指令響應(yīng)插入、刪除、修改和引用預(yù)取緩沖器中的線,更新標(biāo)簽高速緩存中的標(biāo)簽。
11.如權(quán)利要求1所述的系統(tǒng),其中該系統(tǒng)還包括實(shí)現(xiàn)包括以下操作的方法的指令從高速緩存裝置接收失敗通知,該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符;訪問(wèn)標(biāo)簽高速緩存以確定預(yù)取緩沖器中的一條線是否對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符;響應(yīng)在預(yù)取緩沖器中定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線,將來(lái)自預(yù)取緩沖器的對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線傳輸?shù)礁咚倬彺嫜b置;以及更新標(biāo)簽高速緩存,以反映該傳輸。
12.如權(quán)利要求1所述的系統(tǒng),其中標(biāo)簽高速緩存中的每個(gè)標(biāo)簽包括頁(yè)標(biāo)識(shí)符字段、存在位字段、歷史向量字段和指針字段。
13.如權(quán)利要求12所述的系統(tǒng),其中標(biāo)簽高速緩存中的每個(gè)標(biāo)簽還包括標(biāo)志字段。
14.一種用于存儲(chǔ)器管理的系統(tǒng),該系統(tǒng)包括隨機(jī)存取存儲(chǔ)器,其包括至少一條線,其中每條線與存儲(chǔ)器裝置中的一頁(yè)相關(guān)聯(lián),并且逐線地分配隨機(jī)存取存儲(chǔ)器中的空間;以及第一高速緩存裝置,其包括多個(gè)標(biāo)簽,其中每個(gè)標(biāo)簽對(duì)應(yīng)于存儲(chǔ)器裝置中的一頁(yè),并且每個(gè)標(biāo)簽表示與該頁(yè)相關(guān)聯(lián)的至少一條線在隨機(jī)存取存儲(chǔ)器中的位置。
15.如權(quán)利要求14所述的系統(tǒng),還包括計(jì)算機(jī)處理器,該計(jì)算機(jī)處理器包括響應(yīng)來(lái)自第一高速緩存裝置的命令將隨機(jī)存取存儲(chǔ)器中的一條線傳輸?shù)降诙咚倬彺嫜b置的指令
16.如權(quán)利要求14所述的系統(tǒng),其中響應(yīng)從標(biāo)簽高速緩存刪除一個(gè)標(biāo)簽,刪除與第一高速緩存裝置中的該標(biāo)簽對(duì)應(yīng)的隨機(jī)存取存儲(chǔ)器中的所有線。
17.如權(quán)利要求14所述的系統(tǒng),還包括計(jì)算機(jī)處理器,該計(jì)算機(jī)處理器包括實(shí)現(xiàn)第一高速緩存裝置中的標(biāo)簽和隨機(jī)存取存儲(chǔ)器中的線的更替算法的指令,其中當(dāng)將新標(biāo)簽插入到第一高速緩存裝置中時(shí),刪除足夠數(shù)目的標(biāo)簽,以為新標(biāo)簽和與新標(biāo)簽相關(guān)聯(lián)的預(yù)取線騰出空間。
18.如權(quán)利要求17所述的系統(tǒng),其中將所刪除的標(biāo)簽寫(xiě)回到低級(jí)存儲(chǔ)器。
19.如權(quán)利要求17所述的系統(tǒng),其中將所刪除的標(biāo)簽寫(xiě)回到低級(jí)存儲(chǔ)器,并且低級(jí)存儲(chǔ)器中的標(biāo)簽包括頁(yè)標(biāo)識(shí)符字段和引用歷史字段。
20.如權(quán)利要求19所述的系統(tǒng),其中低級(jí)存儲(chǔ)器中的標(biāo)簽還包括標(biāo)志字段。
21.如權(quán)利要求14所述的系統(tǒng),還包括計(jì)算機(jī)處理器,該計(jì)算機(jī)處理器包括實(shí)現(xiàn)用于響應(yīng)插入、刪除、修改和引用隨機(jī)存取存儲(chǔ)器中的線而更新第一高速緩存裝置中的標(biāo)簽的方法的指令。
22.如權(quán)利要求14所述的系統(tǒng),其中第一高速緩存裝置中的每個(gè)標(biāo)簽包括頁(yè)標(biāo)識(shí)符字段、存在位字段、歷史向量字段和指針字段。
23.如權(quán)利要求22所述的系統(tǒng),其中第一高速緩存裝置中的每個(gè)標(biāo)簽還包括標(biāo)志字段。
24.一種用于存儲(chǔ)器管理的方法,包括從第一高速緩存裝置接收失敗通知,該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符;訪問(wèn)第二高速緩存裝置以確定隨機(jī)存取存儲(chǔ)器中的線是否對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符,其中該隨機(jī)存取存儲(chǔ)器包括與存儲(chǔ)器裝置中的頁(yè)相關(guān)聯(lián)的至少一條線;第二高速緩存裝置包括多個(gè)標(biāo)簽,其各自對(duì)應(yīng)于存儲(chǔ)器裝置中的一頁(yè);以及每個(gè)標(biāo)簽表示與對(duì)應(yīng)于該標(biāo)簽的頁(yè)相關(guān)聯(lián)的至少一條線在隨機(jī)存取存儲(chǔ)器中的位置;響應(yīng)導(dǎo)致在隨機(jī)存取存儲(chǔ)器中定位對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線的訪問(wèn),將來(lái)自隨機(jī)存取存儲(chǔ)器的對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符和該失敗線標(biāo)識(shí)符的線傳輸?shù)降谝桓咚倬彺嫜b置;以及更新第二高速緩存裝置中對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽,以反映該傳輸。
25.一種用于存儲(chǔ)器管理的方法,包括從請(qǐng)求者接收失敗通知,該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符;確定對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽是否位于標(biāo)簽高速緩存中,其中該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,每個(gè)標(biāo)簽包括至少一個(gè)指向預(yù)取緩沖器中的線的指針,并且標(biāo)簽高速緩存指定至少一條預(yù)取線;響應(yīng)定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者;并且更新對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽以反映該傳輸;以及響應(yīng)未定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽將對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的新標(biāo)簽插入到標(biāo)簽高速緩存中;將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者;并且將包括在新標(biāo)簽中的預(yù)取線插入到預(yù)取緩沖器中,其中插入通過(guò)標(biāo)簽高速緩存來(lái)執(zhí)行。
26.如權(quán)利要求25所述的方法,還包括從存儲(chǔ)器裝置檢索對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線。
27.如權(quán)利要求25所述的方法,還包括從預(yù)取緩沖器檢索對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線,其中檢索通過(guò)標(biāo)簽高速緩存。
28.如權(quán)利要求25所述的方法,其中請(qǐng)求者是高速緩存裝置。
29.一種用于高速緩沖存儲(chǔ)器管理的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)介質(zhì),其可由處理電路讀取,并且存儲(chǔ)用于由處理電路執(zhí)行以執(zhí)行包括以下操作的方法的指令從請(qǐng)求者接收失敗通知,該失敗通知包括失敗頁(yè)標(biāo)識(shí)符和失敗線標(biāo)識(shí)符;確定對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽是否位于標(biāo)簽高速緩存中,其中該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,每個(gè)標(biāo)簽包括至少一個(gè)指向預(yù)取緩沖器中的線的指針,并且標(biāo)簽高速緩存指定至少一條預(yù)取線;響應(yīng)定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者;并且更新對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽以反映該傳輸;以及響應(yīng)未定位到對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的標(biāo)簽將對(duì)應(yīng)于該失敗頁(yè)標(biāo)識(shí)符的新標(biāo)簽插入到標(biāo)簽高速緩存中;將對(duì)應(yīng)于該失敗線標(biāo)識(shí)符的線傳輸給請(qǐng)求者;并且將包括在新標(biāo)簽中的預(yù)取線插入到預(yù)取緩沖器中,其中插入通過(guò)標(biāo)簽高速緩存來(lái)執(zhí)行。
全文摘要
本發(fā)明公開(kāi)一種用于存儲(chǔ)器管理的系統(tǒng),包括與存儲(chǔ)器裝置通信的標(biāo)簽控制緩沖器。該存儲(chǔ)器裝置包括多個(gè)頁(yè),其分成多條可單獨(dú)尋址的線。該標(biāo)簽控制緩沖器包括預(yù)取緩沖器,其包括來(lái)自存儲(chǔ)器裝置的可單獨(dú)尋址線的至少之一。標(biāo)簽控制緩沖器還包括與預(yù)取緩沖器通信的標(biāo)簽高速緩存。該標(biāo)簽高速緩存包括多個(gè)標(biāo)簽,其中每個(gè)標(biāo)簽與存儲(chǔ)器裝置中的一頁(yè)相關(guān)聯(lián),并且每個(gè)標(biāo)簽包括指向預(yù)取緩沖器中的至少一條線的指針。對(duì)預(yù)取緩沖器中的線的訪問(wèn)由標(biāo)簽高速緩存控制。
文檔編號(hào)G06F12/00GK1744058SQ20051006501
公開(kāi)日2006年3月8日 申請(qǐng)日期2005年4月12日 優(yōu)先權(quán)日2004年4月15日
發(fā)明者彼德·弗拉納茲克, 路易斯·A·拉斯特拉斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司