亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

高速緩存的數(shù)據(jù)替換系統(tǒng)和確定方法

文檔序號(hào):6424995閱讀:337來(lái)源:國(guó)知局

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