專利名稱:用于管理高速緩存器分割的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體來說涉及高速緩存存儲(chǔ)器,且更特定來說涉及對(duì)這種存儲(chǔ)器的劃分的 管理,例如較高與較低優(yōu)先級(jí)條目之間的劃分。
背景技術(shù):
將高速緩存存儲(chǔ)器分割為鎖定及未鎖定區(qū)域是一種常見的做法。更特定來說,己 經(jīng)知曉在鎖定與未鎖定條目之間分配高速緩存器組的路徑,但用于鎖定/未鎖定分割管 理的常規(guī)方法具有某些缺陷。
例如, 一種將高速緩存器路徑劃分為鎖定及未鎖定部分的方法為每高速緩存器組 總共使用三個(gè)指針。所述三個(gè)指針包含用以指示所述高速緩存器組中的下一鎖定條目 的鎖定指針,及用以指示所述高速緩存器組中的下一未鎖定條目的未鎖定指針。第三 個(gè)指針為鎖定條目分割界定一個(gè)上限或最高限度,且因此為未鎖定分割建立一個(gè)固定 的最低限度。也就是說,在所述三個(gè)指針的方法中,兩個(gè)指針用于管理高速緩存器組 的鎖定及未鎖定部分的連續(xù)寫入,且第三指針用于指示高速緩存器組的鎖定與未鎖定 部分之間的固定邊界。
管理既定的高速緩存器組的鎖定及未鎖定部分的另一方法依賴于在所述組的每
一高速緩存器路徑中的每高速緩存線中所使用的鎖定/未鎖位。使用此方法,額外的寄 存器位將單獨(dú)的高速緩存線標(biāo)記為鎖定或未鎖定。
雖然上述方法的確準(zhǔn)許對(duì)高速緩存器組的鎖定及未鎖定部分進(jìn)行至少有限的管 理,但這樣做是以使用額外的寄存器、增加軟件開銷及降低高速緩存器使用效率為代 價(jià)的。這些缺點(diǎn)對(duì)于大型高速緩存器來說尤其成問題,在所述高速緩存器中,大量的 寄存器資源交付給高速緩存存儲(chǔ)器分割的管理。
發(fā)明內(nèi)容
本文所教示的一種管理高速緩存存儲(chǔ)器分割的方法的一個(gè)實(shí)施例包括提供用于 到高速緩存存儲(chǔ)器中的較高優(yōu)先級(jí)寫入的第一寫入指針,及用于到所述高速緩存存儲(chǔ) 器中的較低優(yōu)先級(jí)寫入的第二寫入指針;及將所述第一寫入指針用作所述較低優(yōu)先級(jí) 寫入的定界符。將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫入的定界符通常包括阻止 所述第二寫入指針指向己對(duì)其進(jìn)行較高優(yōu)先級(jí)寫入的高速緩存存儲(chǔ)器位置。
因此,將第一指針與較高優(yōu)先級(jí)寫入相關(guān)聯(lián)并限制第二指針的位置可在高速緩存存儲(chǔ)器的相鄰的較高與較低優(yōu)先級(jí)區(qū)域之間建立動(dòng)態(tài)邊界。換句話說,可視需要來進(jìn) 行正在進(jìn)行的較低優(yōu)先級(jí)寫入,但是可通過操縱第一及第二指針回收所述較低優(yōu)先級(jí) 寫入所占用的高速緩存存儲(chǔ)器位置來進(jìn)行較高優(yōu)先級(jí)寫入。以此方式,如本文所教示 的在并入有高速緩存器分割的微處理器上執(zhí)行的軟件無需明確地設(shè)定及管理分割邊 界。
例如,微處理器可經(jīng)配置以為每高速緩存器組提供兩個(gè)指針,其中所述指針中的 第一者表示為(較高優(yōu)先級(jí))鎖定指針,且這些指針中的第二者表示為(較低優(yōu)先級(jí)) 未鎖定指針。所述微處理器中所包含的高速緩存器分割控制電路經(jīng)配置以將所述鎖定 指針指向高速緩存器組中的第一未鎖定條目,以使(例如)所述指針下方的所有條目 都被鎖定。此外,根據(jù)下一高速緩存寫入是鎖定寫入還是未鎖定寫入,所述鎖定及未 鎖定指針兩者均將指向髙速緩存器組中的下一犧牲者。在此配置中,所述鎖定指針擔(dān) 當(dāng)未鎖定區(qū)域的最低限度,且可操縱所述未鎖定指針以使其移動(dòng)到高速緩存器組中具 有連續(xù)未鎖定寫入的最大位置并繞回到所述鎖定指針。
圖1是圖解說明本文中所教示的指針管理及所得動(dòng)態(tài)高速緩存器分割的一個(gè)實(shí)施 例的邏輯流程圖。
圖2及圖3是高速緩存存儲(chǔ)器的方框圖,且其圖解說明使用第一及第二指針來形 成所述高速緩存存儲(chǔ)器的較高優(yōu)先級(jí)及較低優(yōu)先級(jí)區(qū)域,所述區(qū)域之間有動(dòng)態(tài)邊界。
圖4-7是高速緩存器組的方框圖且其圖解說明使用一對(duì)指針來動(dòng)態(tài)地管理高速緩 存器組中的經(jīng)分割路徑。
圖8及圖9是圖解說明通過使用第一及第二指針來動(dòng)態(tài)地分割高速緩存器組的另 一實(shí)施例的方框圖。
圖10是圖解說明使用多個(gè)指針在高速緩存存儲(chǔ)器中形成具有不同優(yōu)先級(jí)的多個(gè) 動(dòng)態(tài)分界區(qū)域。
圖11是并入有高速緩存器控制電路的微處理器的方框圖,所述高速緩存器控制 電路經(jīng)配置以根據(jù)本文所教示方法中的一者或多者通過使用指針對(duì)來執(zhí)行高速緩存存 儲(chǔ)器分割管理。
圖12是分割控制電路的方框圖,所述分割控制電路可包含在(例如)圖11的微 處理器中的高速緩存存儲(chǔ)器控制電路中。
具體實(shí)施例方式
圖1是廣義地圖解說明本文中所教示的管理高速緩存存儲(chǔ)器分割的方法的邏輯流
程圖。所述方法基于提供用于到高速緩存存儲(chǔ)器中的較高優(yōu)先級(jí)寫入的第一寫入指 針,及用于到所述高速緩存存儲(chǔ)器的較低優(yōu)先級(jí)寫入的第二寫入指針(步驟100)。在如此界定所述指針對(duì)之后,所述方法將所述第一寫入指針用作較低優(yōu)先級(jí)寫入
的定界符(步驟102)。所述方法在高速緩存存儲(chǔ)器中有效地形成較高及較低優(yōu)先級(jí)
區(qū)域,其中所述較高優(yōu)先級(jí)指針擔(dān)當(dāng)所述兩個(gè)區(qū)域之間的動(dòng)態(tài)邊界。
此布置顯示于圖2中,其中高速緩存存儲(chǔ)器10 (或高速緩存存儲(chǔ)器的至少一選定 部分)包含由第一指針(PTR1)尋址的較高優(yōu)先級(jí)區(qū)域12及第二指針(PTR2)尋址 的較低優(yōu)先級(jí)區(qū)域14。 PTR1在區(qū)域12與14之間界定邊界16。使用PTR1來標(biāo)記所 述區(qū)域之間的邊界允許較高優(yōu)先級(jí)區(qū)域12在犧牲較低優(yōu)先級(jí)區(qū)域14的情況下增長(zhǎng)。 也就是說,對(duì)所圖解說明的存儲(chǔ)器布局來說,PTR1可從與高速緩存存儲(chǔ)器10的下部 邊界相關(guān)聯(lián)的既定開始(最小)值起取值,直到與高速緩存存儲(chǔ)器10的上部邊界相關(guān) 聯(lián)的最終(最大)值。相反,PTR2可取從PTR1的當(dāng)前值一直到高速緩存儲(chǔ)存器10 的上部邊界的范圍內(nèi)的值。因此,通常阻止PTR2指向已對(duì)其進(jìn)行較高優(yōu)先級(jí)寫入的 高速緩存存儲(chǔ)器位置。
在此布置中,PTR1可經(jīng)配置以穿越高速緩存器組一直前進(jìn)到最大指針值,或一 直到從最大指針值的經(jīng)界定偏移。此外,PTR2可經(jīng)配置以穿越高速緩存存儲(chǔ)器一直 前進(jìn)到最大指針值,且然后繞回到第一寫入指針的當(dāng)前值,或繞回到對(duì)應(yīng)于相對(duì)于第 一寫入指針的當(dāng)前值的經(jīng)界定偏移的值。圖2特別地圖解說明,較低優(yōu)先級(jí)區(qū)域14 可包含有效及無效(未經(jīng)初始化)條目。例如,這種情況可出現(xiàn)在高速緩存器使用的 開始時(shí)。然后,圖3圖解說明,PTR2將因重復(fù)的較低優(yōu)先級(jí)寫入而填充較低優(yōu)先級(jí) 區(qū)域14的每一可用位置,且然后向下繞回到由PTR1所界定的邊界16,且在其朝向 高速緩存存儲(chǔ)器的上限前進(jìn)返回時(shí)開始重寫先前已寫入的較低優(yōu)先級(jí)條目。
當(dāng)然,較低優(yōu)先級(jí)區(qū)域14中的此環(huán)繞寫入假定較高優(yōu)先級(jí)寫入尚未使較高優(yōu)先 級(jí)區(qū)域12前進(jìn)到其上限。更特定來說,PTR1可一直前進(jìn)到最大值(或比最大值小1), 且然后允許其"飽和"或者固定在所述值。 一旦PTR1固定在存儲(chǔ)器范圍頂端,所述 頂端以下的所有位置都不能由PTR2獲得,且因此PTR2將與PTR1 —起有效地"固定" 在存儲(chǔ)器范圍的頂端。在這種情形下,指針管理邏輯可使PTR1及PTR2保持在最頂 端存儲(chǔ)器位置處,且允許所述最頂端位置中的額外較高及較低優(yōu)先權(quán),這有效地意味 著,將不存在所述最頂端位置的寫入優(yōu)先化,且隨后的較高及較低優(yōu)先級(jí)寫入僅將連 續(xù)地重寫最頂端位置。
通過上述指針對(duì)布置,微處理器可方便地在鎖定與未鎖定條目之間分配高速緩存 器組的路徑以(例如)減少硬件并提高代碼效率。(可將"鎖定"寫入視為一種具有 比"未鎖定"寫入更高優(yōu)先級(jí)的高速緩存寫入。)
更特定來說,PTR1可擔(dān)當(dāng)鎖定指針,且PTR2可擔(dān)當(dāng)未鎖定指針??身憫?yīng)于進(jìn) 行未鎖定寫入使PTR2前進(jìn)(例如增量)且響應(yīng)于進(jìn)行鎖定寫入使PTR1前進(jìn)。因此, PTR1將指向高速緩存器組中的第一未鎖定條目,且所述第一未鎖定條目下方的所有 條目都是鎖定的。因此,鎖定寫入將重寫當(dāng)前由PTR1所指向的未鎖定(或空)條目, 且然后PTR1將前進(jìn)到下一未鎖位置置。必要時(shí),PTR2可經(jīng)調(diào)節(jié)以停留在PTR1的位置或停留在所述位置上方。此外,可使PTR2在前進(jìn)到最大指針值之后繞回到PTR1, 以使PTR1的當(dāng)前位置建立未鎖定寫入的最低限度。
此方法消除了對(duì)每高速緩存器組唯一的最低限度/最高限度寄存器的需要,且去除 了對(duì)每高速緩存線一個(gè)鎖定及未鎖位置的需要。此外,所述方法消除了在鎖定與未鎖 定條目之間具有程序設(shè)計(jì)器管理邊界的必要性。最后,以此方式對(duì)鎖定及未鎖定路徑 分組消除了管理高速緩存器中交錯(cuò)的鎖定及未鎖定條目的必要性一即,不強(qiáng)制所述軟 件管理每高速緩存器條目的鎖定/未鎖定狀態(tài)位。
通過將上述鎖定/未鎖定寫入作為較高及較低優(yōu)先級(jí)高速緩存寫入的一個(gè)實(shí)例,圖 4-7圖解說明使用指針對(duì)來管理將高速緩存器組20動(dòng)態(tài)地分割為較高及較低優(yōu)先級(jí)區(qū) 域的一個(gè)實(shí)施例。
圖4-7中所圖解說明的高速緩存器組20包含16個(gè)路徑(0-15),可根據(jù)本文中 所教示的方法將所述16個(gè)路徑動(dòng)態(tài)地分割為較高及較低優(yōu)先級(jí)區(qū)域。更特定來說,圖 4-7圖解說明為向高速緩存器組20中的較高優(yōu)先級(jí)寫入提供第一寫入指針(PTR1)、 為到高速緩存器組20中的較低優(yōu)先級(jí)寫入提供第二寫入指針(PTR2),及將PTR1 用作較低優(yōu)先級(jí)寫入的定界符。
在所圖解說明的實(shí)施例中,將PTR1用作定界符以用于較低優(yōu)先級(jí)寫入包括初 始化PTR1及PTR2使其相等;響應(yīng)于進(jìn)行較高及較低優(yōu)先級(jí)寫入分別地使PTR1及 PTR2前進(jìn);及視需要另外地使PTR2前進(jìn)以防止PTR1超過PTR2。(注意,此句中 使用的"超過"是個(gè)相對(duì)的詞,且其意思僅僅是,不允許將PTR2假定或停留在已由 PTR1遍歷的指針值。)例如,如果PTR1當(dāng)前正指向16路徑高速緩存器組20的路 徑5將其作為下一鎖定寫入犧牲者,則PTR1通常將已經(jīng)遍歷過高速緩存器組20的路 徑0-4,這意味著通常將防止PTR2指向路徑0-4來避免重寫那些位置中的鎖定條目。
本著這個(gè)一般的指針管理方法,圖4顯示高速緩存器組20的初始化狀態(tài),其中 PTR1及PTR2經(jīng)初始化以指向高速緩存器組20的路徑0。因此,操作以路徑O作為 較高或較低優(yōu)先級(jí)的下一犧牲者而開始。假定在沒有進(jìn)行任何較高優(yōu)先級(jí)寫入的情況 下進(jìn)行了三次較低優(yōu)先級(jí)寫入,則圖5圖解說明PTR2前進(jìn)到路徑3,以使高速緩存 器組20的路徑0-15有效地界定高速緩存器組20(其中路徑0-2含有剛剛寫入的條目) 的較低優(yōu)先級(jí)區(qū)域22。注意,PTR1依然固定在路徑O處,這意味著鎖定寫入的下一 犧牲者是路徑O,以重寫先前寫入到路徑O中的未鎖定條目。
現(xiàn)在,假定在沒有進(jìn)行任何額外較低優(yōu)先級(jí)寫入的情況下對(duì)高速緩存器組20進(jìn) 行了較高優(yōu)先級(jí)寫入,則圖6圖解說明,PTR1已前進(jìn)到高速緩存器組20的路徑1, 以使高速緩存器組20的路徑0有效地表示高速緩存器組20的較高優(yōu)先級(jí)區(qū)域24。通 過此圖解說明,讀者將了解,較低優(yōu)先級(jí)區(qū)域22與較高優(yōu)先級(jí)區(qū)域24之間的邊界是 由PTR1的當(dāng)前位置界定的。
現(xiàn)在,假定在沒有進(jìn)行任何進(jìn)一步較低優(yōu)先級(jí)寫入的情況下進(jìn)行了三次額外的較 高優(yōu)先級(jí)寫入,則圖7圖解說明,已使PTR1從路徑1前進(jìn)到路徑4,且較高優(yōu)先級(jí)
8區(qū)域24現(xiàn)在從路徑0跨越到路徑3。通過PTR1的此前進(jìn),較低優(yōu)先級(jí)區(qū)域22已由 較高優(yōu)先級(jí)寫入部分地重寫,且PTR2已連同PTR1 —起前進(jìn)以防止PTR1超過PTR2。
因此,現(xiàn)在PTR1及PTR2兩者均指向高速緩存器組20的路徑4。 PTR1及PTR2 的當(dāng)前位置意味著路徑4是較高優(yōu)先級(jí)寫入(PTR1)或較低優(yōu)先級(jí)寫入(PTR2) 的下一犧牲者,且路徑0-3是鎖定的。因此,在此時(shí),較高優(yōu)先級(jí)區(qū)域12從路徑0跨 越到路徑3,且較低優(yōu)先級(jí)區(qū)域從路徑4跨越到路徑15。
在此點(diǎn)上應(yīng)注意,PTR1通常穿越將其被指派到的高速緩存存儲(chǔ)器的區(qū)域而直線 地前進(jìn),且允許PTR1固定在所述區(qū)域的頂端或者在頂端飽和(即,防止PTR1環(huán)繞) 以防止重寫PTR1下方的鎖定條目。當(dāng)然,只要PTR2停留在PTR1的當(dāng)前位置或在所 述位置上方,即可準(zhǔn)許其穿越高速緩存存儲(chǔ)器的相同區(qū)域前進(jìn),且可進(jìn)一步準(zhǔn)許其從 所述區(qū)域的頂端繞回到PTR1的當(dāng)前位置。這樣做可啟動(dòng)"循環(huán)"置換方案,其中, 視需要,基于PTR2重復(fù)地穿越在PTR1當(dāng)前位置或所述位置上方的留給PTR2的高速 緩存存儲(chǔ)器區(qū)域中的任何部分,以較新的較低優(yōu)先級(jí)寫入代替較老的較低優(yōu)先級(jí)寫入。
在任何情形中可看出,響應(yīng)于進(jìn)行較高優(yōu)先級(jí)寫入使PTR1前進(jìn)可界定高速緩存 存儲(chǔ)器組20的較高優(yōu)先級(jí)區(qū)域,所述較高優(yōu)先級(jí)區(qū)域?qū)?yīng)于高速緩存存儲(chǔ)器組中 由PTR1遍歷的部分。通過響應(yīng)于進(jìn)行較低優(yōu)先級(jí)寫入且視需要地響應(yīng)于使PTR1前 進(jìn)來使PTR2前進(jìn),可看出較低優(yōu)先級(jí)區(qū)域借助于動(dòng)態(tài)邊界存在于較高優(yōu)先級(jí)區(qū)域上 方。此外,可看出準(zhǔn)許通過PTR2在較低優(yōu)先級(jí)區(qū)域中的環(huán)繞的寫入,其中PTR1的 位置擔(dān)當(dāng)PTR2的環(huán)繞最低限度,由此來防止較低優(yōu)先級(jí)寫入重寫較高優(yōu)先級(jí)條目。 更簡(jiǎn)便地,控制PTR2的值以使PTR2不會(huì)遍歷已由PTR1遍歷的存儲(chǔ)器位置。
因此,雖然較低優(yōu)先級(jí)區(qū)域的最高限度可在高速緩存存儲(chǔ)器組20中向上移動(dòng), 但由PTR1的位置界定的較低優(yōu)先級(jí)區(qū)域的最低限度也可向上移動(dòng)。此允許較高優(yōu)先 級(jí)區(qū)域在犧牲較低優(yōu)先級(jí)區(qū)域的情況下增長(zhǎng),并確保所述較低優(yōu)先級(jí)寫入不會(huì)重寫先 前的較高優(yōu)先級(jí)寫入。
圖8及圖9顯示另一實(shí)施例,其中將PTR1及PTR2初始化到高速緩存器組20的 相對(duì)的第一及第二端,且到高速緩存器組20中進(jìn)行較高及較低優(yōu)先級(jí)寫入時(shí)朝向彼此 移動(dòng)。更特定來說,如圖8中所顯示,將PTR1初始化到第一值,所述值可以是高速 緩存器組20的底部,且將PTR2初始化到相對(duì)于所述第一值偏移的第二值,所述第二 值可以是高速緩存器組20的頂部。然后,響應(yīng)于向高速緩存器組20中進(jìn)行較高優(yōu)先 級(jí)寫入來使PTR1朝向PTR2前進(jìn),且響應(yīng)于向高速緩存器組20中進(jìn)行較低優(yōu)先級(jí)寫 入來使PTR2朝向PTR1前進(jìn)。在此布置中,所述方法進(jìn)一步包含視需要使PTR2后退 (例如,將其"向后"移動(dòng))以防止PTR1越過PTR2。
圖9圖解說明PTR1及PTR2相對(duì)于圖8的后續(xù)位置,假定已向高速緩存器組20 進(jìn)行三次較高優(yōu)先級(jí)寫入及兩次較低優(yōu)先級(jí)寫入??梢钥闯觯窂?5-3現(xiàn)在包括高速 緩存器組20(其中路徑15及14含有剛剛寫入的較低優(yōu)先級(jí)值)的較低優(yōu)先級(jí)區(qū)域22, 且PTR2指向路徑13將其作為較低優(yōu)先級(jí)寫入的下一犧牲者。類似地,現(xiàn)在路徑0-2包括高速緩存器組20的較高優(yōu)先級(jí)區(qū)域24,且PTR1指向路徑3將其作為較高優(yōu)先 級(jí)寫入的下一犧牲者。同樣,應(yīng)注意,準(zhǔn)許PTR2朝向PTR1的當(dāng)前位置前進(jìn)但不超越PTR1,且可準(zhǔn)許 PTR2從PTR1繞回到PTR2的開始位置來用于較低優(yōu)先級(jí)高速緩存器條目的循環(huán)置 換。也就是說,PTR2可向下前進(jìn)到其遇到PTR1的點(diǎn),且然后可重新設(shè)定其值或繞回 到高速緩存器組20的頂部,以使其被允許再次向下至少前進(jìn)到PTR1的當(dāng)前位置。然后,圖8及圖9大體地圖解說明管理既定的高速緩存器組的一對(duì)高速緩存器指 針(或高速緩存存儲(chǔ)器的既定區(qū)域)的另一方法,其中在所關(guān)注高速緩存器區(qū)域的相 對(duì)端上初始化所述對(duì)中的每一指針,并準(zhǔn)許所述指針向內(nèi)朝向彼此移動(dòng)。更特定來說, 可看出響應(yīng)于進(jìn)行較高優(yōu)先級(jí)寫入使PTR1前進(jìn)可界定對(duì)應(yīng)于高速緩存器組20中由 PTR1遍歷的部分的較高優(yōu)先級(jí)區(qū)域。將高速緩存器組20中沒有由PTR1遍歷的區(qū)域 界定為較低優(yōu)先級(jí)區(qū)域,所述較低優(yōu)先級(jí)區(qū)域在一端處由PTR2的最小(或開始)位 置分界,且在另一端處由PTR1的動(dòng)態(tài)變化位置分界。因此,視需要響應(yīng)于較低優(yōu)先 級(jí)寫入使PTR2在較低優(yōu)先級(jí)區(qū)域內(nèi)前進(jìn),且視需要使其后退,以防止PTR1越過 PTR2。圖10圖解說明本文中所教示的動(dòng)態(tài)分割方法的進(jìn)一步擴(kuò)展,其中高速緩存存儲(chǔ) 器10劃分為最高優(yōu)先級(jí)區(qū)域12、下一最高優(yōu)先級(jí)區(qū)域14,及下一最高優(yōu)先級(jí)區(qū)域30。 (換句話說,所述優(yōu)先級(jí)等級(jí)為區(qū)域12、區(qū)域14,且然后區(qū)域30)。PRT1充當(dāng)區(qū)域14的最低限度,且PTR2充當(dāng)區(qū)域30的最低限度。PTR1向上前 進(jìn)且因此在犧牲區(qū)域14及30的情況下增長(zhǎng)區(qū)域12,且PTR2向上前進(jìn)且因此在犧牲 區(qū)域30的情況下增長(zhǎng)區(qū)域14??稍试SPTR1及PTR2兩者均向上前進(jìn)到高速緩存存儲(chǔ) 器10的最大或末端位置,或一直到小于所述最大位置的經(jīng)界定偏移。相反,可允許 PTR3向上增長(zhǎng)到所述最大位置且然后向下繞回到充當(dāng)區(qū)域30的最低限度(定界符) 的PTR2。因此,區(qū)域30的所有或一部分遭受到區(qū)域14及/或區(qū)域12的條目的重寫, 且區(qū)域14的所有或一部分遭受到區(qū)域12的條目的重寫。廣義地理解,上述方法教示了在高速緩存存儲(chǔ)器的較高與較低優(yōu)先級(jí)區(qū)域之間的 動(dòng)態(tài)的分割,其中,對(duì)兩個(gè)區(qū)域的實(shí)例來說,響應(yīng)于進(jìn)行較高優(yōu)先級(jí)寫入使第一寫入 指針前進(jìn)可界定高速緩存存儲(chǔ)器的較高優(yōu)先級(jí)區(qū)域,所述較高優(yōu)先級(jí)區(qū)域?qū)?yīng)于高速 緩存存儲(chǔ)器中由所述第一寫入指針遍歷的部分,且可界定高速緩存存儲(chǔ)器的較低優(yōu)先 級(jí)區(qū)域,所述較低優(yōu)先級(jí)區(qū)域?qū)?yīng)于高速緩存存儲(chǔ)器中沒有被第一寫入指針遍歷的部 分。更特定來說,第一指針跟蹤較高優(yōu)先級(jí)寫入且不準(zhǔn)許其繞回,因此,高速緩存存 儲(chǔ)器中沒有被較高優(yōu)先級(jí)指針遍歷的區(qū)域表示沒有在其中進(jìn)行較高優(yōu)先級(jí)寫入的存儲(chǔ) 器位置,且因此是可在其中進(jìn)行較低優(yōu)先級(jí)寫入的位置。所述較低優(yōu)先級(jí)指針可視需 要在較低優(yōu)先級(jí)區(qū)域內(nèi)環(huán)繞,且較低優(yōu)先級(jí)區(qū)域在較高優(yōu)先級(jí)區(qū)域增長(zhǎng)的同時(shí)縮小。圖11圖解說明微處理器40,其可經(jīng)配置以包含本文中所教示的管理動(dòng)態(tài)高速緩 存器分割的一個(gè)或多個(gè)方法。所屬技術(shù)領(lǐng)域中的技術(shù)人員應(yīng)了解,微處理器體系結(jié)構(gòu)有很大的不同,且可使用大量的電路布置來具體化本文中教示的各種方法。因此,應(yīng)了解,圖11的微處理器40可作為將動(dòng)態(tài)高速緩存器分割并入到微處理器中的非限定 性實(shí)例。所圖解說明的微處理器40包括指令管線42,所述指令管線包含前端單元44、 執(zhí)行單元46,及完成單元48。指令管線42與分支控制電路50相關(guān)聯(lián),且與高速緩存 控制器52相關(guān)聯(lián),所述高速緩存控制器向前端單元44提供來自層1 (Ll)指令高速 緩存器54的經(jīng)高速緩存指令,且向執(zhí)行單元46提供來自數(shù)據(jù)高速緩存器56的經(jīng)高速 緩存數(shù)據(jù)。與本文中教示的方法特別相關(guān)的是,高速緩存控制器52可經(jīng)配置以包含分 割控制電路,所述分割控制電路用于管理指令高速緩存器54及/或數(shù)據(jù)高速緩存器56 中的分割。指令高速緩存器54 (或數(shù)據(jù)高速緩存器56)可以是組相聯(lián)或全相聯(lián)的,且 本文中教示的方法同樣地適用于任一配置。圖12圖解說明分割控制電路60的一個(gè)實(shí)施例,所述分割控制電路包含一對(duì)寄存 器62及64或與其相關(guān)聯(lián)。寄存器62及64可用于保持一對(duì)指針值(即,PTR1及PTR2 的值)。例如,假定指令高速緩存器54是16路徑的組相聯(lián)高速緩存器,則分割控制 電路60可為每一組指令高速緩存器54維持一對(duì)寄存器62及64。以非限定性實(shí)例的 方式,假定指令高速緩存器54包括64個(gè)組,則分割控制電路60可維持128個(gè)指針(每 組兩個(gè))。就每組16個(gè)路徑而言,每一指針可包括4位值,從而允許其在對(duì)應(yīng)的高速 緩存器組中的路徑O到路徑15的范圍內(nèi)。如果每高速緩存器組管理兩個(gè)以上優(yōu)先級(jí), 則分割控制電路60為每一高速緩存器組維持與所存在優(yōu)先級(jí)一樣多的指針一例如,三 個(gè)優(yōu)先級(jí)=三個(gè)指針,等。在至少一個(gè)實(shí)施例中,分割控制電路60包含指針選擇器以依據(jù)高速緩存寫入類 型(例如,高/低優(yōu)先級(jí)、鎖定/未鎖定)選擇PTR1或PTR2。也就是說,指針選擇器 識(shí)別寫入類型,因此可響應(yīng)于進(jìn)行所述寫入來使目標(biāo)高速緩存器組的兩個(gè)指針中正確 的一者前進(jìn)。分割控制電路還可包含一個(gè)或多個(gè)增量器以在對(duì)高速緩存器組進(jìn)行連續(xù) 的寫入時(shí)計(jì)算新的指針值,且還可包含一個(gè)或多個(gè)比較器電路來比較第一及第二指針 值,以確保阻止較低優(yōu)先級(jí)指針取會(huì)導(dǎo)致較高優(yōu)先級(jí)寫入被較低優(yōu)先級(jí)寫入重寫的值。除了將分割控制電路60集成在微處理器40的高速緩存控制器52內(nèi)之外,所屬 技術(shù)領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識(shí)到,可在別處物理地或功能性地實(shí)施分割控制電路60。例 如,層2 (L2)高速緩存器可以在微處理器40內(nèi)部或外部,且可以經(jīng)配置以提供二級(jí) 高速緩存器以用于保持更大量的經(jīng)高速緩存指令及/或數(shù)據(jù)。在這種情況下,本文中教 示的動(dòng)態(tài)分割控制方法可實(shí)施于L2高速緩存控制器中,所述L2高速緩存控制器通常 駐留于L2高速緩存存儲(chǔ)器陣列所駐留的任何地方。當(dāng)然,所屬技術(shù)領(lǐng)域中的技術(shù)人員應(yīng)了解,本發(fā)明并非不限于本文中關(guān)于各種說 明性實(shí)施例的論述,也不限于隨附圖式。而是,本發(fā)明僅由隨附權(quán)利要求書及其法律 等效物限定。
權(quán)利要求
1、一種管理高速緩存存儲(chǔ)器分割的方法,其包括提供用于到所述高速緩存存儲(chǔ)器中的較高優(yōu)先級(jí)寫入的第一寫入指針,及用于到所述高速緩存存儲(chǔ)器中的較低優(yōu)先級(jí)寫入的第二寫入指針;及將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫入的定界符。
2、 如權(quán)利要求1所述的方法,其中將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫 入的定界符通常包括阻止所述第二寫入指針指向其中己進(jìn)行較髙優(yōu)先級(jí)寫入的高速緩 存存儲(chǔ)器位置。
3、 如權(quán)利要求1所述的方法,其中將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫 入的定界符包括初始化所述第一及第二寫入指針使其相等;響應(yīng)于進(jìn)行較高及較低 優(yōu)先級(jí)寫入分別使所述第一及第二寫入指針前進(jìn);及另外視需要使所述第二寫入指針 前進(jìn)以防止所述第一寫入指針超過所述第二寫入指針。
4、 如權(quán)利要求3所述的方法,其進(jìn)一步包括允許所述第二寫入指針從最大指針 值繞回到所述第一寫入指針的當(dāng)前值,或繞回到對(duì)應(yīng)于相對(duì)于所述第一寫入指針的所 述當(dāng)前值的經(jīng)界定偏移的值。
5、 如權(quán)利要求3所述的方法,其進(jìn)一步包括使所述第一寫入指針在最大指針值 處或自所述最大指針值的一個(gè)經(jīng)界定的偏移處達(dá)到飽和。
6、 如權(quán)利要求3所述的方法,其中響應(yīng)于進(jìn)行較高優(yōu)先級(jí)寫入使所述第一寫入 指針前進(jìn)界定所述高速緩存存儲(chǔ)器的較高優(yōu)先級(jí)區(qū)域,所述較高優(yōu)先級(jí)區(qū)域?qū)?yīng)于所 述高速緩存存儲(chǔ)器中由所述第一寫入指針遍歷的所述部分,且界定所述高速緩存存儲(chǔ) 器的較低優(yōu)先級(jí)區(qū)域,所述較低優(yōu)先級(jí)區(qū)域?qū)?yīng)于高速緩存存儲(chǔ)器中沒有被所述第一 寫入指針遍歷的所述部分。
7、 如權(quán)利要求1所述的方法,其中將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫入的定界符包括將所述第一寫入指針初始化到第一值;將所述第二寫入指針初始化到從所述第一值偏移的第二值;響應(yīng)于向所述高速緩存存儲(chǔ)器中進(jìn)行較高優(yōu)先級(jí)寫入 來使所述第一寫入指針朝向所述第二寫入指針前進(jìn);響應(yīng)于向所述高速緩存存儲(chǔ)器中 進(jìn)行較低優(yōu)先級(jí)寫入使所述第二寫入指針朝向所述第一寫入指針前進(jìn);及視需要使所 述第二寫入指針后退以防止所述第一寫入指針超過所述第二寫入指針。
8、 如權(quán)利要求7所述的方法,其中響應(yīng)于進(jìn)行較高優(yōu)先級(jí)寫入使所述第一寫入 指針前進(jìn)界定所述高速緩存存儲(chǔ)器的較高優(yōu)先級(jí)區(qū)域,所述較高優(yōu)先級(jí)區(qū)域?qū)?yīng)于所 述高速緩存存儲(chǔ)器中由所述第一寫入指針遍歷的所述部分,且界定所述高速緩存存儲(chǔ) 器的較低優(yōu)先級(jí)區(qū)域,所述較低優(yōu)先級(jí)區(qū)域?qū)?yīng)于高速緩存存儲(chǔ)器中沒有被所述第一 寫入指針遍歷的所述部分。
9、 如權(quán)利要求1所述的方法,其中將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫入的定界符包括配置所述第一及第二寫入指針以沿相對(duì)于所述高速緩存存儲(chǔ)器的相同 方向移動(dòng),及視需要移動(dòng)所述第二寫入指針來防止所述第一寫入指針超過所述第二寫 入指針。
10、 如權(quán)利要求1所述的方法,其中將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫 入的定界符包括配置所述第一及第二寫入指針以相對(duì)于所述高速緩存存儲(chǔ)器朝向彼此 移動(dòng),并視需要移動(dòng)所述第二寫入指針來防止所述第一寫入指針超過所述第二寫入指 針。
11、 如權(quán)利要求l所述的方法,其中所述第一寫入指針包括鎖定寫入指針且所述 第二寫入指針包括未鎖定寫入指針。
12、 一種管理高速緩存存儲(chǔ)器分割的方法,其包括-將高速緩存存儲(chǔ)器分割為相鄰區(qū)域,所述區(qū)域包括由第一寫入指針尋址的較高優(yōu)先級(jí)區(qū)域及由第二寫入指針尋址的較低優(yōu)先級(jí)區(qū)域;使用所述第一寫入指針將所述較低優(yōu)先級(jí)區(qū)域相對(duì)于所述較高優(yōu)先級(jí)區(qū)域定界。
13、 一種用于管理高速緩存存儲(chǔ)器中的分割的分割控制電路,其包括-用于向高速緩存存儲(chǔ)器進(jìn)行較高優(yōu)先級(jí)寫入的第一寫入指針,及用于向所述高速緩存存儲(chǔ)器進(jìn)行較低優(yōu)先級(jí)寫入的第二寫入指針;及指針控制器,其經(jīng)配置以將所述第一寫入指針用作所述較低優(yōu)先級(jí)寫入的定界符。
14、 如權(quán)利要求13所述的分割控制電路,其中所述分割控制電路包括包含在微 處理器中的集成分割控制電路,所述集成分割控制電路用于管理與所述微處理器相關(guān) 聯(lián)的層l (Ll)或?qū)? (L2)高速緩存存儲(chǔ)器的至少一部分。
15、 如權(quán)利要求1所述的分割控制電路,其中所述指針控制器經(jīng)配置以大體地阻 止所述第二寫入指針指向其中已進(jìn)行較高優(yōu)先級(jí)寫入的高速緩存存儲(chǔ)器位置。
16、 如權(quán)利要求13所述的分割控制電路,其中所述指針控制器經(jīng)配置以初始 化所述第一及第二寫入指針使其相等;響應(yīng)于進(jìn)行較高及較低優(yōu)先權(quán)寫入分別地使所 述第一及第二寫入指針前進(jìn);及另外視需要使所述第二寫入指針前進(jìn),以防止所述第 一寫入指針超過所述第二寫入指針。
17、 如權(quán)利要求16所述的分割控制電路,其中所述指針控制器經(jīng)配置以使所述 第二寫入指針從最大指針值繞回到所述第一寫入指針的當(dāng)前值,或繞回到對(duì)應(yīng)于相對(duì) 于所述第一寫入指針的所述當(dāng)前值的經(jīng)界定偏移的值。
18、 如權(quán)利要求16所述的分割控制電路,其中所述指針控制器經(jīng)配置以使所述 第一寫入指針在最大指針值處或自所述最大指針值的一個(gè)經(jīng)界定的偏移處達(dá)到飽和。
19、 如權(quán)利要求13所述的分割控制電路,其中所述分割控制器經(jīng)配置以將所 述第一寫入指針初始化到第一值;將所述第二寫入指針初始化到從所述第一值偏移的第二值;響應(yīng)于向所述高速緩存存儲(chǔ)器中進(jìn)行較高優(yōu)先級(jí)寫入使所述第一寫入指針朝 向所述第二寫入指針前進(jìn);響應(yīng)于向所述高速緩存存儲(chǔ)器中進(jìn)行較低優(yōu)先級(jí)寫入使所述第二寫入指針朝向所述第一寫入指針前進(jìn);及視需要使所述第二寫入指針后退來防止所述第一寫入指針超過所述第二寫入指針。
20、 如權(quán)利要求13所述的分割控制電路,其中所述第一及第二指針大體地經(jīng)配置以沿相對(duì)于所述高速緩存存儲(chǔ)器的相同方向移動(dòng),且其中所述指針控制器經(jīng)配置以 視需要移動(dòng)所述第二寫入指針來防止所述第一寫入指針超過所述第二寫入指針。
21、 如權(quán)利要求13所述的分割控制電路,其中所述第一及第二寫入指針大體地 經(jīng)配置以朝向彼此移動(dòng),且其中所述指針控制器經(jīng)配置以視需要移動(dòng)所述第二寫入指 針來防止所述第一寫入指針超過所述第二寫入指針。
22、 如權(quán)利要求13所述的分割控制電路,其中所述第一寫入指針包括鎖定寫入 指針,且所述第二寫入指針包括未鎖定寫入指針。
23、 一種微處理器,其包含經(jīng)配置以管理高速緩存存儲(chǔ)器分割的分割控制電路, 所述分割控制電路包括第一寫入指針,其用于向高速緩存存儲(chǔ)器中進(jìn)行較高優(yōu)先級(jí)寫入及第二寫入指針,其用于向所述高速緩存存儲(chǔ)器中進(jìn)行較低優(yōu)先級(jí)寫入;及指針控制器,其經(jīng)配置以將所述第一寫入指針用在所述較低優(yōu)先級(jí)寫入的定界符。
24、 如權(quán)利要求23所述的微處理器,其中所述高速緩存存儲(chǔ)器包括組相關(guān)聯(lián)高 速緩存存儲(chǔ)器,且其中所述分割控制電路為所述組相關(guān)聯(lián)高速緩存存儲(chǔ)器的每一組包 括一對(duì)第一及第二寫入指針,從而啟動(dòng)所述分割控制電路來管理每一組中的較高及較 低優(yōu)先級(jí)分割。
全文摘要
一種管理高速緩存器分割的方法,所述方法提供用于較高優(yōu)先級(jí)寫入的第一指針及用于較低優(yōu)先級(jí)寫入的第二指針,并使用所述第一指針來對(duì)所述較低優(yōu)先級(jí)寫入定界。例如,鎖定寫入比未鎖定寫入具有更高的優(yōu)先級(jí),且第一指針可用于鎖定寫入,且第二指針可用于未鎖定寫入。響應(yīng)于進(jìn)行鎖定寫入使所述第一指針前進(jìn),且其前進(jìn)因此界定鎖定區(qū)域及未鎖定區(qū)域。響應(yīng)于進(jìn)行未鎖定寫入使所述第二指針前進(jìn)。視需要還使所述第二指針前進(jìn)(或后退)以防止其指向已經(jīng)由所述第一指針遍歷的位置。因此,所述第一指針對(duì)所述未鎖定區(qū)域定界并允許所述鎖定區(qū)域在犧牲所述未鎖定區(qū)域的情況下增長(zhǎng)。
文檔編號(hào)G06F12/12GK101310260SQ200680042481
公開日2008年11月19日 申請(qǐng)日期2006年9月21日 優(yōu)先權(quán)日2005年9月21日
發(fā)明者布賴恩·邁克爾·斯坦普爾, 托馬斯·安德魯·薩托里烏斯, 杰弗里·托德·布里奇斯, 維克托·羅伯茨·奧格斯堡, 羅伯特·道格拉斯·克蘭西, 羅德尼·韋恩·史密斯, 詹姆斯·諾里斯·迪芬德爾費(fèi)爾 申請(qǐng)人:高通股份有限公司