亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于支持多處理器虛擬機(jī)環(huán)境中的地址翻譯的方法和裝置的制作方法

文檔序號(hào):6606113閱讀:198來源:國知局
專利名稱:用于支持多處理器虛擬機(jī)環(huán)境中的地址翻譯的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例總體上涉及虛擬機(jī),并且更具體地涉及支持在虛擬機(jī)環(huán)境中的地 址翻譯。
背景技術(shù)
傳統(tǒng)的虛擬機(jī)監(jiān)視器(VMM)通常運(yùn)行在計(jì)算機(jī)上并且向其它軟件呈現(xiàn)一個(gè)或 多個(gè)虛擬機(jī)的抽象。每個(gè)虛擬機(jī)可以用作一自包含平臺(tái),運(yùn)行它自己的“客戶機(jī)操作系 統(tǒng)”(S卩,由VMM支撐的操作系統(tǒng)(OS))和其它軟件,它們統(tǒng)稱為客戶機(jī)軟件??蛻魴C(jī)軟件 期望像在專用計(jì)算機(jī)上而不是在虛擬機(jī)上一樣操作。也就是說,客戶機(jī)軟件期望控制各種 事件并且訪問硬件資源,例如物理存儲(chǔ)器和存儲(chǔ)器映射輸入/輸出(I/O)設(shè)備。例如,客戶 機(jī)軟件期望保持對(duì)地址翻譯操作的控制,并且能夠分配物理存儲(chǔ)器,提供針對(duì)客戶機(jī)應(yīng)用 的防護(hù)以及在客戶機(jī)應(yīng)用之間的保護(hù),使用各種分頁技術(shù)等。但是,在虛擬機(jī)環(huán)境中,VMM應(yīng) 當(dāng)能夠?qū)τ?jì)算機(jī)的資源具有最終控制權(quán),以提供針對(duì)虛擬機(jī)的防護(hù)以及在虛擬機(jī)之間的保 護(hù)。


