两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

旁路轉(zhuǎn)換緩沖器以及在其中進(jìn)行地址匹配的方法和裝置的制作方法

文檔序號(hào):6470109閱讀:180來源:國知局
專利名稱:旁路轉(zhuǎn)換緩沖器以及在其中進(jìn)行地址匹配的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)管理技術(shù),更具體地,涉及旁路轉(zhuǎn)換緩沖器
TLB以及在TLB中進(jìn)行地址匹配的方法和裝置。
背景技術(shù)
在計(jì)算機(jī)進(jìn)行數(shù)據(jù)存取和處理的時(shí)候,需要將各個(gè)應(yīng)用程序所使用的 邏輯地址轉(zhuǎn)換為存儲(chǔ)器的物理地址,以便訪問該存儲(chǔ)器及其I/O設(shè)備。其 中,邏輯地址又稱虛擬地址,物理地址又稱實(shí)際地址。在上述地址轉(zhuǎn)換中, 通常是將存儲(chǔ)器分為多個(gè)固定長(zhǎng)度的存儲(chǔ)塊,又稱頁面(page),以頁面 為單位進(jìn)行地址轉(zhuǎn)換。以頁面為單位的邏輯地址和物理地址的映射關(guān)系存 儲(chǔ)在頁表中。也就是說,頁表中包含多個(gè)條目,或稱頁表項(xiàng),每個(gè)頁表項(xiàng) 對(duì)應(yīng)于一個(gè)頁面的邏輯地址和物理地址的映射關(guān)系。
由于頁表存儲(chǔ)在內(nèi)存中,而處理器與內(nèi)存之間通常需要通過總線進(jìn)行 連接,因此如果處理器每次處理數(shù)據(jù)都要通過頁表來查找邏輯地址和物理 地址的映射關(guān)系,系統(tǒng)運(yùn)行速度和性能會(huì)非常不理想。因此,很多處理器 使用旁路轉(zhuǎn)換緩沖器TLB (translation look-aside buffer)來實(shí)現(xiàn)地址的映 射和轉(zhuǎn)換。具體地,TLB是處理器中的一部分高速緩存,用于存儲(chǔ)最近常 用的一些頁表項(xiàng)。這樣,在大部分情況下,處理器只需要利用TLB進(jìn)行地 址匹配,而不必每次都去內(nèi)存中查找頁表項(xiàng),大大提高了系統(tǒng)的運(yùn)行速度 和性能。
由于TLB是處理器高速緩存的一部分,因此其資源非常有限,不可能 存儲(chǔ)大量的頁表項(xiàng)。另一方面,才艮據(jù)TLB的作用和特點(diǎn),如果存儲(chǔ)的頁表 項(xiàng)太多,就不適合處理器快速查找需要的頁表項(xiàng);然而如果存儲(chǔ)的頁表項(xiàng)太少,那么有可能使得處理器查找特定地址時(shí)命中率不夠高。在現(xiàn)有的處
理器中,TLB中條目的數(shù)目典型地為幾十或幾百條。例如,在Godson2 處理器中TLB條目數(shù)目小于64;在IntelX86處理器中,TLB條目為128。 因此,在TLB設(shè)計(jì)中,有效利用有限的頁表項(xiàng)是十分重要的問題。
另一方面,如上所述,頁表是以頁面為單位存儲(chǔ)地址映射關(guān)系的。對(duì) 于固定大小的存儲(chǔ)器,如果頁面大小非常小,則頁面數(shù)目將非常大,頁表 需要大量的條目存儲(chǔ)每個(gè)頁面的地址映射關(guān)系。相應(yīng)地,需要在TLB中存 儲(chǔ)的條目數(shù)量也會(huì)非常大,占用大量TLB資源,十分不利。如果頁面大小 非常大,那么很容易出現(xiàn)大量的地址碎片無法利用的情況,造成頁面空間 的浪費(fèi)。為了解決上述矛盾,現(xiàn)在多種處理器支持多頁面大小的設(shè)置。例 如,Intel X86處理器支持4k和4M的頁面大小;X86—64支持4k, 1M, 2M, 4M的頁面大??;Itanium2支持4k, 16k, 64k, 256k, 1M, 4M, 16M, 64M, 256M和1G的頁面大小。為此,TLB中的頁表項(xiàng)也必須針 對(duì)不同頁面大小進(jìn)行地址映射。
當(dāng)使用不同大小的頁面組合時(shí),現(xiàn)有的TLB結(jié)構(gòu)帶來許多問題。下面 以4k和64k的頁面組合為例說明該問題。圖1示意性示出多頁面大小情 況下的地址分配。如圖所示,假設(shè)內(nèi)存中存在連續(xù)的128k的空間,其中前 64k是一個(gè)完整的未被占用的64k頁面,接下來的4k,也就是64k-68k 已經(jīng)被一個(gè)4k的邏輯頁面地址占用。如果這時(shí)某些程序請(qǐng)求60k的空間, 那么只能有兩種解決方案。 一種是為其分配15個(gè)4k的頁面,例如將68k -128k之間的空間劃分為15個(gè)4k頁面,分配給該程序。然而,這種情況 下就需要15個(gè)TLB條目來記錄每個(gè)頁面的地址映射,占用大量TLB資源。 另一種方案是為其重新分配一個(gè)新的64k頁面,例如0k-64k頁面。然而 這種情況下,就增加64k頁面中的最后4k頁面成為存儲(chǔ)碎片的可能。
因此,需要一種TLB方案,能夠合理利用存儲(chǔ)空間,同時(shí)高效利用頁 表?xiàng)l目,便于處理器快速查找和匹配所需地址。

