專利名稱:多核下基于Cache劃分的自適應(yīng)路預(yù)測算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域,具體涉及多核下基于Cache劃分的自適應(yīng)路預(yù)測算法。
背景技術(shù):
半導(dǎo)體工藝的迅速發(fā)展使微處理器的集成度越來越高,同時處理器表面溫度也變得越來越高并呈指數(shù)增長,每三年處理器的功耗密度就能翻一番。目前,低功耗和熱優(yōu)化設(shè)計(jì)已經(jīng)成為微處理器研究中的核心問題。多核處理器的多核心結(jié)構(gòu)決定了其相關(guān)的功耗研究是一個至關(guān)重要的課題。目前,針對處理器體系結(jié)構(gòu)級的功耗節(jié)省主要針對Cache,通過降低Cache的動態(tài)和靜態(tài)能耗來達(dá)到降低系統(tǒng)功耗的目的。在降低Cache的動態(tài)能耗方面,Cache路預(yù)測是較早提出的優(yōu)化Cache性能和降低Cache動態(tài)功耗的方法,并且該方法已經(jīng)在嵌入式系統(tǒng)領(lǐng)域得到了較為成熟的應(yīng)用。但是,目前在多核處理器環(huán)境下并沒有采用路預(yù)測方法來降低Cache的動態(tài)能耗。
發(fā)明內(nèi)容
本發(fā)明利用程序運(yùn)行的局部性原理,通過把程序訪問過的數(shù)據(jù)路存放在路預(yù)測表中,以便下次再訪問該路數(shù)據(jù)時,可以由路預(yù)測表給出預(yù)測路,然后直接訪問該路數(shù)據(jù),達(dá)到減少訪問的Cache路數(shù)從而降低Cache訪問功耗的效果。本發(fā)明針對多核處理器環(huán)境, 將Cache劃分與Cache的路預(yù)測相結(jié)合,在Cache劃分的結(jié)果上采用自適應(yīng)的路預(yù)測算法, 在保持原有的系統(tǒng)性能水平的前提下,達(dá)到進(jìn)一步降低Cache功耗的目的。本發(fā)明為了達(dá)到上述目的,本發(fā)明在傳統(tǒng)的L2Cache結(jié)構(gòu)中增加了路劃分表和路預(yù)測表兩個模塊,路劃分表存放多核處理器中各處理器核被劃分得到的L2Cache路的路編號,路預(yù)測表存放著對L2Cache中各Cache組的數(shù)據(jù)tag和預(yù)測路的路編號。本發(fā)明所述的自適應(yīng)路預(yù)測算法是在對L2Cache進(jìn)行劃分后,根據(jù)劃分情況,決定是否進(jìn)行路預(yù)測。算法的流程如下(1)初始化路預(yù)測表和路劃分表設(shè)定L2Cache是N路組相聯(lián)的且大小為R kb,
L2Cache line的大小為L b,則路預(yù)測表存放
權(quán)利要求
1.多核下基于Cache劃分的自適應(yīng)路預(yù)測算法,其特征在于步驟如下(1)初始化路預(yù)測表和路劃分表設(shè)定L2Cache是N路組相聯(lián)的且大小為Rkb,L2Cache/ χ ι 024line的大小為L b,則路預(yù)測表存放^ τ b組數(shù)據(jù);使用L2Cache劃分算法,將對NxLL2Cache劃分的結(jié)果存放在一個路劃分表中,路劃分表存放L2Cache中的Cache路被劃分給每個處理器核的情況,每個處理器核至少會被劃分得到1路Cache,則將每個處理器核所得到的Cache路的路編號存放在路劃分表中;(2)當(dāng)處理器核發(fā)出一個L2Cache的訪問時,獲取該處理器核的編號PID,再以此編號 PID為索引檢索路劃分表,得到該處理器核對L2Cache路的占有情況,即占有的路編號way_ num 禾口數(shù)量 way_count ;(3)如果該處理器核擁有的L2Cache路數(shù)量Way_COimt為1,則不需進(jìn)行路預(yù)測,跳轉(zhuǎn)到(9);如果占有的路數(shù)量Way_COimt > 1,則進(jìn)行路預(yù)測⑷;(4)將L2Cache訪問的地址tag與路預(yù)測表中的tag表項(xiàng)進(jìn)行比較,如果兩個tag相等,則取出對應(yīng)預(yù)測路的編號Way_num ;其中路預(yù)測表中存放著對各L2Cache組的預(yù)測路信息,路預(yù)測表用一個Cache表實(shí)現(xiàn),表項(xiàng)內(nèi)容為L2Cache數(shù)據(jù)塊地址的tag和數(shù)據(jù)塊所在的路編號way_num,數(shù)據(jù)塊地址的tag標(biāo)識是地址編碼中除去塊內(nèi)地址offset和組號set外的地址位,上述設(shè)定L2Cache line的大小為L b,則塊內(nèi)地址需要lo&L bit,L2Cache共有/ χ 1 024R χ 1 024ΛΓ Γ b組,則需要Iog2bit位來標(biāo)識組號,剩余的地址位就是訪問地址的NxLNxLtag標(biāo)識;L2Cache有N路,則需要Iog2N bit位來標(biāo)識路編號;(5)由給出的Way_num直接定位到該路數(shù)據(jù),將訪問地址的tag與該路數(shù)據(jù)地址的 tag進(jìn)行比較,若tag相等則說明路預(yù)測命中,則讀出數(shù)據(jù),完成此次L2Cache訪問;否則到 (6);(6)將訪問地址的tag與屬于該處理器核的除預(yù)測路外的Cache路中的數(shù)據(jù)地址tag 進(jìn)行比較,如果有相等的tag,則讀取該路數(shù)據(jù),進(jìn)入(7),否則進(jìn)入(8)。(7)數(shù)據(jù)在L2Cache中,更新路預(yù)測表,即用命中的數(shù)據(jù)路編號替換掉在步驟(5)中的未命中的預(yù)測路編號;讀出數(shù)據(jù),完成此次數(shù)據(jù)訪問;(8)如果訪問的數(shù)據(jù)并不在L2Cache中,則發(fā)生Cache缺失,需要從內(nèi)存中尋找所需數(shù)據(jù),進(jìn)行Cache替換,將需要的數(shù)據(jù)讀入L2Cache中;更新路預(yù)測表中的內(nèi)容,即將內(nèi)存數(shù)據(jù)讀入L2Cache后所在的Cache路編號替換掉(5)中的未命中的預(yù)測路編號;(9)根據(jù)路劃分表得出該處理器核所占有的1路cache路的路編號Way_nUm,直接比較該路數(shù)據(jù)地址的tag是否與訪問地址tag相等,若相等,則讀取數(shù)據(jù)完成訪問,否則,跳轉(zhuǎn)到 ⑶。
全文摘要
多核下基于Cache劃分的自適應(yīng)路預(yù)測算法,屬于計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域。目前,低功耗和熱優(yōu)化設(shè)計(jì)已經(jīng)成為微處理器研究中的核心問題。多核處理器的多核心結(jié)構(gòu)決定了其相關(guān)的功耗研究是一個至關(guān)重要的課題。本發(fā)明利用程序運(yùn)行的局部性原理,并針對多核處理器環(huán)境,將Cache劃分與Cache的路預(yù)測相結(jié)合,在Cache劃分的結(jié)果上采用自適應(yīng)的路預(yù)測算法,在保持原有的系統(tǒng)性能水平的前提下,達(dá)到進(jìn)一步降低Cache功耗的目的。
文檔編號G06F12/08GK102193875SQ20111010620
公開日2011年9月21日 申請日期2011年4月26日 優(yōu)先權(quán)日2011年4月26日
發(fā)明者方娟, 郭媚 申請人:北京工業(yè)大學(xué)