国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于連續(xù)頁(yè)面合并以及緩存的硬件載入技術(shù)

2014-08-29 18:45黨倩楊婷
現(xiàn)代電子技術(shù) 2014年15期

黨倩+楊婷

摘 要: 提出了一種基于連續(xù)頁(yè)面合并以及PTE基址緩存的硬件載入技術(shù)。對(duì)硬件載入改進(jìn)有兩種方法,分別是:合并Main TLB中物理頁(yè)號(hào)、虛擬頁(yè)號(hào)均連續(xù)的兩個(gè)表項(xiàng),擴(kuò)大了Main TLB容量,降低TLB缺失率,減少硬件載入次數(shù);緩存硬件載入過(guò)程中第一次查詢頁(yè)表得到的PTE基址,有相同PTE基址的虛擬頁(yè)號(hào)將不需要進(jìn)行第一次頁(yè)表查詢,節(jié)省了一半時(shí)間。

關(guān)鍵詞: 旁路緩沖器; 連續(xù)頁(yè)面歸并; 頁(yè)面回收; 硬件載入; PTE基址緩存

中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)15?0150?03

Hardware loading technology based on consecutive page merging and caching

DANG Qian1, YANG Ting2

(1. Shaanxi Vocational Technical Institute, Xian 710100, China; 2. Institute of Super?large?scale Integrated Circuit design, Hangzhou 310027, China)

Abstract: A hardware loading technology based on consecutive page merging and PTE base address caching is proposed in this paper. The improvement of hardware loading has two methods: Merge two table iterms whose VPN and PPN are both consecutive in Main TLB during hardware loading, which can expand the Main TLBs capacity, reduce TLB missing rate and decrease hardware loading times; Cache the page table entry (PTE) base address getting from the first query to the page table. The VPNs whose PTE base addresses are the same will not need to access page table to get PTE base address, which can save half of the hardware loading time.

Keywords: TLB; consecutive page merging; page recycling; hardware refill; PTE base address caching

1 旁路轉(zhuǎn)換單元載入技術(shù)概述

曾有研究表明TLB控制時(shí)間占普通系統(tǒng)運(yùn)行時(shí)間的5%~10%,然而最顯著的開(kāi)銷是在處理TLB缺失上。顯示TLB缺失程序是最常見(jiàn)的執(zhí)行原語(yǔ),表明TLB確實(shí)處理可以占到總運(yùn)行時(shí)間的40%。因此對(duì)處理TLB缺失的問(wèn)題的研究具有重要意義。

當(dāng)TLB出現(xiàn)缺失時(shí),有兩種處理方式,分別是硬件載入TLB和軟件載入TLB。硬件載入TLB不需要清空流水線,它對(duì)流水線的干擾是相當(dāng)小的。硬件載入TLB由硬件實(shí)現(xiàn)頁(yè)表的查詢、表項(xiàng)填入TLB操作,在進(jìn)行這一系列過(guò)程時(shí),處理器并不需要清空流水線,只需要凍結(jié)流水線,暫時(shí)不執(zhí)行下一條指令即可。本文主要研究硬件載入TLB技術(shù)。

TLB prefetching技術(shù)通過(guò)硬件上的預(yù)測(cè)以及預(yù)載入翻譯的方式來(lái)隱藏TLB缺失造成的時(shí)間開(kāi)銷。其主要思想是一個(gè)基于時(shí)效性的TLB缺失預(yù)測(cè)算法。時(shí)效性的概念是利用一個(gè)基于LRU替換算法計(jì)算出特定應(yīng)用中每個(gè)被使用到的TLB表項(xiàng)的歷史使用頻繁度。

SpecTLB 針對(duì)TLB缺失的情況提供了投機(jī)的地址翻譯,而不通過(guò)跟蹤部分填充的大頁(yè)面保留頁(yè)表。當(dāng)一次TLB缺失出現(xiàn)時(shí),SpecTLB檢查該缺失的虛擬頁(yè)是否是大頁(yè)面保留頁(yè)表的一部分,如果是這樣,缺頁(yè)的物理地址可以使用大范圍內(nèi)保留的小頁(yè)面的相對(duì)位置在該保留大頁(yè)面的開(kāi)始和結(jié)束物理地址之間進(jìn)行插值。