發(fā)明內(nèi)容
考慮到上述問題,本發(fā)明提供一種旁路轉(zhuǎn)換緩沖器以及在其中進(jìn)行地 址匹配的方法和裝置。
根據(jù)本發(fā)明第一方面,提供一種旁路轉(zhuǎn)換緩沖器TLB,包括多個(gè)條目, 每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè)物理地址對(duì)應(yīng)于一個(gè) 存儲(chǔ)頁面,其中,所述多個(gè)條目中至少一個(gè)條目還包含第一數(shù)目的附加位, 所述附加位中的每一位代表該條目中的物理地址所對(duì)應(yīng)的存儲(chǔ)頁面中的一 個(gè)子頁面被其他邏輯地址占用的狀態(tài)。
根據(jù)本發(fā)明第二方面,提供一種在旁路轉(zhuǎn)換緩沖器TLB中進(jìn)行有效地 址匹配的方法,其中所述有效地址包含有效地址頁號(hào)和頁內(nèi)偏移,所述 TLB包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè) 物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,所述多個(gè)條目中至少一個(gè)條目還包含第一 數(shù)目的附加位,所述附加位中的每一位代表該條目中的物理地址所對(duì)應(yīng)的 存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址占用的狀態(tài),所述方法包括將 所述有效地址頁號(hào)與所述邏輯地址相比較,如果相同,則根據(jù)所述頁內(nèi) 偏移中最高的第二數(shù)目的比特位,確定該有效地址指向的目標(biāo)子頁面;以 及根據(jù)所述附加位的狀態(tài),判斷該目標(biāo)子頁面是否被其他邏輯地址占用。
根據(jù)本發(fā)明第三方面,提供一種在旁路轉(zhuǎn)換緩沖器TLB中進(jìn)行有效地 址匹配的裝置,其中所述有效地址包含有效地址頁號(hào)和頁內(nèi)偏移,所述 TLB包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè) 物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,所述多個(gè)條目中至少一個(gè)條目還包含第一 數(shù)目的附加位,所述附加位中的每一位代表該條目中的物理地址所對(duì)應(yīng)的 存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址占用的狀態(tài),所述裝置包括有 效地址頁號(hào)匹配單元,用于將所述有效地址頁號(hào)與所述邏輯地址相比較; 目標(biāo)子頁面確定單元,用于根據(jù)所述頁內(nèi)偏移中最高的第二數(shù)目的比特位, 確定該有效地址指向的目標(biāo)子頁面;目標(biāo)子頁面判斷單元,用于才艮據(jù)所述 附加位的狀態(tài),判斷該目標(biāo)子頁面是否被其他邏輯地址占用。
利用本發(fā)明的TLB以及地址匹配方法和裝置,能夠更為有效地利用頁面存儲(chǔ)資源和TLB條目資源,從而提高處理器的性能。


圖1示意性示出多頁面大小情況下的地址分配; 圖2示意性示出TLB中條目的結(jié)構(gòu); 圖3示意性示出有效地址的結(jié)構(gòu); 圖4A-4C示出根據(jù)一個(gè)實(shí)施例的附加位的示意圖; 圖5示出才艮據(jù)一個(gè)實(shí)施例的有效地址匹配方法的流程圖; 圖6示出才艮據(jù)一個(gè)實(shí)施例的頁內(nèi)偏移最高4比特位和16比特位映射 表;以及
圖7示意性示出有效地址匹配的裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式
下面結(jié)合