在附圖的圖示中,通過例子而非通過限制的方式來說明本發(fā)明,并且其中,相同的 附圖標(biāo)記是指類似的元素,其中圖1說明了虛擬機(jī)環(huán)境的一個(gè)實(shí)施例,本發(fā)明可以在其中操作;圖2說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、虛擬TLB的操作。圖3A和3B說明了根據(jù)本發(fā)明的兩個(gè)備選實(shí)施例的、用于創(chuàng)建和維護(hù)影子PT分級(jí) 結(jié)構(gòu)的元數(shù)據(jù)的過程;圖4是用于同步客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)和影子翻譯數(shù)據(jù)結(jié)構(gòu)的過程的一個(gè)實(shí)施例 的流程圖;圖5是用于維護(hù)影子翻譯數(shù)據(jù)結(jié)構(gòu)的元數(shù)據(jù)的過程的一個(gè)實(shí)施例的流程圖;圖6是用于方便地址空間的改變的過程的一個(gè)實(shí)施例的流程圖;圖7是用于針對(duì)指定地址同步兩個(gè)翻譯數(shù)據(jù)結(jié)構(gòu)的條目的過程的一個(gè)實(shí)施例的 流程圖;圖8是用于從由VMM維護(hù)的影子PT分級(jí)結(jié)構(gòu)的工作集合中移除影子PT分級(jí)結(jié)構(gòu) 的過程的一個(gè)實(shí)施例的流程圖;圖9是用于將條目添加到影子PT分級(jí)結(jié)構(gòu)的PD的過程的一個(gè)實(shí)施例的流程圖;圖10是用于從影子PT分級(jí)結(jié)構(gòu)的PD移除條目的過程的一個(gè)實(shí)施例的流程圖;圖11是用于將條目添加到影子PT分級(jí)結(jié)構(gòu)的PT的過程的一個(gè)實(shí)施例的流程圖;圖12是用于從影子PT分級(jí)結(jié)構(gòu)的PT移除條目的過程的一個(gè)實(shí)施例的流程圖;圖13是用于監(jiān)視影子PT分級(jí)結(jié)構(gòu)的PTE的過程的一個(gè)實(shí)施例的流程圖;圖14是用于從影子PT分級(jí)結(jié)構(gòu)的PTE移除監(jiān)視的過程的一個(gè)實(shí)施例的流程圖15是用于在多處理器系統(tǒng)中維護(hù)影子PT分級(jí)結(jié)構(gòu)的過程的一個(gè)實(shí)施例的流程 圖;圖16是用于在多處理器系統(tǒng)中將處理器的工作集合與處理器的當(dāng)前客戶機(jī)狀態(tài) 進(jìn)行同步的過程的一個(gè)實(shí)施例的流程圖。
具體實(shí)施例方式描述了用于在多處理器虛擬機(jī)環(huán)境中支持地址翻譯的方法和裝置。在以下描述 中,為了解釋的目的,闡述了許多具體細(xì)節(jié)以提供對(duì)本發(fā)明的透徹理解。但是,對(duì)本領(lǐng)域技 術(shù)技術(shù)人員顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下,實(shí)現(xiàn)本發(fā)明。以下的詳細(xì)描述的一些部分被呈現(xiàn)為對(duì)計(jì)算機(jī)系統(tǒng)的寄存器或存儲(chǔ)器內(nèi)的數(shù)據(jù) 比特的操作的算法和符號(hào)表示。這些算法描述和表示是由數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用于最 有效地將他們的工作的實(shí)質(zhì)傳達(dá)給本領(lǐng)域的其它技術(shù)人員的手段。這里的算法一般被認(rèn)為 是導(dǎo)致期望的結(jié)果的自身一致的操作順序。所述操作是那些需要對(duì)物理量進(jìn)行物理操縱的 操作。通常,雖然不是必須的,這些物理量采用電子或磁信號(hào)的形式,其能夠被存儲(chǔ)、轉(zhuǎn)移、 組合、比較并且以別的方式被操作。已經(jīng)證明,將這些信號(hào)稱為比特、值、元素、符號(hào)、字符、 項(xiàng)、數(shù)字等有時(shí)是方便的,這主要是因?yàn)樗鼈兪浅R姷挠梅?。但是,?yīng)當(dāng)記住,所有這些以及類似的術(shù)語應(yīng)與合適的物理量相關(guān)聯(lián),并且僅僅是 應(yīng)用到這些量的方便的標(biāo)記。除非明確地聲明,否則根據(jù)以下討論顯而易見的是,應(yīng)該意識(shí) 到,貫穿本發(fā)明的使用例如“處理”或“計(jì)算”或“運(yùn)算”或“確定”等術(shù)語的討論可以指計(jì)算 機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備的動(dòng)作和處理過程,其對(duì)表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ) 器內(nèi)的物理(電子)量的數(shù)據(jù)進(jìn)行操縱,并將所述數(shù)據(jù)轉(zhuǎn)換成類似地表示為計(jì)算機(jī)系統(tǒng)存 儲(chǔ)器或寄存器或其它這種信息存儲(chǔ)、傳輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。在實(shí)施例的以下詳細(xì)的描述中,參照了附圖,其通過舉例說明的方式顯示了其中 可以實(shí)現(xiàn)本發(fā)明的具體實(shí)施例。在附圖中,貫穿多個(gè)視圖,相同的數(shù)字描述了基本上類似的 部件。足夠詳細(xì)地描述了這些實(shí)施例,以使得本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)本發(fā)明??梢允褂?其它實(shí)施例,并且可以在不脫離本發(fā)明的范圍的情況下進(jìn)行各種結(jié)構(gòu)、邏輯和電子的改變。 此外,應(yīng)當(dāng)理解,本發(fā)明的各個(gè)實(shí)施例雖然不同,但是并不必然互斥。例如,在一個(gè)實(shí)施例中 描述的特定特征、結(jié)構(gòu)或特性可能被包括在其它實(shí)施例內(nèi)。所以,以下詳細(xì)的描述不應(yīng)當(dāng)被 理解為限制性的,并且僅由所附權(quán)利要求以及這些權(quán)利要求涵蓋的等價(jià)物的全部范圍來定 義本發(fā)明的范圍。雖然以下示例可以在執(zhí)行單元和邏輯電路的上下文中,描述為虛擬機(jī)環(huán)境中的地 址翻譯提供支持,但是可以通過軟件的方式來實(shí)現(xiàn)本發(fā)明的其它實(shí)施例。例如,在一些實(shí)施 例中,本發(fā)明可以被提供為計(jì)算機(jī)程序產(chǎn)品或軟件,其可以包括機(jī)器或計(jì)算機(jī)可讀介質(zhì),該 介質(zhì)上存儲(chǔ)有指令,所述指令可被用于對(duì)計(jì)算機(jī)(或其它電子設(shè)備)進(jìn)行編程以執(zhí)行根據(jù) 本發(fā)明的過程。在其它實(shí)施例中,可以由包含用于執(zhí)行所述過程的硬連線邏輯的特定硬件 部件,或者由編程的計(jì)算機(jī)部件與定制的硬件部件的任何組合來執(zhí)行本發(fā)明的處理過程。因此,機(jī)器可讀介質(zhì)可以包括用于存儲(chǔ)或發(fā)送具有可由機(jī)器(例如,計(jì)算機(jī))讀取 的形式的信息的任何裝置,但是并不限于軟盤、光盤、壓縮盤、只讀存儲(chǔ)器(CD-ROM)和磁光 盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、磁卡或光卡、閃速存儲(chǔ)器、通過互聯(lián)網(wǎng)、電的、光的、聲的或 其它形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等)的傳輸?shù)?。此外,設(shè)計(jì)可以經(jīng)歷各種階段,從創(chuàng)建到模擬到制造。表示設(shè)計(jì)的數(shù)據(jù)可以用多種 方式來表示設(shè)計(jì)。首先,正如在模擬中所使用的,可以使用硬件描述語言或其它的功能描述 語言來表示硬件。此外,在設(shè)計(jì)過程的一些階段,可以產(chǎn)生具有邏輯和/或晶體管門的電路 級(jí)模型。此外,在一些階段,大多數(shù)設(shè)計(jì)達(dá)到在硬件模型中表示各種設(shè)備的物理布局的數(shù)據(jù) 級(jí)別。在使用了傳統(tǒng)的半導(dǎo)體制造技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是指明在用于 產(chǎn)生集成電路的掩膜的不同掩膜層上存在還是缺少各種特征的數(shù)據(jù)。在設(shè)計(jì)的任何表示 中,數(shù)據(jù)可以被存儲(chǔ)在任何形式的機(jī)器可讀介質(zhì)中。調(diào)制的或者以其它方式生成的用于發(fā) 送這種信息的光波或電波、存儲(chǔ)器或諸如盤片這樣的磁或光存儲(chǔ)可以是機(jī)器可讀介質(zhì)。這 些介質(zhì)中的任何介質(zhì)可以“攜帶”或“指示”設(shè)計(jì)或軟件信息。當(dāng)指示或攜帶代碼或設(shè)計(jì)的 電載波被發(fā)送時(shí),就執(zhí)行電信號(hào)的復(fù)制、緩沖或重傳來說,產(chǎn)生新的版本。因此,通信提供商 或網(wǎng)絡(luò)提供商可以復(fù)制體現(xiàn)了本發(fā)明的技術(shù)的制品(載波)。圖1說明了其中本發(fā)明可以工作的虛擬機(jī)環(huán)境100的一個(gè)實(shí)施例。在該實(shí)施例中, 裸平臺(tái)硬件116包括計(jì)算平臺(tái),其可能能夠例如執(zhí)行標(biāo)準(zhǔn)的操作系統(tǒng)(OS)或虛擬機(jī)監(jiān)視器 (VMM),例如 VMM 112。通常用軟件實(shí)現(xiàn)的VMM 112可以模擬裸機(jī)器接口并且將其導(dǎo)出到更高層的軟件。 這種更高層的軟件可以包括標(biāo)準(zhǔn)的或?qū)崟r(shí)的0S,可以是具有有限的操作系統(tǒng)功能的高度精 簡的操作系統(tǒng),可以不包括傳統(tǒng)的OS功能等?;蛘呃?,VMM 112可以運(yùn)行在另一個(gè)VMM內(nèi) 或運(yùn)行在另一個(gè)VMM上。例如可以用硬件、軟件、固件或各種技術(shù)的組合來實(shí)現(xiàn)VMM。平臺(tái)硬件116可以是個(gè)人計(jì)算機(jī)(PC)、大型機(jī)、手持設(shè)備、便攜式計(jì)算機(jī)、機(jī)頂盒 或任何其它計(jì)算系統(tǒng)。平臺(tái)硬件116包括處理器118、處理器119和存儲(chǔ)器120。處理器118和119可以是能夠執(zhí)行軟件的任何類型的處理器,例如微處理器、數(shù)字 信號(hào)處理器、微控制器等。處理器118和119可以是相同類型的或兩種不同類型的獨(dú)立的 處理器,或者每一個(gè)可以是多核處理器的獨(dú)立的執(zhí)行核心。處理器118和119可以包括用 于執(zhí)行本發(fā)明的方法實(shí)施例的微代碼、可編程邏輯或硬編碼邏輯。雖然圖1僅示出了兩個(gè) 這種處理器118和119,但是在系統(tǒng)中可以存在多于兩個(gè)的處理器。存儲(chǔ)器120可以是硬盤、軟盤、隨機(jī)存取存儲(chǔ)器(RAM)(例如,動(dòng)態(tài)RAM (DRAM)或靜 態(tài)RAM(SRAM))、只讀存儲(chǔ)器(ROM)、閃速存儲(chǔ)器、上述設(shè)備的任何組合、或可由處理器118和 119讀取的任何其它類型的機(jī)器介質(zhì)。存儲(chǔ)器120可以存儲(chǔ)指令和/或數(shù)據(jù),以執(zhí)行本發(fā)明 的方法實(shí)施例。VMM 112向其它軟件(即,“客戶機(jī)”軟件)提供一個(gè)或多個(gè)虛擬機(jī)(VM)的抽象, 其可以向各個(gè)客戶機(jī)提供相同的或不同的抽象。圖1示出了兩個(gè)VM,S卩102和114。在每 個(gè)VM上運(yùn)行的客戶機(jī)軟件可以包括客戶機(jī)0S(例如,客戶機(jī)OS 104或106)和各種客戶機(jī) 軟件應(yīng)用108和110。客戶機(jī)OS 104和106中的每一個(gè)希望訪問在其上運(yùn)行了所述客戶機(jī) OS 104或106的VM 102和114內(nèi)的物理資源(例如,處理器寄存器、存儲(chǔ)器和I/O設(shè)備) 并且希望執(zhí)行其它功能。例如,客戶機(jī)OS 104或106希望根據(jù)在VM 102和114中呈現(xiàn)的 處理器和平臺(tái)的架構(gòu)來訪問所有寄存器、高速緩存、結(jié)構(gòu)、I/O設(shè)備、存儲(chǔ)器等。可以由客戶 機(jī)軟件訪問的資源可以被分類為“特權(quán)級(jí)”或“非特權(quán)級(jí)”。對(duì)于特權(quán)級(jí)資源,VMM 112幫助提供客戶機(jī)軟件所期望的功能,同時(shí)保留對(duì)這些特權(quán)級(jí)資源的最終控制。非特權(quán)級(jí)資源不 需要由VMM 112控制,并且可以由客戶機(jī)軟件直接訪問。此外,每個(gè)客戶機(jī)OS希望處理各種故障事件,例如異常(例如,頁故障、一般保護(hù) 錯(cuò)誤等)、中斷(例如,硬件中斷、軟件中斷),以及平臺(tái)事件(例如,初始化(INIT)和系統(tǒng) 管理中斷(SMI))。這些故障事件中的一些是“特權(quán)級(jí)的”,因?yàn)樗麄儽仨氂蒝MM 112處理以 確保VM 102和114的正確操作,并且用于針對(duì)客戶機(jī)軟件的防護(hù)以及在客戶機(jī)軟件之間的 保護(hù)。當(dāng)特權(quán)級(jí)故障事件發(fā)生時(shí)或者當(dāng)客戶機(jī)軟件嘗試訪問特權(quán)級(jí)資源時(shí),控制可以被 轉(zhuǎn)移給VMM 112??刂茝目蛻魴C(jī)軟件到VMM 112的轉(zhuǎn)移在本文中被稱為VM退出。在幫助進(jìn) 行了資源訪問或適當(dāng)?shù)靥幚砹耸录?,VMM 112可以將控制返回給客戶機(jī)軟件??刂茝?VMM 112到客戶機(jī)軟件的轉(zhuǎn)移被稱為VM進(jìn)入。在一個(gè)實(shí)施例中,處理器118和/或119根據(jù)在虛擬機(jī)控制結(jié)構(gòu)(VMCS) 125中存儲(chǔ) 的數(shù)據(jù)來控制VM 102和114的操作。VMCS 125是一個(gè)結(jié)構(gòu),該結(jié)構(gòu)可以包含客戶機(jī)軟件的 狀態(tài)、VMM 112的狀態(tài)、指示VMM 112希望如何控制客戶機(jī)軟件的操作的執(zhí)行控制信息、控 制在VMM 112和VM之間的轉(zhuǎn)變的信息等。處理器118和/或119從VMCS 125讀取信息, 以確定VM的執(zhí)行環(huán)境并且約束其行為。在一個(gè)實(shí)施例中,VMCS存儲(chǔ)在存儲(chǔ)器120中。在 一些實(shí)施例中,多個(gè)VMCS結(jié)構(gòu)被用于支持多個(gè)VM。在地址翻譯操作期間,VM 102或114希望分配物理存儲(chǔ)器,提供針對(duì)客戶機(jī)軟件 應(yīng)用(例如,應(yīng)用108或110)的防護(hù)以及在客戶機(jī)軟件應(yīng)用之間的保護(hù),使用各種分頁技 術(shù)等。在非虛擬機(jī)環(huán)境中,OS所期望的地址翻譯機(jī)制可以基于由處理器控制的翻譯后援緩 沖器(TLB)和翻譯數(shù)據(jù)結(jié)構(gòu),例如頁表(PT)分級(jí)結(jié)構(gòu),其由OS控制并且用于當(dāng)允許分頁 時(shí),將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址。處理器118和119分別包括TLB 122和123, 以存儲(chǔ)虛擬到物理存儲(chǔ)器地址翻譯。Intel Pentium 4處理器的架構(gòu)支持多種分頁模式。最常使用的分頁模式使 用兩級(jí)分級(jí)分頁結(jié)構(gòu)(本文中稱為兩級(jí)分級(jí)結(jié)構(gòu)分頁模式)來支持32比特線性地址空間。 本發(fā)明的實(shí)施例并不限于該分頁模式,而是可以被本領(lǐng)域的技術(shù)人員使用以虛擬化其它分 頁模式(例如,物理地址擴(kuò)展(PAE)模式,Intel 擴(kuò)展存儲(chǔ)器64技術(shù)(EM64T)模式等)和 實(shí)現(xiàn)(例如,散列的頁表)。在一個(gè)基于TLB的實(shí)施例中,將虛擬存儲(chǔ)器地址翻譯為物理存 儲(chǔ)器地址開始于使用虛擬地址的高位20比特(針對(duì)4KB頁幀(page frame))或高位10比 特(針對(duì)4MB的頁幀)來搜索TLB。如果發(fā)現(xiàn)了匹配(TLB命中),那么將包含在TLB中的 物理頁幀的高位比特與虛擬地址的低位比特相結(jié)合以形成物理地址。TLB還包含與映射相 關(guān)聯(lián)的訪問和許可屬性。如果沒有發(fā)現(xiàn)匹配(TLB未命中),那么處理器查詢PT分級(jí)結(jié)構(gòu)以 確定虛擬到物理翻譯,然后其被緩存在TLB中。PT分級(jí)結(jié)構(gòu)中的條目可以包括一些屬性,它 們由處理器針對(duì)某些訪問自動(dòng)地設(shè)置。如果PT分級(jí)結(jié)構(gòu)被修改,如果在TLB中存在對(duì)應(yīng)的地址翻譯的話,則TLB可能變 得與PT分級(jí)結(jié)構(gòu)不一致。OS會(huì)希望能夠通過向處理器發(fā)出指令來消除這種不一致。例如, 在Intel Pentium 4的指令集架構(gòu)(ISA)(本文中稱為IA-32ISA)中,處理器允許軟件 通過發(fā)出INVLPG指令來使得在TLB中緩存的翻譯無效。此外,OS會(huì)希望請求處理器完全地 改變地址空間,其應(yīng)導(dǎo)致從TLB中移除所有翻譯。例如,在IA-32 ISA中,OS可以使用MOV指令或任務(wù)切換以請求處理器加載CR3 (其包含PT分級(jí)結(jié)構(gòu)的基地址),由此從TLB中移 除所有翻譯。根據(jù)模式和實(shí)現(xiàn),不同層級(jí)的頁表分級(jí)結(jié)構(gòu)可以具有不同的名稱。在兩級(jí)分 級(jí)結(jié)構(gòu)分頁模式中,存在兩級(jí)分頁結(jié)構(gòu)。CR3寄存器指向頁目錄頁的基地址。在頁目錄中 的條目或者可以指明到大尺寸頁(例如,4MB的超頁(superpage)、2MB的超頁、IGB的超頁 等)的映射,或者可以指明到頁表的索引。頁表繼而可以包含到小尺寸頁的映射。如上所述,在虛擬機(jī)環(huán)境中,VMM 112應(yīng)當(dāng)能夠具有對(duì)包括TLB的物理資源的最終 控制權(quán)。本發(fā)明的實(shí)施例通過使用模擬處理器的物理TLB的功能的虛擬TLB,解決了在VM 102和114的希望和VMM 112的角色之間的沖突。虛擬TLB包括物理TLB和由VMM 112控制的一組影子(shadow) PT分級(jí)結(jié)構(gòu)。這組 影子PT分級(jí)結(jié)構(gòu)根據(jù)當(dāng)前可能由VM 102或114使用的或可能不由VM 102或114使用的客 戶機(jī)PT分級(jí)結(jié)構(gòu)導(dǎo)出其格式和內(nèi)容。如果VM 102或114修改了客戶機(jī)PT分級(jí)結(jié)構(gòu)的內(nèi) 容,則該內(nèi)容變得與影子PT分級(jí)結(jié)構(gòu)的內(nèi)容不一致。使用與由處理器在管理其物理TLB中 所使用的技術(shù)類似的技術(shù)來消除在客戶機(jī)PT分級(jí)結(jié)構(gòu)和影子PT分級(jí)結(jié)構(gòu)之間的不一致。 這些技術(shù)中的一些迫使VM 102或114發(fā)出指示嘗試操縱TLB的事件(例如,INVLPG、頁故 障、和加載CR3)。這些事件是特權(quán)級(jí)的,所以導(dǎo)致VM退出到VMM 112。然后,VMM評(píng)估事件 并且如果需要的話,將所有維護(hù)的影子PT分級(jí)結(jié)構(gòu)與當(dāng)前的客戶機(jī)狀態(tài)相同步。我們將所 維護(hù)的影子PT分級(jí)結(jié)構(gòu)的集合稱為工作集合。因?yàn)槎鄠€(gè)進(jìn)程可以使用同一客戶機(jī)頁表,所 以同一影子PT可能是多個(gè)客戶機(jī)PT分級(jí)結(jié)構(gòu)的一部分。對(duì)應(yīng)的影子PT繼而是多個(gè)影子 PT分級(jí)結(jié)構(gòu)的成員。注意,由VMM執(zhí)行的同步可以更新當(dāng)前不在使用中的影子PT分級(jí)結(jié)構(gòu)的影子頁表 或頁目錄條目。同樣,可能需要對(duì)不是使用中的客戶機(jī)PT分級(jí)結(jié)構(gòu)的一部分的客戶機(jī)頁進(jìn) 行同步。在一個(gè)實(shí)施例中,VMM 112包括地址翻譯模塊126,其負(fù)責(zé)在虛擬TLB(VTLB)數(shù)據(jù) 存儲(chǔ)124中為VM 102和114中的每一個(gè)創(chuàng)建并維護(hù)影子PT分級(jí)結(jié)構(gòu)的工作集合。為VM 102或114的對(duì)應(yīng)的活動(dòng)進(jìn)程(即,在不久的將來可能由VM 102或114啟動(dòng)的進(jìn)程)維護(hù) 影子PT分級(jí)結(jié)構(gòu)的工作集合。利用IA32ISA,唯一明確地定義的客戶機(jī)分級(jí)結(jié)構(gòu)是通過當(dāng) 前使用的分頁結(jié)構(gòu)來定義的分級(jí)結(jié)構(gòu)。在實(shí)踐中,對(duì)于客戶機(jī)進(jìn)程和他們的地址空間來說 存在大量的時(shí)間局部性。VMM可以使用啟發(fā)式方法或明確的信息來確定活動(dòng)進(jìn)程的集合。當(dāng)VM 102或114啟用針對(duì)VM 102或114的活動(dòng)進(jìn)程中的一個(gè)進(jìn)程的客戶機(jī)PT 分級(jí)結(jié)構(gòu)時(shí),地址翻譯模塊126識(shí)別工作集合中的對(duì)應(yīng)的影子PT分級(jí)結(jié)構(gòu),并且請求處理 器加載其基地址。當(dāng)可用時(shí),地址翻譯模塊126可以之后重新使用存儲(chǔ)在影子PT分級(jí)結(jié)構(gòu) 中的先前計(jì)算的映射。如果VM 102或114激活了新進(jìn)程,則地址翻譯模塊126從對(duì)應(yīng)的客戶機(jī)PT分級(jí)結(jié) 構(gòu)中導(dǎo)出新的影子PT分級(jí)結(jié)構(gòu),并且將其添加到工作集合。或者,如果VM 102或114停止 現(xiàn)存的進(jìn)程,則地址翻譯模塊126從工作集合中移除與客戶機(jī)PT分級(jí)結(jié)構(gòu)相對(duì)應(yīng)的信息。在一個(gè)實(shí)施例中,地址翻譯模塊126負(fù)責(zé)從每個(gè)新的影子PT分級(jí)結(jié)構(gòu)中提取元數(shù) 據(jù),將所述元數(shù)據(jù)存儲(chǔ)在VTLB數(shù)據(jù)存儲(chǔ)124中,并且當(dāng)修改了影子PT分級(jí)結(jié)構(gòu)時(shí),更新所 述元數(shù)據(jù)。在一個(gè)實(shí)施例中,元數(shù)據(jù)包括PT矢量(PTV)、PD矢量(PDV)、活動(dòng)PTE列表和活 動(dòng)PDE列表。
PTV和PDV跟蹤用作PT和PD的客戶機(jī)幀。在一個(gè)實(shí)施例中,該信息被編碼在比 特矢量中??梢酝ㄟ^頁幀號(hào)(PFN)來索引PTV,其中,每個(gè)條目比特在對(duì)應(yīng)的PFN是PT的 情況下被設(shè)置。可以通過頁幀號(hào)(PFN)來索引PDV,其中,每個(gè)條目比特在對(duì)應(yīng)的PFN是PD 的情況下被設(shè)置?;顒?dòng)PTE列表是影子PT分級(jí)結(jié)構(gòu)中的、指向保存了 PT和PD的幀的PT條目(PTE) 的列表?;顒?dòng)PDE列表識(shí)別在影子PT分級(jí)結(jié)構(gòu)中的、指向包含了在活動(dòng)PTE列表中識(shí)別的 PT條目的PT的PD條目(PDE)。在一個(gè)實(shí)施例中,活動(dòng)PDE和PTE列表包含描述了映射是否是針對(duì)PD或PT幀的 另外的元數(shù)據(jù)。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明的實(shí)施例可以使用各種數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié) 構(gòu)與本文描述的結(jié)構(gòu)相比,可以具有或多或少的空間或時(shí)間效率。本領(lǐng)域的技術(shù)人員將意 識(shí)到用于支持另外的分頁模式的跟蹤結(jié)構(gòu)的擴(kuò)展。例如,EM64T分頁模式將64比特虛擬地 址通過四級(jí)分級(jí)的分頁結(jié)構(gòu)映射到物理地址。在虛擬或物理地址空間中支持的實(shí)際的比 特?cái)?shù)量可能依賴于實(shí)現(xiàn),并且在特定實(shí)現(xiàn)中可以少于64比特。正如下文更詳細(xì)所討論的, EM64T實(shí)現(xiàn)可能需要添加頁映射級(jí)別4(PML4)頁矢量和頁目錄指針(PDP)頁矢量,以跟蹤 在EM64T分頁結(jié)構(gòu)中使用的另外的頁表。同樣地,本領(lǐng)域的技術(shù)人員將意識(shí)到,活動(dòng)PTE列 表將被擴(kuò)展,以包括映射在分頁結(jié)構(gòu)內(nèi)使用的任何頁的條目(例如,用于EM64T的PML4或 PDP 頁)。在一個(gè)實(shí)施例中,維護(hù)活動(dòng)PTE/PDE列表元數(shù)據(jù),以跟蹤通過頁表映射的PD和PT 幀的數(shù)量。當(dāng)每頁的映射的數(shù)量從O添加時(shí),映射PT的PDE必須被添加到活動(dòng)PDE列表, 并且當(dāng)映射的數(shù)量減少到0時(shí),必須從活動(dòng)PDE列表中移除映射該P(yáng)T的PDE。在一個(gè)實(shí)施例中,地址翻譯模塊126負(fù)責(zé)在需要同步時(shí),將當(dāng)前影子PT分級(jí)結(jié)構(gòu) 與當(dāng)前客戶機(jī)PT分級(jí)結(jié)構(gòu)進(jìn)行同步。地址翻譯模塊126通過確定客戶機(jī)PT分級(jí)結(jié)構(gòu)中的 哪些條目最近已被修改并且隨后相應(yīng)地更新影子PT分級(jí)結(jié)構(gòu)中的對(duì)應(yīng)的條目,來執(zhí)行同 步。地址翻譯模塊126基于從影子PT分級(jí)結(jié)構(gòu)中提取的元數(shù)據(jù)和與影子PT分級(jí)結(jié)構(gòu)的條 目相關(guān)聯(lián)的屬性,來確定客戶機(jī)PT分級(jí)結(jié)構(gòu)中的哪些條目最近已被修改。在一個(gè)實(shí)施例 中,屬性包括與影子PT分級(jí)結(jié)構(gòu)中的PD條目相關(guān)聯(lián)的訪問屬性,以及與影子PT分級(jí)結(jié)構(gòu) 中的PT條目相關(guān)聯(lián)的更新屬性。圖2說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、虛擬TLB 204的操作。虛擬TLB 204包括 由影子PT分級(jí)結(jié)構(gòu)206和物理TLB 208表示的影子翻譯數(shù)據(jù)結(jié)構(gòu)。影子PT分級(jí)結(jié)構(gòu)206 從由客戶機(jī)PT分級(jí)結(jié)構(gòu)202表示的客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中導(dǎo)出其結(jié)構(gòu)和內(nèi)容。在一個(gè)實(shí) 施例中,VMM為VM的活動(dòng)進(jìn)程維護(hù)影子PT分級(jí)結(jié)構(gòu)的工作集合。在一個(gè)實(shí)施例中,當(dāng)VM請求處理器啟用不同的客戶機(jī)PT分級(jí)結(jié)構(gòu)時(shí)(例如,通過 發(fā)出IA-32ISA中的“MOV to CR3”或者任務(wù)切換),控制轉(zhuǎn)到VMM,其指示處理器加載與所 請求的客戶機(jī)PT分級(jí)結(jié)構(gòu)202相對(duì)應(yīng)的影子PT分級(jí)結(jié)構(gòu)206的基地址214。在一些實(shí)施 例中,使用相關(guān)的元數(shù)據(jù)和屬性來將該影子PT分級(jí)結(jié)構(gòu)206與客戶機(jī)PT分級(jí)結(jié)構(gòu)202同 步,下文將更詳細(xì)地描述。在一個(gè)實(shí)施例中,虛擬TLB維護(hù)影子PD和PT的條目中的訪問和更新屬性。這些 屬性還被稱為訪問(A)比特和臟(D)比特。在一個(gè)實(shí)施例中,當(dāng)由客戶機(jī)軟件第一次訪問一頁幀時(shí),處理器在影子PT分級(jí)結(jié)構(gòu)206中的對(duì)應(yīng)的PT條目或PD條目中設(shè)置訪問(A)屬 性。如果客戶機(jī)軟件試圖寫一頁幀,則處理器在對(duì)應(yīng)的影子PT條目中設(shè)置臟(D)屬性。允許客戶機(jī)軟件自由地修改客戶機(jī)PT分級(jí)結(jié)構(gòu)202,包括改變虛擬到物理映射、 許可等。因此,影子PT分級(jí)結(jié)構(gòu)206可能不總是與客戶機(jī)PT分級(jí)結(jié)構(gòu)202 —致。當(dāng)由 于在分級(jí)202和206之間的不一致而產(chǎn)生問題時(shí),將虛擬TLB 204視為物理TLB的客戶 機(jī)OS嘗試通過請求處理器執(zhí)行由相關(guān)的ISA定義的操作,來改變虛擬TLB 204。例如,在 IA-32ISA中,這種操作包括INVLPG指令、CR3加載、分頁激活(CRO. PG的修改)、全局分頁 的修改(CR4. PGE比特的切換)等。嘗試修改虛擬TLB 204的操作被VMM配置為特權(quán)級(jí)的 (例如,使用在VMCS中存儲(chǔ)的對(duì)應(yīng)的執(zhí)行控制),所以導(dǎo)致VM退出到VMM。然后,VMM確定 VM退出的原因,并且如果需要的話修改影子PT分級(jí)結(jié)構(gòu)206的內(nèi)容。例如,如果VM退出 是由于應(yīng)當(dāng)由客戶機(jī)OS處理的頁故障而發(fā)生的(例如,由不被客戶機(jī)PT分級(jí)結(jié)構(gòu)202允 許的訪問所引起的頁故障),則頁故障被注入客戶機(jī)OS以進(jìn)行處理?;蛘?,如果VM退出是 因?yàn)榉旨?jí)結(jié)構(gòu)202和206的條目之間的不一致性所引起的頁故障(或任何其它操作,例如 INVLPG)而發(fā)生的,則VMM可能需要移除陳舊的條目,添加新的條目,或修改現(xiàn)有的條目,下 文將更詳細(xì)地討論。由客戶機(jī)PT分級(jí)結(jié)構(gòu)引起的頁故障在本文被稱為“真實(shí)的”頁故障, 而在直接使用客戶機(jī)頁表的情況下不會(huì)發(fā)生的頁故障在本文被稱為“誘發(fā)的”頁故障。圖3A說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、在兩級(jí)分級(jí)結(jié)構(gòu)頁模式中創(chuàng)建并維護(hù) 影子PT分級(jí)結(jié)構(gòu)的元數(shù)據(jù)的過程。參照圖3A,說明了由不同字母(字母A到W)識(shí)別的多個(gè)物理頁幀。一些客戶機(jī)頁 幀可以包含PD (例如,幀A)。其它客戶機(jī)頁幀可以包含PT (例如,幀A、B、C和L)。分級(jí)結(jié) 構(gòu)302是客戶機(jī)PT分級(jí)結(jié)構(gòu)。圖3A示出了基于客戶機(jī)PT分級(jí)結(jié)構(gòu)302創(chuàng)建的影子PT分級(jí)結(jié)構(gòu)304。在客戶機(jī) PT分級(jí)結(jié)構(gòu)302中的每個(gè)PD或PT包括影子PT分級(jí)結(jié)構(gòu)304中對(duì)應(yīng)的PD或PT。注意,一 般而言,不是對(duì)于客戶機(jī)PT中的每個(gè)頁都需要影子頁。一些實(shí)施例可以根據(jù)使用統(tǒng)計(jì)(例 如,僅為已被使用的客戶機(jī)PT頁生成影子頁)或者根據(jù)資源約束(例如,基于可用的存儲(chǔ) 器,僅維護(hù)一組影子頁)來選擇限制影子頁。針對(duì)從同一物理幀導(dǎo)出的PD和PT表維護(hù)不 同的影子表。例如,針對(duì)從同一物理幀314導(dǎo)出的PD 306和PT 308維護(hù)不同的表330和 332。在影子PT分級(jí)結(jié)構(gòu)304中的PD和PT條目包含針對(duì)客戶機(jī)幀314到324的變換的映 射。在客戶機(jī)PT分級(jí)結(jié)構(gòu)302中,幀316和318被用作PT 310和312,并且?guī)?14被 用作PD 306和PT 308。在影子PT分級(jí)結(jié)構(gòu)304下顯示的頁幀314至316中,該使用被說 明為 “PT” 和 “PD/PT”。影子PT分級(jí)結(jié)構(gòu)304與活動(dòng)PTE列表342和活動(dòng)PDE列表344相關(guān)聯(lián)。在一個(gè) 實(shí)施例中,活動(dòng)PTE列表342識(shí)別在影子PT分級(jí)結(jié)構(gòu)304中的、映射來自客戶機(jī)PT分級(jí)結(jié) 構(gòu)302的PT和PD頁幀的PT條目。特別地,活動(dòng)PTE列表342識(shí)別PT 332中的映射頁幀 314至318的條目。在一個(gè)實(shí)施例中,活動(dòng)PDE列表344識(shí)別影子PT分級(jí)結(jié)構(gòu)中的、指向具 有在活動(dòng)PTE列表342中識(shí)別的條目的PT的PD條目。特別地,活動(dòng)PDE列表344包括PD 330中的指向PT 332的條目?;顒?dòng)PTE列表342和活動(dòng)PDE列表344是影子PT分級(jí)結(jié)構(gòu) 304的元數(shù)據(jù)的組成部分。
影子PT分級(jí)結(jié)構(gòu)304與PT比特矢量(PTV) 362和PD比特矢量(PDV) 364相關(guān)聯(lián)。 在一個(gè)實(shí)施例中,PTV 362跟蹤被用作PT的客戶機(jī)頁幀。特別地,PTV 362包括在客戶機(jī)PT 分級(jí)結(jié)構(gòu)302中用作PT的頁幀314至318。在一個(gè)實(shí)施例中,PDV 364跟蹤被用作PD的客 戶機(jī)頁幀。特別地,PDV 364包括在客戶機(jī)PT分級(jí)結(jié)構(gòu)302中被用作PD的頁幀314。在一 個(gè)實(shí)施例中,PTV 362和PDV 364表示工作集合中的所有影子PT分級(jí)結(jié)構(gòu),并且跟蹤在工 作集合中影子頁被用于的功能(例如,如果沒有為客戶機(jī)PT分配影子頁,那么PTV將不反 映客戶機(jī)PT頁,即使它出現(xiàn)在客戶機(jī)分頁結(jié)構(gòu)中)。在一個(gè)實(shí)施例中,如果客戶機(jī)OS將新的PT添加到客戶機(jī)PT分級(jí)結(jié)構(gòu)302,則VMM 可以檢測到該添加(例如,在與TLB操縱有關(guān)的下一個(gè)或后續(xù)的VM退出時(shí)),并且將對(duì)應(yīng)的 PT添加到影子PT分級(jí)結(jié)構(gòu)304。例如,如果從幀319導(dǎo)出的新的PT 352被添加到客戶機(jī) PT分級(jí)結(jié)構(gòu)302,其具有針對(duì)新的幀354的映射,那么VMM可以將具有變換后的映射的對(duì)應(yīng) 的PT 360添加到影子PT分級(jí)結(jié)構(gòu)304,并且更新元數(shù)據(jù)以反映該變化。特別地,VMM將PT 332中的映射幀319的條目添加到活動(dòng)PTE列表342,并且將PD 330中的指向PT 360的條 目添加到活動(dòng)PDE列表344。此外,VMM將幀319添加到PTV 362,其跟蹤用作PT的客戶機(jī) 幀(即,這里的幀319)。圖3B說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、在EM64T分頁模式中創(chuàng)建并維護(hù)影子PT 分級(jí)結(jié)構(gòu)的元數(shù)據(jù)的過程。參照圖3B,分頁結(jié)構(gòu)的基礎(chǔ)是PML4頁(例如,幀A)。在PML4頁中的每一個(gè)條目 可以索引PDP頁(例如,幀B和C)。在PDP頁中的每一個(gè)條目可以索引頁目錄(PD)頁(例 如,幀D或E),頁目錄(PD)頁中每一個(gè)條目繼而可以索引頁表(PT)頁中的頁(例如,幀F(xiàn)、 G、H 或 I)。每個(gè)PML4、PDP、PD或PT頁可以是4KB的尺寸。為了支持大于32比特的物理地址 空間,可以相對(duì)于32比特分頁模式添加條目尺寸。具體地說,每個(gè)頁可以有512個(gè)條目,需 要在每一級(jí)使用9比特的虛擬地址以選擇合適的條目。如前所述,該選擇器尺寸可以導(dǎo)致 2MB而不是4MB的大的頁尺寸。在一個(gè)實(shí)施例中,在EM64T分頁模式中的元數(shù)據(jù)的創(chuàng)建包括生成多個(gè)矢量、活動(dòng) 條目列表,以及多個(gè)活動(dòng)目錄列表。矢量包括識(shí)別用作PML4頁的幀的PML4V矢量、識(shí)別用 作PDP頁的幀的PDPV矢量、識(shí)別用作PD頁的幀的PDV矢量,以及識(shí)別用作PT頁的幀的PTV 矢量。活動(dòng)條目列表是包括映射PML4、PDP、PD或PT頁的所有映射的活動(dòng)PTE列表。活動(dòng) 目錄列表包括識(shí)別索引較低級(jí)的結(jié)構(gòu)的更高級(jí)的映射結(jié)構(gòu)的列表,通過所述較低級(jí)的結(jié)構(gòu) 可以訪問與影子結(jié)構(gòu)相對(duì)應(yīng)的客戶機(jī)頁。特別地,活動(dòng)目錄列表由活動(dòng)PDE列表、活動(dòng)PDPE 列表,以及活動(dòng)PML4E列表組成,其中,所述活動(dòng)PDE列表包括索引包含活動(dòng)PTE列表?xiàng)l目 的頁的那些PDE,所述活動(dòng)PDPE列表包括索引包含活動(dòng)PDE列表?xiàng)l目的PD的活動(dòng)PDPE條 目,所述活動(dòng)PML4E列表包括映射包含活動(dòng)PDPE列表中的元素的PDP的條目。在一個(gè)實(shí)施例中,影子頁表的同步開始于檢查與使用的影子PT分級(jí)結(jié)構(gòu)相關(guān)聯(lián) 的活動(dòng)PML4E列表中的每一個(gè)條目。如果條目已被訪問,則檢查與所訪問的PML4條目相對(duì) 應(yīng)的活動(dòng)PDPE列表中的每一個(gè)元素,然后如上所述繼續(xù)處理。在替代實(shí)施例中,沒有針對(duì)分級(jí)結(jié)構(gòu)的一個(gè)或多個(gè)較高的級(jí)別來維護(hù)和/或處理 活動(dòng)列表。例如,在最上層的分頁結(jié)構(gòu)中僅建立單個(gè)條目的系統(tǒng)中,針對(duì)分級(jí)結(jié)構(gòu)中的每個(gè)級(jí)使用活動(dòng)列表將導(dǎo)致該單個(gè)條目總是被訪問,從而使得沒有減少對(duì)于分級(jí)結(jié)構(gòu)中的較低 層級(jí)所需的處理的數(shù)量。為了調(diào)和該使用模型,可以替代地通過處理在分級(jí)結(jié)構(gòu)中的較低 層級(jí)的活動(dòng)列表來開始同步。例如,在一個(gè)實(shí)施例中,活動(dòng)PDPE列表元素可以首先被處理, 隨后處理與所使用的影子PT分級(jí)結(jié)構(gòu)相關(guān)聯(lián)的活動(dòng)PDE列表元素或活動(dòng)PTE列表元素。在 一個(gè)實(shí)施例中,可以預(yù)先確定在同步時(shí)處理的初始的層。在另一個(gè)實(shí)施例中,可以通過對(duì)客 戶機(jī)的頁表使用進(jìn)行動(dòng)態(tài)建模(dynamic profiling)來確定要被處理的初始層。各種其它分頁模式可以被用在本發(fā)明的實(shí)施例中。例如,IA-32支持一種另外的 分頁模式,其中32比特虛擬地址被映射到更大的物理地址。在這種另外的操作模式中,頁 表基址寄存器被配置為指向包含4個(gè)元素的PDP頁。在該另外的操作模式中的條目尺寸和 行為類似于以上針對(duì)64比特虛擬地址模式所描述的。由于該另外的模式不使用PML4頁, 所以不需要PML4V和活動(dòng)PML4E列表。圖4是用于同步客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)和影子翻譯數(shù)據(jù)結(jié)構(gòu)的過程400的一個(gè)實(shí)施 例的流程圖??梢杂商幚磉壿媮韴?zhí)行該過程,所述處理邏輯可以包括硬件(例如,專用邏 輯、可編程邏輯、微代碼等)、軟件(例如,運(yùn)行在通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上的軟件)、或 它們的組合。在一個(gè)實(shí)施例中,由圖1的地址翻譯模塊126來執(zhí)行該過程。參照圖4,過程400開始于處理邏輯接收由于與TLB的操縱有關(guān)的事件而引起的 從VM轉(zhuǎn)移的控制(處理框402)。這種事件的例子可以包括改變當(dāng)前地址空間的請求(例 如,CR3加載)、為TLB中的特定的虛擬地址調(diào)整不一致的翻譯的請求(例如,INVLPG)、頁故 障等。在處理框404,處理邏輯確定與TLB的操縱有關(guān)的事件是否應(yīng)當(dāng)由VM處理。如果 是的話(例如,事件是由客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的問題映射所引起的頁故障),則控制返回 到VM以處理所述事件(處理框406)。如果不是的話,則處理邏輯確定事件是否與特定的問 題地址相關(guān)聯(lián)(處理框408)。如果事件不需要由VM處理,則它可能與特定的問題地址相關(guān)聯(lián)。這種事件的例子 可以包括由將問題地址作為操作數(shù)的INVLPG指令所引起的事件、由誘發(fā)的頁故障所引起 的事件(例如,關(guān)于特定映射的兩個(gè)翻譯數(shù)據(jù)結(jié)構(gòu)之間的不一致所引起的頁故障,需要虛 擬化客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的A/D比特所引起的頁故障等)等。如果事件與特定的問題地 址相關(guān)聯(lián),則處理邏輯針對(duì)該特定地址在影子翻譯數(shù)據(jù)結(jié)構(gòu)中進(jìn)行校正(例如,移除針對(duì) 該特定地址的陳舊的映射,或添加針對(duì)該特定地址的新映射),以符合客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu) (處理框410)。下文結(jié)合圖7將更詳細(xì)地討論針對(duì)特定地址同步兩個(gè)翻譯數(shù)據(jù)結(jié)構(gòu)的條目 的過程的一個(gè)實(shí)施例。如果事件沒有與任何特定地址相關(guān)聯(lián)(例如,事件是由VM改變地址空間的請求引 起的,其清洗IA32中的所有TLB條目),則處理邏輯確定客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的哪些條 目已被修改(處理框412)。使用從影子翻譯數(shù)據(jù)結(jié)構(gòu)中提取的元數(shù)據(jù)和與影子翻譯數(shù)據(jù) 結(jié)構(gòu)中的條目相關(guān)聯(lián)的屬性來進(jìn)行確定(處理框412)。元數(shù)據(jù)包括針對(duì)影子翻譯數(shù)據(jù)結(jié) 構(gòu)的各個(gè)層級(jí)的矢量和活動(dòng)列表。針對(duì)影子翻譯數(shù)據(jù)結(jié)構(gòu)的特定層級(jí)的矢量識(shí)別在客戶機(jī) 翻譯數(shù)據(jù)結(jié)構(gòu)的該層級(jí)中被用作頁的幀?;顒?dòng)列表包括活動(dòng)條目列表和一個(gè)或多個(gè)活動(dòng)目 錄列表?;顒?dòng)條目列表包括映射在形成客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)時(shí)由客戶機(jī)使用的頁的映射。 活動(dòng)目錄列表識(shí)別索引較低級(jí)的結(jié)構(gòu)的更高級(jí)的映射結(jié)構(gòu),通過所述較低級(jí)的結(jié)構(gòu)可以訪問與影子分頁結(jié)構(gòu)相對(duì)應(yīng)的客戶機(jī)頁。如上所述,在兩級(jí)分級(jí)結(jié)構(gòu)分頁模式中,在一個(gè)實(shí)施 例中,元數(shù)據(jù)包括矢量PTV和PDV、活動(dòng)條目列表(PTE列表)和活動(dòng)目錄列表(PDE列表)。 在EM64T分頁模式中,元數(shù)據(jù)在一個(gè)實(shí)施例中包括矢量PTV、PDV、PDPV和PML4V、活動(dòng)條目 列表(PTE列表)和活動(dòng)目錄列表(活動(dòng)PDE列表、活動(dòng)PDPE列表和活動(dòng)PML4E列表)。下文將結(jié)合圖6更詳細(xì)地討論使用元數(shù)據(jù)來識(shí)別客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)的最近修 改的條目的過程的一個(gè)實(shí)施例。在處理框414,處理邏輯將影子翻譯數(shù)據(jù)結(jié)構(gòu)中的對(duì)應(yīng)的條目與客戶機(jī)翻譯數(shù)據(jù) 結(jié)構(gòu)中的修改過的條目進(jìn)行同步。因此,處理邏輯僅需同步被修改的條目,而無需重新產(chǎn)生 影子翻譯數(shù)據(jù)結(jié)構(gòu)的全部內(nèi)容。在一個(gè)實(shí)施例中,額外的存儲(chǔ)被用于維護(hù)一些上一次被同步過的客戶機(jī)PD和/或 PT內(nèi)容。這允許VMM在不計(jì)算或查找額外的再定位或許可信息的情況下確定在哪進(jìn)行了修 改。注意,對(duì)客戶機(jī)頁表的某些修改不需要對(duì)影子頁表進(jìn)行修改。例如,如果客戶機(jī)PT 包含隨后被修改的沒有存在的映射,那么不需要修改對(duì)應(yīng)的影子PT。圖5-14說明了根據(jù)本發(fā)明的不同實(shí)施例的、用于使用兩級(jí)分級(jí)結(jié)構(gòu)分頁模式支 持虛擬機(jī)環(huán)境中的地址翻譯的各種過程。可以由處理邏輯來執(zhí)行這些過程,所述處理邏輯 可以包括硬件(例如,專用邏輯、可編程邏輯、微代碼等)、軟件(例如,在通用計(jì)算機(jī)系統(tǒng)或 專用機(jī)器上運(yùn)行的軟件)或它們的組合。在一個(gè)實(shí)施例中,由圖1的地址翻譯模塊126來 執(zhí)行這些過程中的每一個(gè)。圖5是用于維護(hù)諸如影子PT分級(jí)結(jié)構(gòu)這樣的影子翻譯數(shù)據(jù)結(jié)構(gòu)的元數(shù)據(jù)的過程 500的一個(gè)實(shí)施例的流程圖。參照圖5,過程500開始于處理邏輯為來自客戶機(jī)PT分級(jí)結(jié)構(gòu)的每個(gè)PD或PT頁 創(chuàng)建影子頁(處理框502)。在處理框504,處理邏輯跟蹤在客戶機(jī)PT分級(jí)結(jié)構(gòu)中用作PD或PT的頁幀。在一 個(gè)實(shí)施例中,如果對(duì)應(yīng)的PFN是在客戶機(jī)PT分級(jí)結(jié)構(gòu)中的PD,則處理邏輯在PDV中設(shè)置條 目。類似地,如果對(duì)應(yīng)的PFN是客戶機(jī)PT分級(jí)結(jié)構(gòu)中的PT,則處理邏輯在PTV中設(shè)置條目。在處理框506,處理邏輯跟蹤到任何動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM)后備頁的映射 (以識(shí)別可以潛在地是PD或PT的頁)。在一個(gè)實(shí)施例中,處理邏輯使用反向頁表(IPT)和 反向頁目錄(IPD)來跟蹤到基于DRAM的頁的映射。由數(shù)據(jù)頁幀的PFN來索引IPT,其中,每 個(gè)條目包含映射數(shù)據(jù)頁幀的PTE的地址的列表。由頁表的PFN來索引IPD,其中,每個(gè)條目 包含將PFN索引為頁表的PDE的地址的列表。在一個(gè)實(shí)施例中,在處理框508,處理邏輯識(shí)別在客戶機(jī)PT分級(jí)結(jié)構(gòu)中的4MB的 頁,并且為每個(gè)4MB的頁在影子PT分級(jí)結(jié)構(gòu)中創(chuàng)建頁表,以避免大的頁映射,并且由此減少 未來的同步時(shí)間。否則,4MB的頁的更新將引起在4MB內(nèi)的每個(gè)PD和PT頁的同步。在一個(gè) 實(shí)施例中,反向擴(kuò)展表(IET)用于跟蹤在客戶機(jī)PT分級(jí)結(jié)構(gòu)中的哪個(gè)PDE指向4MB的頁。 由PFN和屬性比特來索引IET,其中,每個(gè)條目列出了指向分解的4MB的頁的PDE。在本發(fā)明的實(shí)施例中,可以由影子PFN的地址來索引IPD,以最小化所需的地址翻 譯步驟。在IA32中,存儲(chǔ)器類型信息(例如,高速緩存能力信息)可以被存儲(chǔ)在映射頁的PDE/PTE內(nèi)的PAT比特中。該類型信息不在作為頁表指針的PDE中獲取。因此,如果兩個(gè) 4MB頁用不同的PAT屬性來映射同一區(qū)域,則將需要不同的頁表來傳送正確的PAT屬性。對(duì) 于每組屬性使用不同的擴(kuò)展表解決了該問題。在處理框510,處理邏輯識(shí)別影子PT分級(jí)結(jié)構(gòu)中的、映射在客戶機(jī)PT分級(jí)結(jié)構(gòu)中 用作PD或PT的頁的PTE,并且創(chuàng)建活動(dòng)PTE列表。在處理框512,處理邏輯識(shí)別在影子PT分級(jí)結(jié)構(gòu)中的、指向具有在活動(dòng)PTE列表中 識(shí)別的PTE的PT的PDE,并且創(chuàng)建活動(dòng)PDE列表。隨后,在處理框514,如果客戶機(jī)OS修改了客戶機(jī)PT分級(jí)結(jié)構(gòu)的結(jié)構(gòu)(例如,添加 或移除了 PD或PT),則處理邏輯相應(yīng)地改變上述活動(dòng)PTE和PDE列表。圖6是用于幫助改變地址空間的過程600的一個(gè)實(shí)施例的流程圖。注意,在IA32 中,相同的CR3值還可以被重新加載,以使得對(duì)陳舊的TLB映射進(jìn)行沖洗。對(duì)于CR3的改變 或CR3的重新加載采用類似的處理步驟。參照圖6,過程600開始于處理邏輯確定由于VM的啟用不同客戶機(jī)PT分級(jí)結(jié)構(gòu)的 請求而引起VM退出的發(fā)生(例如,通過發(fā)出CR3加載請求)(處理框602)。在響應(yīng)中,處理邏輯掃描在元數(shù)據(jù)的活動(dòng)PDE列表中識(shí)別的、與當(dāng)前使用中的影 子PT分級(jí)結(jié)構(gòu)相對(duì)應(yīng)的所有活動(dòng)PDE,以發(fā)現(xiàn)這些PDE中的哪些已被訪問(訪問屬性被設(shè) 置為訪問值)(處理框604),然后初始化被訪問的PDE的訪問屬性(處理框606)。在IA32 中,非葉子頁表不支持臟比特。如果訪問比特是干凈的,則沒有讀取或?qū)懭朐?MB區(qū)域內(nèi)的 頁,所以不會(huì)已經(jīng)修改了任何客戶機(jī)頁表或頁目錄。但是,訪問比特不區(qū)分讀取和寫入,所 以已被訪問的4MB區(qū)域應(yīng)當(dāng)被進(jìn)一步處理,盡管可能沒做任何修改。在支持用于非葉子頁 表的臟比特的架構(gòu)中,替代地檢查臟比特,并且僅需要進(jìn)一步處理已被寫過的區(qū)域。接下來,針對(duì)每個(gè)訪問過的PDE,處理邏輯掃描元數(shù)據(jù)的活動(dòng)PTE列表中的、對(duì)應(yīng) 于訪問過的活動(dòng)PDE的所有影子PTE,以發(fā)現(xiàn)這些PTE中的哪些包括用于更新的頁的映射 (更新屬性被設(shè)置為更新值)(處理框608)。此外,對(duì)于每個(gè)更新過的頁,處理邏輯將客戶機(jī)PT分級(jí)結(jié)構(gòu)中的PD/PT條目與在 影子PT分級(jí)結(jié)構(gòu)中的對(duì)應(yīng)條目相比較(處理框610),并且改變影子PT分級(jí)結(jié)構(gòu)的對(duì)應(yīng)的 條目,以符合客戶機(jī)PT分級(jí)結(jié)構(gòu)的修改的條目(例如,通過從影子PT分級(jí)結(jié)構(gòu)中移除在客 戶機(jī)PT分級(jí)結(jié)構(gòu)中不存在的PTE/PDE,通過向影子PT分級(jí)結(jié)構(gòu)添加最近添加到客戶機(jī)PT 分級(jí)結(jié)構(gòu)的新的PTE/PDE等)(處理框612)。注意,添加PDE可能需要分配并初始化另外的 影子PT。這繼而會(huì)需要對(duì)由地址翻譯模塊126所維護(hù)的各種元數(shù)據(jù)結(jié)構(gòu)進(jìn)行更新。在處理框614,處理邏輯初始化被設(shè)置為更新值的更新屬性。更新過的映射識(shí)別由 客戶機(jī)OS修改的頁。在處理框616,處理邏輯基于修改后的客戶機(jī)頁來同步影子映射,并且如果由于上 述修改而需要的話,更新元數(shù)據(jù)。在處理邏輯618,處理邏輯確定由VMM維護(hù)的工作集合是否包括與由VM請求的新 客戶機(jī)PD對(duì)應(yīng)的影子PD。如果是的話,處理邏輯請求處理器加載該影子PT分級(jí)結(jié)構(gòu)的基 地址(處理框620)。如果不是的話,處理邏輯分配與所請求的客戶機(jī)PT分級(jí)結(jié)構(gòu)相對(duì)應(yīng) 的新的影子PT分級(jí)結(jié)構(gòu)(處理框622),將新的影子PT分級(jí)結(jié)構(gòu)的PD添加到PDV(處理框 624),將每個(gè)有效的PDE添加到新的影子PT分級(jí)結(jié)構(gòu)的PD (處理框626),配置活動(dòng)PDE和PTE列表以監(jiān)視映射該P(yáng)D用于PD覆蓋的PTE (處理框628),然后請求處理器加載該影子PT 分級(jí)結(jié)構(gòu)的基地址(處理框620)。下文將結(jié)合圖13更詳細(xì)地討論用于監(jiān)視PTE的過程的 一個(gè)實(shí)施例。圖7是用于針對(duì)特定地址來同步兩個(gè)翻譯數(shù)據(jù)結(jié)構(gòu)的條目的過程700的一個(gè)實(shí)施 例的流程圖。例如,可以作為由VM發(fā)出的INVLPG指令的結(jié)果或者作為誘發(fā)的頁故障的結(jié) 果,來執(zhí)行過程700。參照圖7,過程700開始于處理邏輯確定影子PT分級(jí)結(jié)構(gòu)中的針對(duì)特定地址的映 射是否是陳舊的(即,存在不對(duì)應(yīng)于客戶機(jī)頁表的當(dāng)前內(nèi)容的有效映射)(處理框702)。如 果不是的話,則處理邏輯進(jìn)行到處理框712。如果是的話,處理邏輯確定該陳舊的條目是否 映射PD或PT頁(處理框704)。如果該陳舊的條目不映射PD或PT頁,則處理邏輯移除該 陳舊的條目(處理框710)并且進(jìn)行到處理框712。如果陳舊的條目映射到PD或PT頁,則處理邏輯進(jìn)一步確定所映射的頁是否已被 更新(處理框706)。如果不是的話,則處理邏輯進(jìn)行到處理框710。如果是的話,則處理邏 輯更新、同步或移除修改的PD或PT影子(處理框708)并且進(jìn)行到處理框710。在一個(gè)實(shí) 施例中,頁被標(biāo)記以用于將來同步。在處理框712,處理邏輯確定客戶機(jī)PT分級(jí)結(jié)構(gòu)是否包含針對(duì)特定地址的新的映 射。如果不是的話,則過程700結(jié)束。如果是的話,則處理邏輯添加新的映射作為對(duì)應(yīng)的PTE 或PDE,并且如果需要的話,則創(chuàng)建影子頁并且根據(jù)所述添加更新元數(shù)據(jù)(處理框714)。圖8是用于從VMM所維護(hù)的影子PT分級(jí)結(jié)構(gòu)的工作集合中移除影子PT分級(jí)結(jié)構(gòu) 的過程800的一個(gè)實(shí)施例的流程圖??梢栽跈z測到由VM停止對(duì)應(yīng)的進(jìn)程時(shí),從工作集合中移除影子PT分級(jí)結(jié)構(gòu)。可 以基于由客戶機(jī)VM對(duì)于當(dāng)前地址空間的行為所提供的線索,使用為相關(guān)OS定義的啟發(fā)式 方法或使用一組檢查來檢測所述停止。如果VM支持OS或驅(qū)動(dòng)器通過其向VMM通知停止的 接口,則可以避免啟發(fā)式方法。也可能由于資源約束而移除一影子PT分級(jí)結(jié)構(gòu),例如,因?yàn)?用于影子結(jié)構(gòu)的存儲(chǔ)器的數(shù)量超過了目標(biāo)閾值。參照圖8,處理邏輯開始于從影子PT分級(jí)結(jié)構(gòu)中的PD移除每個(gè)有效PDE(處理框 802)。在處理框804,處理邏輯清除在PDV中的對(duì)應(yīng)的條目。在處理框806,處理邏輯解除PD頁的分配,并且從PD翻譯表(PDTT)移除翻譯。 PDTT用于跟蹤頁的地址和類型(例如,PD或PT)。由客戶機(jī)PFN索引PDTT,其中,每個(gè)條目 包含物理PFN和元數(shù)據(jù)。在處理框808,處理邏輯從映射PD的PTE移除監(jiān)視。下文將結(jié)合圖14更詳細(xì)地討 論用于從PTE移除監(jiān)視的過程的一個(gè)實(shí)施例。圖9是用于將條目添加到影子PT分級(jí)結(jié)構(gòu)的PD的過程900的一個(gè)實(shí)施例的流程 圖。為了說明,我們將考慮映射頁表的存在的條目。參照圖9,處理邏輯開始于向IPD添加用于PDE的條目(處理框902)。在處理框904,處理邏輯確定由該P(yáng)DE映射的PT是否被設(shè)置在PTV中。如果是的 話,則在PTTT中查找合適的影子PT (處理框916),創(chuàng)建新的影子PDE (處理框914)并且過 程900結(jié)束。如果不是的話,則處理邏輯在PTV中設(shè)置對(duì)應(yīng)的矢量(處理框906),分配影子頁并且初始化翻譯(處理框908),增加新的影子頁表(處理框910),更新活動(dòng)PTE/PDE列 表和元數(shù)據(jù)以反映由當(dāng)前客戶機(jī)PDE用作頁表的客戶機(jī)頁將要被監(jiān)視(處理框912),并且 添加新PDE,如果影子頁表包含任何活動(dòng)PTE列表元素的話,將其添加到活動(dòng)PDE列表(處 理框914)。下文將結(jié)合圖13更詳細(xì)地討論用于監(jiān)視PTE的過程的一個(gè)實(shí)施例。圖10是用于從影子PT分級(jí)結(jié)構(gòu)的PD移除條目的過程1000的一個(gè)實(shí)施例的流程 圖。參照圖10,處理邏輯開始于從IPD PDE列表移除該P(yáng)DE的條目(處理框1002)。如 果PDE在活動(dòng)PDE列表中,則活動(dòng)PDE列表必須被更新。在處理框1004,處理邏輯確定PDE是否是映射對(duì)應(yīng)的PT的最后一個(gè)條目。如果 不是的話,則過程1000結(jié)束。如果是的話,則處理邏輯清除在PTV中的該P(yáng)T的條目(處理 框1006),移除每個(gè)有效PTE (處理框1008),更新映射該P(yáng)T用于PT覆蓋的活動(dòng)PTE/PDE列 表(處理框1010),并且移除影子頁翻譯,并且釋放用于存儲(chǔ)PT影子頁的存儲(chǔ)器(處理框 1010)。圖11是用于將條目添加到影子PT分級(jí)結(jié)構(gòu)的PT的過程1100的一個(gè)實(shí)施例的流程圖。參照圖11,處理邏輯開始于將針對(duì)該P(yáng)TE的條目添加到IPT (處理框1102)。在處理框1106,處理邏輯創(chuàng)建影子映射并且進(jìn)行到處理框1108。在處理框1108,處理邏輯確定在PDV或PTV中的對(duì)應(yīng)的條目是否被設(shè)置。如果不 是的話,則過程1100結(jié)束。如果是的話,則處理邏輯將該條目添加到活動(dòng)PTE列表并且更 新指示其是否映射PD和/或PT頁的相關(guān)聯(lián)的元數(shù)據(jù)(處理框1110)。如果剛創(chuàng)建的活動(dòng) PTE條目是該頁表的第一個(gè)條目,則必須查詢IPD并且映射該頁表頁的每個(gè)PDE被添加到活 動(dòng)PDE列表。圖12是用于從影子PT分級(jí)結(jié)構(gòu)的PT移除條目的過程1200的一個(gè)實(shí)施例的流程圖。參照圖12,處理邏輯開始于確定該P(yáng)TE是否映射在PDV或PTV中設(shè)置的頁(處理 框1202)。如果不是的話,則處理邏輯進(jìn)行到處理框1206。如果是的話,處理邏輯從活動(dòng) PTE列表移除PTE。如果這是在PT中的最后的活動(dòng)PTE列表元素,則索引該P(yáng)T的PDE被從 活動(dòng)PDE列表移除(處理框1204),并且進(jìn)行到處理框1206。在處理框1206,處理邏輯從IPT移除對(duì)應(yīng)的條目。圖13是用于監(jiān)視影子PT分級(jí)結(jié)構(gòu)的PTE的過程1300的一個(gè)實(shí)施例的流程圖。在 圖13中顯示的步驟表示當(dāng)監(jiān)視器發(fā)現(xiàn)已被映射為數(shù)據(jù)頁的頁正被用作頁目錄或頁表頁時(shí) 可能需要的處理。所以,該過程將由針對(duì)由PTE映射的頁的狀態(tài)改變來觸發(fā)。參照圖13,處理邏輯開始于確定所述PTE是否在活動(dòng)PTE列表中被識(shí)別(處理框 1302)。如果是的話,則處理邏輯添加先前遺漏的覆蓋(處理框1304)。通過被映射的頁的 狀態(tài)改變來觸發(fā)該流程。因?yàn)樵揚(yáng)TE已經(jīng)在活動(dòng)PTE列表中,所以必然是以下情況該P(yáng)TE 先前被用作PT或PD,并且現(xiàn)在也在另一個(gè)功能中使用。這種信息可以明確地與條目一起存 儲(chǔ)或者存儲(chǔ)在相關(guān)的元數(shù)據(jù)中。如果PTE不在活動(dòng)PTE列表中,則處理邏輯將PTE添加到 活動(dòng)PTE列表并且相應(yīng)地更新元數(shù)據(jù)(處理框1306)。接下來,在處理框1308,處理邏輯確定PTE是否是該P(yáng)T的第一個(gè)活動(dòng)PTE列表?xiàng)l目。如果不是的話,則過程1300結(jié)束。如果是的話,則處理邏輯向活動(dòng)PDE列表添加映射 該P(yáng)T的條目(通過IPD所發(fā)現(xiàn)的)(處理框1310)。圖14是用于減少由影子PT分級(jí)結(jié)構(gòu)的PTE提供的監(jiān)視覆蓋的過程1400的一個(gè) 實(shí)施例的流程圖。當(dāng)從工作集合移除進(jìn)程時(shí),或者當(dāng)用于索引頁表的最后一個(gè)PDE被移除 時(shí),導(dǎo)致先前監(jiān)視的頁目錄或頁表頁的狀態(tài)的改變,這時(shí)可以調(diào)用該過程。參考圖14,處理邏輯開始于確定該P(yáng)TE是否監(jiān)視既是頁表也是頁目錄頁的頁(處 理框1402)。如果是的話,則處理邏輯減少覆蓋水平,指示PTE現(xiàn)在監(jiān)視一或者作為PT或者 作為PD,但是不同時(shí)作為以上兩者的頁(處理框1404)。如果不是的話,則處理邏輯從活動(dòng) PTE列表中移除PTE (處理框1406)。注意,如果PTE是針對(duì)一被跟蹤其在單個(gè)功能中的使 用的頁的元素,則現(xiàn)在的情況必然是所述頁不再需要監(jiān)視。接下來,如果在PT中的最后一個(gè)活動(dòng)PTE列表元素被移除(處理框1408),則處理 邏輯從活動(dòng)PDE列表移除映射該頁表的對(duì)應(yīng)的條目(通過IPD發(fā)現(xiàn)的)(處理框1410)。如上所述,裸平臺(tái)硬件116包括多個(gè)處理器,包括處理器118和119。圖15是用于 在多處理器系統(tǒng)中維護(hù)影子PT分級(jí)結(jié)構(gòu)的過程1500的一個(gè)實(shí)施例的流程圖。替代中斷系 統(tǒng)中的所有處理器,可以使用過程1500的實(shí)施例,以在多個(gè)處理器中的一個(gè)處理器上將影 子PT分級(jí)結(jié)構(gòu)與客戶機(jī)PT分級(jí)結(jié)構(gòu)進(jìn)行同步。在處理框1510,創(chuàng)建用于一個(gè)處理器(例如,處理器118)的影子PT分級(jí)結(jié)構(gòu)的 工作集合。針對(duì)處理器118的影子PT分級(jí)結(jié)構(gòu)使用TLB 122來存儲(chǔ)虛擬到物理地址翻譯。 在處理框1512,創(chuàng)建用于另一個(gè)處理器(例如,處理器119)的影子PT分級(jí)結(jié)構(gòu)的工作集 合。針對(duì)處理器119的影子PT分級(jí)結(jié)構(gòu)使用TLB 123來存儲(chǔ)虛擬到物理地址翻譯。針對(duì) 處理器118的工作集合可以不同于針對(duì)處理器119的工作集合,這是因?yàn)椴煌腣M可以運(yùn) 行在不同的處理器上,或者由于任何其它原因。但是,任何頁幀、PT和PF可以被包括在針 對(duì)多于一個(gè)處理器的工作集合中。所以,本發(fā)明的這個(gè)實(shí)施例使得在不中斷另一個(gè)處理器 的情況下,將影子PT分級(jí)結(jié)構(gòu)與針對(duì)在一個(gè)處理器上運(yùn)行的VM的客戶機(jī)PT分級(jí)結(jié)構(gòu)進(jìn)行 同步。在本發(fā)明的范圍內(nèi),還可以創(chuàng)建用于任意數(shù)量的額外處理器的工作集合。在該實(shí)施例中,在影子PT分級(jí)結(jié)構(gòu)中維護(hù)的屬性可以包括針對(duì)每個(gè)PT和PD條目 的額外的字段或其它存儲(chǔ)單元(“擁有者字段”)。擁有者字段可以用于存儲(chǔ)值,以指示哪 個(gè)處理器是每個(gè)條目的擁有者。在處理框1514中,如上所述,例如通過如下操作來維護(hù)針對(duì)處理器118的工作集 合從每個(gè)新的影子PT分級(jí)結(jié)構(gòu)中提取元數(shù)據(jù),將所述元數(shù)據(jù)存儲(chǔ)在VTLB數(shù)據(jù)存儲(chǔ)124 中,并且當(dāng)影子PT分級(jí)結(jié)構(gòu)被修改時(shí)更新元數(shù)據(jù)。元數(shù)據(jù)可以包括PT矢量(PTV)、PD矢量 (PDV)、活動(dòng)PTE列表、活動(dòng)PDE列表,以及所希望的任何其它信息。在處理框1516中,如上 所述,例如通過如下操作來維護(hù)針對(duì)處理器119的工作集合從每個(gè)新影子PT分級(jí)結(jié)構(gòu)提 取元數(shù)據(jù),將該元數(shù)據(jù)存儲(chǔ)在VTLB數(shù)據(jù)存儲(chǔ)124中,并且當(dāng)影子PT分級(jí)結(jié)構(gòu)被修改時(shí)更新 元數(shù)據(jù)。元數(shù)據(jù)可以包括PT矢量(PTV)、PD矢量(PDV)、活動(dòng)PTE列表、活動(dòng)PDE列表,以 及所希望的任何其它信息。雖然VTLB數(shù)據(jù)存儲(chǔ)124在圖1中顯示為單個(gè)塊,但是在本發(fā)明 的范圍內(nèi),用于任何數(shù)量的處理器的工作集合的元數(shù)據(jù)可以被存儲(chǔ)在任意數(shù)量的不同的數(shù) 據(jù)結(jié)構(gòu)和/或存儲(chǔ)器的區(qū)域中。例如,針對(duì)處理器118的工作集合的元數(shù)據(jù)和針對(duì)處理器 119的工作集合的元數(shù)據(jù)可以被存儲(chǔ)在兩個(gè)不同的數(shù)據(jù)結(jié)構(gòu)中。在本發(fā)明的范圍內(nèi),還可以維護(hù)針對(duì)任意數(shù)量的額外處理器的工作集合。在處理框1520,運(yùn)行在處理器118上的客戶機(jī)軟件試圖對(duì)其客戶機(jī)PT分級(jí)結(jié)構(gòu)中 的一條目進(jìn)行寫入,這引起頁故障。響應(yīng)于該頁故障,在處理框1522,在處理器118上發(fā)生 VM退出,以將處理器118的控制從客戶機(jī)軟件轉(zhuǎn)移到VMM 112。在處理框1524,運(yùn)行在處理器118上的VMM 112使得平臺(tái)硬件116中的處理器119 和任何其它處理器中斷。在處理框1526,運(yùn)行在處理器118上的VMM 112獲得存儲(chǔ)器鎖以 防止運(yùn)行在任何其它處理器上的軟件對(duì)VTLB數(shù)據(jù)存儲(chǔ)124進(jìn)行寫入。在處理框1530,VMM 112在針對(duì)處理器118的活動(dòng)列表中創(chuàng)建與來自處理框1520 的客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目相對(duì)應(yīng)的條目,并且在處理框1532設(shè)置擁有者字段以指示 處理器118是該條目的擁有者。在處理框1534,VMM 112在針對(duì)處理器119的活動(dòng)列表中 創(chuàng)建與來自處理框1520的客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目相對(duì)應(yīng)的條目,并且在處理框1536 設(shè)置擁有者字段以指示處理器118是該條目的擁有者。還可以創(chuàng)建在任意數(shù)量的額外的處 理器的活動(dòng)列表中的對(duì)應(yīng)的條目,每個(gè)條目的擁有者字段被設(shè)置以指示處理器118是條目 的擁有者。在處理框1538,VMM 112釋放在處理框1526中獲得的存儲(chǔ)器鎖。在處理框1540,VMM 112為與來自處理框1520的客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目相 對(duì)應(yīng)的處理器118的影子條目設(shè)置臟比特,以指示客戶機(jī)軟件已經(jīng)嘗試對(duì)其PT分級(jí)結(jié)構(gòu)中 的那個(gè)條目進(jìn)行寫入。在處理框1542,發(fā)生VM進(jìn)入,以將處理器118的控制從VMM 112轉(zhuǎn) 移給客戶機(jī)軟件。在處理框1544,客戶機(jī)軟件完成對(duì)其PT分級(jí)結(jié)構(gòu)中的條目的寫入。在處理框1550,發(fā)生一事件,該事件是將針對(duì)處理器119的工作集合與處理器119 上的當(dāng)前客戶機(jī)狀態(tài)進(jìn)行同步的觸發(fā)事件。在處理框1552,響應(yīng)于觸發(fā)事件,發(fā)生VM退出, 將處理器119的控制轉(zhuǎn)移給VMM 112。在處理框1554,例如根據(jù)在圖16中說明的實(shí)施例,發(fā)生針對(duì)處理器119的工作集 合與在處理器119上的當(dāng)前客戶機(jī)狀態(tài)的同步。注意,本發(fā)明的實(shí)施例提供了在不中斷處 理器118或任何其它處理器的情況下,發(fā)生該同步。在同步之后,在處理框1556,發(fā)生VM進(jìn) 入以將處理器119的控制從VMM 112轉(zhuǎn)移給客戶機(jī)軟件。在處理框1556中控制所轉(zhuǎn)移到 的客戶機(jī)軟件可以是任何客戶機(jī)軟件,不必是在處理框1520中運(yùn)行在處理器118上的客戶 機(jī)軟件。在處理框1560,在處理框1518中運(yùn)行在處理器118上的同一客戶機(jī)軟件,與在處 理框1518中一樣,對(duì)其客戶機(jī)PT分級(jí)結(jié)構(gòu)中的同一條目進(jìn)行寫入。注意,如果在處理框 1540之后出現(xiàn)處理框1560,那么作為處理框1560的結(jié)果,不發(fā)生頁故障,這是因?yàn)獒槍?duì)處 理器118的對(duì)應(yīng)影子條目的臟比特在處理框1540中被設(shè)置。在處理框1570中,發(fā)生一事件,該事件是將針對(duì)處理器119的工作集合與處理器 119上的當(dāng)前客戶機(jī)狀態(tài)進(jìn)行同步的觸發(fā)事件。在處理框1572,響應(yīng)于該觸發(fā)事件,發(fā)生VM 退出,將處理器119的控制轉(zhuǎn)移給VMM 112。在處理框1574,例如根據(jù)在圖16中說明的實(shí)施例,發(fā)生針對(duì)處理器119的工作集 合與在處理器119上的當(dāng)前客戶機(jī)狀態(tài)的同步。注意,本發(fā)明的實(shí)施例使得在不中斷處理 器118或任何其它處理器的情況下,發(fā)生該同步。在同步之后,在處理框1576,發(fā)生VM進(jìn)入 以將處理器119的控制從VMM 112轉(zhuǎn)移給客戶機(jī)軟件。在處理框1576中控制所轉(zhuǎn)移到的 客戶機(jī)軟件可以是任何客戶機(jī)軟件,不必是在處理框1528中運(yùn)行在處理器118上的客戶機(jī)軟件,或者在處理框1556中處理器119的控制所轉(zhuǎn)移到的客戶機(jī)軟件。注意,盡管在另一個(gè)處理器上對(duì)臟條目進(jìn)行寫入(例如,在處理器118上的處理框 1560)之前,可以在一處理器上發(fā)生同步(例如,在處理框1554中的處理器119的同步), 第一處理器的稍后的同步(例如,在處理框1574中的處理器119的同步)也不會(huì)遺漏對(duì)該 臟條目的寫入,這是因?yàn)槿绻渌幚砥鞯膶?duì)應(yīng)的影子條目是臟的,則第一同步不會(huì)移除 由另一個(gè)處理器擁有的影子條目。在處理框1580中,發(fā)生一事件,該事件是將針對(duì)處理器118的工作集合與處理器 118上的當(dāng)前客戶機(jī)狀態(tài)進(jìn)行同步的觸發(fā)事件。在處理框1582,響應(yīng)于該觸發(fā)事件,發(fā)生VM 退出,將處理器118的控制轉(zhuǎn)移給VMM 112。在處理框1584,例如根據(jù)在圖16中說明的實(shí)施例,發(fā)生針對(duì)處理器118的工作集 合與在處理器118上的當(dāng)前客戶機(jī)狀態(tài)的同步。注意,本發(fā)明的實(shí)施例使得在不中斷處理 器119或任何其它處理器的情況下,發(fā)生該同步。在同步之后,在處理框1586,發(fā)生VM進(jìn)入 以將處理器118的控制從VMM 112轉(zhuǎn)移給客戶機(jī)軟件。在處理框1586中控制所轉(zhuǎn)移到的 客戶機(jī)軟件可以是任何客戶機(jī)軟件,不必是在處理框1520中運(yùn)行在處理器118上的客戶機(jī) 軟件,或者在處理框1556或處理框1576中處理器119的控制所轉(zhuǎn)移到的客戶機(jī)軟件。注意,如果在同步處理器119 (例如,處理框1554)之后,發(fā)生在處理框1584中的 處理器118的同步期間的臟比特的清除,則處理器119在其活動(dòng)列表中保持所述條目,這 是因?yàn)樗鼘?duì)應(yīng)于由另一個(gè)處理器擁有的臟條目;但是如果在同步處理器119(例如,處理 框1574)之前,發(fā)生在處理框1584中的處理器118的同步期間的臟比特的清除,則處理器 119可以從其活動(dòng)列表中移除所述條目,這是因?yàn)橛闪硪粋€(gè)處理器擁有的對(duì)應(yīng)的條目不是 臟的。圖16是用于將處理器的工作集合與多處理器系統(tǒng)中的所述處理器的當(dāng)前客戶機(jī) 狀態(tài)進(jìn)行同步的過程1600的一個(gè)實(shí)施例的流程圖。在處理框1610,針對(duì)處理器(“第一”處理器)的工作集合與第一處理器上的當(dāng)前 客戶機(jī)狀態(tài)的同步開始。注意,本發(fā)明的實(shí)施例使得在不中斷平臺(tái)中的任何其它處理器的 情況下,發(fā)生該同步。在處理框1620,檢查所述第一處理器的影子PT分級(jí)結(jié)構(gòu)中的、對(duì)應(yīng)于來自處理框 1518的條目的條目。如果在該影子條目中的擁有者字段指示所述第一處理器是所述條目的 擁有者,則在處理框1630,可以從第一處理器的活動(dòng)列表中移除該影子條目,并且在處理框 1632,可以清除臟比特。但是,如果該影子條目中的擁有者字段指示另一個(gè)處理器是所述條 目的擁有者,則在處理框1640,檢查針對(duì)其它處理器的活動(dòng)列表,以確定對(duì)應(yīng)的臟條目是否 存在于針對(duì)該處理器的活動(dòng)列表中。在處理框1640,如果對(duì)應(yīng)的臟條目不存在于針對(duì)其它處理器的活動(dòng)列表中,則在 處理框1642,可以從針對(duì)所述第一處理器的活動(dòng)列表中移除所述影子條目。但是,在處理框 1640,如果對(duì)應(yīng)的臟條目存在于針對(duì)其它處理器的活動(dòng)列表中,則在處理框1644,將所述影 子條目保持在針對(duì)所述第一處理器的活動(dòng)列表中。在處理框1650,第一處理器的工作集合與第一處理器上的當(dāng)前客戶機(jī)狀態(tài)的同步 繼續(xù)到結(jié)束。在本發(fā)明的范圍內(nèi),可以按照不同的順序,在省略所說明的框的情況下,在添加額外的框的情況下,或者在使用重排序的、省略的或額外的框的組合的情況下,來執(zhí)行任何說 明的方法實(shí)施例。例如,處理器的工作集合與在第一處理器上的當(dāng)前客戶機(jī)狀態(tài)的同步可 以包括比在圖16中顯示的更多的內(nèi)容。 因此,已經(jīng)描述了用于在多處理器虛擬機(jī)環(huán)境中支持地址翻譯的方法和裝置。應(yīng) 當(dāng)理解,上述描述是說明性的而非限制性的。對(duì)于本領(lǐng)域的技術(shù)人員來說,在閱讀并理解上 述描述后,許多其它實(shí)施例將是顯而易見的。所以,本發(fā)明的范圍應(yīng)當(dāng)參照所附權(quán)利要求以 及這些權(quán)利要求所涵蓋的等價(jià)物的全部范圍來確定。
權(quán)利要求
一種方法,包括接收由于有關(guān)翻譯后援緩沖器的特權(quán)級(jí)事件而導(dǎo)致的從虛擬機(jī)轉(zhuǎn)移的第一處理器的控制,其中,所述第一處理器是多個(gè)處理器中的一個(gè);基于從由虛擬機(jī)監(jiān)視器維護(hù)的影子翻譯數(shù)據(jù)結(jié)構(gòu)提取的元數(shù)據(jù)以及與所述影子翻譯數(shù)據(jù)結(jié)構(gòu)中的條目相關(guān)聯(lián)的屬性,來確定客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的哪些條目被所述虛擬機(jī)修改過,所述元數(shù)據(jù)包括活動(dòng)條目列表,該活動(dòng)條目列表識(shí)別映射在形成所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)時(shí)由客戶機(jī)操作系統(tǒng)使用的頁的映射;將所述影子翻譯數(shù)據(jù)結(jié)構(gòu)中的與所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的所述修改過的條目對(duì)應(yīng)的條目,與所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的所述修改過的條目進(jìn)行同步;以及至少部分地基于與所述影子翻譯數(shù)據(jù)結(jié)構(gòu)中的對(duì)應(yīng)的條目相關(guān)聯(lián)的屬性,來確定將哪些條目保持在所述活動(dòng)條目列表中,其中,所述屬性識(shí)別所述多個(gè)處理器中的哪個(gè)處理器擁有所述活動(dòng)條目列表中的每一個(gè)條目。
2.根據(jù)權(quán)利要求1所述的方法,還包括如果與所述影子翻譯數(shù)據(jù)結(jié)構(gòu)中的對(duì)應(yīng)條目相關(guān)聯(lián)的屬性將所述多個(gè)處理器中的第 二處理器識(shí)別為所述活動(dòng)條目列表中的條目的擁有者,則在所述活動(dòng)條目列表中保持所述 條目。
3.根據(jù)權(quán)利要求1所述的方法,還包括如果與所述影子翻譯數(shù)據(jù)結(jié)構(gòu)中的對(duì)應(yīng)條目相關(guān)聯(lián)的屬性將所述第一處理器識(shí)別為 所述活動(dòng)條目列表中的條目的擁有者,則從所述活動(dòng)條目列表中移除所述條目。
4.根據(jù)權(quán)利要求1所述的方法,還包括確定所述多個(gè)處理器中的第二處理器是所述第一處理器的活動(dòng)條目列表中的條目的 擁有者;以及在所述第二處理器的活動(dòng)條目列表中查找對(duì)應(yīng)的條目。
5.根據(jù)權(quán)利要求4所述的方法,還包括如果所述第二處理器的活動(dòng)條目列表包括所述對(duì)應(yīng)的條目,則在所述第一處理器的所 述活動(dòng)條目列表中保持所述條目。
6.根據(jù)權(quán)利要求4所述的方法,還包括如果在所述第二處理器的所述活動(dòng)條目列表中沒有發(fā)現(xiàn)對(duì)應(yīng)的條目,則從所述第一處 理器的所述活動(dòng)條目列表中移除所述條目。
7.根據(jù)權(quán)利要求4所述的方法,還包括如果所述第二處理器的所述活動(dòng)條目列表包括所述對(duì)應(yīng)的條目,并且與所述對(duì)應(yīng)的條 目相關(guān)聯(lián)的屬性指示所述對(duì)應(yīng)的條目是臟的,則在所述第一處理器的所述活動(dòng)條目列表中 保持所述條目。
8.根據(jù)權(quán)利要求4所述的方法,還包括如果所述第二處理器的所述活動(dòng)條目列表包括所述對(duì)應(yīng)的條目,并且與所述對(duì)應(yīng)的條 目相關(guān)聯(lián)的屬性指示所述對(duì)應(yīng)的條目不是臟的,則從所述第一處理器的所述活動(dòng)條目列表 移除所述條目。
9.根據(jù)權(quán)利要求1所述的方法,其中,在不中斷所述多個(gè)處理器中的任何其它處理器 的情況下,在所述多個(gè)處理器中的所述第一處理器上執(zhí)行所述同步。
10.一種方法,包括基于第一客戶機(jī)頁表(PT)分級(jí)結(jié)構(gòu)來創(chuàng)建第一影子頁表(PT)分級(jí)結(jié)構(gòu),其中,所述第 一客戶機(jī)PT分級(jí)結(jié)構(gòu)由第一客戶機(jī)操作系統(tǒng)用于第一處理器上的地址翻譯操作,從所述第一影子PT分級(jí)結(jié)構(gòu)導(dǎo)出第一元數(shù)據(jù),以便隨后確定所述第一客戶機(jī)PT分級(jí) 結(jié)構(gòu)中的哪些在所述第一影子PT分級(jí)結(jié)構(gòu)中表示的條目被修改過,所述第一元數(shù)據(jù)包括 第一活動(dòng)條目列表,該第一活動(dòng)條目列表識(shí)別映射在形成所述第一客戶機(jī)PT分級(jí)結(jié)構(gòu)時(shí) 由所述第一客戶機(jī)操作系統(tǒng)使用的頁的映射;基于第二客戶機(jī)PT分級(jí)結(jié)構(gòu)來創(chuàng)建第二影子PT分級(jí)結(jié)構(gòu),其中,所述第二客戶機(jī)PT 分級(jí)結(jié)構(gòu)由第二客戶機(jī)操作系統(tǒng)用于第二處理器上的地址翻譯操作,從所述第二影子PT分級(jí)結(jié)構(gòu)導(dǎo)出第二元數(shù)據(jù),以便隨后確定所述第二客戶機(jī)PT分級(jí) 結(jié)構(gòu)中的哪些在所述第二影子PT分級(jí)結(jié)構(gòu)中表示的條目被修改過,所述第二元數(shù)據(jù)包括 第二活動(dòng)條目列表,該第二活動(dòng)條目列表識(shí)別映射在形成所述第二客戶機(jī)PT分級(jí)結(jié)構(gòu)時(shí) 由所述第二客戶機(jī)操作系統(tǒng)使用的頁的映射;以及維護(hù)與所述第一活動(dòng)條目列表和所述第二活動(dòng)條目中的每一個(gè)條目相關(guān)聯(lián)的屬性,以 指示所述第一處理器和所述第二處理器中的哪個(gè)處理器是所述條目的擁有者。
11.根據(jù)權(quán)利要求10所述的方法,還包括所述第一客戶機(jī)操作系統(tǒng)嘗試修改所述第一客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目。
12.根據(jù)權(quán)利要求11所述的方法,還包括響應(yīng)于所述第一客戶機(jī)操作系統(tǒng)嘗試修改所述第一客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目,將 一條目添加到所述第一活動(dòng)條目列表。
13.根據(jù)權(quán)利要求12所述的方法,還包括設(shè)置與添加到所述第一活動(dòng)條目列表的所述條目相關(guān)聯(lián)的屬性,以指示所述第一處理 器擁有所述添加的條目。
14.根據(jù)權(quán)利要求13所述的方法,還包括設(shè)置與添加到所述第一活動(dòng)條目列表的所述條目相關(guān)聯(lián)的屬性,以指示所述第一客戶 機(jī)PT分級(jí)結(jié)構(gòu)中的對(duì)應(yīng)的條目是臟的。
15.根據(jù)權(quán)利要求14所述的方法,還包括響應(yīng)于所述第一客戶機(jī)操作系統(tǒng)嘗試修改所述第一客戶機(jī)PT分級(jí)結(jié)構(gòu)中的條目,將 一條目添加到所述第二活動(dòng)條目列表。
16.根據(jù)權(quán)利要求15所述的方法,還包括設(shè)置與添加到所述第二活動(dòng)條目列表的所述條目相關(guān)聯(lián)的屬性,以指示所述第一處理 器擁有所述添加的條目。
17.一種裝置包括 第一處理器,包括第一虛擬化邏輯,用于支持在所述第一處理器上的第一虛擬機(jī)的操作, 第一存儲(chǔ)單元,用于存儲(chǔ)對(duì)第一影子地址翻譯數(shù)據(jù)結(jié)構(gòu)的第一索引, 其中,所述第一處理器用于維護(hù)第一活動(dòng)條目列表,以用于將所述第一影子地址翻譯 數(shù)據(jù)結(jié)構(gòu)與由所述第一虛擬機(jī)使用的第一客戶機(jī)地址翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行同步; 第二處理器,包括3第二虛擬化邏輯,用于支持在所述第二處理器上的第二虛擬機(jī)的操作, 第二存儲(chǔ)單元,用于存儲(chǔ)對(duì)第二影子地址翻譯數(shù)據(jù)結(jié)構(gòu)的第二索引, 其中,所述第二處理器用于維護(hù)第二活動(dòng)條目列表,以用于將所述第二影子地址翻譯 數(shù)據(jù)結(jié)構(gòu)與由所述第二虛擬機(jī)使用的第二客戶機(jī)地址翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行同步;其中,所述第一活動(dòng)條目列表和所述第二活動(dòng)條目列表中的每一個(gè)條目包括關(guān)于所述 第一處理器和所述第二處理器中的哪個(gè)處理器是所述條目的擁有者的指示。
18.根據(jù)權(quán)利要求17所述的裝置,其中,所述第一處理器用于在不中斷所述第二處理 器的情況下,將所述第一影子翻譯數(shù)據(jù)結(jié)構(gòu)與所述第一客戶機(jī)地址翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行同止少ο
19.根據(jù)權(quán)利要求18所述的裝置,其中,所述第一處理器用于通過至少部分地基于關(guān) 于所述第一和所述第二處理器中的哪個(gè)處理器是每一個(gè)條目的擁有者的指示,來確定將哪 些條目保持在所述第一活動(dòng)條目列表中,從而在不中斷所述第二處理器的情況下,將所述 第一影子翻譯數(shù)據(jù)結(jié)構(gòu)與所述第一客戶機(jī)地址翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行同步。
20.根據(jù)權(quán)利要求19所述的裝置,其中,所述第一處理器用于通過在所述第二處理器 是一條目的擁有者的情況下,在所述第一活動(dòng)條目列表中保持所述條目,從而在不中斷所 述第二處理器的情況下,將所述第一影子翻譯數(shù)據(jù)結(jié)構(gòu)與所述第一客戶機(jī)地址翻譯數(shù)據(jù)結(jié) 構(gòu)進(jìn)行同步。
全文摘要
在一個(gè)實(shí)施例中,一種方法包括接收由于關(guān)于翻譯后援緩沖器的特權(quán)級(jí)事件而導(dǎo)致的從虛擬機(jī)轉(zhuǎn)移的第一處理器的控制,并且確定客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的哪個(gè)條目被所述虛擬機(jī)修改過?;趶挠商摂M機(jī)監(jiān)視器維護(hù)的影子翻譯數(shù)據(jù)結(jié)構(gòu)提取的元數(shù)據(jù)以及與影子翻譯數(shù)據(jù)結(jié)構(gòu)中的條目相關(guān)聯(lián)的屬性來進(jìn)行確定。元數(shù)據(jù)包括活動(dòng)條目列表,該活動(dòng)條目列表識(shí)別映射在形成所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)時(shí)由客戶機(jī)操作系統(tǒng)使用的頁的映射。所述方法還包括將影子翻譯數(shù)據(jù)結(jié)構(gòu)中的與所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的修改過的條目相對(duì)應(yīng)的條目與所述客戶機(jī)翻譯數(shù)據(jù)結(jié)構(gòu)中的所述修改過的條目進(jìn)行同步,并且至少部分地基于與影子翻譯數(shù)據(jù)結(jié)構(gòu)中的對(duì)應(yīng)的條目相關(guān)聯(lián)的屬性,確定將哪些條目保持在活動(dòng)條目列表中,其中,所述屬性識(shí)別所述多個(gè)處理器中的哪個(gè)處理器擁有活動(dòng)條目列表中的每一個(gè)條目。
文檔編號(hào)G06F9/455GK101957775SQ20101022890
公開日2011年1月26日 申請日期2010年7月14日 優(yōu)先權(quán)日2009年7月14日
發(fā)明者A·V·安德森, A·霍博塔羅, B·蔡金, R·拉波波特 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1