專利名稱:用于短暫高速緩存存儲(chǔ)的方法和處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)的高速緩存結(jié)構(gòu)領(lǐng)域。具體地,本發(fā)明涉及允許存在用于存儲(chǔ)蹤跡(trace)數(shù)據(jù)和其它先驗(yàn)信息的高速緩存線的高速緩存系統(tǒng),其中這些特定高速緩存線不回寫到主存儲(chǔ)器。
背景技術(shù):
當(dāng)前處理器產(chǎn)生和收集準(zhǔn)備改進(jìn)計(jì)算機(jī)系統(tǒng)的性能的多個(gè)數(shù)據(jù)。這包含性能監(jiān)視數(shù)據(jù)(例如,分布(profile)數(shù)據(jù))、分支預(yù)測(cè)數(shù)據(jù)、性能監(jiān)視器數(shù)據(jù)、預(yù)解碼的指令信息、分支歷史信息,分支預(yù)測(cè)表等等。這種數(shù)據(jù)中的某些數(shù)據(jù)被存儲(chǔ)在專用數(shù)組或表(例如,分布數(shù)據(jù)表、分支歷史表或分支目標(biāo)地址高速緩存)中,而其它數(shù)據(jù)與指令結(jié)合被存儲(chǔ)在L1(一級(jí))指令高速緩存器中(例如,預(yù)解碼信息,或在某些情況下,次級(jí)分支預(yù)測(cè)信息)。
可以被收集和利用的其它數(shù)據(jù)繼續(xù)被發(fā)現(xiàn),所以這種收集和存儲(chǔ)用于形成決定的數(shù)據(jù)的趨勢(shì)是日益增多的現(xiàn)象。當(dāng)要存儲(chǔ)的數(shù)據(jù)量超出可用專用數(shù)組的大小時(shí),這些數(shù)據(jù)現(xiàn)在通常被丟棄并且以后重新產(chǎn)生。在某些情況下,當(dāng)必須全部重新獲得分支預(yù)測(cè)信息時(shí),可能丟失有用的信息。在其它情況下,數(shù)據(jù)可以被重新產(chǎn)生,但是以在重新計(jì)算信息方面付出額外時(shí)間或功率為代價(jià)。隨著與允許收集信息相關(guān)的面積成本或設(shè)計(jì)/驗(yàn)證成本超過(guò)所收集的信息的價(jià)值,則會(huì)導(dǎo)致成本/收益折衷。
在某些情況下,可以引入專用輔助存儲(chǔ)層次來(lái)存儲(chǔ)這個(gè)信息,但是以額外硅面積和設(shè)計(jì)測(cè)試復(fù)雜度為代價(jià)。使用這種專用輔助存儲(chǔ)層次的現(xiàn)有技術(shù)的某些例子可以在美國(guó)專利No.4679141(POMERENE等人)1987-07-07,和由制造商Advanced Micro Devices公司(″Hammer″核心)和Intel公司(Itanium2)開發(fā)的處理器核心中找到。
現(xiàn)有處理器設(shè)計(jì)使用專用輔助存儲(chǔ)層次的主要原因之一是,把處理器元數(shù)據(jù)與涉及這種元數(shù)據(jù)的數(shù)據(jù)或指令的地址相關(guān)通常是有利的。例如,涉及使條件在處理器中發(fā)生的指令的元數(shù)據(jù)應(yīng)當(dāng)優(yōu)選地以某種形式與底層指令的地址相關(guān)。為此最簡(jiǎn)單的方式是為元數(shù)據(jù)提供與底層指令相同的數(shù)值地址。然而,由于這兩個(gè)數(shù)據(jù)段在高速緩存中具有沖突存儲(chǔ)地址,所以這樣做的問(wèn)題是排斥在相同高速緩存結(jié)構(gòu)中存儲(chǔ)元數(shù)據(jù)和底層數(shù)據(jù)或指令。由于元數(shù)據(jù)在沒(méi)有其引用的底層數(shù)據(jù)或指令時(shí)具有最小價(jià)值,所以有必要?jiǎng)?chuàng)建存儲(chǔ)元數(shù)據(jù)的單獨(dú)高速緩存層次,或使用″隱藏位″或其它形式的輔助存儲(chǔ)來(lái)存儲(chǔ)元數(shù)據(jù)。
因此,所需的是為有用但不一定關(guān)鍵的數(shù)據(jù)提供更好存儲(chǔ)性能的手段,而無(wú)需增加大量系統(tǒng)成本。還需要允許數(shù)據(jù)和處理器元數(shù)據(jù)共存于統(tǒng)一高速緩存層次中而無(wú)需使用例如″隱藏位″的輔助數(shù)據(jù)存儲(chǔ)構(gòu)造的方法。動(dòng)態(tài)地使這種元數(shù)據(jù)存儲(chǔ)適應(yīng)處理器操作期間的立即性能和資源需求也是有利的。本發(fā)明提供針對(duì)這些和其它問(wèn)題的解決方案,并且提供優(yōu)于以前的解決方案的其它優(yōu)點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明提供一種存儲(chǔ)非關(guān)鍵處理器信息的方法和設(shè)備,其包含例如指令蹤跡和分支預(yù)測(cè)信息的先驗(yàn)和經(jīng)驗(yàn)信息,而無(wú)需給處理器設(shè)計(jì)帶來(lái)大量成本?;诒景l(fā)明的優(yōu)選實(shí)施例,短暫數(shù)據(jù)被存儲(chǔ)在處理器本地高速緩存層次(在另一個(gè)實(shí)施例中,使用多個(gè)處理器共享的高速緩存層次)。通過(guò)在當(dāng)在處理器本地高速緩存層次操作時(shí)所請(qǐng)求的或提供的地址中提供額外的控制位來(lái)實(shí)現(xiàn)這點(diǎn)。在一個(gè)實(shí)施例中,這個(gè)額外控制位形成用于確定在具體高速緩存線中特定高速緩存訪問(wèn)是否已經(jīng)命中或命中失誤的標(biāo)記的部分。在另一個(gè)實(shí)施例中,這個(gè)位被用于確定在執(zhí)行高速緩存查找時(shí)使用的等價(jià)類(equivalence class)。
設(shè)置有控制位(即,為″1″)的地址在這里被稱作″短暫存儲(chǔ)地址″。短暫存儲(chǔ)地址不回寫到外部主存儲(chǔ)器,并且當(dāng)從高速緩存的最后層級(jí)逐出時(shí),短暫存儲(chǔ)地址被丟棄。優(yōu)選地,短暫存儲(chǔ)地址的″特權(quán)″在于它們對(duì)軟件不可訪問(wèn)或只可被具有適當(dāng)權(quán)限的超級(jí)用戶或管理員級(jí)軟件訪問(wèn)。
在一個(gè)優(yōu)選實(shí)施例中,提供若干管理函數(shù)/指令以允許管理員/超級(jí)用戶軟件管理和/或修改短暫高速緩存存儲(chǔ)的行為。這些函數(shù)可以包含定義短暫存儲(chǔ)地址空間的大小,使一或多個(gè)短暫存儲(chǔ)條目/高速緩存線無(wú)效,在多個(gè)應(yīng)用程序間劃分/分配短暫存儲(chǔ)地址空間,和直接地針對(duì)短暫存儲(chǔ)空間讀取或?qū)懭搿?br>
上述是一個(gè)概述,并且因而有必要包含具體內(nèi)容的簡(jiǎn)化,概括和省略;因此,本領(lǐng)域的技術(shù)人員會(huì)理解,該概述只是示例性的,并且不被用于任何方式的限制。如通過(guò)權(quán)利要求書單獨(dú)定義的本發(fā)明的其它方面,發(fā)明特征和優(yōu)點(diǎn)將在下面提出的非限制性詳細(xì)描述中闡明。
通過(guò)參考附圖,可以更好地了解本發(fā)明,并且本發(fā)明的許多目的,特征和優(yōu)點(diǎn)對(duì)本領(lǐng)域的技術(shù)人員更清晰,其中圖1是圖解已知本領(lǐng)域的分層高速緩存結(jié)構(gòu)的框圖;圖2的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了使用用于存儲(chǔ)蹤跡信息的動(dòng)態(tài)確定長(zhǎng)度的短暫存儲(chǔ)的分層高速緩存結(jié)構(gòu);圖3的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了使用利用次級(jí)高速緩存目錄映射的動(dòng)態(tài)確定長(zhǎng)度的短暫存儲(chǔ)的分層高速緩存結(jié)構(gòu);圖4的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了使用用于存儲(chǔ)微結(jié)構(gòu)元信息的動(dòng)態(tài)確定長(zhǎng)度的短暫存儲(chǔ)的分層高速緩存結(jié)構(gòu);圖5的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了使用多處理器系統(tǒng)中的動(dòng)態(tài)確定長(zhǎng)度的短暫存儲(chǔ)的分層高速緩存結(jié)構(gòu);圖6的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了支持短暫高速緩存的高速緩存條目;圖7的框圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了在多個(gè)處理器中共享的高速緩存條目;圖8的流程圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了對(duì)短暫高速緩存進(jìn)行寫入的處理;而圖9的流程圖基于本發(fā)明的優(yōu)選實(shí)施例圖解了使用短暫高速緩存提供蹤跡高速緩存的處理。
具體實(shí)施例方式
下面提供本發(fā)明的例子的詳細(xì)描述,并且不應(yīng)被認(rèn)為是本發(fā)明自身的限制。當(dāng)然,任何數(shù)量的變型均可處于本發(fā)明的范圍內(nèi),該范圍在說(shuō)明書之后的權(quán)利要求中定義。
圖1是圖解可以在本發(fā)明的優(yōu)選實(shí)施例中使用的多層高速緩存結(jié)構(gòu)的框圖。中央處理單元(CPU)100包括主處理器數(shù)據(jù)路徑101,一級(jí)(L1)指令高速緩存102和一級(jí)(L1)數(shù)據(jù)高速緩存104。L1高速緩存102和104通過(guò)提供快速訪問(wèn)的、從中讀取指令(指令高速緩存102)和讀、寫數(shù)據(jù)(數(shù)據(jù)高速緩存104)的當(dāng)前使用存儲(chǔ)器位置的處理器本地復(fù)本,改進(jìn)CPU100的存儲(chǔ)器訪問(wèn)性能。如圖1所示,使用分立L1指令和數(shù)據(jù)高速緩存的方式允許對(duì)哈佛式計(jì)算機(jī)體系結(jié)構(gòu)帶來(lái)性能益處(即同時(shí)從不同存儲(chǔ)器系統(tǒng)讀取指令和數(shù)據(jù)的能力),同時(shí)保持馮諾依曼式體系結(jié)構(gòu)(其中指令和數(shù)據(jù)駐留在公共地址空間)的計(jì)算靈活性。CPU100還包含二級(jí)(L2)高速緩存106(比L1高速緩存102和104更大和略微慢),其提供快速訪問(wèn)的信息復(fù)本以便快速?gòu)?fù)制到L1高速緩存102和104。CPU9外部(L3)高速緩存108介于L2高速緩存106和主存儲(chǔ)器110之間,并且向L2高速緩存106提供類似中間高速緩存功能。
這個(gè)多層高速緩存結(jié)構(gòu)的每個(gè)層次提供有限數(shù)量的快速訪問(wèn)臨時(shí)存儲(chǔ)位置,其通常被分成包括連續(xù)存儲(chǔ)器地址塊的″高速緩存線″。當(dāng)在特定高速緩存級(jí)中占用所有可用高速緩存線,并且有必要向當(dāng)前未存儲(chǔ)在該高速緩存級(jí)的高速緩存線訪問(wèn)存儲(chǔ)器地址時(shí),至少一個(gè)高速緩存線必須從該高速緩存級(jí)中逐出以為新高速緩存線騰出空間。當(dāng)這個(gè)發(fā)生時(shí),被逐出的高速緩存線通常被″回寫″到下一個(gè)最低高速緩存級(jí)(例如,從二級(jí)到三級(jí)),或在高速緩存線正被從最低高速緩存級(jí)逐出的情況下″回寫″到主存儲(chǔ)器。這個(gè)模式被稱作″回寫″高速緩存。在另一種高速緩存,即″寫遍(write through)″高速緩存中,每個(gè)高速緩存線的寫入被立即傳播到所有高速緩存級(jí),所以不必在高速緩存線最終被逐出高速緩存時(shí)執(zhí)行回寫操作。
如圖2-5所示,在若干變型中,本發(fā)明的優(yōu)選實(shí)施例使用分層高速緩存以提供用于記錄各種非關(guān)鍵處理器數(shù)據(jù)的短暫存儲(chǔ)空間。允許高速緩存中某數(shù)量的高速緩存線用于短暫存儲(chǔ)。短暫存儲(chǔ)高速緩存線不回寫至或?qū)懕橹林鞔鎯?chǔ)器,而是在逐出最低級(jí)的高速緩存時(shí)被簡(jiǎn)單地刪除(可選地,短暫存儲(chǔ)高速緩存線可以在從更高級(jí)高速緩存逐出時(shí)被刪除,而不是允許它們到達(dá)最低高速緩存級(jí))。如圖6所示(參見(jiàn)),額外地址位被用于指示高速緩存中的指定高速緩存線是否正被用于短暫存儲(chǔ)。
如這里描述的短暫高速緩存的一個(gè)特別有用的應(yīng)用是在處理器的基于蹤跡的指令調(diào)度的領(lǐng)域。通過(guò)基于蹤跡的調(diào)度,程序內(nèi)的某些組的基本模塊(例如構(gòu)成循環(huán)的一組基本模塊)被處理器識(shí)別,并且存儲(chǔ)對(duì)應(yīng)于那些模塊的執(zhí)行的蹤跡信息以供以后使用。這些組被稱作″蹤跡組″。當(dāng)以前已經(jīng)執(zhí)行對(duì)應(yīng)于蹤跡組的代碼時(shí),處理器可以使用所存儲(chǔ)的蹤跡信息執(zhí)行分支預(yù)測(cè)并且提高該代碼的總體性能。
圖2是分層高速緩存系統(tǒng)的框圖,其中結(jié)合短暫存儲(chǔ)來(lái)使用蹤跡高速緩存,以允許高效存儲(chǔ)和檢索指令蹤跡信息。CPU200包括處理器數(shù)據(jù)路徑202以及三個(gè)一級(jí)高速緩存(蹤跡高速緩存204,指令高速緩存206和數(shù)據(jù)高速緩存208)。蹤跡高速緩存204被用于存儲(chǔ)在隨后的基于蹤跡的調(diào)度中使用的指令蹤跡信息。在二級(jí)和后續(xù)級(jí)高速緩存212中的某數(shù)量的高速緩存線被分配用作短暫存儲(chǔ)211。動(dòng)態(tài)確定短暫存儲(chǔ)211的大小,即,短暫存儲(chǔ)211的大小可以在CPU200執(zhí)行代碼時(shí)增大或減少。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,提供特殊指令以允許程序(例如操作系統(tǒng))根據(jù)需要?jiǎng)討B(tài)地設(shè)置短暫存儲(chǔ)211的大小。例如,從計(jì)算角度看,某些程序(例如數(shù)據(jù)庫(kù)引擎)相對(duì)簡(jiǎn)單,但是需要訪問(wèn)大量存儲(chǔ)器;這種程序會(huì)因相對(duì)其余高速緩存具有更小短暫存儲(chǔ)空間而帶來(lái)好處。另一方面,信號(hào)處理軟件或執(zhí)行數(shù)值數(shù)學(xué)計(jì)算的軟件可能不需要很多存儲(chǔ)器空間,但是可能使用會(huì)因具有更大短暫存儲(chǔ)空間而受益的嵌套循環(huán)或其它復(fù)雜控制結(jié)構(gòu)。因此,動(dòng)態(tài)調(diào)整短暫空間的大小的能力是本發(fā)明的優(yōu)選實(shí)施例的非常有益的特征。
由于把蹤跡信息與蹤跡信息涉及到的程序代碼的存儲(chǔ)器地址相關(guān)通常是有利的,所以蹤跡高速緩存204中的條目通常具有與指令高速緩存206中的指令地址匹配的地址。雖然這在其中使用單獨(dú)蹤跡和指令高速緩存的第一高速緩存級(jí)中沒(méi)有問(wèn)題,但在其中來(lái)自蹤跡高速緩存204,指令高速緩存206和數(shù)據(jù)高速緩存208的條目被聚合的第二和更低高速緩存級(jí)212中有問(wèn)題。如果正產(chǎn)生或使用具有與來(lái)自指令高速緩存206的指令相同的高速緩存級(jí)212中對(duì)應(yīng)高速緩存線的蹤跡信息,則該蹤跡信息將與高速緩存級(jí)212中的指令沖突,因而阻止在高速緩存級(jí)212中同時(shí)保持兩段信息。由于蹤跡信息只在可以訪問(wèn)它對(duì)應(yīng)的指令的情況下有用,所以在指令和其蹤跡信息被映射到更低高速緩存級(jí)212中的相同高速緩存線的情況下,顯然存在問(wèn)題。為了補(bǔ)救這種情況,散列函數(shù)210被應(yīng)用于蹤跡高速緩存204中的條目的地址,以便把指定高速緩存線的蹤跡信息映射到更低高速緩存級(jí)212中與蹤跡信息所對(duì)應(yīng)的指令不同的地址。這允許蹤跡高速緩存204中的條目具有與它們所屬的指令高速緩存206中的指令相同的地址,同時(shí)保證在來(lái)自蹤跡高速緩存204和指令高速緩存206的條目被寫入更低高速緩存級(jí)212時(shí),對(duì)應(yīng)條目將占用更低高速緩存級(jí)212中的不同(無(wú)沖突)條目。
可以被用來(lái)消除更低高速緩存級(jí)中的沖突、更加通用的另一種策略是使用如圖3中的蹤跡高速緩存目錄310。在圖3描述的實(shí)施例中,蹤跡高速緩存目錄310是把蹤跡高速緩存304中的高速緩存線的地址映射到更低高速緩存級(jí)312的短暫存儲(chǔ)311中的對(duì)應(yīng)條目的表或其它數(shù)據(jù)結(jié)構(gòu)。通過(guò)這種方式,來(lái)自指令高速緩存306的指令可以被直接映射到其更低高速緩存級(jí)312中對(duì)應(yīng)的條目,同時(shí)通過(guò)由蹤跡高速緩存目錄310提供的附加間接層級(jí)把蹤跡高速緩存條目304映射到更低高速緩存級(jí)312中的無(wú)沖突高速緩存線。
圖4圖解了前述附圖的基本模式的其它變型。具體地,圖4圖解了短暫存儲(chǔ)可以被用來(lái)存儲(chǔ)除了蹤跡信息之外的更一般形式的信息,例如有關(guān)在指定時(shí)間或執(zhí)行指定指令期間CPU400的微結(jié)構(gòu)的狀態(tài)的信息,如微結(jié)構(gòu)元信息高速緩存404所示。圖4還圖解了短暫存儲(chǔ)不必限于片上高速高速緩存。圖4圖解了包含短暫存儲(chǔ)條目411的處理器內(nèi)部二級(jí)(L2)高速緩存412以及包含相應(yīng)短暫存儲(chǔ)條目413的外部三級(jí)(L3)高速緩存414。
同樣,盡管未在圖4中明確說(shuō)明,然而本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,具有圖2-3中使用的類型的避免高速緩存線沖突的高速緩存地址間接也可以被用于基于圖4的實(shí)施例。具體地,地址散列函數(shù)(例如,地址散列210)或目錄(例如,蹤跡高速緩存目錄310)或其它適當(dāng)?shù)刂烽g接技術(shù)可以被用于例如圖4中描述的高速緩存結(jié)構(gòu)。
圖5圖解了前面附圖中描述的基本短暫存儲(chǔ)概念的另一個(gè)變型。圖5圖解了使用基于本發(fā)明的短暫存儲(chǔ)的共享存儲(chǔ)器/共享高速緩存多處理器系統(tǒng)體系結(jié)構(gòu)。在圖5中,使用了兩個(gè)CPU500和501,每個(gè)CPU在其各自L2高速緩存中維護(hù)其自身的短暫存儲(chǔ)(L2高速緩存512中的短暫存儲(chǔ)511和L2高速緩存515中的短暫存儲(chǔ)513)。CPU500和501共享L3高速緩存518,兩個(gè)處理器使用其存儲(chǔ)短暫元信息(短暫存儲(chǔ)517)。在L3高速緩存515中以與在單處理器中整合L1高速緩存條目非常相同的方式整合來(lái)自CPU500和501的短暫信息高速緩存條目。
如圖7中所圖解的(參見(jiàn)),通過(guò)在L3高速緩存518中使用的高速緩存地址中使用處理器ID位,可以避免處理器之間的沖突短暫存儲(chǔ)地址??蛇x地,可從利用在單處理器環(huán)境中如圖2和3所示的其它形式的地址沖突回避來(lái)代替處理器ID位或作為其補(bǔ)充。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,圖5中圖解的模式可以被擴(kuò)展到具有任何數(shù)量的單個(gè)處理器的多處理器系統(tǒng),并且圖5中提供的雙處理器例子并不是限制性的。
圖6和7圖解了在本發(fā)明的優(yōu)選實(shí)施例中把存儲(chǔ)器地址映射到高速緩存線的地址的方式。圖6圖解了單處理器情況,例如可以在圖2-4中描述的優(yōu)選實(shí)施例的環(huán)境中使用,而圖7圖解了多處理器情況,例如可以在基于圖5的實(shí)施例的環(huán)境中使用。
圖6基于本發(fā)明的優(yōu)選實(shí)施例描述了高速緩存中的存儲(chǔ)器位置的地址的格式600。在這個(gè)優(yōu)選實(shí)施例中,每個(gè)地址包括45位。第一位即控制位602指示地址是否表示普通存儲(chǔ)或短暫存儲(chǔ)(例如,如果是普通存儲(chǔ)則為″0″,如果是短暫存儲(chǔ)則為″1″)。剩余44位表示物理地址604。通過(guò)按照這種方式使用控制位602,可以具有通過(guò)地址的44位部分與普通物理地址一般相關(guān)的短暫存儲(chǔ)地址。這在收集關(guān)于例如特定指令或數(shù)據(jù)存儲(chǔ)器位置的統(tǒng)計(jì)數(shù)據(jù)時(shí)是有用的。
為了解釋地址以便索引高速緩存內(nèi)的高速緩存線,控制位602和物理地址604的前若干位被用作與地址600(等價(jià)設(shè)置位608)的接下來(lái)的若干位一起唯一標(biāo)識(shí)特定高速緩存線的標(biāo)記606。該高速緩存線內(nèi)特定存儲(chǔ)器位置的偏移由地址的最低有效位610提供。在典型的操作中,等價(jià)設(shè)置位608被用作把指定高速緩存線映射到有限數(shù)量的可用高速緩存線的索引,而標(biāo)記606允許高速緩存存儲(chǔ)的高速緩存線與其在主存儲(chǔ)器中的相應(yīng)地址范圍相關(guān)。
在可選實(shí)施例中,控制位602可以用于形成等價(jià)設(shè)置位608,并且/或各個(gè)字段(控制位,等價(jià)設(shè)置位,標(biāo)記位等等)的相對(duì)順序可以不同。在另一個(gè)實(shí)施例中,索引函數(shù)或散列函數(shù)可以被用于把標(biāo)記位和/或等價(jià)設(shè)置位映射到高速緩存中的實(shí)際物理地址;這可以被用于允許否則會(huì)映射到高速緩存中的相同位置的兩個(gè)高速緩存線被同時(shí)存儲(chǔ)在不同高速緩存位置。例如,如果短暫存儲(chǔ)高速緩存線通過(guò)相同44位物理地址與另一個(gè)普通存儲(chǔ)高速緩存線相關(guān),則索引函數(shù)或散列函數(shù)可用于把兩個(gè)高速緩存線映射到高速緩存中的不同位置,使得兩者可以被同時(shí)訪問(wèn)或快速相繼訪問(wèn),而無(wú)需導(dǎo)致必須切換一個(gè)高速緩存線到另一個(gè)的實(shí)質(zhì)性能損失。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在不偏離本發(fā)明的范圍和實(shí)質(zhì)的前提下,地址的具體格式和長(zhǎng)度可以有許多變化。
在一個(gè)優(yōu)選實(shí)施例中,短暫存儲(chǔ)地址的″特權(quán)″在于它們對(duì)軟件不可訪問(wèn)或只可被具有適當(dāng)權(quán)限的管理員或超級(jí)用戶軟件訪問(wèn)?;谶@個(gè)優(yōu)選實(shí)施例,通過(guò)發(fā)布特殊短暫存儲(chǔ)相關(guān)函數(shù)或通過(guò)用于此目的的專用寄存器,提供若干函數(shù)以允許管理員/超級(jí)用戶軟件(例如操作系統(tǒng),管理程序或其它系統(tǒng)軟件)管理和/或修改短暫高速緩存的行為。這些函數(shù)可以包含定義短暫存儲(chǔ)地址空間的大小,使一或多個(gè)短暫存儲(chǔ)條目/高速緩存線無(wú)效,在多個(gè)應(yīng)用程序間劃分/分配短暫存儲(chǔ)地址空間(例如,使用本領(lǐng)域所知的存儲(chǔ)器保護(hù)模式),和直接地針對(duì)短暫存儲(chǔ)空間讀取或?qū)懭搿?br>
當(dāng)在多個(gè)處理器中共享高速緩沖存儲(chǔ)器系統(tǒng)的情況下,可以使用例如圖7中描述的地址格式700的可選地址格式?;诘刂犯袷?00,其中控制位被清除(例如,控制位702),地址對(duì)應(yīng)于普通存儲(chǔ)器存儲(chǔ)并且剩余44位704示出物理地址。然而,如果控制位被設(shè)置(例如,控制位706和712),則處理器ID位字段(圖7中的位字段708和714)指示與該短暫存儲(chǔ)地址相關(guān)的特定處理器,并且剩余位(圖7中的位字段710和716)被用于存儲(chǔ)特定于處理器的短暫存儲(chǔ)地址。在圖7描述的例子中,使用2位處理器ID字段(其允許最多四個(gè)處理器),但是本領(lǐng)域的技術(shù)人員認(rèn)識(shí)到可以在具有不同數(shù)量的處理器的系統(tǒng)中使用不同數(shù)量的位。
圖8是基于本發(fā)明的優(yōu)選實(shí)施例描述寫入短暫存儲(chǔ)高速緩存線的處理的流程圖。圖8圖解了傳統(tǒng)高速緩存和基于本發(fā)明的優(yōu)選實(shí)施例的短暫存儲(chǔ)的操作之間的差異。此外,本領(lǐng)域的技術(shù)人員認(rèn)識(shí)到,盡管只在圖8中明確地描述寫入,但相應(yīng)讀取操作緊接在下面討論的后面。還應(yīng)當(dāng)注意,盡管圖8中的流程圖假定兩級(jí)高速緩存,但本領(lǐng)域的技術(shù)人員認(rèn)識(shí)到,圖8中描述的通用模式適用于具有任何數(shù)量的層級(jí)的高速緩存。
現(xiàn)在參照?qǐng)D8中圖解的具體動(dòng)作,短暫存儲(chǔ)的高速緩存線的寫操作在塊800啟動(dòng)。如果高速緩存線存在于高速緩存的頂級(jí)(塊802是),則數(shù)據(jù)被簡(jiǎn)單地直接寫入到高速緩存的現(xiàn)有高速緩存線(塊804)并且處理結(jié)束。
然而,如果高速緩存線不存在于高速緩存(塊802否),則確定是否已經(jīng)在高速緩存中分配最大數(shù)量的短暫存儲(chǔ)高速緩存線(塊806)(在可選實(shí)施例中,這個(gè)確定可以被省略,以令短暫存儲(chǔ)訪問(wèn)動(dòng)態(tài)地爭(zhēng)奪L2高速緩存資源)。如果否(塊806否),則確定頂級(jí)高速緩存中的適當(dāng)位置是否已滿(塊810)。如果不是這樣(塊810否),則創(chuàng)建新短暫存儲(chǔ)高速緩存線(塊808)并且數(shù)據(jù)寫入到該新高速緩存線(塊804)。
然而,如果頂級(jí)高速緩存中的適當(dāng)位置已滿(塊810是),則選擇頂級(jí)高速緩存中的適當(dāng)高速緩存線以逐出到更低級(jí)高速緩存(塊812)。如果更低級(jí)高速緩存滿(塊814是),則從更低級(jí)高速緩存中選擇和丟棄高速緩存線以為從頂級(jí)高速緩存逐出的高速緩存線騰出空間(塊813)。從頂級(jí)高速緩存逐出的高速緩存線接著被回寫到更低級(jí)高速緩存(塊816)。在頂級(jí)高速緩存中創(chuàng)建新短暫存儲(chǔ)高速緩存線(塊808)并且新數(shù)據(jù)被寫入到該新高速緩存線(塊804)。
圖9是表示利用短暫存儲(chǔ)來(lái)存儲(chǔ)在基于蹤跡的調(diào)度中使用的蹤跡組信息的處理的流程圖。在這個(gè)實(shí)施例中,用于蹤跡組信息的短暫存儲(chǔ)增加有一個(gè)目錄,以允許把蹤跡組信息存儲(chǔ)在具有與蹤跡組自身的起始相同的44位物理地址的短暫存儲(chǔ)位置,或在必要或合適的情況下存儲(chǔ)在另一個(gè)位置?,F(xiàn)在參照?qǐng)D9,處理開始時(shí)通過(guò)把蹤跡組自身的44位地址用作蹤跡組信息的短暫存儲(chǔ)中的起始地址,嘗試訪問(wèn)對(duì)應(yīng)于特定蹤跡組的信息(塊900)。如果在該位置找到條目(塊902是),則該執(zhí)行使用高速緩存蹤跡組信息繼續(xù)進(jìn)行,直到處理器退出該組(塊904)。
如果使用組的起始地址未找到條目(塊902否),則搜索目錄以查看蹤跡組高速緩存信息是否已經(jīng)被存儲(chǔ)在另一個(gè)地址(塊908)。如果是(塊910是),則從短暫存儲(chǔ)中的適當(dāng)位置獲取信息(塊912)。接著,檢查所獲取的信息的完整性,以確定信息是否實(shí)際已從高速緩存逐出并且因此不可使用(塊914)。如果信息尚未被從高速緩存逐出(塊914否),則該執(zhí)行使用高速緩存蹤跡組信息繼續(xù)進(jìn)行,直到處理器退出該組(塊904)。
如果所獲取的信息被預(yù)先從高速緩存逐出(塊914是)或如果在目錄中未找到條目(塊910否),則產(chǎn)生新指令蹤跡組并且執(zhí)行與之對(duì)應(yīng)的指令(塊916)。如果前一條目必須被逐出以為新組信息騰出空間(塊918是),則所逐出的指令蹤跡組被存儲(chǔ)在次級(jí)存儲(chǔ)器結(jié)構(gòu),并且產(chǎn)生針對(duì)所逐出的組信息的目錄條目(塊920)。接著,新指令蹤跡組被存儲(chǔ)在短暫存儲(chǔ)內(nèi)的蹤跡組高速緩存中(塊922)。
一旦當(dāng)前蹤跡組結(jié)束執(zhí)行,則確定下一個(gè)指令蹤跡組的起始地址(塊906)。接著,處理循環(huán)回到塊900以處理下一個(gè)蹤跡組。
本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,這里公開的本發(fā)明的大量其它變化可以在不偏離本發(fā)明的實(shí)質(zhì)的范圍的前提下進(jìn)行實(shí)踐。例如,在一個(gè)可能的實(shí)施例中,短暫存儲(chǔ)地址可以通過(guò)使用指示到短暫存儲(chǔ)地址的映射的專用頁(yè)表?xiàng)l目(例如,在分頁(yè)虛擬存儲(chǔ)器系統(tǒng)中)被映射到一或多個(gè)程序的地址空間。于是,例如操作系統(tǒng)的特權(quán)程序可以使用這樣映射的地址存儲(chǔ)和/或檢索短暫程序數(shù)據(jù)。可選地,可以允許用戶程序以這種方式存儲(chǔ)和檢索短暫程序數(shù)據(jù)。
在另一個(gè)可能的實(shí)施例中,針對(duì)已經(jīng)逐出(因此失敗)的短暫地址的請(qǐng)求通過(guò)提供缺省值(或″空″值)來(lái)滿足。在另一個(gè)實(shí)施例中,失敗的請(qǐng)求可以通過(guò)觸發(fā)某種通知事件來(lái)指示,其可以通過(guò)設(shè)置處理器中的寄存器或條件標(biāo)記值,或通過(guò)進(jìn)行程序狀態(tài)的某些其它改變來(lái)指示??蛇x地,通知事件可以具有激活的異?;蛑袛嗟男问?。本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,在本發(fā)明的實(shí)際實(shí)施例中,在不受限制和不偏離其范圍或宗旨的前提下,可以使用其它形式的失敗請(qǐng)求通知。
本發(fā)明的一個(gè)可能實(shí)現(xiàn)是具有例如可以駐留在計(jì)算機(jī)隨機(jī)訪問(wèn)存儲(chǔ)器中的代碼模塊中的一組指令(微碼)或其它功能描述材料。直到計(jì)算機(jī)需要,該組指令可以被存儲(chǔ)在例如硬盤驅(qū)動(dòng)器,或例如光盤(CDROM中最終使用)或軟盤(軟盤驅(qū)動(dòng)器中最終使用)的可移動(dòng)存儲(chǔ)器的另一個(gè)計(jì)算機(jī)存儲(chǔ)器中,或通過(guò)因特網(wǎng)或其它計(jì)算機(jī)網(wǎng)絡(luò)下載。因而,本發(fā)明可以被實(shí)現(xiàn)成計(jì)算機(jī)使用的計(jì)算機(jī)程序產(chǎn)品。另外,盡管在通用計(jì)算機(jī)中通過(guò)軟件有選擇地激活或重新配置方便地實(shí)現(xiàn)所描述的各種方法,但是本領(lǐng)域的普通技術(shù)人員還認(rèn)識(shí)到,這些方法可以在硬件,固件或構(gòu)造成執(zhí)行所需的方法步驟的更專用的裝置中執(zhí)行。功能描述材料是把功能賦予設(shè)備的信息。功能描述材料包含但不限于計(jì)算機(jī)程序,指令,規(guī)則,事實(shí),可計(jì)算函數(shù)的定義,對(duì)象和數(shù)據(jù)結(jié)構(gòu)。
雖然示出和描述了本發(fā)明的具體實(shí)施例時(shí),然而本領(lǐng)域的技術(shù)人員明白,基于這里的指導(dǎo),可以在不偏離本發(fā)明和其廣泛方面的前提下進(jìn)行變化和修改。因此,所附權(quán)利要求書試圖在其范圍內(nèi)覆蓋在本發(fā)明的真實(shí)宗旨和范圍內(nèi)的所有這種變化和修改。此外,應(yīng)當(dāng)理解本發(fā)明由所附權(quán)利要求單獨(dú)定義。本領(lǐng)域的技術(shù)人員理解,如果想要包含特定數(shù)量的所引入的權(quán)利要求要素,則這種意圖將在權(quán)利要求中被明確記載,并且在沒(méi)有這種記載時(shí),則不存在這種限定。作為非限制性例子,為幫助理解,下面所附權(quán)利要求包含引入性短語(yǔ)″至少一個(gè)″和″一或多個(gè)″的使用以引入權(quán)利要求要素。然而,這種短語(yǔ)的使用不應(yīng)該解釋為暗示由不定冠詞″a″或″an″對(duì)權(quán)利要求要素的引入,將任何包含這種引入的權(quán)利要求要素的具體權(quán)利要求限制于只包含一個(gè)這種要素的發(fā)明,即使在相同權(quán)利要求包含引入性短語(yǔ)″一或多個(gè)″或″至少一個(gè)″和不定冠詞例如″a″或″an″;這同樣適用于定冠詞的權(quán)利要求中的使用。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括確定應(yīng)當(dāng)從高速緩存清除的信息高速緩存線;確定該信息高速緩存線是否已經(jīng)指定為短暫存儲(chǔ);和僅在確定該信息高速緩存線尚未被指定為短暫存儲(chǔ)的情況下,把該信息高速緩存線保留在主存儲(chǔ)器中。
2.如權(quán)利要求1所述的方法,還包括如果確定該信息高速緩存線已經(jīng)指定為短暫存儲(chǔ),則響應(yīng)于確定應(yīng)當(dāng)從高速緩存中清除該信息高速緩存線,丟棄該信息高速緩存線。
3.如權(quán)利要求1所述的方法,其中高速緩存是上級(jí)高速緩存,并且該方法還包括僅在確定該信息高速緩存線尚未被指定為短暫存儲(chǔ)的情況下,把該信息高速緩存線保留在更低級(jí)高速緩存中。
4.如權(quán)利要求1所述的方法,還包括確立短暫存儲(chǔ)高速緩存線的最大數(shù)量,使得可以在高速緩存內(nèi)分配不超過(guò)該最大數(shù)量的短暫存儲(chǔ)高速緩存線。
5.如權(quán)利要求1所述的方法,其中該信息高速緩存線包含指令蹤跡組信息。
6.如權(quán)利要求1所述的方法,其中通過(guò)在與該信息高速緩存線相關(guān)的地址中包含至少一個(gè)控制位,將該信息高速緩存線指定為短暫存儲(chǔ)。
7.如權(quán)利要求1所述的方法,還包括對(duì)與該信息高速緩存線相關(guān)的地址應(yīng)用索引函數(shù),以把該信息高速緩存線映射到高速緩存中的位置。
8.如權(quán)利要求1所述的方法,其中該信息高速緩存線與計(jì)算機(jī)系統(tǒng)中的多個(gè)處理器中的一個(gè)處理器相關(guān),并且在該多個(gè)處理器間共享高速緩存的至少一部分。
9.一種處理器,其包括第一確定邏輯,其中第一確定邏輯確定應(yīng)當(dāng)從高速緩存中清除信息高速緩存線;第二確定邏輯,其中第二確定邏輯確定該信息高速緩存線是否已經(jīng)指定為短暫存儲(chǔ);和條件保留邏輯,其中僅在確定該信息高速緩存線尚未被指定為短暫存儲(chǔ)的情況下,條件保留邏輯把該信息高速緩存線保留在主存儲(chǔ)器中。
10.如權(quán)利要求9所述的處理器,還包括丟棄邏輯,其中如果確定該信息高速緩存線已經(jīng)指定為短暫存儲(chǔ),則丟棄邏輯響應(yīng)于確定應(yīng)當(dāng)從高速緩存中清除該信息高速緩存線,丟棄該信息高速緩存線。
11.如權(quán)利要求9所述的處理器,其中高速緩存是上級(jí)高速緩存,并且條件保留邏輯僅在確定該信息高速緩存線尚未被指定為短暫存儲(chǔ)的情況下,把該信息高速緩存線保留在更低級(jí)高速緩存中。
12.如權(quán)利要求9所述的處理器,還包括短暫存儲(chǔ)限制邏輯,其中短暫存儲(chǔ)限制邏輯對(duì)短暫存儲(chǔ)高速緩存線實(shí)施數(shù)值限定,使得可以在高速緩存內(nèi)分配不超過(guò)最大數(shù)量的短暫存儲(chǔ)高速緩存線。
13.如權(quán)利要求9所述的處理器,其中該信息高速緩存線包含指令蹤跡組信息。
14.如權(quán)利要求9所述的處理器,其中通過(guò)在與該信息高速緩存線相關(guān)的地址中包含至少一個(gè)控制位,該信息高速緩存線被指定為短暫存儲(chǔ)。
15.如權(quán)利要求9所述的處理器,還包括映射邏輯,其中映射邏輯對(duì)與該信息高速緩存線相關(guān)的地址應(yīng)用索引函數(shù),以把該信息高速緩存線映射到高速緩存中的位置。
16.如權(quán)利要求9所述的處理器,其中該信息高速緩存線與計(jì)算機(jī)系統(tǒng)中的多個(gè)處理器中的一個(gè)處理器相關(guān),并且在該多個(gè)處理器間共享高速緩存的至少一部分。
17.一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,包括功能描述材料,當(dāng)由計(jì)算機(jī)執(zhí)行時(shí),該功能描述材料使計(jì)算機(jī)執(zhí)行權(quán)利要求1-8中任何一個(gè)的步驟。
18.一種方法,包括提供具有多個(gè)等級(jí)的存儲(chǔ)器層次結(jié)構(gòu),其中該多個(gè)等級(jí)中的一個(gè)是主存儲(chǔ)器級(jí),并且該多個(gè)等級(jí)中的至少一個(gè)是高速緩沖存儲(chǔ)器級(jí);分配該多個(gè)等級(jí)中所述等級(jí)之一的一部分來(lái)存儲(chǔ)蹤跡組信息,其中所述等級(jí)之一是主存儲(chǔ)器級(jí)或至少一個(gè)高速緩沖存儲(chǔ)器級(jí);獲得要存儲(chǔ)在存儲(chǔ)器層次結(jié)構(gòu)中的蹤跡組信息;確定所述部分是否被蹤跡組信息完全占用;和響應(yīng)于確定所述部分被蹤跡組信息完全占用,用所獲得的要存儲(chǔ)在存儲(chǔ)器層次結(jié)構(gòu)中的蹤跡組信息改寫所述部分的子部分。
全文摘要
用于短暫高速緩存存儲(chǔ)的方法和處理器。公開了無(wú)需在處理器設(shè)計(jì)上投入大量費(fèi)用的存儲(chǔ)非關(guān)鍵處理器信息的方法和設(shè)備。短暫數(shù)據(jù)被存儲(chǔ)在處理器本地高速緩存層次結(jié)構(gòu)。額外控制位形成部分高速緩存地址,其中具有該控制位的地址被指定為"短暫存儲(chǔ)地址"。短暫存儲(chǔ)地址不回寫到外部主存儲(chǔ)器,并且當(dāng)從高速緩存的最后等級(jí)逐出時(shí),短暫存儲(chǔ)地址被丟棄。優(yōu)選地,短暫存儲(chǔ)地址的"特權(quán)"在于它們對(duì)軟件不可訪問(wèn)或只可被具有適當(dāng)權(quán)限的超級(jí)用戶或管理員級(jí)軟件訪問(wèn)。提供若干管理函數(shù)/指令以允許管理員/超級(jí)用戶軟件管理和/或修改短暫高速緩存的行為。這個(gè)短暫存儲(chǔ)模式允許高速緩存層次結(jié)構(gòu)存儲(chǔ)可以被處理器核心使用、但分配給外部存儲(chǔ)器可能代價(jià)過(guò)高的數(shù)據(jù)項(xiàng)。
文檔編號(hào)G06F12/08GK1979452SQ20061012621
公開日2007年6月13日 申請(qǐng)日期2006年8月25日 優(yōu)先權(quán)日2005年12月6日
發(fā)明者邁克爾·卡爾·施溫德, 羅伯特·凱文·蒙托耶, 埃里克·R·奧特曼, 尤德·A·里弗斯, 蘇梅德·W·薩塔耶, 約漢-戴維·威爾曼, 維克托·祖班 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司