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