2 基于連續(xù)頁(yè)面合并以及緩存的硬件載入技術(shù)

針對(duì)硬件載入時(shí)間在整個(gè)TLB訪問(wèn)過(guò)程總時(shí)間中占有巨大比例的問(wèn)題,本文提出對(duì)硬件載入改進(jìn)的兩種方法:

(1) 合并Main TLB中物理頁(yè)號(hào)、虛擬頁(yè)號(hào)均連續(xù)的兩個(gè)表項(xiàng),擴(kuò)大了Main TLB容量,降低TLB缺失率,減少硬件載入次數(shù);

(2) 緩存硬件載入過(guò)程中第一次查詢頁(yè)表的到的PTE基址,有相同PTE基址的虛擬頁(yè)號(hào)將不需要進(jìn)行第一次頁(yè)表查詢,節(jié)省了一半時(shí)間。

這兩種方法分別從減少硬件載入次數(shù)和縮短單次硬件載入時(shí)間上提升了旁路轉(zhuǎn)換單元的性能,同時(shí)降低了缺失率。

2.1 基于連續(xù)頁(yè)面合并的硬件載入技術(shù)

為減少硬件載入次數(shù),本文提出一種用于連續(xù)頁(yè)面合并的LTLB(Large Page TLB),當(dāng)TLB缺失時(shí),進(jìn)行TLB硬件載入,首先從頁(yè)表中獲得所需要的翻譯信息,在將該信息填回MTLB之前先檢查MTLB中是否有其連續(xù)頁(yè)面,若有則將兩個(gè)頁(yè)面合并之后填入LTLB,同時(shí)將合并前原本在MTLB中的表項(xiàng)無(wú)效掉,使其可以在未來(lái)存放新的翻譯信息。這樣做也就是將LTLB作為一個(gè)頁(yè)面是MTLB兩倍的大頁(yè)面TLB進(jìn)行查詢,可以部分?jǐn)U大頁(yè)面大小,增加第二級(jí)TLB容量,減少TLB 缺失次數(shù)。

在硬件載入到MTLB之前先檢查MTLB中該表項(xiàng)的前后頁(yè)面是否存在MTLB中,若在,則合并這兩個(gè)頁(yè)面存入LTLB,同時(shí)釋放掉被合并的那個(gè)表項(xiàng)。兩路組相聯(lián)的MTLB中若有連續(xù)的頁(yè)面,這兩個(gè)頁(yè)面一定出現(xiàn)在組地址連續(xù)的幾個(gè)表項(xiàng)中,因此只需要根據(jù)要填入的表項(xiàng)的虛擬頁(yè)號(hào)(VPN)最低位選擇跟組地址減1或是組地址加1的兩個(gè)表項(xiàng)進(jìn)行比較。當(dāng)Micro TLB命中,直接返回物理地址。當(dāng)Micro TLB缺失,則同時(shí)查找MTLB和LTLB。若LTLB命中或者M(jìn)TLB命中則可直接得到物理地址;若二者都缺失則需要進(jìn)行硬件載入;在該機(jī)制下不會(huì)出現(xiàn)二者都命中的情況,一旦出現(xiàn)屬于硬件錯(cuò)誤。若要進(jìn)行硬件載入到MTLB,首先根據(jù)虛擬頁(yè)號(hào)找到要填的表項(xiàng),查看該表項(xiàng)附近是否有連續(xù)頁(yè)面,若有,則將兩個(gè)頁(yè)面合并放入LTLB,并將原MTLB中的表項(xiàng)置為空,若沒(méi)有,則直接填入。

如果要進(jìn)行合并檢查,則先根據(jù)VPN的最低位判定奇偶頁(yè)面,若是奇頁(yè)面,那么檢查是否跟前面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù);若是偶頁(yè)面,那么檢查是否跟后面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù)。如果有連續(xù)頁(yè)面則進(jìn)行合并后再填入LTLB,否則不合并直接填入MTLB。

2.2 PTE基址緩存的硬件載入技術(shù)

