專利名稱:末級(jí)高速緩存插入策略軟件控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到計(jì)算機(jī)系統(tǒng)中的末級(jí)高速緩存管理,特別是涉及到一種結(jié)合虛擬頁(yè)式存儲(chǔ)機(jī)制的計(jì)算機(jī)系統(tǒng)的末級(jí)高速緩存插入策略軟件控制方法。
背景技術(shù):
高速緩存處于處理器訪問(wèn)的關(guān)鍵路徑。隨著處理器和存儲(chǔ)器之間速度差距的不斷擴(kuò)大,高速緩存尤其是末級(jí)高速緩存失效產(chǎn)生的系統(tǒng)開銷逐漸増大,成為制約計(jì)算機(jī)整體性能提高的重要瓶頸之一。程序內(nèi)部不同數(shù)據(jù)區(qū)域可能存在不同的訪問(wèn)模式和局部性特征。但是,當(dāng)前處理器高速緩存大多采用LRU替換算法。該算法不能有效識(shí)別訪問(wèn)數(shù)據(jù)的局部性特征并根據(jù)數(shù)據(jù)局部性的變化及時(shí)調(diào)整管理策略。未來(lái)不會(huì)被使用到的數(shù)據(jù)如果不能被有效識(shí)別并同局部性良好的數(shù)據(jù)相區(qū)分,就可能會(huì)將復(fù)用度高的數(shù)據(jù)替換出高速緩存,從而引發(fā)高速緩存污染問(wèn)題。在采用多級(jí)高速緩存的系統(tǒng)中,由于上級(jí)高速緩存的過(guò)濾作用,使得末級(jí)高速緩存污染更加嚴(yán)重。現(xiàn)代計(jì)算機(jī)普遍采用虛擬存儲(chǔ)系統(tǒng)。在支持分頁(yè)機(jī)制的虛擬存儲(chǔ)系統(tǒng)中,程序地址空間被劃分為若干大小相同的頁(yè)。在程序運(yùn)行過(guò)程中,不同頁(yè)之間的局部性特征可能存在較大差異。限制局部性差數(shù)據(jù)頁(yè)的末級(jí)高速緩存訪問(wèn)空間可以減少其對(duì)其對(duì)其他數(shù)據(jù)頁(yè)高速緩存空間的搶占,在高速緩存中保護(hù)局部性良好的數(shù)據(jù),從而提高末級(jí)高速緩存的性能。針對(duì)末級(jí)高速緩存污染問(wèn)題,當(dāng)前解決方案通常采用末級(jí)高速緩存軟件劃分的方法。該方法缺少軟硬件交互接ロ,只能將末級(jí)高速緩存劃分為若干區(qū)域,通過(guò)將失效率高、局部性差的數(shù)據(jù)頁(yè)限制在范圍較小的區(qū)域內(nèi),提高末級(jí)高速緩存命中率。此類方法在進(jìn)行高速緩存劃分時(shí)需要修改虛擬地址和物理地址的映射關(guān)系,從而引入大量的數(shù)據(jù)拷貝等開銷,同時(shí)還需要預(yù)留一定的物理頁(yè)框,占用較多的內(nèi)存資源。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是高速緩存替換算法主要包括換出策略和插入策略兩部分。當(dāng)訪問(wèn)失效發(fā)生吋,換出策略決定高速緩存中哪一部分?jǐn)?shù)據(jù)被替換到下ー級(jí)存儲(chǔ)設(shè)備中;插入策略決定從下一級(jí)存儲(chǔ)設(shè)備中得到數(shù)據(jù)存放到高速緩存后,其緩存行在替換鏈表中的位置。插入策略將會(huì)影響不同高速緩存行的替換優(yōu)先級(jí),進(jìn)而影響高速緩存中的數(shù)據(jù)。本發(fā)明在現(xiàn)有處理器頁(yè)表結(jié)構(gòu)的基礎(chǔ)上,通過(guò)添加控制邏輯,設(shè)計(jì)頁(yè)ー級(jí)末級(jí)高速緩存插入策略控制接ロ。軟件可以通過(guò)該接ロ以頁(yè)為單位控制和指導(dǎo)末級(jí)高速緩存插入策略。 本方法不增加存儲(chǔ)設(shè)備,實(shí)現(xiàn)代價(jià)較低。本發(fā)明所采用的技術(shù)方案為一種末級(jí)高速緩存插入策略軟件控制方法,包括利用現(xiàn)有頁(yè)表項(xiàng)結(jié)構(gòu)設(shè)計(jì)頁(yè)一級(jí)末級(jí)高速緩存插入策略控制接ロ,由軟件根據(jù)單個(gè)頁(yè)的局部性特征利用該接ロ控制該頁(yè)數(shù)據(jù)進(jìn)入末級(jí)高速緩存時(shí)采用的插入策略,進(jìn)而影響其數(shù)據(jù)在末級(jí)高速緩存中的訪問(wèn)空間。通過(guò)和DIP策略相結(jié)合,設(shè)計(jì)控制邏輯,將頁(yè)ー級(jí)插入策略控制位同策略選擇寄存器PSEL最高位進(jìn)行邏輯判斷,達(dá)到控制末級(jí)高速緩存插入策略的目的。本發(fā)明還可以在頁(yè)表項(xiàng)中設(shè)計(jì)頁(yè)ー級(jí)末級(jí)高速緩存插入策略控制位,提供軟件配
置接ロ。具體的說(shuō),首先,本發(fā)明在頁(yè)表項(xiàng)中設(shè)計(jì)頁(yè)一級(jí)末級(jí)高速緩存插入策略控制位?,F(xiàn)有處理器如X86系列,無(wú)論是32位還是64位平臺(tái)在其頁(yè)表項(xiàng)中均存在未被使用到的保留位。本發(fā)明提出利用頁(yè)表項(xiàng)保留位設(shè)置頁(yè)一級(jí)末級(jí)高速緩存插入策略軟件控制位即Insertion位,用于以頁(yè)為單位控制數(shù)據(jù)進(jìn)入末級(jí)高速緩存時(shí)采用的插入策略。本發(fā)明在兩種插入策略中選擇,因此只需要采用I位保留位就可以實(shí)現(xiàn)末級(jí)高速緩存插入策略控制接□。其次,在引入頁(yè)ー級(jí)插入策略控制位后設(shè)置末級(jí)高速緩存插入策略控制邏輯。本發(fā)明以DIP策略為基礎(chǔ)在LRU和BIP兩種插入策略中選擇。DIP策略靜態(tài)劃分末級(jí)高速緩存,通過(guò)策略選擇計(jì)數(shù)器PSEL動(dòng)態(tài)記錄采用LRU替換算法測(cè)試組和采用雙模式插入策略BIP (Bimodal Insertion Policy)策略測(cè)試組的末級(jí)高速緩存失效次數(shù)比較結(jié)果。BIP策略在芯片內(nèi)部維護(hù)ー個(gè)偽隨機(jī)數(shù)生成器用于決定該頁(yè)中數(shù)據(jù)的首次插入位置。該策略以較小概率(本文設(shè)定為1/32)將新放入末級(jí)高速緩存中的數(shù)據(jù)插入到最近最多使用位置,其他情況下插入到替換鏈表的最近最少使用位置,從而滿足顛簸訪問(wèn)模式的要求。該方法根據(jù)PSEL最高位變化動(dòng)態(tài)調(diào)整其他末級(jí)高速緩存組的插入策略。在引入頁(yè)ー級(jí)插入策略控制位后,末級(jí)高速緩存新加入數(shù)據(jù)所在替換鏈表中的插入位置將由該位同PSEL最高位共同決定。本發(fā)明的有益效果是本發(fā)明僅在DIP基礎(chǔ)上增加一個(gè)反向器和一個(gè)與門控制邏輯;同時(shí)添加的控制邏輯不在末級(jí)高速緩存訪問(wèn)路徑上,不會(huì)增加末級(jí)高速緩存訪問(wèn)時(shí)延。此外,采用本接ロ對(duì)局部性差的數(shù)據(jù)頁(yè)進(jìn)行控制時(shí)不需要調(diào)整物理頁(yè)框分配策略,僅需要根據(jù)剖視信息設(shè)置頁(yè)一級(jí)插入策略控制位,軟件改動(dòng)較小。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)ー步說(shuō)明。圖I是本發(fā)明末級(jí)高速緩存插入策略軟件控制接ロ的工作流程框圖。
具體實(shí)施例方式現(xiàn)在結(jié)合附圖和優(yōu)選實(shí)施例對(duì)本發(fā)明作進(jìn)ー步詳細(xì)的說(shuō)明。這些附圖均為簡(jiǎn)化的示意圖,僅以示意方式說(shuō)明本發(fā)明的基本結(jié)構(gòu),因此其僅顯示與本發(fā)明有關(guān)的構(gòu)成。在圖I所示的工作框圖中,采用本發(fā)明提出的末級(jí)高速緩存插入策略軟件控制方法后,控制頁(yè)一級(jí)末級(jí)高速緩存插入策略的的實(shí)施方式主要包括設(shè)置頁(yè)一級(jí)末級(jí)高速緩存插入策略控制位I。操作系統(tǒng)通??梢圆捎密浖室暦治龅姆椒ǐ@得頁(yè)一級(jí)程序局部性特征,為配置插入策略控制位提供依據(jù)。當(dāng)ー個(gè)頁(yè)局部性較差時(shí),該頁(yè)所在頁(yè)表項(xiàng)Insert位配置為I ;否則,該頁(yè)為普通數(shù)據(jù)頁(yè),該位配置為O。將頁(yè)表項(xiàng)中的控制位讀入到旁路緩沖器TLB中2。當(dāng)處理器發(fā)出訪存操作時(shí),通過(guò)TLB將虛擬地址轉(zhuǎn)換為物理地址。如果TLB訪問(wèn)失效,系統(tǒng)會(huì)訪問(wèn)內(nèi)存中的頁(yè)表將頁(yè)表項(xiàng)中的物理頁(yè)框號(hào)和末級(jí)高速緩存插入策略控制位讀入到TLB中。決定從內(nèi)存中獲取到的數(shù)據(jù)在末級(jí)高速緩存中的插入位置3。當(dāng)末級(jí)高速緩存訪問(wèn)失效時(shí),會(huì)從內(nèi)存中讀取到數(shù)據(jù),而數(shù)據(jù)放入末級(jí)高速緩存時(shí)采用的插入策略,由策略選擇寄存器PSEL最高位和插入策略控制位Insert位共同決定。當(dāng)插入策略控制位為O,PSEL最高位為I時(shí),更新末級(jí)高速緩存行時(shí)間戳,即采用LRU方法;否則,以較大概率不更新末級(jí)高速緩存時(shí)間戳,采用BIP策略。以上說(shuō)明書中描述的只是本 發(fā)明的具體實(shí)施方式
,各種舉例說(shuō)明不對(duì)本發(fā)明的實(shí)質(zhì)內(nèi)容構(gòu)成限制,所屬技術(shù)領(lǐng)域的普通技術(shù)人員在閱讀了說(shuō)明書后可以對(duì)以前所述的具體實(shí)施方式
做修改或變形,而不背離發(fā)明的實(shí)質(zhì)和范圍。
權(quán)利要求
1.一種末級(jí)高速緩存插入策略軟件控制方法,其特征在于包括 利用現(xiàn)有頁(yè)表項(xiàng)結(jié)構(gòu)設(shè)計(jì)頁(yè)一級(jí)末級(jí)高速緩存插入策略控制接口,由軟件根據(jù)單個(gè)頁(yè)的局部性特征利用該接口控制該頁(yè)數(shù)據(jù)進(jìn)入末級(jí)高速緩存時(shí)采用的插入策略,進(jìn)而影響其數(shù)據(jù)在末級(jí)高速緩存中的訪問(wèn)空間。
2.如權(quán)利要求I所述的末級(jí)高速緩存插入策略軟件控制方法,其特征在于在頁(yè)表項(xiàng)中設(shè)計(jì)頁(yè)一級(jí)末級(jí)高速緩存插入策略控制位,提供軟件配置接口。
3.如權(quán)利要求2所述的末級(jí)高速緩存插入策略軟件控制方法,其特征在于通過(guò)和DIP策略相結(jié)合,設(shè)計(jì)控制邏輯,將頁(yè)一級(jí)插入策略控制位同策略選擇寄存器PSEL最高位進(jìn)行邏輯判斷,達(dá)到控制末級(jí)高速緩存插入策略的目的。
4.如權(quán)利要求3所述的末級(jí)高速緩存插入策略軟件控制方法,其特征在于與DIP策略相結(jié)合的方式為以DIP策略為基礎(chǔ)在LRU和BIP兩種插入策略中選擇。
5.如權(quán)利要求3所述的末級(jí)高速緩存插入策略軟件控制方法,其特征在于根據(jù)PSEL最高位變化動(dòng)態(tài)調(diào)整其他末級(jí)高速緩存組的插入策略。
全文摘要
本發(fā)明涉及一種末級(jí)高速緩存插入策略軟件控制方法,首先在處理器頁(yè)表項(xiàng)中設(shè)計(jì)末級(jí)高速緩存插入策略控制位或控制接口;其次,當(dāng)數(shù)據(jù)進(jìn)入末級(jí)高速緩存時(shí),通過(guò)判斷TLB記錄的頁(yè)一級(jí)末級(jí)高速緩存插入策略控制位的值,決定該頁(yè)數(shù)據(jù)進(jìn)入末級(jí)高速緩存時(shí)的位置。利用本發(fā)明軟件可以控制頁(yè)一級(jí)末級(jí)高速緩存插入策略,為具有不同局部性特征的區(qū)域提供不同的末級(jí)高速緩存管理方法,達(dá)到降低末級(jí)高速緩存污染的目的;本發(fā)明應(yīng)用于任何具有多級(jí)高速緩存結(jié)構(gòu),同時(shí)采用虛擬存儲(chǔ)機(jī)制的計(jì)算機(jī)系統(tǒng)中,具有實(shí)現(xiàn)簡(jiǎn)單、硬件代價(jià)低等優(yōu)點(diǎn)。
文檔編號(hào)G06F12/08GK102662861SQ20121007743
公開日2012年9月12日 申請(qǐng)日期2012年3月22日 優(yōu)先權(quán)日2012年3月22日
發(fā)明者程旭, 管雪濤, 黃濤 申請(qǐng)人:北京北大眾志微系統(tǒng)科技有限責(zé)任公司