專利名稱::支持頁屬性的虛擬地址至物理地址的轉(zhuǎn)換的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明的實(shí)施例一般涉及計(jì)算系統(tǒng)領(lǐng)域,尤其涉及用于支持頁屬性的虛擬地址至物理地址轉(zhuǎn)換的系統(tǒng)、方法和裝置。
背景技術(shù):
:虛擬存儲(chǔ)器允許程序員使用比處理器可用的實(shí)際物理存儲(chǔ)器所提供的范圍更大的存儲(chǔ)器用于程序和數(shù)據(jù)。此外,虛擬存儲(chǔ)器允許程序相互平行地加載,并具有與其它程序的存在及其加載的位置無關(guān)的存儲(chǔ)器映射。計(jì)算系統(tǒng)利用地址轉(zhuǎn)換硬件將程序的虛擬地址(在IA32體系結(jié)構(gòu)中也稱為線性地址——在本說明書中“線性地址”或LA與“虛擬地址”在使用時(shí)意思相同)映射到真實(shí)的硬件存儲(chǔ)器地址(例如,物理存儲(chǔ)器地址)。該硬件使·用存儲(chǔ)器中的表樹作為地址轉(zhuǎn)換的輸入數(shù)據(jù)。該樹的根由保持頁表樹中第一表的物理地址的寄存器所指向。這ー寄存器的例子是IA32體系結(jié)構(gòu)中的CR3。頁表項(xiàng)(PTE)利用基址和索引來尋址?;肥菑募拇嫫骰蛳惹暗谋泶鎯?chǔ)器指針中取出的。索引利用線性地址的ー部分。PTE或者包括頁——如果存儲(chǔ)器中不存在其余的子樹,或者包括以下討論的存儲(chǔ)器指針和其它信息。存儲(chǔ)器指針針對(duì)存儲(chǔ)器中可以包括數(shù)據(jù)(屬于應(yīng)用程序或操作系統(tǒng))或另ー級(jí)頁表的頁。如果是后一種情況,則線性地址的另一部分用于索引至類似于所述內(nèi)容的方案中的表。如果地址針對(duì)應(yīng)用程序頁,則物理地址通過將剩余的地址位(沒有用于索弓I)添加至從頁表項(xiàng)檢索的頁基地址來構(gòu)造。同樣,某些實(shí)施例可例示出如寄存器中所述的幾種轉(zhuǎn)換方案(例如,不同的表樹索引結(jié)構(gòu)),為了簡化本說明書,我們將考慮這些CR3寄存器中的信息部分,即使它可以保持在一個(gè)或多個(gè)其它寄存器中。除地址轉(zhuǎn)換信息外,這些表包括諸如訪問權(quán)讀取、寫入或執(zhí)行、存儲(chǔ)器中數(shù)據(jù)的存在、高速緩存策略指示、頁修改狀態(tài)等信息。在某些情形中,頁表可包括不同大小的頁,其中較大的頁指向頁表樹的較低級(jí)(而不是指向另一指針頁)。將所指向的頁大小在頁表樹中存儲(chǔ)為屬性(一般在指向數(shù)據(jù)頁的級(jí)中)。為了檢索物理地址,以從根(IA32中的CR3)開始的遞歸方式讀取頁表項(xiàng),并檢索和合并頁性質(zhì)。IA32程序員參考手冊(cè)(例如,卷3A)提供了一個(gè)檢索物理地址的常規(guī)方法的例子。該進(jìn)程需要若干存儲(chǔ)器訪問操作,并由頁-表處理硬件或UCode(I^g)序列來實(shí)現(xiàn)。有時(shí),需要軟件來檢索物理存儲(chǔ)器地址。在這種情形中,使用仿真全表遍歷(emulatedfulltablewalk)或者基于操作系統(tǒng)施加的表設(shè)置限度的經(jīng)縮短啟發(fā)法。轉(zhuǎn)換后備緩沖器(TLB)是保持先前轉(zhuǎn)換結(jié)果的高速緩存,使得對(duì)ー個(gè)地址(或地址范圍)的連續(xù)訪問可避免遍歷數(shù)據(jù)結(jié)構(gòu),并可使用先前轉(zhuǎn)換的結(jié)果。在很多情形中,地址轉(zhuǎn)換還檢查操作,以滿足為存儲(chǔ)器位置所設(shè)置的條件。常規(guī)的地址轉(zhuǎn)換指令一般被提供作為操作數(shù)以返回針對(duì)線性地址的物理存儲(chǔ)器地址,而無需提供任何附加信息。附圖簡述本發(fā)明的實(shí)施例在附圖的各圖中作為例子而不是限制示出,附圖中相同的附圖標(biāo)記指示相似的元件。圖I是示出根據(jù)本發(fā)明的ー個(gè)實(shí)施例實(shí)現(xiàn)的計(jì)算系統(tǒng)的所選方面的高級(jí)框圖。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出地址轉(zhuǎn)換硬件的所選方面的框圖。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出具有擴(kuò)展頁表的頁樹的所選方面的框圖。圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出頁表項(xiàng)的所選方面的框圖。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出支持頁屬性的線性至物理地址轉(zhuǎn)換的方法的所選方面的流程圖。詳細(xì)描述本發(fā)明的實(shí)施例一般涉及支持頁屬性的虛擬(將被稱為線性)至物理地址轉(zhuǎn)換的系統(tǒng)、方法和裝置。在某些實(shí)施例中,系統(tǒng)接收一指令,以將線性存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址。系統(tǒng)可返回物理存儲(chǔ)器地址和ー個(gè)或多個(gè)頁屬性。圖I是示出根據(jù)本發(fā)明的ー個(gè)實(shí)施例實(shí)現(xiàn)的計(jì)算系統(tǒng)的所選方面的高級(jí)框圖。系統(tǒng)100包括應(yīng)用程序102、內(nèi)核104和硬件106。內(nèi)核104管理硬件106并在應(yīng)用程序102和硬件106之間提供通信。為了提供故障容錯(cuò)和安全性,內(nèi)核104可以在高于應(yīng)用程序102的特權(quán)級(jí)(例如,環(huán)0)操作。在某些實(shí)施例中,內(nèi)核104包括LOADPHYSICALADDRESS(カロ載物理地址)指令(LAP)108。LPA108的輸入?yún)?shù)幾乎可以包括指向存儲(chǔ)器的任何指針。LPA108的輸出參數(shù)包括與上述指針和ー個(gè)或多個(gè)頁屬性對(duì)應(yīng)的物理存儲(chǔ)器地址(PA)。如以下參考圖2-5進(jìn)ー步描述的,LPA108可支持touch(創(chuàng)建)操作和/或虛擬化技術(shù)。表I示出根據(jù)本發(fā)明的某些實(shí)施例的LPAxx指令的所選方面。在某些實(shí)施例中,LPAxx指令取出線性地址(例如,m8)作為輸入,并輸出該存儲(chǔ)器位置的物理地址以及ー個(gè)或多個(gè)頁屬性。在32位模式中且在物理地址可能大于寄存器的情況下,指令可具有2個(gè)寄存器用于地址輸出(以支持大于32位的物理地址空間)。在64位模式中,單個(gè)輸出寄存器就足夠了。在某些實(shí)施例中,指令的基本結(jié)構(gòu)支持讀語義??芍С謱懻Z義以直接檢查頁是否是寫使能的(例如,參見以下的設(shè)計(jì)方案(trap)討論)。表I權(quán)利要求1.一種機(jī)器實(shí)現(xiàn)方法,包括接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址;基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址,包括讀取轉(zhuǎn)換備用緩沖器(TLB)項(xiàng)以獲取所述物理存儲(chǔ)器地址和一個(gè)或多個(gè)頁屬性;以及返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)。2.如權(quán)利要求I所述的方法,其特征在于,所述基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址包括不基于頁表信息,確定與所述虛擬存儲(chǔ)器指針相對(duì)應(yīng)的頁是否在存儲(chǔ)器中。3.如權(quán)利要求I或2所述的方法,其特征在于,所述接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址包括從虛擬機(jī)管理器接收所述指令;以及其中所述返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)包括返回主機(jī)物理存儲(chǔ)器地址。4.如權(quán)利要求I或2所述的方法,其特征在于,所述接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址包括從虛擬機(jī)管理器接收所述指令;以及其中所述返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)包括返回客機(jī)物理存儲(chǔ)器地址。5.如權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址包括如果TLB不包括所述物理存儲(chǔ)器地址,讀取至少一個(gè)頁表項(xiàng)以獲取所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性。6.如權(quán)利要求1-5中任一項(xiàng)所述的方法,其特征在于,所述一個(gè)或多個(gè)屬性包括以下至少一個(gè)存在位,讀/寫位,用戶/管理員位,訪問位,臟位,全局標(biāo)志,執(zhí)行禁用位,頁大小指示符,以及轉(zhuǎn)換表錯(cuò)誤。7.如權(quán)利要求1-6中任一項(xiàng)所述的方法,其特征在于,所述返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)包括在專用寄存器中存儲(chǔ)所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性;以及至少部分地利用微代碼訪問所述專用寄存器。8.如權(quán)利要求1-6中任一項(xiàng)所述的方法,其特征在于,所述返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)包括經(jīng)由讀取返回總線返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性。9.如權(quán)利要求1-8中任一項(xiàng)所述的方法,其特征在于,所述接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址包括接收異步指令以將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成物理存儲(chǔ)器地址,所述異步指令包括用于定義所述異步指令的上下文的操作數(shù)。10.一種虛擬地址至物理地址轉(zhuǎn)換的設(shè)備,包括用于接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址的裝置;用于基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址的裝置,包括用于讀取轉(zhuǎn)換備用緩沖器(TLB)項(xiàng)以獲取所述物理存儲(chǔ)器地址和一個(gè)或多個(gè)頁屬性的裝置;以及用于返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)的裝置。11.如權(quán)利要求10所述的設(shè)備,其特征在于,所述用于基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址的裝置包括用于不基于頁表信息,確定與所述虛擬存儲(chǔ)器指針相對(duì)應(yīng)的頁是否在存儲(chǔ)器中的裝置。12.如權(quán)利要求10或11所述的設(shè)備,其特征在于,所述用于接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址的裝置包括用于從虛擬機(jī)管理器接收所述指令的裝置;以及其中所述用于返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)的裝置包括用于返回主機(jī)物理存儲(chǔ)器地址的裝置。13.如權(quán)利要求10或11所述的設(shè)備,其特征在于,所述用于接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址的裝置包括用于從虛擬機(jī)管理器接收所述指令的裝置;以及其中所述用于返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)的裝置包括用于返回客機(jī)物理存儲(chǔ)器地址的裝置。14.如權(quán)利要求10-13中任一項(xiàng)所述的設(shè)備,其特征在于,所述用于基于頁表信息將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成所述物理存儲(chǔ)器地址的裝置包括用于如果TLB不包括所述物理存儲(chǔ)器地址,讀取頁表項(xiàng)以獲取所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性的裝置。15.如權(quán)利要求10-14中任一項(xiàng)所述的設(shè)備,其特征在于,所述一個(gè)或多個(gè)屬性包括以下至少一個(gè)存在位,讀/寫位,用戶/管理員位,訪問位,臟位,全局標(biāo)志,執(zhí)行禁用位,頁大小指示符,以及轉(zhuǎn)換表錯(cuò)誤。16.如權(quán)利要求10-15中任一項(xiàng)所述的設(shè)備,其特征在于,所述用于接收指令以將虛擬存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址的裝置包括用于接收異步指令以將所述虛擬存儲(chǔ)器指針轉(zhuǎn)換成物理存儲(chǔ)器地址的裝置,所述異步指令包括用于定義所述異步指令的上下文的操作數(shù)。17.如權(quán)利要求10-15中任一項(xiàng)所述的設(shè)備,其特征在于,所述用于返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)的裝置包括用于在專用寄存器中存儲(chǔ)所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性的裝置;以及用于至少部分地利用微代碼訪問所述專用寄存器的裝置。18.如權(quán)利要求10-15中任一項(xiàng)所述的設(shè)備,其特征在于,所述用于返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性而無需訪問存儲(chǔ)在所述物理存儲(chǔ)器地址的數(shù)據(jù)的裝置包括用于經(jīng)由讀取返回總線返回所述物理存儲(chǔ)器地址和所述一個(gè)或多個(gè)頁屬性的裝置。全文摘要一種支持頁屬性的虛擬地址至物理地址的轉(zhuǎn)換。本發(fā)明的實(shí)施例一般涉及用于支持頁屬性的線性至物理地址轉(zhuǎn)換的系統(tǒng)、方法和裝置。在某些實(shí)施例中,系統(tǒng)接收一指令以將存儲(chǔ)器指針轉(zhuǎn)換成存儲(chǔ)器位置的物理存儲(chǔ)器地址。該系統(tǒng)可返回物理存儲(chǔ)器地址和一個(gè)或多個(gè)頁屬性。描述并要求保護(hù)包括其它實(shí)施例。文檔編號(hào)G06F12/10GK102789429SQ20121016765公開日2012年11月21日申請(qǐng)日期2008年5月30日優(yōu)先權(quán)日2007年6月1日發(fā)明者B-Z·弗萊德曼,E·維斯曼,J·B·克羅斯蘭德,J·D·多維科,O·法里克申請(qǐng)人:英特爾公司