對(duì)于兩級(jí)頁(yè)表,需要進(jìn)行兩次查找,硬件載入時(shí)查找頁(yè)表是非常耗時(shí)、影響性能的。首先將MPGD寄存器中的14~31位PBA與虛擬地址中的20~31位拼起來(lái)組成30位地址,再左移兩位得到32位地址。用這個(gè)地址查詢頁(yè)目錄表,將得到表項(xiàng)的10~31位與虛擬地址中的12~19位拼起來(lái)組成30位地址,再左移兩位得到32位地址才是頁(yè)表表項(xiàng)的地址。用這個(gè)地址查詢頁(yè)表,將得到表項(xiàng)的12~31位物理頁(yè)號(hào)與虛擬地址的0~11位頁(yè)內(nèi)偏移拼起來(lái)組成32位地址,這個(gè)地址就是轉(zhuǎn)換好的物理地址。

針對(duì)兩級(jí)頁(yè)表查詢耗時(shí)的缺點(diǎn),本文提出PTE基址緩存的硬件載入技術(shù),就是在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB(PTE Base Address TLB),若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。這可以大大減少頁(yè)表查詢的時(shí)間。

其中PTLB每個(gè)表項(xiàng)含兩部分,分別是12位的VPN1和22位的PTE基址。四個(gè)表項(xiàng)同時(shí)與所要查找的虛擬地址中的VPN1進(jìn)行比較,若命中,則不許查找頁(yè)目錄表,直接得到PTE基址,與虛擬地址中的VPN2拼接作為頁(yè)表表項(xiàng)地址,得到所需要的頁(yè)表表項(xiàng)。

2.3 實(shí)驗(yàn)與分析

本文選取EEMBC中的部分多媒體應(yīng)用以及網(wǎng)絡(luò)應(yīng)用測(cè)試基準(zhǔn)程序,以32位高性能嵌入式處理CK510及其平臺(tái)為基礎(chǔ),在原有兩級(jí)TLB 的基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)連續(xù)頁(yè)面合并以及緩存及其控制邏輯進(jìn)行實(shí)驗(yàn)。

表1是5種不同TLB結(jié)構(gòu)的缺失率比較,這5種TLB均是兩級(jí)結(jié)構(gòu),第一級(jí)相同,不同在第二級(jí)的結(jié)構(gòu)。如圖1所示,這5種TLB的第二級(jí)分別是:

圖1 各種TLB結(jié)構(gòu)的硬件載入周期比較

① 2路組相聯(lián)32表項(xiàng)的MTLB;

② 4路組相聯(lián)32表項(xiàng)的MTLB;

③ 全相聯(lián)32表項(xiàng)的MTLB;

④ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)RTLB;

⑤ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)LTLB及4表項(xiàng)PTLB。

由圖1和表1可以看到,應(yīng)用了本文提出的硬件載入技術(shù)的TLB在硬件載入總周期上相比傳統(tǒng)的TLB結(jié)構(gòu)有明顯縮減。第2種4路組相聯(lián)的TLB結(jié)構(gòu)是最差的,毫無(wú)疑問(wèn)這是路太多導(dǎo)致的。本文提出的TLB結(jié)構(gòu)也是基本都優(yōu)于其他TLB結(jié)構(gòu)的。這兩個(gè)測(cè)試基準(zhǔn)的共同特點(diǎn)就是本身硬件載入的次數(shù)并不多,這可能是由于程序本身比較小、程序中所用到的數(shù)據(jù)量也比較少,因此在本身硬件載入次數(shù)不多的情況下,上文的方法效果不會(huì)太好,并且還要消耗非常多的硬件資源。

3 結(jié) 語(yǔ)

本文首先對(duì)旁路轉(zhuǎn)換單元載入技術(shù)做了介紹。然后對(duì)提出的基于連續(xù)頁(yè)面合并一級(jí)緩存的硬件載入技術(shù)進(jìn)行了詳細(xì)說(shuō)明。一是連續(xù)頁(yè)面合并,當(dāng)TLB缺失時(shí),進(jìn)行TLB硬件載入,首先從頁(yè)表中獲得所需要的翻譯信息,在將該信息填回MTLB之前先檢查MTLB中是否有其連續(xù)頁(yè)面,若有則將兩個(gè)頁(yè)面合并并填入LTLB,同時(shí)將合并前原本在MTLB中的表項(xiàng)無(wú)效掉,使其可以在未來(lái)存放新的翻譯信息。二是將PTE機(jī)制進(jìn)行緩存,在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB,若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。最后通過(guò)實(shí)驗(yàn)證明本文提出的基于連續(xù)頁(yè)面合并以及緩存的硬件載入技術(shù)能有效降低訪問(wèn)時(shí)間。

