專利名稱:一種高速緩存替換策略的管理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機處理器,特別是涉及一種高速緩存替換策略的管理系統(tǒng)及方 法。
背景技術(shù):
高速緩沖存儲器(Cache,也稱為高速緩存)是計算機處理器的重要組成部分之 一,是存儲速度介于寄存器和內(nèi)存之間的一種存儲器。利用程序執(zhí)行的局部性原理,盡可能 地把將要訪問的數(shù)據(jù)存儲到高速緩存,當(dāng)處理器需要數(shù)據(jù)時可以以很小的時間延遲把數(shù)據(jù) 提交給處理器,從而達到減少訪存時延,提高處理器性能的目的。由于高速緩存容量較小,需要對高速緩存進行有效的管理,盡可能將處理器需要 的數(shù)據(jù)放入到高速緩存中,從而減少系統(tǒng)訪存失效幾率,降低訪存代價,提高系統(tǒng)的整體性 能。目前,高速緩存的管理方案主要包括隨機替換策略(random)、先入先出替換策略 (FIFO)及最近最少使用替換策略(LRU)等。其中,LRU替換策略被普遍認為綜合性能較高, 因此得到了工業(yè)界的廣泛采用,大量應(yīng)用在通用處理器高速緩存設(shè)計中。在采用理想LRU替換策略的高速緩存中,每個緩存行會維護一個時間戳計數(shù)器, 該時間戳計數(shù)器用來記錄本緩存行上一次被訪問時的時鐘計數(shù)。每次訪問失效時,同一緩 存組內(nèi),時間戳計數(shù)最小的緩存行中的數(shù)據(jù)就會被替換出高速緩存,該緩存行會被用來存 放從內(nèi)存中新讀取到的數(shù)據(jù)。同時,每一次訪問,包括失效后新添加數(shù)據(jù)的訪問,都會更新 相應(yīng)數(shù)據(jù)的緩存行中的時間戳,從而保證每次被替換出的數(shù)據(jù)都是來自最近最少使用的緩 存行,即同一組內(nèi)時間戳最小的緩存行。但是,LRU替換策略主要依據(jù)最近訪問的數(shù)據(jù)局部性最好的原則,在面對順序數(shù)據(jù) 訪問操作時,往往性能不佳。所謂的順序數(shù)據(jù)訪問,就是按照一定的步長,連續(xù)不斷的訪問 一大片數(shù)據(jù),該操作會造成大量的高速緩存器污染,有效數(shù)據(jù)的替換,而數(shù)據(jù)本身則大都是 缺乏時間局部性。具體的例子包括數(shù)據(jù)包的處理,例如把數(shù)據(jù)從用戶緩沖區(qū)拷貝到內(nèi)核緩 沖區(qū),包括文件讀寫、進程間數(shù)據(jù)通信等,大規(guī)模數(shù)組訪問,字符串處理等針對內(nèi)存區(qū)域的 順序訪問。當(dāng)前,多媒體和網(wǎng)絡(luò)應(yīng)用等容易產(chǎn)生大量順序數(shù)據(jù)訪問的應(yīng)用程序在計算機中得 到了廣泛的應(yīng)用,所占用戶使用時間的比率越來越大,而采用LRU替換策略的高速緩存在 運行這些應(yīng)用程序時,往往會造成較大的失效代價,系統(tǒng)整體性能不高。比如當(dāng)程序重用工 作組(Working Set)大于可用Cache時或者其存儲訪問具有低局部相關(guān)性時,LRU策略表 現(xiàn)出十分低下的命中率,大量新替換入Cache的行對命中率的貢獻為零,而原本可能命中 的行則由于長期不被訪問而替換出Cache。針對局部性較差的應(yīng)用程序,高速緩存可以采用不更新新加入數(shù)據(jù)緩存行時間戳 的策略,即將新加入的數(shù)據(jù)放入最先被替換的位置,通常稱為LRU位置插入策略(the LRU Position Insertion Policy,LIP)。
同LRU策略相比,LIP策略在面對局部性較好的應(yīng)用程序時,性能又往往較差。與 此相同地,采用單獨的某一種替換策略都不能有效地滿足高速緩存多種不同局部性訪存特 點的應(yīng)用程序的需要,無法為高速緩存帶來較大的性能提升空間。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是需要提供一種高速緩存替換策略管理系統(tǒng)及方法, 克服現(xiàn)有技術(shù)中采用單獨某一種替換策略不能有效地滿足高速緩存多種不同局部性訪存 特點的應(yīng)用程序訪問需求的不足。為了解決上述技術(shù)問題,本發(fā)明提供了一種高速緩存替換策略的管理方法,包 括將所述高速緩存劃分為第一部分和第二部分;將所述第一部分劃分為第一測試組和第二測試組,所述第一測試組采用第一替換策略,第二測試組采用第二替換策略;設(shè)置一策略選擇寄存器,記錄所述第一測試組和第二測試組的失效次數(shù);當(dāng)所述第二部分發(fā)生訪存失效時,根據(jù)所述策略選擇寄存器的值從所述第一替換 策略和第二替換策略中為所述第二部分選擇替換策略。優(yōu)選地,該方法進一步包括為所述高速緩存的緩存行設(shè)置屬性位,根據(jù)所述屬性位將所述高速緩存劃分為所 述第一部分和第二部分。優(yōu)選地,將所述第一部分劃分為所述第一測試組和第二測試組的步驟,包括將所述第一部分劃分為包含有相等數(shù)量緩存行的所述第一測試組和第二測試組。優(yōu)選地,所述第一替換策略包括最近最少使用替換策略;所述第二替換策略包括 雙峰插入策略。優(yōu)選地,記錄所述第一測試組和第二測試組的失效次數(shù)的步驟,包括所述第一測試組中發(fā)生緩存失效時,將所述策略選擇寄存器的值加一;所述第二 測試組中發(fā)生緩存失效時,將所述策略選擇寄存器的值減一。優(yōu)選地,根據(jù)所述策略選擇寄存器的值為所述第二部分選擇所述替換策略的步 驟,包括根據(jù)所述策略選擇寄存器的值的正負號,為所述第二部分選擇所述第一替換策略 或所述第二替換策略。優(yōu)選地,該方法進一步包括每隔一單位時間調(diào)整一次所述策略選擇寄存器的值。優(yōu)選地,為所述第二部分的緩存行設(shè)置策略位,所述策略位用于標(biāo)識所述第二部 分中的緩存行所使用的替換策略。為了解決上述技術(shù)問題,本發(fā)明還提供了一種高速緩存替換策略的管理系統(tǒng),包 括第一劃分模塊,用于將所述高速緩存劃分為第一部分和第二部分;第二劃分模塊,用于將所述第一部分劃分為第一測試組和第二測試組,其中所述 第一測試組采用第一替換策略,所述第二測試組采用第二替換策略;
設(shè)置模塊,用于設(shè)置一策略選擇寄存器;判斷模塊,用于判斷所述第一測試組、第二測試組以及第二部分是否發(fā)生緩存失 效;記錄模塊,用于將所述第一測試組和第二測試組的失效次數(shù)記錄到所述策略選擇 寄存器中;選擇模塊,用于當(dāng)所述第二部分發(fā)生訪存失效時,根據(jù)所述策略選擇寄存器的值 從所述第一替換策略和第二替換策略中為所述第二部分選擇替換策略。
優(yōu)選地,該系統(tǒng)進一步包括屬性標(biāo)識模塊,用于為所述高速緩存的緩存行設(shè)置屬性位;所述第一劃分模塊用于根據(jù)所述屬性位將所述高速緩存劃分為所述第一部分和
第二部分。優(yōu)選地,所述第一劃分模塊用于將所述第一部分劃分為包含有相等數(shù)量緩存行的 所述第一測試組和第二測試組。優(yōu)選地,所述記錄模塊用于所述第一測試組中發(fā)生緩存失效時,將所述策略選擇 寄存器的值加一;所述第二測試組中發(fā)生緩存失效時,將策略選擇寄存器的值減一。優(yōu)選地,所述選擇模塊用于根據(jù)所述策略選擇寄存器的值的正負號,為所述第二 部分選擇所述第一替換策略或所述第二替換策略。 優(yōu)選地,該系統(tǒng)進一步包括調(diào)整模塊,用于每隔一單位時間調(diào)整一次所述策略選擇寄存器的值。優(yōu)選地,該系統(tǒng)進一步包括策略標(biāo)識模塊,用于為所述第二部分的緩存行設(shè)置策略位,所述策略位用于標(biāo)識 所述第二部分中的緩存行所使用的替換策略。與現(xiàn)有技術(shù)相比,本發(fā)明的一個實施例至少克服了現(xiàn)有技術(shù)中單獨某一種替換策 略不能有效地滿足高速緩存多種不同局部性訪存特點的應(yīng)用程序訪問需求的不足,以及靈 活性較差、動態(tài)切換困難等問題,提高了高速緩存的使用性能。
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實 施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中圖1為本發(fā)明替換策略的管理方法實施例的流程示意圖;圖2為本發(fā)明替換策略的管理系統(tǒng)實施例的組成示意圖;圖3為本發(fā)明另一系統(tǒng)實施例的組成示意圖。
具體實施例方式以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應(yīng)用 技術(shù)手段來解決技術(shù)問題,并達成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。首先,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結(jié)合,均在本 發(fā)明的保護范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指 令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。圖1為本發(fā)明高速緩存替換策略的動態(tài)管理方法實施例的流程示意圖。如圖1所 示,本發(fā)明方法實施例主要包括如下步驟步驟S110,將高速緩存劃分為第一部分和第二部分;步驟S120,將第一部分劃分為第一測試組和第二測試組,該第一測試組和第二測 試組所包含的緩存行的數(shù)量相等;用于執(zhí)行單個替換策略的測試的緩存行數(shù)目可以在實現(xiàn) 時自行設(shè)定,原則上不超過高 速緩存中行數(shù)目總數(shù)的5 % (本實施例設(shè)定為行數(shù)目總數(shù)的 5% );第一測試組采用第一替換策略,第二測試組采用第二替換策略;在本實施例中,第一測試組中采用LRU策略(即第一替換策略為LRU策略),每次 數(shù)據(jù)插入緩存行時更新行時間戳計數(shù)器;在本實施例中,第二測試組中采用雙峰插入策略(BIP,BimodalInsertionPolicy, 雙峰插入策略)策略(即第二替換策略為BIP策略),每次數(shù)據(jù)插入緩存行時是否更新行時 間戳計數(shù)器根據(jù)隨機數(shù)比較結(jié)果決定,如果隨機數(shù)等于零則更新時間戳計數(shù)器,否則不更 新;步驟S130,設(shè)置用于進行動態(tài)策略選擇的一策略選擇寄存器,從該策略選擇寄存 器的正反兩個方向?qū)蓚€測試組的失效次數(shù)記錄到策略選擇寄存器中;第一測試組(本實施例中也可以稱之為LRU測試組)中發(fā)生緩存失效時,策略選 擇寄存器的值加一;第二測試組(本實施例中也可以稱之為BIP測試組)中發(fā)生緩存失效時,策略選 擇寄存器的值減一;步驟S140,當(dāng)?shù)诙糠职l(fā)生訪存失效時,根據(jù)策略選擇寄存器的值的正負號從第 一替換策略和第二替換策略中為該第二部分選擇具體的替換策略;具體地,當(dāng)策略選擇寄存器的值為正數(shù)時,為第二部分選擇第一替換策略,第二部 分執(zhí)行第一替換策略進行訪存;當(dāng)策略選擇寄存器的值為非正數(shù)(即負數(shù)或零)時,為第二 部分選擇第二替換策略,第二部分執(zhí)行第二替換策略進行訪存。由于程序的訪存行為具有時間局部性特點,從整個程序運行過程看,不同時間的 訪存行為差距較大。為了進一步優(yōu)化策略選擇方案,圖1所示的方法實施例還可以采用 單位時間邏輯調(diào)整思想,每隔一單位時間調(diào)整一次策略選擇寄存器的值(在圖1中以步驟 S150示出),其中用于更新的單位時間的大小可以由時鐘計數(shù)器來確定。具體的調(diào)整方法 是,對策略選擇寄存器執(zhí)行右移操作,右移位數(shù)由一移位寄存器的值確定,該移位寄存器可 以在系統(tǒng)啟動初始化時由系統(tǒng)軟件設(shè)定為默認值并可以接受用戶的調(diào)整,或者在系統(tǒng)硬件 設(shè)計時固定為某個確定值。上述第二測試組采用BIP策略,大部分情況下新插入數(shù)據(jù)行時間戳計數(shù)器都不會 被更新,直到該行發(fā)生訪存命中時,該行才會重新設(shè)置時間戳計數(shù)器。在上述第二測試組中,通過采用隨機數(shù)比較的方法,設(shè)置較低的更新概率,當(dāng)取到 的隨機數(shù)與零相等時,才更新新插入數(shù)據(jù)緩存行的時間戳計數(shù)器。本發(fā)明的實施例對高速緩存進行靜態(tài)劃分,抽取少量的緩存行作為測試組。通過 將測試組進行劃分,實現(xiàn)了兩種不同替換策略影響的動態(tài)監(jiān)控,將采用兩種不同策略緩存組的訪存失效影響反映到一策略選擇寄存器值的變化中。根據(jù)圖1所示的方法實施例可以看出,高速緩存中第二部分的替換策略可以根據(jù) 策略選擇寄存器的值從兩種不同替換策略中進行動態(tài)切換。本發(fā)明還基于單位時間調(diào)整策 略,實現(xiàn)了策略選擇邏輯的動態(tài)調(diào)整,每隔一段時間對策略選擇寄存器執(zhí)行一次右移運算, 以便做到更精確的判斷,進一步優(yōu)化了高速緩存性能。 圖2為本發(fā)明高速緩存替換策略的管理系統(tǒng)實施例的組成示意圖。結(jié)合圖1所示 的方法實施例,圖2所示的系統(tǒng)實施例主要包括第一劃分模塊210、第二劃分模塊220、設(shè)置 模塊230、判斷模塊240、記錄模塊250以及選擇模塊260,其中第一劃分模塊210,用于將高速緩存300劃分為第一部分310和第二部分320 ;第二劃分模塊220,用于將該第一劃分模塊210所劃分出來的該第一部分310劃分 為第一測試組311和第二測試組312,其中該第一測試組311和第二測試組312所包含的緩 存行的數(shù)量相等;第一測試組311采用第一替換策略,第二測試組312采用第二替換策略; 在本實施例中,第一測試組311中采用LRU策略,每次數(shù)據(jù)插入緩存行時更新行時間戳計數(shù) 器;第二測試組312中采用BIP策略,每次數(shù)據(jù)插入緩存行時是否更新行時間戳計數(shù)器根據(jù) 隨機數(shù)比較結(jié)果決定,如果隨機數(shù)等于零則更新時間戳計數(shù)器,否則不更新;設(shè)置模塊230,用于設(shè)置進行動態(tài)策略選擇的一策略選擇寄存器300 ;判斷模塊240,用于判斷第一測試組311、第二測試組312以及第二部分是否發(fā)生 緩存失效;記錄模塊250,與該判斷模塊240相連,用于從正反兩個方向?qū)蓚€測試組的失效 次數(shù)記錄到該設(shè)置模塊230設(shè)置的該策略選擇寄存器300中;具體的,第一測試組311中發(fā) 生緩存失效時,策略選擇寄存器300的值加一;第二測試組312中發(fā)生緩存失效時,策略選 擇寄存器300的值減一;選擇模塊260,與該判斷模塊240相連,用于當(dāng)?shù)诙糠?20發(fā)生訪存失效時,根據(jù) 策略選擇寄存器300的值的正負號從第一替換策略和第二替換策略中為該第二部分320選 擇具體的替換策略;具體地,當(dāng)策略選擇寄存器300的值為正數(shù)時,為第二部分320選擇第 一替換策略,第二部分320執(zhí)行第一替換策略進行訪存;當(dāng)策略選擇寄存器300的值為非正 數(shù)(即負數(shù)或零)時,為第二部分320選擇第二替換策略,第二部分320執(zhí)行第二替換策略 進行訪存。根據(jù)圖2所示的系統(tǒng)實施例可以看出,高速緩存中第二部分的替換策略可以根據(jù) 策略選擇寄存器300的值的正負號從兩種替換策略中進行動態(tài)切換。圖2所示的系統(tǒng)實施例中,記錄模塊250中包含一加法單元(圖中未示出)、一減 法單元(圖中未示出)以及一取反單元(請參考圖3所示)400,該加法單元用于執(zhí)行策略 選擇寄存器300的累加操作,該減法單元用來執(zhí)行策略選擇寄存器300的累減操作,該取反 單元400用于對策略選擇寄存器300的符號位執(zhí)行取反操作,以控制第二部分320中的緩 存行替換策略的動態(tài)管理。當(dāng)?shù)谝粶y試組中緩存行發(fā)生失效時,該加法單元執(zhí)行一次累加操作,輸入是策略 選擇寄存器300的當(dāng)前值,輸出是累加操作的結(jié)果,并將該累加操作的結(jié)果存入該策略選 擇寄存器300中。當(dāng)?shù)诙y試組中緩存行發(fā)生失效時,該減法單元執(zhí)行一次累減操作,輸入是策略選擇寄存器300的當(dāng)前值,輸出是累減操作的結(jié)果,并將該累減操作的結(jié)果存入該策略選 擇寄存器300中。圖2所示的系統(tǒng)實施例中,該系統(tǒng)還可以包括一屬性標(biāo)識模塊(圖中未示出),該屬性標(biāo)識模塊用于為高速緩存300的緩存行設(shè)置屬性位。第一劃分模塊210用于根據(jù)該屬 性位將高速緩存300劃分為該第一部分310和第二部分320。圖2所示的系統(tǒng)實施例中,該系統(tǒng)還可以包括一策略標(biāo)識模塊(圖中未示出), 該策略標(biāo)識模塊用于為該第二部分320的緩存行設(shè)置策略位,該策略位用于標(biāo)識第二部分 320中的緩存行所使用的替換策略。為了進一步優(yōu)化策略選擇方案,圖2所示的系統(tǒng)實施例還可以包括一調(diào)整模塊 270,該調(diào)整模塊270采用單位時間邏輯調(diào)整思想,用于每隔一單位時間調(diào)整一次策略選擇 寄存器300的值,其中用于更新的單位時間的大小可以由一時鐘計數(shù)單元(圖中未示出) 來確定。該調(diào)整模塊270的具體調(diào)整方法是,對策略選擇寄存器300執(zhí)行右移操作,右移位 數(shù)由一移位寄存單元(圖中未示出)的值確定,該移位寄存單元可以在系統(tǒng)啟動初始化時 由系統(tǒng)軟件設(shè)定為默認值并可以接受用戶的調(diào)整,或者在系統(tǒng)硬件設(shè)計時固定為某個確定 值。該時鐘寄存單元用于執(zhí)行累加操作以進行時鐘計數(shù),當(dāng)發(fā)生溢出時,調(diào)整模塊270 對策略選擇寄存器300的值進行調(diào)整。該時鐘寄存單元可以通過一溢出標(biāo)志位來標(biāo)識該時 鐘寄存單元是否發(fā)生溢出。該時鐘寄存單元溢出后,可以通過一清零邏輯單元(圖中未示 出)來對時鐘寄存器執(zhí)行清零操作,時鐘寄存器重新開始下一單位時間的計數(shù)。通過設(shè)定上述移位寄存單元的值(即右移操作位數(shù)),可以設(shè)定單位時間動態(tài)調(diào) 整的粒度。本發(fā)明中可以對高速緩存的行結(jié)構(gòu)進行改造,為每個緩存行設(shè)置兩個標(biāo)志位,該 兩個標(biāo)志位分別為屬性位和策略位(請參閱如下所述的圖3),其中屬性位,用于標(biāo)識緩存行的屬性,在本發(fā)明中,緩存行的屬性分為兩種,一種是用 于測試的測試行(測試行位于前述的第一部分中),另一種是普通行(普通行位于前述的第 二部分中);在本發(fā)明的技術(shù)方案中,是通過屬性位的邏輯值來進行測試行和普通行的區(qū) 分的,比如屬性位設(shè)置為0則標(biāo)識本行為普通行,設(shè)置為1則標(biāo)識本行為測試行;策略位,用來標(biāo)識緩存行選用的替換策略,在本發(fā)明的技術(shù)方案中,是通過策略位 的邏輯值來進行第一替換策略和第二替換策略的區(qū)分的,比如策略位設(shè)置為0則標(biāo)識該緩 存行采用第一替換策略,即每次插入新的數(shù)據(jù)時,更新時間戳計數(shù)器;設(shè)置為1則標(biāo)識該緩 存行采用第二替換策略,即每次插入新的數(shù)據(jù)時,判斷隨機數(shù)生成器中的值,取到全零時, 才更新時間戳計數(shù)器。圖3為本發(fā)明另一系統(tǒng)實施例的組成示意圖,用于說明在對本發(fā)明的行結(jié)構(gòu)進行 改造后,如何動態(tài)調(diào)整緩存行的替換策略。本實施例以BIP策略為前述的第二替換策略,并 且,本系統(tǒng)實施例中未以附圖示出以及未進行文字說明的其余內(nèi)容請參閱圖1所示的方法 實施例及圖2所示的系統(tǒng)實施例進行理解。如圖3所示,該另一系統(tǒng)實施例包括一隨機數(shù) 生成單元600、比較單元700以及更新判斷單元800,其中隨機數(shù)生成單元600,用于生成BIP策略(此處的BIP策略為前述的第二替換策 略,前述的第一替換策略為LRU策略)判斷需要使用的隨機數(shù);最簡單的實現(xiàn)方式是設(shè)置隨機數(shù)生成器為6位循環(huán)累加器,這樣每次比較時,取到全零的概率就為1/64 ;比較單元700,用于比較隨機數(shù)生成單元600所生成的隨機數(shù)是否為全零;更新判斷單元800,用于根據(jù)比較單元700所判斷的結(jié)果以及每個緩存行策略位 的值做出是否更新相應(yīng)行時間戳計數(shù)器的決策。圖3所示的取反單元400,請結(jié)合圖2所示的實施例進行理解。本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò) 上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲 裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多 個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和 軟件結(jié)合。雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采 用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本 發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化, 但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
一種高速緩存替換策略的管理方法,其特征在于,包括將所述高速緩存劃分為第一部分和第二部分;將所述第一部分劃分為第一測試組和第二測試組,所述第一測試組采用第一替換策略,第二測試組采用第二替換策略;設(shè)置一策略選擇寄存器,記錄所述第一測試組和第二測試組的失效次數(shù);當(dāng)所述第二部分發(fā)生訪存失效時,根據(jù)所述策略選擇寄存器的值從所述第一替換策略和第二替換策略中為所述第二部分選擇替換策略。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進一步包括為所述高速緩存的緩存行設(shè)置屬性位,根據(jù)所述屬性位將所述高速緩存劃分為所述第 一部分和第二部分。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述第一部分劃分為所述第一測試組 和第二測試組的步驟,包括將所述第一部分劃分為包含有相等數(shù)量緩存行的所述第一測試組和第二測試組。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于 所述第一替換策略包括最近最少使用替換策略; 所述第二替換策略包括雙峰插入策略。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,記錄所述第一測試組和第二測試組的失 效次數(shù)的步驟,包括所述第一測試組中發(fā)生緩存失效時,將所述策略選擇寄存器的值加一;所述第二測試 組中發(fā)生緩存失效時,將所述策略選擇寄存器的值減一。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,根據(jù)所述策略選擇寄存器的值為所述第 二部分選擇所述替換策略的步驟,包括根據(jù)所述策略選擇寄存器的值的正負號,為所述第二部分選擇所述第一替換策略或所 述第二替換策略。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進一步包括 每隔一單位時間調(diào)整一次所述策略選擇寄存器的值。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于為所述第二部分的緩存行設(shè)置策略位,所述策略位用于標(biāo)識所述第二部分中的緩存行 所使用的替換策略。
9.一種高速緩存替換策略的管理系統(tǒng),其特征在于,包括第一劃分模塊,用于將所述高速緩存劃分為第一部分和第二部分; 第二劃分模塊,用于將所述第一部分劃分為第一測試組和第二測試組,其中所述第一 測試組采用第一替換策略,所述第二測試組采用第二替換策略; 設(shè)置模塊,用于設(shè)置一策略選擇寄存器;判斷模塊,用于判斷所述第一測試組、第二測試組以及第二部分是否發(fā)生緩存失效; 記錄模塊,用于將所述第一測試組和第二測試組的失效次數(shù)記錄到所述策略選擇寄存 器中;選擇模塊,用于當(dāng)所述第二部分發(fā)生訪存失效時,根據(jù)所述策略選擇寄存器的值從所 述第一替換策略和第二替換策略中為所述第二部分選擇替換策略。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括 屬性標(biāo)識模塊,用于為所述高速緩存的緩存行設(shè)置屬性位;所述第一劃分模塊用于根據(jù)所述屬性位將所述高速緩存劃分為所述第一部分和第二 部分。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于所述第一劃分模塊用于將所述第一部分劃分為包含有相等數(shù)量緩存行的所述第一測 試組和第二測試組。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于所述記錄模塊用于所述第一測試組中發(fā)生緩存失效時,將所述策略選擇寄存器的值加 一;所述第二測試組中發(fā)生緩存失效時,將策略選擇寄存器的值減一。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于所述選擇模塊用于根據(jù)所述策略選擇寄存器的值的正負號,為所述第二部分選擇所述 第一替換策略或所述第二替換策略。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括 調(diào)整模塊,用于每隔一單位時間調(diào)整一次所述策略選擇寄存器的值。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括策略標(biāo)識模塊,用于為所述第二部分的緩存行設(shè)置策略位,所述策略位用于標(biāo)識所述 第二部分中的緩存行所使用的替換策略。
全文摘要
本發(fā)明公開了一種高速緩存替換策略的管理系統(tǒng)及方法,克服現(xiàn)有技術(shù)中采用單獨某一種替換策略不能有效地滿足高速緩存多種不同局部性訪存特點的應(yīng)用程序訪問需求的不足,其中該方法包括將高速緩存劃分為第一部分和第二部分;將第一部分劃分為第一測試組和第二測試組,第一測試組采用第一替換策略,第二測試組采用第二替換策略;設(shè)置一策略選擇寄存器,記錄第一測試組和第二測試組的失效次數(shù);當(dāng)?shù)诙糠职l(fā)生訪存失效時,根據(jù)策略選擇寄存器的值從第一替換策略和第二替換策略中為第二部分選擇替換策略。與現(xiàn)有技術(shù)相比,本發(fā)明提高了高速緩存的使用性能。
文檔編號G06F12/02GK101866318SQ20101020120
公開日2010年10月20日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者程旭, 管雪濤, 黃濤 申請人:北京北大眾志微系統(tǒng)科技有限責(zé)任公司