專利名稱::高速緩存的數(shù)據(jù)替換系統(tǒng)和確定方法
技術(shù)領(lǐng)域:
:本發(fā)明與高速緩存管理(cachemanagement)有關(guān),具體地說,與軟件控制的高速緩存組管理(cachesetmanagement)有關(guān)。
背景技術(shù):
:通常,高速緩存是可用來存儲諸如指令代碼或數(shù)據(jù)的信息的小而快的緩沖器,以便使處理設(shè)備可以更為迅速和高效地訪問信息。通常,處理設(shè)備讀較小的高速緩存要比讀主存儲器快。此外,隨著諸如圖形處理和高級數(shù)值分析之類高強(qiáng)度計算要求的迅速增加,高速緩存在計算系統(tǒng)內(nèi)的重要性也日益增大。高速緩存是有限的資源。一種分配高速緩存組的方式是用硬件最近最少使用(leastrecentlyused,LRU)功能確定替換組。還有其他一些硬件替換算法,包括最近最常使用(mostrecentlyused)算法和先進(jìn)先出(firstinfirstout)算法。有了LRU信息,在高速緩存未命中的情況下高速緩存確定通過高速緩存訪問的最后的組。在出現(xiàn)一個高速緩存未命中事件,即出現(xiàn)一個高速緩存沒有所請求的信息的事件時,高速緩存替換LRU信息。這種替換使處理器可以在下次選擇這信息時迅速訪問所選的新信息。此外,替換還提高了處理器發(fā)現(xiàn)所關(guān)聯(lián)的信息的可能性,因為所替換的組高速緩存數(shù)據(jù)很可能具有時間或空間局限性。然而,在高速緩存內(nèi)采用硬件LRU功能有一些問題。例如,有些諸如流式數(shù)據(jù)之類的信息會造成在高速緩存內(nèi)替換大量的有用指令或數(shù)據(jù)。所希望的是可以隔離這種對高速緩存的某些區(qū)段的替換,而將其他區(qū)段留作可隨機(jī)使用的區(qū)段。此外,普通的LRU會替換掉高速緩存內(nèi)的一些關(guān)鍵性數(shù)據(jù)和指令。所希望的是將這些關(guān)鍵性數(shù)據(jù)和指令鎖定在高速緩存內(nèi)不允許LRU替換它們。因此,所需要的是一種可以克服這些缺點(diǎn)的高速緩存管理方案。
發(fā)明內(nèi)容本發(fā)明提供了一種對高速緩存的軟件控制數(shù)據(jù)替換(softwarecontrolleddatareplacement)技術(shù)。這種軟件控制數(shù)據(jù)替換技術(shù)使用了類標(biāo)識符(classidentifier)和標(biāo)簽替換控制標(biāo)記(tagreplacementcontrolindicia)。這種對高速緩存的軟件控制數(shù)據(jù)替換技術(shù)還提供了一個替換管理表(replacementmanagementtable),用來讀類標(biāo)識符,以產(chǎn)生標(biāo)簽替換控制標(biāo)記。高速緩存包括多個組。高速緩存可以按標(biāo)簽替換控制標(biāo)記禁止對這些組中的至少一個組執(zhí)行數(shù)據(jù)替換。為了更完全地理解本發(fā)明及其優(yōu)點(diǎn),下面將結(jié)合附圖對本發(fā)明進(jìn)行說明。在這些附圖中圖1示意性地示出了高速緩存組訪問系統(tǒng);圖2示意性地示出了替換管理表;圖3例示了替換管理表中的兩行;圖4例示了區(qū)域開始寄存器;圖5A例示了區(qū)域屏蔽寄存器;圖5B例示了類標(biāo)識符寄存器(CIDR)的配置;圖6示意性地示出了類標(biāo)識符產(chǎn)生器;以及圖7例示了利用高速緩存子系統(tǒng)以允許和禁止對組進(jìn)行替換的方法。具體實施例方式在下面的論述中,提出了許多具體細(xì)節(jié),以期本發(fā)明可以得到充分理解。然而,熟悉該
技術(shù)領(lǐng)域:
的人員可以看到,本發(fā)明可以不用這樣一些具體細(xì)節(jié)實現(xiàn)。在其他一些情況下,一些眾所周知的組成部分以原理圖或方框圖形式示出,不再說明,以免不必要的細(xì)節(jié)反而使本發(fā)明模糊不清。此外,大部分涉及網(wǎng)絡(luò)通信、電磁發(fā)信技術(shù)之類的詳細(xì)情況都已略去,因為這些詳細(xì)情況并不是理解本發(fā)明所必需的,而且是在對有關(guān)技術(shù)有一般了解的人員所能理解的范圍之內(nèi)。還要注意的是,除所指出的之外,在這里所說明的所有功能都可以用硬件或軟件或者硬件和軟件的某種組合執(zhí)行。然而,在一個優(yōu)選實施例中,除所指出的之外,這些功能由諸如計算機(jī)或電子數(shù)據(jù)處理器之類的處理器按照諸如計算機(jī)程序代碼、軟件之類的代碼執(zhí)行和/或由一些編碼成執(zhí)行這樣的功能的集成電路執(zhí)行。參看圖1,帶高速緩存100的CPU通常用軟件來管理高速緩存組替換算法。該軟件使L2高速緩存170的這些組可以分別與在替換管理表(RMT)160內(nèi)為不同的所請求的存儲器地址區(qū)域?qū)崿F(xiàn)的不同的替換策略關(guān)聯(lián)。在圖1中,參考數(shù)字100所標(biāo)注的是一個采用L2高速緩存170的高速緩存子系統(tǒng)。帶高速緩存子系統(tǒng)100的CPU包括中央處理單元(CPU)110及其所耦合的L2高速緩存170和存儲器總線180。在一個實施例中,CPU110包括一個精簡指令集(RISC)IC處理器。CPU110包括指令地址寄存器120和數(shù)據(jù)地址寄存器125。指令地址寄存器120與第一級(L1)指令高速緩存130相耦合。數(shù)據(jù)地址寄存器125與L1數(shù)據(jù)高速緩存135相耦合。L1指令高速緩存130與第一區(qū)域寄存器140相耦合。L1數(shù)據(jù)高速緩存135與第二區(qū)域寄存器145相耦合。MUX147與寄存器140、145相耦合,還與耦合到L2高速緩存170上的RMT160相耦合。指令地址寄存器120通過轉(zhuǎn)移預(yù)測器126與L2地址寄存器150相耦合。數(shù)據(jù)地址寄存器125與L1數(shù)據(jù)高速緩存135相耦合。L1數(shù)據(jù)高速緩存135再耦合到L2地址寄存器150上。L2地址寄存器150與L2高速緩存170相耦合。L2高速緩存170分成多個組。每組與RMT160內(nèi)至少一個地址區(qū)域相關(guān)聯(lián)。如果所請求的信息不在L2高速緩存170內(nèi),就用所請求的信息更新這些組。各組按照如RMT160所規(guī)定是否需替換進(jìn)行更新。對于一個所請求的存儲器地址確定哪個組是允許還是禁止替換包括對所請求的地址進(jìn)行操作。通常,在帶高速緩存子系統(tǒng)100的CPU內(nèi),LRU功能在一個給定的相應(yīng)類標(biāo)識符的一些組中選擇任意多個允許由RMT160替換的組。雖然,在圖1中,只例示了L1高速緩存130、135和L2高速緩存170,但熟悉該
技術(shù)領(lǐng)域:
的人員理解,還可以使用其他高速緩存或其他信息暫存器件。通常,在CPU110內(nèi),指令地址寄存器120命令L1指令高速緩存130從L1指令高速緩存130的存儲器中提取指令。在帶高速緩存子系統(tǒng)100的CPU內(nèi),指令地址寄存器120首先為一個信息請求檢驗L1指令高速緩存130的標(biāo)簽(tag)。如果所請求的與一個特定地址相應(yīng)的信息按照L1指令高速緩存130的標(biāo)簽是存儲在L1指令高速緩存130內(nèi),就將所請求的信息置入指令緩沖器127,解碼后作為一個指令頒發(fā)給執(zhí)行單元。在一個實施例中,還使用轉(zhuǎn)移預(yù)測器(branchpredictor)126。通常,轉(zhuǎn)移預(yù)測器126對轉(zhuǎn)移指令的結(jié)果進(jìn)行預(yù)測。在圖1中,浮點(diǎn)寄存器(FPR)161耦合到浮點(diǎn)單元(FPU)165上,而寄存器162耦合到定點(diǎn)單元(FXU)166和裝入存儲單元(LSU)176上。寄存器161、162和LSU176耦合到L1數(shù)據(jù)高速緩存135上。如果命中L2高速緩存170,就將命中信息轉(zhuǎn)發(fā)給請求L1指令高速緩存130或L1數(shù)據(jù)高速緩存135。信息可由CPU110的CPU(未示出)從高速緩存130、135訪問。然而,如果L1指令高速緩存130的標(biāo)簽指示所希望的信息沒有存儲在L1指令高速緩存130內(nèi),指令地址寄存器120就將所請求的地址發(fā)送給L2地址寄存器150,以確定所請求的信息是否在L2高速緩存170內(nèi)。此外,如果L1指令高速緩存130的標(biāo)簽信息指示所希望的信息沒有存儲在L1指令高速緩存130內(nèi),就將所請求的地址發(fā)送給區(qū)域寄存器140。類似,未命中L1數(shù)據(jù)高速緩存135時,將相應(yīng)地址發(fā)送給區(qū)域寄存器145和將一個請求發(fā)送給L2地址寄存器150。如果未命中L1數(shù)據(jù)地址寄存器125,原來從指令地址寄存器120得出的所希望的數(shù)據(jù)地址就從L1數(shù)據(jù)高速緩存135發(fā)送給數(shù)據(jù)區(qū)域寄存器145。通常,在L2地址寄存器150中,在未命中L1數(shù)據(jù)高速緩存135的情況下,數(shù)據(jù)地址寄存器125然后與指令地址寄存器120的輸出多路復(fù)用。在區(qū)域寄存器140和145中,分別對在L1指令高速緩存130或L1數(shù)據(jù)高速緩存135中未發(fā)現(xiàn)的地址進(jìn)行測試,以確定所選地址是否落入存儲器地址的一個區(qū)域。如果不是,就產(chǎn)生一個“默認(rèn)”的類標(biāo)識符。然而,如果所選地址落入存儲器地址的與區(qū)域寄存器140、145關(guān)聯(lián)的區(qū)域,就產(chǎn)生一個與這個適當(dāng)?shù)牡刂穮^(qū)域相應(yīng)的類標(biāo)識符,諸如類標(biāo)識符1、類標(biāo)識符2等等。類標(biāo)識符通過MUX147發(fā)送給RMT160。通常,一個類標(biāo)識符用作指向RMT160中的一個行的索引。RMT160通常確定L2高速緩存170中的一個給定的組是否可以替換。然后,這個類標(biāo)識符的行狀態(tài)信息變換為一個L2標(biāo)簽替換控制標(biāo)記。RMT160將L2標(biāo)簽替換控制標(biāo)記發(fā)送給L2高速緩存170。在典型情況下,L2地址寄存器150對L2高速緩存170的標(biāo)簽進(jìn)行檢驗,以確定所希望的信息是否存儲在L2高速緩存170中。如果所希望的信息在L2高速緩存170中,就從L2高速緩存170提取這信息,再用L2標(biāo)簽替換控制標(biāo)記更新LRU。然而,如果所選地址不在L2高速緩存170中,就諸如通過存儲器總線180之類從主存儲器提取相應(yīng)所請求的信息。然后,將所提取的信息存儲在L2高速緩存170的一個組中。然而,存儲在L2高速緩存170中的信息是根據(jù)所接收的L2標(biāo)簽存儲在L2高速緩存170的一個組中。例如,可以根據(jù)RMT160的具體軟件配置將落入類標(biāo)識符“1”的地址看成總是存儲在高速緩存170的組4內(nèi)。可以將落入類標(biāo)識符“3”和“4”的地址都選為覆蓋寫L2高速緩存170中的同一個組,如高速緩存組7。類標(biāo)識符“0”可以要求L2高速緩存170的所有組不替換組0至2。這些指令由L2標(biāo)簽替換控制標(biāo)記傳送給L2高速緩存170。這些指令還可以由軟件修改,從而為不同的給定的類標(biāo)識符規(guī)定了不同的適合替換的組?,F(xiàn)在來看圖2,圖中示意性地例示了一個替換管理表160。表160包括一個類標(biāo)識符矩陣,由寄存器140、145與所定義的L2高速緩存170的各組相交形成。概括地說,表160例示了在帶高速緩存子系統(tǒng)100的CPU上執(zhí)行的操作系統(tǒng)的軟件對L2高速緩存170內(nèi)的各組的替換管理狀態(tài)按它們與給定的類標(biāo)識符關(guān)聯(lián)情況做出的判決。在圖2中,RMT160是一個軟件管理表。軟件維護(hù)這個結(jié)構(gòu),解釋對于特定的類標(biāo)識符指定需占用哪些高速緩存組的RMT160條目的含意。在另一個實施例中,不對RMT160進(jìn)行準(zhǔn)確性硬件檢驗。通常,RMT160用于將未命中地址區(qū)域映射為L2高速緩存170的一個或幾個組。在一個實施例中,與類標(biāo)識符關(guān)聯(lián)的地址區(qū)域是有效地址區(qū)域。在另一個實施例中,與類標(biāo)識符關(guān)聯(lián)的地址區(qū)域可以是實際或物理地址。在寄存器140、145內(nèi),未命中地址映射為一個類標(biāo)識符。通常,這個類標(biāo)識符與一個或多個存儲區(qū)域或給定的地址區(qū)域關(guān)聯(lián)。在一個實施例中,類標(biāo)識符0相應(yīng)于任何不為其他類標(biāo)識符專門提供的地址區(qū)域。給定的類標(biāo)識符于是發(fā)送給RMT160用作索引。用類標(biāo)識符作為索引,訪問RMT160,讀出替換信息,從而產(chǎn)生標(biāo)簽替換控制標(biāo)記。在圖2中,RMT160是一個8×8的矩陣。也就是說,L2高速緩存170是8路組關(guān)聯(lián)的(即具有8個組)。因此,每個RMT160條目具有8個比特。然而,熟悉該
技術(shù)領(lǐng)域:
的人員可以理解,其他容量的RMT也在本發(fā)明的專利保護(hù)范圍之內(nèi)。在圖2中,RMT160在類標(biāo)識符行0從組0至2為“1”,而這行的其余部分都為“0”。因此,如果數(shù)據(jù)需替換入L2高速緩存,它可以替換入L2高速緩存的前三個組,即組0至2,供與類標(biāo)識符0關(guān)聯(lián)的存儲器訪問用。此外,類標(biāo)識符0為這些組所專用。因此,L2高速緩存的組0至2是類標(biāo)識符0專用的。在一個實施例中,類標(biāo)識符0與一個沒有指定類標(biāo)識符的地址區(qū)域相應(yīng)。也就是說,一個沒有在區(qū)域寄存器140內(nèi)特別提供的未命中的地址賦予一個默認(rèn)的類標(biāo)識符0。對于類標(biāo)識符1的情況,RMT160在組0-2和組4-7為“0”,而在組3為“1”。任何與類標(biāo)識符1相應(yīng)的數(shù)據(jù)不允許置入組0-2和組4-7,只能是置入組3。類標(biāo)識符2和類標(biāo)識符3都替換同一個組,即組7。因此,類標(biāo)識符2和類標(biāo)識符3都占用組7。類標(biāo)識符4具有多個組,它們都是有效的替換候選對象。這些組是組4、5和6。在所例示的實施例中,不用類標(biāo)識符5-8。也就是說,這些類標(biāo)識符的條目都是“0”。然而,熟悉該
技術(shù)領(lǐng)域:
的人員可以理解,組和類標(biāo)識符的邏輯定義表示為如圖2所示的“1”和“0”只是例示性的,諸如通過軟件之類給出的其他組和類標(biāo)識符的邏輯定義也在本發(fā)明的專利保護(hù)范圍之內(nèi)。在允許的組內(nèi)的信息替換由LRU按RMT160所指示的執(zhí)行。類似,與任何其他類標(biāo)識符相應(yīng)的信息按照軟件管理的RMT表160和LRU功能替換入L2高速緩存170的各個組?,F(xiàn)在來看圖3,圖中示意性地例示了RMT160的兩行信息。在圖3中,揭示了一個“a”比特,或者說“算法”比特。這允許子系統(tǒng)100選擇LRU之外的一個算法來替換適合的組。在一個實施例中,這個算法是最近最常使用算法或先進(jìn)先出算法。該行具有一個與類標(biāo)識符相應(yīng)的字段和一個對于給定的類標(biāo)識符允許或禁用L2高速緩存170的組的字段“組允許比特”。例如,組允許比特對于RMT_index(RMT索引)1可以是“0,1,0,1,1,0,0,0”。下一字段,有效比特“v”字段,指示這個給定的RMT行含有有效信息。旁路比特“b”指示操作是否應(yīng)在高速緩存級,諸如L1高速緩存、L2高速緩存等等高速緩存。算法比特“a”指定對于這個類需用的替換算法。訪問一個無效的RMT行,按照“v”有效比特條目,通常導(dǎo)致RMT160使用的一個默認(rèn)類。在一個實施例中,這個默認(rèn)類為類標(biāo)識符0。在另一個實施例中,訪問一個無效的RMT行會產(chǎn)生一個對CPU的中斷。在一個實施例中,所有的比特都置位,以允許RMT160的一個無效類標(biāo)識符。在另一個實施例中,返回給操作系統(tǒng)一個出錯信號,而不是產(chǎn)生一個中斷。如果在CPU而不是操作系統(tǒng)本身上運(yùn)行的進(jìn)程終止,就會出現(xiàn)這種情況。在另一個實施例中,旁路“b”比特置位表示某個類標(biāo)識符的數(shù)據(jù)不允許在這個分層結(jié)構(gòu)級別(諸如L1高速緩存、L2高速緩存等等)高速緩存。對于與這個類標(biāo)識符相應(yīng)的數(shù)據(jù)來說,該數(shù)據(jù)應(yīng)該直接傳送給為CPU服務(wù)的總線。在一個實施例中,在分層結(jié)構(gòu)的這個級別內(nèi)還存在需直接傳送給總線的數(shù)據(jù)?,F(xiàn)在來看圖4,圖中例示了一個區(qū)域開始寄存器(RSR)400。通常,一個請求而未命中的操作數(shù)地址用一個區(qū)域屏蔽寄存器(RMR)屏蔽后再與RSR相比較。然后,對RMR屏蔽的輸出進(jìn)行測試,以確定是否已有一個區(qū)域命中,如與RSR比較所確定的。這個比較通常發(fā)生在區(qū)域寄存器140、145內(nèi)。RMR是定義結(jié)束地址區(qū)域的屏蔽碼。在一個實施例中,地址區(qū)域寄存器140、145是用一個“轉(zhuǎn)到/取自專用寄存器”指令可訪問的。只是在操作系統(tǒng)處于“特許”狀態(tài)時才允許訪問在寄存器140、145處所選的地址區(qū)域。在另一個實施例中,“轉(zhuǎn)到/取自專用寄存器”指令在PowerPC環(huán)境內(nèi)發(fā)布?,F(xiàn)在來看圖5A,圖中所例示的是一個區(qū)域屏蔽寄存器(RMR)500。通常,一個地址區(qū)域由區(qū)域寄存器140、145通過用RMR的屏蔽碼屏蔽再與RSR相比較進(jìn)行測試。通常,RSR規(guī)定了開始地址,而RMR規(guī)定了對于在區(qū)域寄存器140、145內(nèi)需測試的結(jié)束地址。這由RMR500將一個未命中操作數(shù)的地址的這些比特進(jìn)行屏蔽后再將未命中操作數(shù)與RSR400的各比特相比較來實現(xiàn)。在圖5A中,RSR400的高位比特傳送需測試的區(qū)域的起始地址、低位比特和類標(biāo)識符。此外,RMR屏蔽操作數(shù)不屏蔽地址區(qū)域模式(即,實際或虛擬的)比特和有效或禁用比特。在帶高速緩存子系統(tǒng)100的CPU內(nèi),地址寄存器140用RSR和RMR映射有效地址(EA)或?qū)嶋H地址(RA)。一個例子是對CPU的允許裝載/存儲和指令提取的映射。通常,需測試的區(qū)域的容量是2的冪,而區(qū)域的起始地址是區(qū)域容量的邊界。也就是說,在圖5A中,操作數(shù)地址的高位32個比特和操作數(shù)地址的低位32個比特與RSR400的比特相與的結(jié)果產(chǎn)生需測試的上地址界?,F(xiàn)在來看圖5B,所例示的是一個類標(biāo)識符寄存器(CIDR)。在操作數(shù)在所選的地址區(qū)域范圍內(nèi)時類標(biāo)識符信息通過這個寄存器傳送。此后,類標(biāo)識符就是可讀的。在一個實施例中,類標(biāo)識符的長度對于實現(xiàn)方式來說是特定的?,F(xiàn)在來看圖6,所例示的是類標(biāo)識符產(chǎn)生器600。操作數(shù)的地址通過輸入線610接收后,在AND門630對它執(zhí)行與RMR屏蔽碼620的比特32-51相與。然后,從所請求而未命中的地址輸入比特0-31,再將比特32-51附加到比特0-31上。這些比特在比較器650中與RSR400相比較。比較結(jié)果傳送給AND門660。AND門660接收來自CMP650的等同性比較結(jié)果和RSR640的V輸出。V輸出相應(yīng)于“有效”比特,而R輸出相應(yīng)于“實際”比特。AND門660的輸出相應(yīng)于表示區(qū)域命中。如果區(qū)域命中是肯定的,就產(chǎn)生通過用CIDR屏蔽碼685得出的類標(biāo)識符。區(qū)域命中的這個標(biāo)記傳送給OR門695,作為與這個特定區(qū)域相應(yīng)的類標(biāo)識符。對于寄存器140、145內(nèi)的每個地址區(qū)域重復(fù)這些步驟?,F(xiàn)在來看圖7,所例示的是一種設(shè)置允許和禁止替換L2高速緩存170的各個組的方法700。在圖7中,L2高速緩存170包括多個組。雖然方法700的各個步驟就指令地址寄存器120、L1指令高速緩存130和區(qū)域寄存器140進(jìn)行說明,但對于數(shù)據(jù)地址寄存器125、數(shù)據(jù)高速緩存135和區(qū)域寄存器145的情況所執(zhí)行的步驟是類似的。在步驟710,CPU請求與一個特定地址相應(yīng)的信息。在步驟720,指令地址寄存器120對L1高速緩存130的標(biāo)簽進(jìn)行查詢,查看在L1指令高速緩存130中是否存儲了與所請求的地址相應(yīng)的信息。如果有,所請求的信息就傳送給CPU110,于是方法700終止。然而,如果未命中L1指令高速緩存130,就執(zhí)行步驟729,確定在區(qū)域寄存器140內(nèi)是否定義了所請求的存儲器地址。如果在一個存儲器區(qū)域內(nèi)定義了這個存儲器地址,就在步驟730,產(chǎn)生一個類標(biāo)識符,與它所相應(yīng)的區(qū)域相對應(yīng)。否則,就在步驟740產(chǎn)生一個默認(rèn)的類標(biāo)識符。在步驟750,由RMT160讀出類標(biāo)識符,用作對RMT160內(nèi)的相應(yīng)行的索引。例如,在圖3中,類標(biāo)識符2相應(yīng)于“1,0,1,1,1,0,0,0”。也就是說,軟件定義RMT160內(nèi)組0,2,3和4適合替換而組5,6和7不適合替換。在步驟755,由RMT160產(chǎn)生標(biāo)簽替換控制標(biāo)記。通常,標(biāo)簽替換控制標(biāo)記用來控制L2高速緩存170的組是否適合替換。在步驟760,向L2高速緩存170請求所請求的地址。在步驟770,如果L2高速緩存170具有與所請求的地址相應(yīng)的信息,就將這信息轉(zhuǎn)發(fā)給CPU110,于是方法700在步驟775結(jié)束。然而,如果在步驟770“未命中”所請求的數(shù)據(jù)地址(也就是說,與所請求的數(shù)據(jù)地址相應(yīng)的信息沒有存儲在L2高速緩存170內(nèi)),就在步驟780,配置L2高速緩存170的至少一個組的替換適當(dāng)性。也就是說,按L2標(biāo)簽替換控制標(biāo)記將L2高速緩存170的至少一個組配置為適合替換的或配置成不適合替換的。在一個實施例中,對于一個給定的L2標(biāo)簽替換控制標(biāo)記將L2高速緩存170的所有組配置為允許或禁止替換的。在步驟790,方法700覆蓋寫L2高速緩存170的一個適合替換的組內(nèi)的信息。然而,一個被禁止的組不會被覆蓋寫。通常,在可覆蓋寫的那些組中選擇一個組實際予以覆蓋寫是根據(jù)LRU功能進(jìn)行的??梢岳斫猓景l(fā)明可以采取許多形式和具體實現(xiàn)方式。因此,在不背離本發(fā)明的精神實質(zhì)或?qū)@Wo(hù)范圍的情況下可以在以上所述的本發(fā)明的實現(xiàn)中做出一些改變。在這里所說明的這些性能考慮了各種程序設(shè)計模型的可能性。本發(fā)明并不對任何特定的程序設(shè)計模型有所偏好,而是針對可以建立這些程序設(shè)計模型的基本機(jī)制。因此,雖然本發(fā)明是結(jié)合本發(fā)明的一些優(yōu)選實施例進(jìn)行說明的,但要指出的是,所揭示的這些實施例實際上是例示性的而不是限制性的,在以上所揭示的實施例中可以做出種種變動、修改和替換,在有些情況下,可以采用本發(fā)明的有些特色功能而不相應(yīng)采用其他一些特色功能。許多這樣的變動和修改可以認(rèn)為對于熟悉該
技術(shù)領(lǐng)域:
的人員在閱讀了以上對優(yōu)選實施例的說明后是顯而易見的和合乎需要的。因此,應(yīng)將所附權(quán)利要求書理解為給出了本發(fā)明的專利保護(hù)范圍。權(quán)利要求1.一種對高速緩存進(jìn)行軟件控制數(shù)據(jù)替換的系統(tǒng),所述系統(tǒng)使用類標(biāo)識符和標(biāo)簽替換控制標(biāo)記,所述系統(tǒng)包括一個替換管理表,用來讀取類標(biāo)識符,以產(chǎn)生標(biāo)簽替換控制標(biāo)記;以及包括多個組的高速緩存,用來根據(jù)標(biāo)簽替換控制標(biāo)記禁止對所述多個組中的至少一個組進(jìn)行替換。2.權(quán)利要求1的系統(tǒng),其中所述高速緩存的組根據(jù)最近最少使用功能進(jìn)行替換。3.權(quán)利要求1的系統(tǒng),其中所述替換管理表是基于軟件的。4.權(quán)利要求1的系統(tǒng),所述系統(tǒng)還包括一個區(qū)域寄存器,用來產(chǎn)生類標(biāo)識符。5.權(quán)利要求4的系統(tǒng),其中所述區(qū)域寄存器用來將一個地址區(qū)域分類成一個默認(rèn)的地址區(qū)域。6.權(quán)利要求4的系統(tǒng),其中所述區(qū)域寄存器由軟件寫入。7.權(quán)利要求4的系統(tǒng),其中所述區(qū)域寄存器接收地址,作為一個地址未命中的結(jié)果。8.一種確定在高速緩存內(nèi)的信息替換的方法,所述方法包括下列步驟產(chǎn)生類標(biāo)識符;讀取類標(biāo)識符;用一個替換管理表根據(jù)類標(biāo)識符產(chǎn)生標(biāo)簽替換控制標(biāo)記;以及根據(jù)所關(guān)聯(lián)的標(biāo)簽替換控制標(biāo)記配置高速緩存中組的替換適當(dāng)性。9.權(quán)利要求8的方法,其中所述產(chǎn)生標(biāo)簽替換控制標(biāo)記的步驟還包括使用一個由軟件管理的替換管理表。10.權(quán)利要求8的方法,所述方法還包括根據(jù)標(biāo)簽替換控制標(biāo)記用其他信息替換高速緩存的組內(nèi)的信息的步驟。11.權(quán)利要求8的方法,其中所述產(chǎn)生類標(biāo)識符的步驟還包括如果在一個區(qū)域寄存器內(nèi)發(fā)生地址命中就產(chǎn)生一個非默認(rèn)的類標(biāo)識符。12.權(quán)利要求8的方法,所述方法還包括如果命中高速緩存就刪除標(biāo)簽替換控制標(biāo)記的步驟。13.權(quán)利要求8的方法,所述方法還包括如果命中第二高速緩存就從第二高速緩存提取與一個地址關(guān)聯(lián)的數(shù)據(jù)的步驟。14.權(quán)利要求8方法,所述方法還包括根據(jù)最近最少使用功能替換一個組的步驟。15.權(quán)利要求8的方法,所述方法還包括用一個地址區(qū)域與類標(biāo)識符關(guān)聯(lián)的步驟。16.權(quán)利要求8的方法,所述方法還包括用一個算法比特選擇替換適合的組的算法的步驟。17.一種確定高速緩存內(nèi)的信息替換的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品具有體現(xiàn)一個計算機(jī)程序的媒體,所述計算機(jī)程序包括產(chǎn)生類標(biāo)識符的計算機(jī)代碼;讀取類標(biāo)識符的計算機(jī)代碼;用一個替換管理表根據(jù)類標(biāo)識符產(chǎn)生標(biāo)簽替換控制標(biāo)記的計算機(jī)代碼;以及根據(jù)所關(guān)聯(lián)的標(biāo)簽替換控制標(biāo)記配置高速緩存內(nèi)組的替換適當(dāng)性的計算機(jī)代碼。。18.權(quán)利要求17的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序還包括根據(jù)標(biāo)簽替換控制標(biāo)記用其他信息替換高速緩存的組內(nèi)的信息的軟件。19.權(quán)利要求17的計算機(jī)程序產(chǎn)品,其中所述產(chǎn)生類標(biāo)識符的軟件還包括如果在一個區(qū)域寄存器內(nèi)發(fā)生地址命中就產(chǎn)生一個非默認(rèn)的類標(biāo)識符。20.一種確定在高速緩存內(nèi)的信息替換的處理器,所述處理器包括一個計算機(jī)程序,所述計算機(jī)程序包括產(chǎn)生類標(biāo)識符的計算機(jī)代碼;讀取類標(biāo)識符的計算機(jī)代碼;用一個替換管理表根據(jù)類標(biāo)識符產(chǎn)生標(biāo)簽替換控制標(biāo)記的計算機(jī)代碼;以及根據(jù)所關(guān)聯(lián)的標(biāo)簽替換控制標(biāo)記配置高速緩存內(nèi)組的替換適當(dāng)性的計算機(jī)代碼。21.權(quán)利要求20的處理器,還包括根據(jù)標(biāo)簽替換控制標(biāo)記用其他信息替換高速緩存的組內(nèi)的信息的軟件。全文摘要本發(fā)明提供了根據(jù)替換管理表和最近最少使用功能有選擇地覆蓋寫高速緩存的組的技術(shù)。根據(jù)地址未命中產(chǎn)生類標(biāo)識符。用替換管理表來讀取類標(biāo)識符,以產(chǎn)生標(biāo)簽替換控制標(biāo)記。包括多個組的高速緩存用來根據(jù)標(biāo)簽替換控制標(biāo)記禁止對所述多組中的至少一個組執(zhí)行數(shù)據(jù)替換。文檔編號G06F12/00GK1661571SQ20041007383公開日2005年8月31日申請日期2004年9月2日優(yōu)先權(quán)日2003年9月4日發(fā)明者M(jìn)·N·戴,H·P·霍夫斯蒂,C·R·約翰斯,J·A·卡爾,D·希比,T·Q·特呂翁,山崎武申請人:國際商業(yè)機(jī)器公司,索尼電腦娛樂公司