參考文獻(xiàn)

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑麗,孟建熠,王榮華,等.基于預(yù)測(cè)緩存的低功耗TLB快速訪問(wèn)機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平臺(tái)研發(fā)[D].杭州:浙江大學(xué),2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何軍,張曉東,郭勇.一種TLB結(jié)構(gòu)優(yōu)化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黃廷輝,王力.一種通用的嵌入式操作系統(tǒng)內(nèi)存保護(hù)設(shè)計(jì)[J].計(jì)算機(jī)工程,2005(24):34?36.

如果要進(jìn)行合并檢查,則先根據(jù)VPN的最低位判定奇偶頁(yè)面,若是奇頁(yè)面,那么檢查是否跟前面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù);若是偶頁(yè)面,那么檢查是否跟后面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù)。如果有連續(xù)頁(yè)面則進(jìn)行合并后再填入LTLB,否則不合并直接填入MTLB。

2.2 PTE基址緩存的硬件載入技術(shù)

對(duì)于兩級(jí)頁(yè)表,需要進(jìn)行兩次查找,硬件載入時(shí)查找頁(yè)表是非常耗時(shí)、影響性能的。首先將MPGD寄存器中的14~31位PBA與虛擬地址中的20~31位拼起來(lái)組成30位地址,再左移兩位得到32位地址。用這個(gè)地址查詢頁(yè)目錄表,將得到表項(xiàng)的10~31位與虛擬地址中的12~19位拼起來(lái)組成30位地址,再左移兩位得到32位地址才是頁(yè)表表項(xiàng)的地址。用這個(gè)地址查詢頁(yè)表,將得到表項(xiàng)的12~31位物理頁(yè)號(hào)與虛擬地址的0~11位頁(yè)內(nèi)偏移拼起來(lái)組成32位地址,這個(gè)地址就是轉(zhuǎn)換好的物理地址。

針對(duì)兩級(jí)頁(yè)表查詢耗時(shí)的缺點(diǎn),本文提出PTE基址緩存的硬件載入技術(shù),就是在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB(PTE Base Address TLB),若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。這可以大大減少頁(yè)表查詢的時(shí)間。

其中PTLB每個(gè)表項(xiàng)含兩部分,分別是12位的VPN1和22位的PTE基址。四個(gè)表項(xiàng)同時(shí)與所要查找的虛擬地址中的VPN1進(jìn)行比較,若命中,則不許查找頁(yè)目錄表,直接得到PTE基址,與虛擬地址中的VPN2拼接作為頁(yè)表表項(xiàng)地址,得到所需要的頁(yè)表表項(xiàng)。

2.3 實(shí)驗(yàn)與分析

本文選取EEMBC中的部分多媒體應(yīng)用以及網(wǎng)絡(luò)應(yīng)用測(cè)試基準(zhǔn)程序,以32位高性能嵌入式處理CK510及其平臺(tái)為基礎(chǔ),在原有兩級(jí)TLB 的基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)連續(xù)頁(yè)面合并以及緩存及其控制邏輯進(jìn)行實(shí)驗(yàn)。

表1是5種不同TLB結(jié)構(gòu)的缺失率比較,這5種TLB均是兩級(jí)結(jié)構(gòu),第一級(jí)相同,不同在第二級(jí)的結(jié)構(gòu)。如圖1所示,這5種TLB的第二級(jí)分別是:

圖1 各種TLB結(jié)構(gòu)的硬件載入周期比較

① 2路組相聯(lián)32表項(xiàng)的MTLB;

② 4路組相聯(lián)32表項(xiàng)的MTLB;

③ 全相聯(lián)32表項(xiàng)的MTLB;

④ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)RTLB;

⑤ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)LTLB及4表項(xiàng)PTLB。

