專利名稱:一種提高tlb利用效率的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器中提高TLB利用效率的技術(shù)領(lǐng)域,尤其涉及一種使用過濾機(jī)制提高TLB利用效率的方法。
背景技術(shù):
由于虛擬存儲(chǔ)器技術(shù)不僅可以把存儲(chǔ)器分塊并分配給不同進(jìn)程使用,自動(dòng)管理存儲(chǔ)器層次結(jié)構(gòu),而且簡(jiǎn)化了程序的加載過程,因此現(xiàn)在的所有微處理器都采用虛擬存儲(chǔ)器技術(shù)。在虛擬存儲(chǔ)器系統(tǒng)中,不管是采用分段方法還是分頁方法,或者兩者結(jié)合的方法,處理器都生成虛擬地址,然后通過硬件、軟件進(jìn)行一系列的轉(zhuǎn)換,就可以獲得實(shí)際訪問的物理地址。這個(gè)過程稱為存儲(chǔ)器映射或者地址變換。微處理器使用內(nèi)存管理單元(Memory Management Unit,簡(jiǎn)稱MMU)來管理虛擬地址與物理地址的映射過程。頁式和段式都依賴于一個(gè)按頁號(hào)或段號(hào)索引的數(shù)據(jù)結(jié)構(gòu),這個(gè)包含物理頁地址的數(shù)據(jù)結(jié)構(gòu)通常采用頁表的形式。隨著物理存儲(chǔ)器的容量增大,頁表的容量也越來越大。大容量的頁表通常要放在內(nèi)存中,這意味著要從存儲(chǔ)器中訪問一個(gè)數(shù)據(jù)至少需要訪問存儲(chǔ)器兩次,一次訪存獲得物理地址,另一次訪存獲得數(shù)據(jù)。利用局部性原理,可以把這些地址轉(zhuǎn)換保存在一個(gè)專門的Cache 中,從而減少需二次訪問存儲(chǔ)器之情形,這個(gè)特殊的地址變換Cache稱為變換旁路緩沖器 (Translation Lookaside Buffer,簡(jiǎn)禾爾 TLB)。由于數(shù)據(jù)單元與指令單元的訪問行為具有很大的差異性,因此在現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)中,TLB像cache —樣采取了數(shù)據(jù)單元與指令單元分開的操作方式,即指令TLB和數(shù)據(jù) TLB。圖1示出了本領(lǐng)域內(nèi)已知的一種TLB結(jié)構(gòu)圖。在圖1中,TLB采用全相聯(lián)映射,虛擬地址110為CPU產(chǎn)生的48位虛擬地址,其中高36位表示虛擬頁號(hào),用于與TLB的每個(gè)表項(xiàng)比較。低12位表示頁內(nèi)偏移。在圖1中,多路選擇器120為40 1的多路選擇器,因此該 TLB包含40個(gè)表項(xiàng)。表項(xiàng)130是該TLB的40個(gè)表項(xiàng)中的一個(gè),表項(xiàng)130包含很多個(gè)域,每個(gè)域的長(zhǎng)度不同,而且表示了特定的意思,例如V域是1位長(zhǎng)度,表示表項(xiàng)130是否有效。例如,值“1”用于指示表項(xiàng)130有效,而“0”用于指示表項(xiàng)130無效。應(yīng)當(dāng)注意,表項(xiàng)130的標(biāo)記域長(zhǎng)度為36位,用于與虛擬地址110的高36位虛擬頁號(hào)比較,比較結(jié)果作為多路選擇器120的控制端輸入;表項(xiàng)130的物理地址域長(zhǎng)度為28位,用于指示物理地址的高28位, 作為多路選擇器120的數(shù)據(jù)端輸入。在圖1中,轉(zhuǎn)換過程從虛擬地址110發(fā)送至TLB所有的表項(xiàng)開始,虛擬地址的高36 位虛擬頁號(hào)與每個(gè)表項(xiàng)的標(biāo)記域比較,比較結(jié)果作為多路選擇器120的控制端輸入。TLB每個(gè)表項(xiàng)的最后觀位作為多路選擇器120的數(shù)據(jù)端輸入,經(jīng)過多路選擇器120的選擇物理地址的高28位可以得到,作為物理地址的物理頁號(hào),而物理地址的低12位頁偏移正是虛擬地址的低12位頁偏移,把頁偏移與物理頁號(hào)拼接組成完整的40位物理地址。也就是說TLB 是用48位的虛擬地址作為檢索,而檢索結(jié)果是一個(gè)40位的物理地址。如果請(qǐng)求的虛擬地址剛好保存在TLB中,即虛擬地址110的高36位虛擬頁號(hào)與有且僅有一個(gè)表項(xiàng)130的標(biāo)記域相匹配,那么通過TLB,40位的物理地址很快就能得到,得到的物理地址可以用于訪問物理內(nèi)存,這就稱為一次TLB命中。相反,如果請(qǐng)求的物理地址沒有保存在TLB中,就稱為一次TLB缺失,那么虛擬地址到物理地址的轉(zhuǎn)換過程必須要到頁表中進(jìn)行,根據(jù)前面所說,頁表通常比較大,放置在主存中,因此這是一個(gè)繁雜的過程,會(huì)引起很大的延時(shí),嚴(yán)重影響系統(tǒng)的性能。由于TLB的缺失會(huì)引起極大的延時(shí),因此提高TLB的效率對(duì)于系統(tǒng)的性能具有很大的影響。傳統(tǒng)的一些研究表明TLB操作占據(jù)了 5-10%的系統(tǒng)運(yùn)行時(shí)間,而在某些極端情況下,這種比例可以達(dá)到40%。由軟件(指OS)管理的TLB操作有時(shí)占據(jù)了 80%的系統(tǒng)內(nèi)核運(yùn)算時(shí)間?,F(xiàn)有的一些研究試圖降低TLB的訪問時(shí)間和缺失率,從而提高系統(tǒng)的整體性能。其指出了一些TLB特性,像大小、關(guān)聯(lián)度以及多級(jí)的層次化結(jié)構(gòu)等,對(duì)TLB的訪問時(shí)間和缺失代價(jià)有著非常重要的影響,但是對(duì)于如何提高TLB的利用效率,則鮮有涉及。故,實(shí)有必要進(jìn)行研究開發(fā),提供一種解決上述缺陷的方案,提高TLB利用效率,從而提高系統(tǒng)的整體性能。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種提高TLB利用效率的方法,其使用過濾機(jī)制提高TLB利用效率,改進(jìn)TLB的利用效率,提高系統(tǒng)的整體性能。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種提高TLB利用效率的方法,包括如下步驟添加一個(gè)RF預(yù)測(cè)器、以及一塊過濾緩存;當(dāng)TLB不發(fā)生缺失時(shí),不管在TLB中命中還是在過濾緩存中命中,把命中塊的實(shí)際重用頻率加1 ;當(dāng)TLB發(fā)生缺失時(shí),使用RF預(yù)測(cè)器來預(yù)測(cè)缺失塊的重用頻率,RF預(yù)測(cè)器保存了回收塊的塊重用信息;通過預(yù)先設(shè)置一個(gè)過濾閥值,將預(yù)測(cè)的重用頻率與過濾閾值比較,如果預(yù)測(cè)的重用頻率大于過濾閾值,就把缺失塊插入TLB,TLB中缺失塊的實(shí)際重用頻率域置為0,否則把缺失塊插入過濾緩存,過濾緩存中缺失塊的實(shí)際重用頻率域置為0。進(jìn)一步地,如果缺失塊插入數(shù)據(jù)TLB,則按照替換算法,數(shù)據(jù)TLB會(huì)產(chǎn)生一個(gè)回收塊,用回收塊的實(shí)際重用頻率更新預(yù)測(cè)器中該塊的塊重用信息,同時(shí),把回收塊丟棄。進(jìn)一步地,如果缺失塊插入過濾緩存,則過濾緩存替換算法會(huì)產(chǎn)生一個(gè)回收塊,如果該回收塊的重用頻率等于它的實(shí)際重用頻率,則用該實(shí)際重用頻率更新RF預(yù)測(cè)器的塊重用信息,并把回收塊丟棄;否則把該回收塊插入數(shù)據(jù)TLB。進(jìn)一步地,所述TLB的域結(jié)構(gòu)包括有一個(gè)實(shí)際重用頻率域,所述過濾緩存的域結(jié)構(gòu)與所述TLB的域結(jié)構(gòu)一致。進(jìn)一步地,所述過濾緩存獨(dú)立于TLB,在邏輯結(jié)構(gòu)上位于TLB與頁表之間。進(jìn)一步地,所述過濾緩存的容量小于所述TLB。進(jìn)一步地,所述RF預(yù)測(cè)器使用所述缺失塊的虛擬地址的低4位與高4位的與或運(yùn)算結(jié)果作為索引。進(jìn)一步地,所述過濾緩存回收塊插入TLB時(shí),所述過濾緩存回收塊的實(shí)際重用頻率一起被傳給TLB。進(jìn)一步地,所述TLB的域結(jié)構(gòu)的實(shí)際重用頻率域大小為2個(gè)比特,用于指示該TLB塊的實(shí)際使用次數(shù)相較于現(xiàn)有技術(shù),本發(fā)明提高TLB利用效率的方法通過增加過濾機(jī)制,利用過濾機(jī)制把較少重用的TLB放到過濾緩存而不是TLB中,以提高TLB的利用效率,間接降低了 TLB的缺失率,提高了系統(tǒng)的整體性能;另外,本發(fā)明采用LAST算法進(jìn)行預(yù)測(cè),具有很高的準(zhǔn)確性。
圖1是現(xiàn)有技術(shù)的TLB結(jié)構(gòu)圖;圖2是本發(fā)明實(shí)施例的數(shù)據(jù)TLB層次結(jié)構(gòu)圖;圖3是本發(fā)明實(shí)施例的過濾機(jī)制的流程圖;圖4是本發(fā)明實(shí)施例的RF預(yù)測(cè)器的域結(jié)構(gòu)圖示;圖5是本發(fā)明實(shí)施例的數(shù)據(jù)TLB與過濾緩存的域結(jié)構(gòu)圖示。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提高TLB利用效率的方法在TLB層次結(jié)構(gòu)中添加過濾機(jī)制,其中包括添加一個(gè)RF預(yù)測(cè)器、一塊過濾緩存;當(dāng)TLB不發(fā)生缺失時(shí),不管在TLB中命中還是在過濾緩存中命中,把命中塊的實(shí)際重用頻率加1 ;而當(dāng)TLB發(fā)生缺失時(shí),使用RF預(yù)測(cè)器來預(yù)測(cè)缺失塊的重用頻率,RF預(yù)測(cè)器保存了回收塊的塊重用信息;通過預(yù)先設(shè)置一個(gè)過濾閥值,將預(yù)測(cè)的重用頻率與過濾閾值比較,如果預(yù)測(cè)的重用頻率大于過濾閾值,就把缺失塊插入TLB,TLB 中缺失塊的實(shí)際重用頻率域置為0,否則把缺失塊插入過濾緩存,過濾緩存中缺失塊的實(shí)際重用頻率域置為0。其中,如果缺失塊插入TLB,TLB會(huì)產(chǎn)生一個(gè)TLB回收塊,使用TLB回收塊的實(shí)際重用頻率更新RF預(yù)測(cè)器中對(duì)應(yīng)地址的塊重用信息并把TLB回收塊丟棄;如果缺失塊插入過濾緩存,過濾緩存會(huì)產(chǎn)生一個(gè)過濾緩存回收塊,如果預(yù)測(cè)的過濾緩存回收塊的重用頻率與過濾緩存回收塊的實(shí)際重用頻率相等,則使用過濾緩存回收塊的實(shí)際重用頻率更新RF預(yù)測(cè)器中對(duì)應(yīng)地址的塊重用信息,并把過濾緩存回收塊丟棄,否則把過濾緩存回收塊插入TLB。 過濾緩存回收塊插入TLB,TLB又會(huì)產(chǎn)生一個(gè)TLB回收塊,使用TLB回收塊的實(shí)際重用頻率更新RF預(yù)測(cè)器中對(duì)應(yīng)地址的塊重用信息,并把TLB回收塊丟棄。其中,過濾緩存的容量小于所述TLB,TLB的域結(jié)構(gòu)為傳統(tǒng)的TLB域結(jié)構(gòu)加上一個(gè)實(shí)際重用頻率域,所述過濾緩存的域結(jié)構(gòu)與所述TLB的域結(jié)構(gòu)一致;所述過濾緩存獨(dú)立于TLB,在邏輯結(jié)構(gòu)上位于TLB與頁表之間。本發(fā)明既可應(yīng)用于數(shù)據(jù)TLB,也可應(yīng)用于指令TLB。本實(shí)施例以應(yīng)用于數(shù)據(jù)TLB進(jìn)行說明,在Simplekalar 3. Od模擬器上實(shí)現(xiàn)。如下表1所示,其示出了實(shí)施例的數(shù)據(jù)TLB 中塊的重用次數(shù)分別所占的比例。通過對(duì)PARSEC各個(gè)測(cè)試程序的重用次數(shù)少于4次的數(shù)據(jù)TLB塊的比例進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)存在許多的TLB塊沒重用或者被重用次數(shù)很少,而這些較少重用塊導(dǎo)致了 TLB的利用效率不夠高。本發(fā)明實(shí)施例通過過濾機(jī)制,把那些較少重用的塊(重用頻率小于2的塊)過濾到一個(gè)過濾緩存中,從而可以提供更多TLB空間給那些重用次數(shù)多的塊,以此提高TLB的利用效率。表 權(quán)利要求
1.一種提高TLB利用效率的方法,其特征在于,包括如下步驟添加一個(gè)RF預(yù)測(cè)器、以及一塊過濾緩存;當(dāng)TLB不發(fā)生缺失時(shí),不管在TLB中命中還是在過濾緩存中命中,把命中塊的實(shí)際重用頻率加1 ;當(dāng)TLB發(fā)生缺失時(shí),使用RF預(yù)測(cè)器來預(yù)測(cè)缺失塊的重用頻率,RF預(yù)測(cè)器保存了回收塊的塊重用信息;通過預(yù)先設(shè)置一個(gè)過濾閥值,將預(yù)測(cè)的重用頻率與過濾閾值比較,如果預(yù)測(cè)的重用頻率大于過濾閾值,就把缺失塊插入TLB,TLB中缺失塊的實(shí)際重用頻率域置為0,否則把缺失塊插入過濾緩存,過濾緩存中缺失塊的實(shí)際重用頻率域置為0。
2.如權(quán)利要求1所述提高TLB利用效率的方法,其特征在于如果缺失塊插入數(shù)據(jù) TLB,則按照替換算法,數(shù)據(jù)TLB會(huì)產(chǎn)生一個(gè)回收塊,用回收塊的實(shí)際重用頻率更新預(yù)測(cè)器中該塊的塊重用信息,同時(shí),把回收塊丟棄。
3.如權(quán)利要求1所述提高TLB利用效率的方法,其特征在于如果缺失塊插入過濾緩存,則過濾緩存替換算法會(huì)產(chǎn)生一個(gè)回收塊,如果該回收塊的重用頻率等于它的實(shí)際重用頻率,則用該實(shí)際重用頻率更新RF預(yù)測(cè)器的塊重用信息,并把回收塊丟棄;否則把該回收塊插入數(shù)據(jù)TLB。
4.如權(quán)利要求2或3所述提高TLB利用效率的方法,其特征在于TLB的域結(jié)構(gòu)包括有一個(gè)實(shí)際重用頻率域,所述過濾緩存的域結(jié)構(gòu)與所述TLB的域結(jié)構(gòu)一致。
5.如權(quán)利要求4所述提高TLB利用效率的方法,其特征在于所述過濾緩存獨(dú)立于 TLB,在邏輯結(jié)構(gòu)上位于TLB與頁表之間。
6.如權(quán)利要求5所述提高TLB利用效率的方法,其特征在于所述過濾緩存的容量小于所述TLB。
7.如權(quán)利要求6所述提高TLB利用效率的方法,其特征在于所述RF預(yù)測(cè)器使用所述缺失塊的虛擬地址的低4位與高4位的與或運(yùn)算結(jié)果作為索引。
8.如權(quán)利要求7所述提高TLB利用效率的方法,其特征在于所述過濾緩存回收塊插入TLB時(shí),所述過濾緩存回收塊的實(shí)際重用頻率一起被傳給TLB。
9.如權(quán)利要求8所述提高TLB利用效率的方法,其特征在于所述過濾緩存的替換算法為L(zhǎng)RU替換算法。
10.如權(quán)利要求9所述提高TLB利用效率的方法,其特征在于所述TLB的域結(jié)構(gòu)的實(shí)際重用頻率域大小為2個(gè)比特,用于指示該TLB塊的實(shí)際使用次數(shù)。
全文摘要
本發(fā)明公開了一種提高TLB利用效率的方法,包括如下步驟添加一個(gè)RF預(yù)測(cè)器、以及一塊過濾緩存;當(dāng)TLB不發(fā)生缺失時(shí),把命中塊的實(shí)際重用頻率加1;當(dāng)TLB發(fā)生缺失時(shí),使用RF預(yù)測(cè)器來預(yù)測(cè)缺失塊的重用頻率,RF預(yù)測(cè)器保存了回收塊的塊重用信息;通過預(yù)先設(shè)置一個(gè)過濾閥值,將預(yù)測(cè)的重用頻率與過濾閾值比較,如果預(yù)測(cè)的重用頻率大于過濾閾值,就把缺失塊插入TLB,TLB中缺失塊的實(shí)際重用頻率域置為0,否則把缺失塊插入過濾緩存,過濾緩存中缺失塊的實(shí)際重用頻率域置為0。通過利用過濾機(jī)制把較少重用的TLB放到過濾緩存而不是TLB中來提高TLB的利用效率,間接降低了TLB的缺失率,提高了系統(tǒng)的整體性能。
文檔編號(hào)G06F12/10GK102360339SQ20111030123
公開日2012年2月22日 申請(qǐng)日期2011年10月8日 優(yōu)先權(quán)日2011年10月8日
發(fā)明者全佰行, 虞保忠, 邵景程, 陳天洲, 馬建良 申請(qǐng)人:浙江大學(xué)