本發(fā)明的具體實(shí)施方式
。
如前所述,TLB中包含多個(gè)條目,每一條目包含邏輯地址和物理地址 及其映射關(guān)系。圖2示意性示出TLB中條目的結(jié)構(gòu)。如圖所示, 一個(gè)TLB 條目可分為高位字段和低位字段。高位字段的前52位,即0-51位,以有 效頁面號(hào)EPN ( Effective Page Number )的形式存儲(chǔ)邏輯地址。 一個(gè)EPN 對(duì)應(yīng)一個(gè)虛擬存儲(chǔ)頁面。TLB低位字段的中間部分以實(shí)際頁面號(hào)RPN
(Real Page Number)的形式存儲(chǔ)物理地址。 一個(gè)RPN對(duì)應(yīng)內(nèi)存中的一 個(gè)實(shí)際存儲(chǔ)頁面。同一條目中的EPN和RPN相互對(duì)應(yīng)。除了 RPN和EPN, TLB條目中還包含一些必要的保護(hù)位和保留位。
另一方面,當(dāng)處理器需要進(jìn)行數(shù)據(jù)存取時(shí),就以該數(shù)據(jù)的有效地址EA
(Effective Address )來查找TLB中的條目,看TLB中是否存在與該有效 地址EA匹配的條目?,F(xiàn)有的處理器多采用64個(gè)比特位的格式記錄數(shù)據(jù)的 有效地址。圖3示意性示出有效地址的結(jié)構(gòu)。這里,僅僅以4k頁面和64k 頁面為例進(jìn)行說明。如圖所示,有效地址包括有效地址頁號(hào)EPN和頁內(nèi)偏 移Offset。其中有效地址頁號(hào)EPN指示該有效地址所指向的虛擬存儲(chǔ)頁面,頁內(nèi)偏移指示該有效地址在該虛擬存儲(chǔ)頁面內(nèi)的偏移量。對(duì)于4k頁面,頁 內(nèi)偏移的最大偏移量就是4k,也就是212,因此,可以用12個(gè)比特位來記 錄頁面偏移。相應(yīng)地,有效地址EA的前面52個(gè)比特位,即0-51位,可 以用來記錄EPN。對(duì)于64k頁面,頁內(nèi)最大偏移量為64k,即216,因此, 需要用16個(gè)比特位來記錄頁內(nèi)偏移。相應(yīng)地,有效地址EA的前面48位 用來記錄EPN。對(duì)于更大的頁面,記錄頁內(nèi)偏移所需要的比特位會(huì)更多, 相應(yīng)地,用于記錄EPN的比特位更少。在現(xiàn)有處理器中,4k是最小的頁 面單元,因此,有效地址中記錄EPN的比特位最多為4k情況下的52位。 這也是圖2示出的TLB條目中采用52個(gè)比特位記錄EPN的原因,因?yàn)檫@ 樣可以滿足記錄EPN的最多比特位的要求。
基于上述的TLB結(jié)構(gòu)和有效地址EA的結(jié)構(gòu),在處理器進(jìn)行有效地址 匹配時(shí),將有效地址EA中的EPN與TLB各個(gè)條目中的EPN進(jìn)行比較, 以查找該有效地址EA所指示的地址是否存儲(chǔ)在TLB中。如果在TLB中 查找到了匹配的EPN,就可以根據(jù)該條目中EPN與RPN的映射關(guān)系,確 定該有效地址對(duì)應(yīng)的實(shí)際存儲(chǔ)頁面,并利用頁內(nèi)偏移確定有效地址在該實(shí) 際存儲(chǔ)頁面中進(jìn)行讀寫的具體位置。以上就是基本的TLB結(jié)構(gòu)和在該TLB 結(jié)構(gòu)中的基本地址匹配過程。
在此基礎(chǔ)上,為了更為高效地利用TLB,本發(fā)明的實(shí)施例對(duì)TLB條 目的結(jié)構(gòu)進(jìn)行了改進(jìn)。下面仍然以4k和64k兩種頁面大小的情況為例, 說明本發(fā)明實(shí)施例的TLB結(jié)構(gòu)。
在一個(gè)實(shí)施例中,TLB包含多個(gè)條目,其中一部分條目用于4k頁面, 另一部分條目用于64k頁面。對(duì)于64k頁面的條目,可以為其添加若干附 加位。在一個(gè)示例中,為64k頁面的條目添加了 16個(gè)附加比特位。圖4A -4C示出才艮據(jù)一個(gè)實(shí)施例的附加位的示意圖。如圖4A所示,所添加的16 位附加位中的每一位對(duì)應(yīng)于該條目所指示的64k頁面中的一個(gè)4k子頁面。 具體地,最后一個(gè)比特位對(duì)應(yīng)于64k頁面中第一個(gè)4k子頁面,倒數(shù)第二 個(gè)比特位對(duì)應(yīng)于64k頁面中第二個(gè)4k子頁面,...,第一個(gè)比特位對(duì)應(yīng)于 最后一個(gè)4k子頁面。每一個(gè)比特位的狀態(tài),即0或者1,指示對(duì)應(yīng)的子頁面被其他邏輯地址占用的狀態(tài)。例如,可以規(guī)定,某一個(gè)比特位為1時(shí),
代表該比特位對(duì)應(yīng)的子頁面已經(jīng)被其他邏輯地址占用;某一個(gè)比特位為0 時(shí),代表該比特位對(duì)應(yīng)的子頁面沒有被占用,可以接受存取。在圖4A所 示的16個(gè)比特位中,每一個(gè)比特位的狀態(tài)都為0。在上述規(guī)定下,W明 該64k頁面中的每個(gè)4k子頁面都沒有凈皮占用。而在圖4B所示的16個(gè)比 特位中,最后一個(gè)比特位為1,其他比特位均為0。這表明該64k頁面中, 第一個(gè)4k子頁面已經(jīng)被其他邏輯地址占用,其他4k子頁面是可用的。在 圖4C所示的16個(gè)比特位中,倒數(shù)第一、第三、第六個(gè)比特位為l,其他 比特位為0。這表明,第一、笫三和第六個(gè)4k子頁面已經(jīng)被占用,其他的 4k子頁面是可用的。
通過以上示出的附加位,可以更為細(xì)致地示出較大頁面(這里是64k) 中子頁面的占用狀況。這就允許用多個(gè)TLB條目對(duì)一個(gè)實(shí)際存儲(chǔ)頁面進(jìn)行 更細(xì)致的劃分,進(jìn)而更為有效地利用其存儲(chǔ)空間。例如,對(duì)于圖l所示的 地址分配情況,就可以采用兩個(gè)TLB條目,對(duì)68k- 128k之間的空間進(jìn) 行利用。具體地,第一個(gè)TLB條目的RPN可以指向64k-68k這一4k頁 面;第二個(gè)TLB條目的RPN可以指向64k-128k這一64k頁面,同時(shí)用 附加位示出該64k頁面中第一個(gè)4k子頁面已經(jīng)被占用。這樣,僅僅增加 了一個(gè)TLB條目,就使得較大頁面中的空間得到了更好利用。并且,由于 每個(gè)比特位獨(dú)立地指示一個(gè)子頁面的狀態(tài),因此,允許對(duì)較大頁面中未,皮 占用的不連續(xù)的多個(gè)子頁面進(jìn)行利用。例如,利用如圖4C所示的附加位 指示64k頁面中可用的空間。
在另一個(gè)實(shí)施例中,可以為指示64k頁面的條目添加8個(gè)比特位。這 樣,每個(gè)比特位指示該64k頁面中大小為8k的一個(gè)子頁面的占用狀態(tài)。 顯然,附加比特位位數(shù)越多,對(duì)頁面中子頁面的劃分越細(xì)致。以上都是以 64k頁面為例說明用于大頁面的附加位的。在此基礎(chǔ)上,對(duì)于其他大小的 頁面,可以根據(jù)頁面大小,要?jiǎng)澐值淖禹撁娲笮∵x擇附加位的位數(shù)。
由于現(xiàn)有的TLB中每個(gè)條目的比特位資源是有限的,因此,添加附加位.的比特位來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,添加的附加位是通過擴(kuò)展TLB條目的 比特位實(shí)現(xiàn)的。在另一個(gè)實(shí)施例中,添加的附加位利用TLB條目中的保留 位來實(shí)現(xiàn)。如圖2所示,在現(xiàn)有TLB條目中,低位字段的0-7位,11位, 18-21位都是未被占用的保留位??梢詫⑦@些保留位作為附加位,指示子 頁面的占用狀態(tài)。在另一個(gè)實(shí)施例中,添加的附加位利用TLB條目中未凈皮 占用的用于EPN的比特位來實(shí)現(xiàn)。如前所述,對(duì)于最小的頁面單元4k, 有效地址中EPN位數(shù)為52位,因此,TLB條目中預(yù)留了 52位用于存儲(chǔ) EPN。然而對(duì)于更大的頁面,EPN的位數(shù)要小于52位,這樣用于存儲(chǔ)EPN 的52個(gè)比特位的后面幾位就沒有被占用。例如,對(duì)于64k頁面,EPN位 數(shù)為48位,那么就可以利用用于存儲(chǔ)EPN的52個(gè)比特位中的最后4位來 實(shí)現(xiàn)附加位。可以理解,根據(jù)附加位位數(shù)的需要,可以選擇性地利用上述 幾種方式中的一種或多種。例如,在一個(gè)實(shí)施例中,需要16位附加位。這 16位附加位中8位可以利用條目中已有的保留位,4位利用用于EPN的比 特位中未被占用的后4位,另外4位通過擴(kuò)展條目位數(shù)來實(shí)現(xiàn)。
本領(lǐng)域技術(shù)人員可以理解,對(duì)于其他的頁面大小,可以根據(jù)要?jiǎng)澐值?子頁面大小、可提供的比特位資源的多少等因素來為TLB條目增加附加 位,以便有效利用較大的存儲(chǔ)頁面。
在上述具有附加位的TLB條目的基礎(chǔ)上,本發(fā)明還提供了相應(yīng)的有效 地址匹配方法。圖5示出才艮據(jù)一個(gè)實(shí)施例的有效地址匹配方法的流程圖。 下面仍然以支持4k和64k頁面的TLB為例說明該匹配方法。
在一個(gè)實(shí)施例中,假定TLB為針對(duì)64k頁面的條目增加了 16位附加 位。附加位中每一比特位的狀態(tài)指示該64k頁面中相應(yīng)的4k子頁面的占 用狀態(tài)。對(duì)于這樣的TLB,假定現(xiàn)在要在其中匹配一個(gè)有效地址EA,該 有效地址EA如圖3所示,包含有效地址頁號(hào)和頁內(nèi)偏移。如圖5所示, 該匹配方法包括步驟502,將有效地址頁號(hào)與TLB條目中的邏輯地址相 比較,判斷其是否相同。這一步驟與現(xiàn)有的基本匹配方法相同,都是將有 效地址EA中的EPN與TLB某個(gè)條目中的邏輯地址EPN相比較,如果不 同,就在步驟503比較下一條目,直到找到EPN匹配的條目。然而,在具有附加位的TLB中,存在這樣的可能,即兩個(gè)TLB條目的EPN相同,進(jìn) 而對(duì)應(yīng)的RPN也相同,但是附加位不同的情況。因此,在步驟502判斷結(jié) 果為是,即找到EPN匹配的條目之后,不能立即按照該條目的RPN訪問 物理地址,還要進(jìn)行進(jìn)一步的判斷,也就是判斷有效地址EA所指向的頁 內(nèi)地址是否被其他邏輯地址占用。
因此,如果步驟502判斷結(jié)果為是,則執(zhí)行步驟504,其中,根據(jù)有 效地址EA的頁內(nèi)偏移中最高的一定數(shù)目的比特位,確定該有效地址EA 指向的目標(biāo)子頁面。在本實(shí)施例中,TLB條目具有16位附加位,能夠指 示64k頁面中任意一個(gè)4k子頁面的占用狀態(tài)。因此,需要判斷有效地址 EA所指向的地址落入哪個(gè)4k子頁面中。實(shí)際上,有效地址EA所包含的 頁內(nèi)偏移的最高幾位就可以示出有效地址EA所指向的具體地址落入的范 圍。具體地,對(duì)于要訪問64k頁面的有效地址EA來說,頁內(nèi)偏移包含16 個(gè)比特位。最高比特位示出頁內(nèi)偏移落入64k頁面的哪個(gè)32k范圍之內(nèi), 例如,若頁內(nèi)偏移最高位為O,表示偏移是在第一個(gè)32k之內(nèi),若最高位 為1,表示偏移是在第二個(gè)32k之內(nèi)。第二位比特位示出頁內(nèi)偏移落入上 述32k范圍的哪一個(gè)16k之內(nèi)。因此,頁內(nèi)偏移的最高4位就可以示出, 有效地址EA所指向的目標(biāo)4k子頁面。具體地,若最高4位是0000,則 指示該64k頁面中的第一個(gè)4k子頁面;若最高4位是0001,則指示該64k 頁面中的第二個(gè)4k子頁面;…;若最高位是llll,則指示該64k頁面中 最后一個(gè)4k子頁面。由此,根據(jù)有效地址EA的頁內(nèi)偏移中的最高4位, 就確定了該有效地址指向的目標(biāo)4k子頁面。
為了更為清晰地示出頁內(nèi)偏移最高的4個(gè)比特位與指示的目標(biāo)子頁面 的關(guān)系,也^f更于后續(xù)與TLB的附加位比較,可以利用一個(gè)4比特位和16 比特位的映射表,將上述關(guān)系對(duì)應(yīng)起來,如圖6所示。圖6示出根據(jù)一個(gè) 實(shí)施例的頁內(nèi)偏移最高4比特位和16比特位映射表。根據(jù)該映射表,將頁 內(nèi)偏移的最高4個(gè)比特位映射為一個(gè)16比特位的表示,該16比特位中的 每一位對(duì)應(yīng)64k頁面中的一個(gè)4k子頁面。更具體地,該16比特位中的每 一個(gè)比特位從低位到高位依次指示64k頁面中第 一個(gè)到第16個(gè)4k子頁面,特位 中,與頁內(nèi)偏移所指示的目標(biāo)子頁面對(duì)應(yīng)的比特位用l表示,其他比特位 均為0。由此,頁內(nèi)偏移最高4位0000指示第一個(gè)4k子頁面,因此對(duì)應(yīng) 最后一位為1的16比特位,頁內(nèi)偏移最高4位0001指示第二個(gè)4k子頁面, 因此對(duì)應(yīng)倒數(shù)第二位為1的16比特位…
在確定有效地址EA指示的目標(biāo)子頁面之后,就可以執(zhí)行步驟506, 其中根據(jù)附加位的狀態(tài),判斷該目標(biāo)子頁面是否被其他邏輯地址占用。如 前所述,16位附加位的每一位獨(dú)立地指示一個(gè)4k子頁面的占用狀態(tài),因 此,只需要核查附加位中目標(biāo)子頁面所對(duì)應(yīng)的比特位的狀態(tài)即可。按照前 述的表達(dá)方式,如果在附加位中目標(biāo)子頁面對(duì)應(yīng)的比特位為1,則表明該 子頁面已經(jīng)^L占用,進(jìn)一步地,該有效地址EA不能匹配該TLB條目,也 就是,不能在該條目的RPN指示的實(shí)際存儲(chǔ)頁面中進(jìn)行存取。如果附加位 中目標(biāo)子頁面對(duì)應(yīng)的比特位為0,則表明該子頁面沒有被占用,進(jìn)一步地, 該有效地址EA可以匹配該TLB條目,也就是,可以在該條目的RPN指 示的實(shí)際存儲(chǔ)頁面中進(jìn)行存取。
為了更為快速地進(jìn)行目標(biāo)子頁面狀態(tài)的判斷,可以利用上述的從頁內(nèi) 偏移最高4比特位映射到的16比特位,將該16比特位與附加位進(jìn)行比較。 由于該16比特位與子頁面的對(duì)應(yīng)方式與附加位相同,因此只需要比較該 16比特位中狀態(tài)為1的比特位和對(duì)應(yīng)位置的附加位即可。例如,頁內(nèi)偏移 最高4位0000對(duì)應(yīng)最后一位為1的16比特位,在判斷目標(biāo)子頁面狀態(tài)時(shí), 就用16比特位中最后一個(gè)比特位與附加位的最后一個(gè)比特位進(jìn)行比較即 可。在前述的表示方式下,如果兩者相同,則表明目標(biāo)子頁面已經(jīng)被占用; 如果兩者不同,則表明目標(biāo)子頁面沒有被占用。可以理解,附加位和16 比特位的表示方式都可以由人為規(guī)定,例如,規(guī)定附加位中某比特位狀態(tài) 為O時(shí)代表對(duì)應(yīng)子頁面被占用;或者,規(guī)定所述16比特位中指示目標(biāo)子頁 面的比特位用O表示,其他比特位都用l表示。在這樣的表示方式下,16 比特位和附加位的比較結(jié)果與目標(biāo)子頁面的占用狀態(tài)之間的關(guān)系要適當(dāng)?shù)?進(jìn)行調(diào)整。上述實(shí)施例是針對(duì)為64k頁面的TLB條目增加了 16位附加位的情況。 對(duì)于其他數(shù)目的附加位,該方法依然適用。例如,在一個(gè)實(shí)施例中,為TLB 條目中針對(duì)64k頁面的條目增加了 8位的附加位,每一附加位指示一個(gè)8k 子頁面的狀態(tài)。按照?qǐng)D5所示的方法,首先匹配有效地址EA中的EPN與 TLB條目中的EPN。找到匹配的條目之后,根據(jù)有效地址EA中的頁內(nèi)偏 移的前3位來判斷目標(biāo)子頁面。這是因?yàn)?,頁?nèi)偏移的前3位就可以示出 EA指示的地址落入64k頁面的哪一個(gè)8k子頁面中。相應(yīng)地,也可以將頁 內(nèi)偏移的該前3位映射為一個(gè)指示目標(biāo)子頁面的8比特位。通過比較該8 比特位與8位的附加位,可以判斷出8k的目標(biāo)子頁面是否被占用。
可以發(fā)現(xiàn),附加位的位數(shù)n與需要判斷的頁內(nèi)偏移的最高比特位的最 少位數(shù)m存在這樣的關(guān)系n = 2m。這里所說最小位數(shù)m是指,也可以 采用頁內(nèi)偏移中更多的比特位來確定目標(biāo)子頁面。例如在上述附加位為8 位的實(shí)施例中,也可以利用頁內(nèi)偏移的前4位來確定目標(biāo)子頁面。這時(shí)確 定的目標(biāo)子頁面為4k子頁面。在判斷目標(biāo)子頁面是否被占用時(shí),先判斷這 4k子頁面落入哪一個(gè)8k范圍之內(nèi),然后根據(jù)附加位信息判斷該8k范圍是 否#皮占用。
上述實(shí)施例以4k、 64k頁面大小,8位、16位附加位的情況為例進(jìn)行 了說明??梢岳斫?,對(duì)于其他的頁面大小,其他位數(shù)的附加位的情況,都 可以采用上述方法進(jìn)4亍有效地址的匹配。
基于同一發(fā)明構(gòu)思,本發(fā)明還提供了一種在旁路轉(zhuǎn)換緩沖器TLB中進(jìn) 行有效地址匹配的裝置,圖7示意性示出該裝置的結(jié)構(gòu)框圖。如圖所示, 該裝置總體由數(shù)字700標(biāo)識(shí)。下面結(jié)合圖7和具體實(shí)施例對(duì)該裝置進(jìn)行說 明。
在一個(gè)實(shí)施例中,要進(jìn)行匹配的有效地址EA包含有效地址頁號(hào)EPN 和頁內(nèi)偏移。該有效地址EA被輸入所述裝置700,由裝置700查閱各個(gè) TLB條目,對(duì)該有效地址EA與所述TLB條目進(jìn)行匹配。所述TLB條目 中的每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè)物理地址對(duì)應(yīng)于 一個(gè)存儲(chǔ)頁面。在一個(gè)具體示例中,TLB中的條目一部分用于4k頁面,一部分用于64k頁面。其中用于64k頁面的條目還包含一定數(shù)目的附加位, 例如16個(gè)比特位的附加位。該附加位中的每一位代表該64k存儲(chǔ)頁面中的 一個(gè)4k子頁面,皮其他邏輯地址占用的狀態(tài)。
為進(jìn)行有效地址匹配,該裝置700包括有效地址頁號(hào)匹配單元710, 用于將有效地址EA中的EPN與TLB條目中的邏輯地址相比較。在一個(gè) 實(shí)施例中,該單元710由一個(gè)比較電路或比較器來執(zhí)行。
在單元710通過比較得到與有效地址的EPN相匹配的條目之后,還要 利用目標(biāo)子頁面確定單元720和目標(biāo)子頁面判斷單元730進(jìn)行進(jìn)一步分析。 具體地,目標(biāo)子頁面確定單元720用于才艮據(jù)有效地址EA的頁內(nèi)偏移中最 高的幾位比特位,確定該有效地址EA指向的目標(biāo)子頁面。在TLB中用于 64k頁面的條目具有16位附加位的情況下,可以才艮據(jù)EA中頁內(nèi)偏移的最 高4位來確定目標(biāo)子頁面。在一個(gè)具體實(shí)施例中,該目標(biāo)子頁面確定單元 720還包括一個(gè)解碼器(未示出),用于才艮據(jù)頁內(nèi)偏移最高4比特位與16 比特位的映射表,將所述4比特位映射為16比特位。該16比特位的每一 位對(duì)應(yīng)于64k頁面中的一個(gè)4k子頁面,并且其中與頁內(nèi)偏移所指示的目 標(biāo)子頁面對(duì)應(yīng)的比特位的狀態(tài)為1,其他比特位均為0。由此,單元720 可以通過該16比特位更為清晰地示出目標(biāo)子頁面在整個(gè)64k頁面中的位 置。
裝置700中的目標(biāo)子頁面判斷單元730用于才艮據(jù)TLB條目中附加位的 狀態(tài),判斷上述目標(biāo)子頁面是否被其他邏輯地址占用。具體地,由于16 位附加位的每一位獨(dú)立地指示一個(gè)4k子頁面的占用狀態(tài),因此,可以通過
由于上述解碼器映射得到的16比特位能夠指示目標(biāo)子頁面位置,因此可以 通過比較該16比特位和16位的附加位判斷目標(biāo)子頁面狀態(tài)。具體地,在 一個(gè)實(shí)施例中,目標(biāo)子頁面判斷單元730包括一個(gè)比較器,用于比較所述 16比特位與附加位。更具體地,所述比較器被配置為比較16比特位中指 示目標(biāo)子頁面的比特位和附加位中相應(yīng)位置的比特位。通過這樣的比較器, 目標(biāo)子頁面判斷單元730可以得出所述目標(biāo)子頁面4皮其他邏輯地址占用的狀態(tài),從而輸出有效地址EA是否能夠匹配的結(jié)果。
可以理解,裝置700可用于執(zhí)行圖5的有效地址匹配方法。 雖然以上結(jié)合具體實(shí)施例對(duì)本發(fā)明的TLB,以及在該TLB中進(jìn)行有 效地址匹配的方法和裝置進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域 普通技術(shù)人員能夠在說明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行多種變換、替換和修改 而不偏離本發(fā)明的精神和范圍,例如對(duì)具體實(shí)施例中的頁面大小、附加位
數(shù)目等進(jìn)行擴(kuò)展,使其適用于其他情況。應(yīng)該理解,所有這樣的變化、替 換、修改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利 要求來限定。
權(quán)利要求
1.一種旁路轉(zhuǎn)換緩沖器TLB,包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè)物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,其中,所述多個(gè)條目中至少一個(gè)條目還包含第一數(shù)目的附加位,所述附加位中的每一位代表該條目中的物理地址所對(duì)應(yīng)的存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址占用的狀態(tài)。
2. 如權(quán)利要求1的TLB,其中所述附加位至少部分地利用 所述條目中的保留位。
3. 如權(quán)利要求1的TLB,其中所述第一數(shù)目為2的倍數(shù)。
4. 一種在旁路轉(zhuǎn)換緩沖器TLB中進(jìn)行有效地址匹配的方 法,其中所述有效地址包含有效地址頁號(hào)和頁內(nèi)偏移,所述TLB 包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每 一個(gè)物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,所述多個(gè)條目中至少一個(gè)條 目還包含第一數(shù)目的附加位,所述附加位中的每一位代表該條目 中的物理地址所對(duì)應(yīng)的存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址 占用的狀態(tài),所述方法包括將所述有效地址頁號(hào)與所述邏輯地址相比較,如果相同,貝'J: 根據(jù)所述頁內(nèi)偏移中最高的第二數(shù)目的比特位,確定該有效地址指向的目標(biāo)子頁面;根據(jù)所述附加位的狀態(tài),判斷該目標(biāo)子頁面是否被其他邏輯地址占用。
5. 如權(quán)利要求4的方法,其中所述確定有效地址指向的子頁 面的步驟包括根據(jù)第二數(shù)目比特位與第一數(shù)目比特位的映射表, 將所述第二數(shù)目比特位映射為第一數(shù)目比特位,根據(jù)所述第一數(shù) 目比特位確定有效地址指向的目標(biāo)子頁面。
6. 如權(quán)利要求5的方法,其中所述判斷目標(biāo)子頁面是否被占 用的步驟包括比較所述第一數(shù)目比特位與所述第一數(shù)目附加位。
7. 如權(quán)利要求6的方法,其中所述比較第一數(shù)目比特位和附 加位的步驟包括比較所述第一數(shù)目比特位中指示目標(biāo)子頁面的 比特位和所述附加位中相應(yīng)位置的比特位。
8. 如權(quán)利要求4-7中任一項(xiàng)的方法,其中所述附加位至少 部分地利用所述條目中的保留位。
9. 如權(quán)利要求4-8中任一項(xiàng)的方法,其中所述第一數(shù)目和 第二數(shù)目滿足關(guān)系n = 2m,其中n指代第一數(shù)目,m指代第二數(shù) 目。
10. —種在旁路轉(zhuǎn)換緩沖器TLB中進(jìn)行有效地址匹配的裝 置,其中所述有效地址包含有效地址頁號(hào)和頁內(nèi)偏移,所述TLB 包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每 一個(gè)物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,所述多個(gè)條目中至少一個(gè)條 目還包含第一數(shù)目的附加位,所述附加位中的每一位代表該條目 中的物理地址所對(duì)應(yīng)的存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址 占用的狀態(tài),所述裝置包括有效地址頁號(hào)匹配單元,用于將所述有效地址頁號(hào)與所述邏 輯地址相比較;目標(biāo)子頁面確定單元,用于根據(jù)所述頁內(nèi)偏移中最高的第二 數(shù)目的比特位,確定該有效地址指向的目標(biāo)子頁面;目標(biāo)子頁面判斷單元,用于根據(jù)所述附加位的狀態(tài),判斷該 目標(biāo)子頁面是否被其他邏輯地址占用。
11. 如權(quán)利要求10的裝置,其中所述子頁面確定單元還包括 解碼器,用于根據(jù)第二數(shù)目比特位與第一數(shù)目比特位的映射表, 將所述第二數(shù)目比特位映射為第一數(shù)目比特位。
12. 如權(quán)利要求11的裝置,其中所述目標(biāo)子頁面判斷單元包 括比較器,用于比較所述第一數(shù)目比特位與所述第一數(shù)目附加位。
13. 如權(quán)利要求12的裝置,其中所述比較器被配置為比較 所述第一數(shù)目比特位中指示目標(biāo)子頁面的比特位和所述附加位中相應(yīng)位置的比特位。 '
14. 如權(quán)利要求10- 13中任一項(xiàng)的裝置,其中所述附加位至 少部分地利用所述條目中的保留位。
15. 如權(quán)利要求10-14中任一項(xiàng)的裝置,其中所述第一數(shù)目 和第二數(shù)目的最小值滿足關(guān)系n-2m,其中n指代笫一數(shù)目,m 指代第二數(shù)目。
全文摘要
本發(fā)明涉及一種旁路轉(zhuǎn)換緩沖器TLB以及在其中進(jìn)行地址匹配的方法和裝置。其中TLB包括多個(gè)條目,每個(gè)條目包含一個(gè)邏輯地址與一個(gè)物理地址,每一個(gè)物理地址對(duì)應(yīng)于一個(gè)存儲(chǔ)頁面,其中,所述多個(gè)條目中至少一個(gè)條目還包含第一數(shù)目的附加位,所述附加位中的每一位代表該條目中的物理地址所對(duì)應(yīng)的存儲(chǔ)頁面中的一個(gè)子頁面被其他邏輯地址占用的狀態(tài)。還提供了在上述TLB中進(jìn)行有效地址匹配的方法,所述有效地址包含有效地址頁號(hào)和頁內(nèi)偏移,該方法包括將有效地址頁號(hào)與邏輯地址相比較,若相同,則根據(jù)頁內(nèi)偏移中最高的第二數(shù)目的比特位,確定該有效地址指向的目標(biāo)子頁面;根據(jù)附加位的狀態(tài),判斷該目標(biāo)子頁面是否被其他邏輯地址占用。
文檔編號(hào)G06F12/10GK101661437SQ200810214600
公開日2010年3月3日 申請(qǐng)日期2008年8月28日 優(yōu)先權(quán)日2008年8月28日
發(fā)明者銳 侯, 常曉濤, 鯤 王, 宇 章, 奕 趙 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
天柱县| 静乐县| 习水县| 新竹市| 富锦市| 三河市| 安泽县| 沁源县| 龙江县| 南澳县| 兰考县| 梁平县| 江陵县| 穆棱市| 临夏市| 丹凤县| 湛江市| 阜宁县| 科技| 登封市| 杭锦后旗| 河北区| 中牟县| 辰溪县| 久治县| 海伦市| 高陵县| 山丹县| 静乐县| 兰州市| 河间市| 措勤县| 荥经县| 曲麻莱县| 武夷山市| 阿坝县| 西吉县| 湘西| 白银市| 龙里县| 扎赉特旗|