由圖1和表1可以看到,應(yīng)用了本文提出的硬件載入技術(shù)的TLB在硬件載入總周期上相比傳統(tǒng)的TLB結(jié)構(gòu)有明顯縮減。第2種4路組相聯(lián)的TLB結(jié)構(gòu)是最差的,毫無(wú)疑問(wèn)這是路太多導(dǎo)致的。本文提出的TLB結(jié)構(gòu)也是基本都優(yōu)于其他TLB結(jié)構(gòu)的。這兩個(gè)測(cè)試基準(zhǔn)的共同特點(diǎn)就是本身硬件載入的次數(shù)并不多,這可能是由于程序本身比較小、程序中所用到的數(shù)據(jù)量也比較少,因此在本身硬件載入次數(shù)不多的情況下,上文的方法效果不會(huì)太好,并且還要消耗非常多的硬件資源。

3 結(jié) 語(yǔ)

本文首先對(duì)旁路轉(zhuǎn)換單元載入技術(shù)做了介紹。然后對(duì)提出的基于連續(xù)頁(yè)面合并一級(jí)緩存的硬件載入技術(shù)進(jìn)行了詳細(xì)說(shuō)明。一是連續(xù)頁(yè)面合并,當(dāng)TLB缺失時(shí),進(jìn)行TLB硬件載入,首先從頁(yè)表中獲得所需要的翻譯信息,在將該信息填回MTLB之前先檢查MTLB中是否有其連續(xù)頁(yè)面,若有則將兩個(gè)頁(yè)面合并并填入LTLB,同時(shí)將合并前原本在MTLB中的表項(xiàng)無(wú)效掉,使其可以在未來(lái)存放新的翻譯信息。二是將PTE機(jī)制進(jìn)行緩存,在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB,若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。最后通過(guò)實(shí)驗(yàn)證明本文提出的基于連續(xù)頁(yè)面合并以及緩存的硬件載入技術(shù)能有效降低訪問(wèn)時(shí)間。

參考文獻(xiàn)

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑麗,孟建熠,王榮華,等.基于預(yù)測(cè)緩存的低功耗TLB快速訪問(wèn)機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平臺(tái)研發(fā)[D].杭州:浙江大學(xué),2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何軍,張曉東,郭勇.一種TLB結(jié)構(gòu)優(yōu)化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黃廷輝,王力.一種通用的嵌入式操作系統(tǒng)內(nèi)存保護(hù)設(shè)計(jì)[J].計(jì)算機(jī)工程,2005(24):34?36.

如果要進(jìn)行合并檢查,則先根據(jù)VPN的最低位判定奇偶頁(yè)面,若是奇頁(yè)面,那么檢查是否跟前面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù);若是偶頁(yè)面,那么檢查是否跟后面一組中的兩個(gè)表項(xiàng)虛擬頁(yè)面、物理頁(yè)面都連續(xù)。如果有連續(xù)頁(yè)面則進(jìn)行合并后再填入LTLB,否則不合并直接填入MTLB。

2.2 PTE基址緩存的硬件載入技術(shù)

對(duì)于兩級(jí)頁(yè)表,需要進(jìn)行兩次查找,硬件載入時(shí)查找頁(yè)表是非常耗時(shí)、影響性能的。首先將MPGD寄存器中的14~31位PBA與虛擬地址中的20~31位拼起來(lái)組成30位地址,再左移兩位得到32位地址。用這個(gè)地址查詢頁(yè)目錄表,將得到表項(xiàng)的10~31位與虛擬地址中的12~19位拼起來(lái)組成30位地址,再左移兩位得到32位地址才是頁(yè)表表項(xiàng)的地址。用這個(gè)地址查詢頁(yè)表,將得到表項(xiàng)的12~31位物理頁(yè)號(hào)與虛擬地址的0~11位頁(yè)內(nèi)偏移拼起來(lái)組成32位地址,這個(gè)地址就是轉(zhuǎn)換好的物理地址。

針對(duì)兩級(jí)頁(yè)表查詢耗時(shí)的缺點(diǎn),本文提出PTE基址緩存的硬件載入技術(shù),就是在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB(PTE Base Address TLB),若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。這可以大大減少頁(yè)表查詢的時(shí)間。

其中PTLB每個(gè)表項(xiàng)含兩部分,分別是12位的VPN1和22位的PTE基址。四個(gè)表項(xiàng)同時(shí)與所要查找的虛擬地址中的VPN1進(jìn)行比較,若命中,則不許查找頁(yè)目錄表,直接得到PTE基址,與虛擬地址中的VPN2拼接作為頁(yè)表表項(xiàng)地址,得到所需要的頁(yè)表表項(xiàng)。

2.3 實(shí)驗(yàn)與分析

本文選取EEMBC中的部分多媒體應(yīng)用以及網(wǎng)絡(luò)應(yīng)用測(cè)試基準(zhǔn)程序,以32位高性能嵌入式處理CK510及其平臺(tái)為基礎(chǔ),在原有兩級(jí)TLB 的基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)連續(xù)頁(yè)面合并以及緩存及其控制邏輯進(jìn)行實(shí)驗(yàn)。

表1是5種不同TLB結(jié)構(gòu)的缺失率比較,這5種TLB均是兩級(jí)結(jié)構(gòu),第一級(jí)相同,不同在第二級(jí)的結(jié)構(gòu)。如圖1所示,這5種TLB的第二級(jí)分別是:

圖1 各種TLB結(jié)構(gòu)的硬件載入周期比較

① 2路組相聯(lián)32表項(xiàng)的MTLB;

② 4路組相聯(lián)32表項(xiàng)的MTLB;

③ 全相聯(lián)32表項(xiàng)的MTLB;

④ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)RTLB;

⑤ 2路組相聯(lián)32表項(xiàng)MTLB與4表項(xiàng)LTLB及4表項(xiàng)PTLB。

由圖1和表1可以看到,應(yīng)用了本文提出的硬件載入技術(shù)的TLB在硬件載入總周期上相比傳統(tǒng)的TLB結(jié)構(gòu)有明顯縮減。第2種4路組相聯(lián)的TLB結(jié)構(gòu)是最差的,毫無(wú)疑問(wèn)這是路太多導(dǎo)致的。本文提出的TLB結(jié)構(gòu)也是基本都優(yōu)于其他TLB結(jié)構(gòu)的。這兩個(gè)測(cè)試基準(zhǔn)的共同特點(diǎn)就是本身硬件載入的次數(shù)并不多,這可能是由于程序本身比較小、程序中所用到的數(shù)據(jù)量也比較少,因此在本身硬件載入次數(shù)不多的情況下,上文的方法效果不會(huì)太好,并且還要消耗非常多的硬件資源。

3 結(jié) 語(yǔ)

本文首先對(duì)旁路轉(zhuǎn)換單元載入技術(shù)做了介紹。然后對(duì)提出的基于連續(xù)頁(yè)面合并一級(jí)緩存的硬件載入技術(shù)進(jìn)行了詳細(xì)說(shuō)明。一是連續(xù)頁(yè)面合并,當(dāng)TLB缺失時(shí),進(jìn)行TLB硬件載入,首先從頁(yè)表中獲得所需要的翻譯信息,在將該信息填回MTLB之前先檢查MTLB中是否有其連續(xù)頁(yè)面,若有則將兩個(gè)頁(yè)面合并并填入LTLB,同時(shí)將合并前原本在MTLB中的表項(xiàng)無(wú)效掉,使其可以在未來(lái)存放新的翻譯信息。二是將PTE機(jī)制進(jìn)行緩存,在第一次查詢得到頁(yè)目錄表表項(xiàng)地址之前先查找一個(gè)PTE基址緩存表PTLB,若命中則直接得到頁(yè)目錄表表象地址,而不需要再進(jìn)行第二次查找。最后通過(guò)實(shí)驗(yàn)證明本文提出的基于連續(xù)頁(yè)面合并以及緩存的硬件載入技術(shù)能有效降低訪問(wèn)時(shí)間。

參考文獻(xiàn)

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑麗,孟建熠,王榮華,等.基于預(yù)測(cè)緩存的低功耗TLB快速訪問(wèn)機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平臺(tái)研發(fā)[D].杭州:浙江大學(xué),2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何軍,張曉東,郭勇.一種TLB結(jié)構(gòu)優(yōu)化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黃廷輝,王力.一種通用的嵌入式操作系統(tǒng)內(nèi)存保護(hù)設(shè)計(jì)[J].計(jì)算機(jī)工程,2005(24):34?36.