用于管理轉(zhuǎn)換旁視緩沖的方法和裝置制造方法【專利摘要】本發(fā)明涉及用于管理轉(zhuǎn)換旁視緩沖的方法和裝置。根據(jù)本發(fā)明的實施例,TLB未命中所引起的一系列操作不再需要管理器的干預(yù)。相反,當(dāng)發(fā)生TLB未命中時,硬件直接向虛擬機(jī)發(fā)出中斷。以此方式,可以借助于硬件級別的輔助轉(zhuǎn)換表來高效地管理TLB。這樣,可以極大地降低系統(tǒng)開銷,提高系統(tǒng)性能。公開了分別與支持虛擬化的系統(tǒng)中的硬件、管理器和虛擬機(jī)相關(guān)聯(lián)的方法和裝置?!緦@f明】用于管理轉(zhuǎn)換旁視緩沖的方法和裝置【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明的實施例總體上涉及計算機(jī)體系結(jié)構(gòu),更具體地,涉及用于管理轉(zhuǎn)換旁視緩沖(TLB)的方法和裝置?!?br>背景技術(shù):
】[0002]地址映射機(jī)制被廣泛使用于現(xiàn)代計算機(jī)體系結(jié)構(gòu)中。在系統(tǒng)中,上層應(yīng)用所使用的存儲器地址是虛擬地址(VirtualAddress,VA)。操作系統(tǒng)(OperatingSystem,OS)負(fù)責(zé)將應(yīng)用所指定的VA映射到存儲器的物理地址(PhysicalAddress,PA),以便執(zhí)行對存儲器資源的真實訪問。隨著虛擬化(virtualizat1n)等技術(shù)的發(fā)展,地址映射可能需要執(zhí)行多次地址轉(zhuǎn)換。具體而言,虛擬化允許多個OS在單個物理機(jī)器上并發(fā)地運行,并且由此引入了一個稱為管理器或超級管理程序(hypervisor)的軟件層,用于控制客戶(gUest)0S對系統(tǒng)的物理資源的訪問。此時,地址映射包括兩次地址轉(zhuǎn)換。首先,客戶OS將客戶應(yīng)用所指定的客戶虛擬地址(GuestVirtualAddress,GVA)轉(zhuǎn)換為客戶物理地址(GuestPhysicalAddress,GPA)。接下來,管理器將GPA轉(zhuǎn)換為主機(jī)物理地址(HostPhysicalAddress,ΗΡΑ),它是實際的存儲器物理地址。[0003]為了加速地址轉(zhuǎn)換,絕大多數(shù)現(xiàn)代計算機(jī)處理器配備有轉(zhuǎn)換旁視緩沖(Translat1nLookasideBuffer,TLB)。TLB是頁表的高速緩存,用于存儲頁表中的部分條目。在進(jìn)行地址轉(zhuǎn)換時,TLB首先被訪問。如果包含所請求虛擬地址的頁表條目存在于TLB中(稱為TLB命中),則可以實現(xiàn)快速的地址轉(zhuǎn)換。反之,如果包含所請求虛擬地址的頁表條目不在TLB中(TLB未命中),則需要在頁表中查詢對應(yīng)的條目,并且將該條目寫入TLB中。[0004]一般而言,存在兩種TLB管理機(jī)制,即,硬件管理機(jī)制和軟件管理機(jī)制。相對于傳統(tǒng)的硬件管理機(jī)制而言,軟件管理的TLB可以實現(xiàn)較大的靈活性,因此已得到越來越多的應(yīng)用。然而,在傳統(tǒng)的軟件管理TLB中,由于客戶OS無法訪問存儲于硬件中的TLB,因此管理器必須維護(hù)一個影子(shadoW)TLB。而且,由TLB未命中所引起的各種操作都需要由管理器來處理。在此期間,可能需要在用戶模式和特權(quán)模式之間執(zhí)行一次或多次切換。這種軟件管理機(jī)制將會導(dǎo)致顯著的開銷,嚴(yán)重地影響系統(tǒng)的總體性能。[0005]因此,本領(lǐng)域中需要一種以更為高效和有效的方式來實現(xiàn)TLB軟件管理的方法和>J-Uρ?α裝直?!?br/>發(fā)明內(nèi)容】[0006]鑒于現(xiàn)有技術(shù)中存在的上述問題以及其他潛在問題,本發(fā)明提供在支持虛擬化的系統(tǒng)中管理TLB的方法和裝置。[0007]在本發(fā)明的第一方面,提供一種在支持虛擬化的系統(tǒng)中管理轉(zhuǎn)換旁視緩沖TLB的方法。該方法包括:利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,所述存儲器訪問指令接收自運行于所述系統(tǒng)中的虛擬機(jī);響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,向所述虛擬機(jī)發(fā)出中斷以使所述虛擬機(jī)處理所述未命中;以及根據(jù)所述虛擬機(jī)對所述未命中的所述處理的結(jié)果,利用輔助轉(zhuǎn)換表來管理所述TLB,所述輔助轉(zhuǎn)換表的條目將客戶物理地址映射為所述系統(tǒng)中的主機(jī)物理地址。[0008]在本發(fā)明的第二方面,提供一種在支持虛擬化的系統(tǒng)中管理轉(zhuǎn)換旁視緩沖TLB的方法。該方法包括:接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在輔助轉(zhuǎn)換表中未命中客戶物理地址而引起,所述客戶物理地址根據(jù)運行于所述系統(tǒng)中的虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定;確定與所述客戶物理地址相對應(yīng)的所述系統(tǒng)中的主機(jī)物理地址;以及響應(yīng)于所述存儲器訪問指令涉及針對存儲器空間的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目。[0009]在本發(fā)明的第三方面,提供一種在支持虛擬化的系統(tǒng)中管理轉(zhuǎn)換旁視緩沖TLB的由硬件實現(xiàn)的裝置。該裝置包括=TLB查詢單元,被配置為利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,所述存儲器訪問指令接收自運行于所述系統(tǒng)中的虛擬機(jī);第一中斷發(fā)出單元,被配置為響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,向所述虛擬機(jī)發(fā)出中斷以使所述虛擬機(jī)處理所述未命中;以及TLB管理單元,被配置為根據(jù)所述虛擬機(jī)對所述未命中的所述處理的結(jié)果,利用輔助轉(zhuǎn)換表來管理所述TLB,所述輔助轉(zhuǎn)換表的條目將客戶物理地址映射為所述系統(tǒng)中的主機(jī)物理地址。[0010]在本發(fā)明的第四方面,提供一種在支持虛擬化的系統(tǒng)中管理轉(zhuǎn)換旁視緩沖TLB的裝置。該裝置包括:中斷接收單元,被配置為接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在輔助轉(zhuǎn)換表中未命中客戶物理地址而引起,所述客戶物理地址根據(jù)運行于所述系統(tǒng)中的虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定;地址轉(zhuǎn)換單元,被配置為確定與所述客戶物理地址相對應(yīng)的所述系統(tǒng)中的主機(jī)物理地址;以及轉(zhuǎn)換表寫入單元,被配置為響應(yīng)于所述存儲器訪問指令涉及針對存儲器空間的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目。[0011]通過下文描述將會理解,根據(jù)本發(fā)明的實施例,TLB未命中所引起的一系列操作不再需要管理器的干預(yù)。相反,當(dāng)發(fā)生TLB未命中時,硬件直接向虛擬機(jī)(更具體地,虛擬機(jī)的操作系統(tǒng))發(fā)出中斷。以此方式,可以借助于硬件級別的輔助轉(zhuǎn)換表來高效地管理TLB。這樣,可以極大地降低系統(tǒng)開銷,提高系統(tǒng)性能?!緦@綀D】【附圖說明】[0012]通過結(jié)合附圖對本發(fā)明示例性實施方式進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢將變得更加明顯其中:[0013]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的示意性框圖;[0014]圖2示出了根據(jù)支持虛擬化的系統(tǒng)200的示意性框圖;[0015]圖3示出了根據(jù)本發(fā)明示例性實施例的輔助轉(zhuǎn)換表的工作原理的框圖;[0016]圖4示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的方法400的示意性流程圖;[0017]圖5示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的方法500的示意性流程圖;[0018]圖6示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的方法600的示意性流程圖;[0019]圖1示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的裝置700的示意性框圖;[0020]圖8示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的裝置800的示意性框圖;以及[0021]圖9示出了根據(jù)本發(fā)明示例性實施例的用于管理TLB的裝置900的示意性框圖。[0022]貫穿所有附圖,相同或相似的標(biāo)號被用來表示相同或相似的元素?!揪唧w實施方式】[0023]下面將參照附圖更詳細(xì)地描述本發(fā)明的優(yōu)選實施方式。雖然附圖中顯示了本發(fā)明的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本發(fā)明更加透徹和完整,并且能夠?qū)⒈景l(fā)明的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。[0024]所屬【
技術(shù)領(lǐng)域:
】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為裝置、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。[0025]可以采用一個或多個計算機(jī)可讀的介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是-但不限于-電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。[0026]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括-但不限于-電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。[0027]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括-但不限于-無線、電線、光纜、RF等等,或者上述的任意合適的組合。[0028]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言-諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)-包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。[0029]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計算機(jī)程序指令通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。[0030]也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruct1nmeans)的制造品(manufacture)。[0031]也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。[0032]下面參考附圖詳細(xì)描述根據(jù)本發(fā)明的示例性實施例。圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。[0033]如圖1所示,計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。[0034]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。[0035]計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。[0036]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。[0037]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括-但不限于-操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。[0038]計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口22進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管未在圖中示出,可以結(jié)合計算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。[0039]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。[0040]下面參考圖2,其示出了一個支持虛擬化的系統(tǒng)200的示意性框圖。如圖所示,支持虛擬化的系統(tǒng)200允許運行多個虛擬機(jī)(VirtualMachine,VM)201。在每個虛擬機(jī)201上,可以運行有多個客戶應(yīng)用202??蛻魬?yīng)用202由虛擬機(jī)201的客戶操作系統(tǒng)203托管,客戶0S203亦可稱為監(jiān)督器(supervisor)。系統(tǒng)100還包括管理器204,它是一個軟件層,負(fù)責(zé)管理虛擬機(jī)201對系統(tǒng)200的物理硬件205的訪問。虛擬機(jī)201上的應(yīng)用202和客戶0S203均無權(quán)直接訪問硬件205。換言之,虛擬機(jī)201對硬件205的所有訪問必須經(jīng)由管理器204來實現(xiàn)。[0041]在傳統(tǒng)的軟件管理TLB中,TLB被維護(hù)在硬件205中(稱為“硬件TLB”)。硬件TLB中的每個條目將VM201中的客戶虛擬地址(GVA)映射為系統(tǒng)中的主機(jī)物理地址(ΗΡΑ)。VM201無權(quán)直接訪問TLB。另外,每個VM201的客戶0S203具有自己的TLB,該TLB由管理器204維護(hù),稱為“影子TLB”。影子TLB存儲有客戶0S203可見的所有TLB條目,每個條目將GVA映射為特定于虛擬機(jī)的客戶物理地址(GPA)。[0042]根據(jù)傳統(tǒng)的軟件TLB管理機(jī)制,當(dāng)客戶應(yīng)用203執(zhí)行存儲器訪問指令時,硬件205根據(jù)客戶應(yīng)用203所指定的GVA查詢硬件TLB。如果發(fā)生硬件TLB未命中,則硬件205向管理器204發(fā)出一個中斷,例如陷入(trap)消息。作為響應(yīng),管理器204首先在影子TLB中執(zhí)行查詢。如果在影子TLB中找到了對應(yīng)的有效TLB條目,則從客戶0S203的角度看并沒有發(fā)生TLB未命中。此時,管理器204根據(jù)影子TLB中的相應(yīng)條目確定與GVA對應(yīng)的GPA,并且繼而確定與GPA對應(yīng)的ΗΡΑ。最后,向TLB寫入將GVA映射為HPA的條目。[0043]另一方面,如果管理器204在影子TLB中沒有找到相應(yīng)的條目,則從客戶0S203的角度看,發(fā)生了TLB未命中。此時,管理器204向VM201的客戶0S203發(fā)出中斷,并且將控制交給客戶0S203。作為響應(yīng),客戶0S203查詢頁表以確定與GVA對應(yīng)的GPA。此后,客戶0S203發(fā)出TLB寫指令(例如,“tlbwe”指令)以用于向TLB寫入將GVA映射為GPA的條目。由于客戶0S203無權(quán)訪問物理層205,因此硬件205再次向管理器204發(fā)出中斷,使得管理器204向影子TLB寫入將GVA映射為GPA的條目以供將來使用。從客戶0S203的角度看,TLB寫入被成功地執(zhí)行。[0044]根據(jù)上述傳統(tǒng)管理機(jī)制,TLB訪問、特別是TLB未命中所導(dǎo)致的一系列操作需要管理器204的干預(yù)。而且,控制在管理器204與客戶0S203之間的轉(zhuǎn)移將會引起特權(quán)模式與用戶模式的切換。這些都將帶來可觀的系統(tǒng)開銷,嚴(yán)重影響系統(tǒng)的性能和效率。定量地說,管理器204響應(yīng)于TLB未命中而執(zhí)行的開銷占系統(tǒng)總開銷的比例可以多達(dá)70%。[0045]不同于上述傳統(tǒng)TLB軟件管理機(jī)制,根據(jù)本發(fā)明的實施例,提供一種輔助轉(zhuǎn)換表,例如可以稱為“邏輯向?qū)嶋H地址轉(zhuǎn)換”(LogicaltoRealAddressTranslat1n,LRAT)表。LRAT表中的每個條目將GPA映射為ΗΡΑ。根據(jù)本發(fā)明的實施例,輔助轉(zhuǎn)換表可以存儲在硬件205中。根據(jù)本發(fā)明的實施例,存儲于硬件205中的輔助轉(zhuǎn)換表的每個條目可以特定于一個VM201。例如,每個輔助轉(zhuǎn)換表條目可以具有一個字段用于存儲VM201的標(biāo)識信息。另一方面,一個客戶0S203可以對應(yīng)于輔助轉(zhuǎn)換表中的一個或多個條目。另外,根據(jù)本發(fā)明的實施例,輔助轉(zhuǎn)換表可以由管理器204來維護(hù)和管理。例如,管理器204可以具有一個專用的模塊來管理輔助轉(zhuǎn)換表。相應(yīng)地,管理器204不再需要維護(hù)傳統(tǒng)軟件管理機(jī)制中的影子TLB。[0046]應(yīng)當(dāng)理解,本發(fā)明的范圍并不限于利用表(table)的形式來實現(xiàn)輔助性地址轉(zhuǎn)換。相反,在此所稱的“輔助轉(zhuǎn)換表”可以被實現(xiàn)為圖、樹等各種其他數(shù)據(jù)結(jié)構(gòu)。而且在實現(xiàn)中,輔助轉(zhuǎn)換表可被實現(xiàn)為各種形式,例如包括但不限于以下一個或多個:純文本、結(jié)構(gòu)化文本、數(shù)據(jù)庫文件,等等。[0047]根據(jù)本發(fā)明的實施例,硬件205可以被配置為如下操作。首先,硬件205可以利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,該存儲器訪問指令接收自運行于所述系統(tǒng)中的虛擬機(jī)201。繼而,響應(yīng)于在TLB中未命中該客戶虛擬地址,硬件205向虛擬機(jī)201發(fā)出中斷以使虛擬機(jī)201處理所述未命中。接下來,硬件205可以根據(jù)虛擬機(jī)201對未命中的處理結(jié)果,利用輔助轉(zhuǎn)換表來管理TLB。如上所述,TLB中的每個條目將GPA映射為ΗΡΑ。[0048]現(xiàn)在將詳細(xì)描述本發(fā)明的若干實施例。繼續(xù)參考圖2,在操作中,當(dāng)客戶應(yīng)用202執(zhí)行存儲器訪問指令時,硬件205利用客戶應(yīng)用202所指定的GVA來查詢TLB。如果找到相應(yīng)的有效條目(TLB命中),則可以繼續(xù)執(zhí)行指令。如果在TLB中沒找相應(yīng)的有效條目(TLB未命中),則硬件205直接向客戶應(yīng)用202所駐留的VM201發(fā)出中斷。該中斷例如可以由VM201的客戶0S203接收。注意,不同于傳統(tǒng)的軟件管理TLB,硬件205在發(fā)生TLB未命中時沒有向管理器204發(fā)出任何中斷或者異常。[0049]響應(yīng)于來自硬件205的中斷,VM201的客戶0S203可以查詢頁表以確定與GVA相對應(yīng)的GPA。此后,客戶0S203發(fā)出TLB寫入指令,以嘗試向TLB寫入將GVA映射為GPA的條目。然而,如上所述,TLB中所保存的是將GVA映射為HPA的條目。因此,硬件205不會直接向TLB寫入來自客戶0S203的將GVA映射為GPA的條目。相反,根據(jù)本發(fā)明的實施例,硬件205可以利用GPA和VM201的標(biāo)識查詢輔助轉(zhuǎn)換表。如果在輔助轉(zhuǎn)換表中找到了與該VM201的GPA相關(guān)聯(lián)的條目,則硬件205根據(jù)輔助轉(zhuǎn)換表中的條目確定與GPA對應(yīng)的ΗΡΑ。由此,硬件205可以生成將GVA映射為HPA的條目并且將其寫入TLB。[0050]另一方面,如果硬件205在輔助轉(zhuǎn)換表中沒有找到與GPA相關(guān)聯(lián)的條目(由于輔助轉(zhuǎn)換的容量可以非常大,因此這種情況很少發(fā)生),則硬件205向管理器204發(fā)出中斷。作為響應(yīng),管理器204確定客戶0S203所指定的GPA對應(yīng)的ΗΡΑ。因為管理器204控制整個系統(tǒng)的運行,因此這是可以做到的。繼而,管理器204生成將GPA映射為HPA的條目,并且將所生成的條目寫入輔助轉(zhuǎn)換表。此后,VM201的TLB寫入指令繼續(xù)執(zhí)行。這時,由于輔助轉(zhuǎn)換表已被管理器204更新,因此硬件205可以通過對輔助轉(zhuǎn)換表表的查詢而確定與GPA相對應(yīng)的ΗΡΑ。由此,硬件205可以生成將GVA映射為HPA的條目,并且將所生成的條目寫入TLB。[0051]下面參考圖3描述一個具體示例。在圖3所示的示例中,輔助轉(zhuǎn)換表301可以包括如下字段:有效位、大小、客戶物理地址GPA(例如,可以表示為客戶物理頁號GPN)、邏輯分區(qū)標(biāo)識LPID(S卩,VM標(biāo)識符)以及主機(jī)物理地址HPA(例如,可以被表示為主機(jī)物理頁號HPN)。注意,圖3所示的輔助轉(zhuǎn)換表的格式僅僅是示例性的,并非意在限制本發(fā)明的范圍。根據(jù)本發(fā)明的實施例,輔助轉(zhuǎn)換表可以包括任何備選的或附加的字段。[0052]在操作中,當(dāng)VM201的客戶0S203嘗試向TLB寫入將GVA映射為GPA的條目時,硬件205利用GPA和該VM201的標(biāo)識符(LPID)查詢輔助轉(zhuǎn)換表301。響應(yīng)于在輔助轉(zhuǎn)換表中查詢到了相應(yīng)的條目,硬件205自動地生成將GVA映射為HPA的條目302(在此例中,該條目還包括虛擬機(jī)標(biāo)識LPID),并且將條目302寫入TLB303。上述過程對于VM201及其客戶0S203而言是透明的,而且無需管理器204的干預(yù)。[0053]可以看到,根據(jù)本發(fā)明的實施例,無需再由管理器維護(hù)一個專門的影子TLB。而且,在TLB未命中發(fā)生時,硬件直接向VM201的客戶0S203發(fā)出中斷,以便確定與GVA對應(yīng)的GPA。接下來,響應(yīng)于來自客戶OS的TLB寫入請求,硬件205自動地利用GPA查詢輔助轉(zhuǎn)換表。在輔助轉(zhuǎn)換表命中的情況下,TLB未命中的處理完全無需管理器的任何干預(yù)。管理器所需完成的工作僅僅是維護(hù)輔助轉(zhuǎn)換表。由此,可以顯著降低系統(tǒng)開銷,提高系統(tǒng)的總體性能。實驗表明:與傳統(tǒng)的軟件TLB管理機(jī)制相比,根據(jù)本發(fā)明的實施例可以將系統(tǒng)性能提升200%以上。[0054]另外,本發(fā)明的實施例還支持虛擬化系統(tǒng)中的輸入/輸出(I/O)設(shè)備訪問。如已知的,在支持虛擬化的系統(tǒng)中,可以通過存儲器映射I/O(MemoryMappingI/O,MM1)來實現(xiàn)虛擬機(jī)對I/O設(shè)備的訪問。I/O設(shè)備的地址被放置在存儲器空間中。當(dāng)客戶應(yīng)用試圖訪問I/O設(shè)備時,它可以像訪問存儲器一樣發(fā)出存儲器訪問指令。在針對I/O設(shè)備訪問的存儲器訪問指令中,所指定的GVA不是存儲器空間中的有效地址,而是代表所要訪問的I/O設(shè)備的地址。[0055]當(dāng)客戶應(yīng)用訪問I/O設(shè)備時,硬件將利用GVA來查詢硬件TLB。如已知的,與I/O設(shè)備相關(guān)聯(lián)的地址永遠(yuǎn)不會被寫入TLB中。因此,此時必然發(fā)生TLB未命中。在傳統(tǒng)的軟件管理TLB中,如上所述,硬件將會向管理器發(fā)出中斷。管理器可以根據(jù)GVA判斷出客戶應(yīng)用的訪問目標(biāo)不是訪問存儲器而是I/o設(shè)備,并且相應(yīng)地啟動I/O處理過程。然而,根據(jù)本發(fā)明的實施例,當(dāng)發(fā)生TLB未命中時硬件無需再向管理器發(fā)出中斷,因而也就無法觸發(fā)管理器來處理針對I/O設(shè)備的訪問。[0056]根據(jù)本發(fā)明的實施例,存在多種可行的方式來解決這一問題。例如,在某些實施例中,管理器204可以仍然保留影子TLB。在發(fā)生TLB未命中時,硬件205可以判斷該TLB未命中屬于指令TLB未命中還是數(shù)據(jù)TLB未命中。由于I/0訪問所引起的TLB未命中全部屬于數(shù)據(jù)TLB未命中,因此當(dāng)發(fā)生數(shù)據(jù)TLB未命中時,管理器204可以按照傳統(tǒng)方式借助于影子TLB來進(jìn)行處理。另一方面,如果發(fā)生的是指令TLB未命中,則可以按照上文描述的實施例借助于輔助轉(zhuǎn)換表來進(jìn)行處理而無需影子TLB。[0057]為了進(jìn)一步提高系統(tǒng)性能,根據(jù)某些備選實施例,當(dāng)發(fā)生TLB未命中時,硬件205向VM201而不是管理器204發(fā)出中斷。如上所述,VM201的客戶0S203查詢頁表以確定與GVA對應(yīng)的GPA,并且嘗試執(zhí)行TLB寫入指令。該操作將導(dǎo)致硬件205對輔助轉(zhuǎn)換表的查詢。根據(jù)本發(fā)明的實施例,與I/O設(shè)備相關(guān)聯(lián)的GPA始終不會被寫入輔助轉(zhuǎn)換表。因此,將會發(fā)生輔助轉(zhuǎn)換表未命中。在這種情況下,硬件205向管理器204發(fā)出中斷。相應(yīng)地,管理器204可以確定與GPA對應(yīng)的ΗΡΑ。而且,管理器204還可以根據(jù)目標(biāo)地址來確定當(dāng)前存儲器訪問命令是涉及針對存儲器空間的訪問還是針對I/O設(shè)備的訪問。如果管理器204確定當(dāng)前存儲器訪問指令確實涉及針對存儲器空間的訪問,則管理器204按照上文描述的方式向TLB寫入將GVA映射為HPA的條目。[0058]如果管理器204確定當(dāng)前存儲器訪問指令涉及針對I/O設(shè)備而不是存儲器空間的訪問,則管理器204向TLB寫入經(jīng)過修改的條目。具體而言,將GVA映射為HPA的條目被寫入TLB,但是針對所寫入條目的所有訪問均被禁止。例如,這可以通過將針對該條目的所有訪問權(quán)限設(shè)置為“無”來實現(xiàn)。此后,管理器204返回并且TLB寫入指令繼續(xù)執(zhí)行。此時,硬件205將確定TLB中存在包含0S203所指定的GVA的條目,但是該條目被禁止訪問。在這種情況下,根據(jù)本發(fā)明的實施例,硬件205向控制器204發(fā)出中斷以指示數(shù)據(jù)存儲異常(datastorageexcept1n)。響應(yīng)于該中斷,管理器204接收到了客戶0S203所指定的地址,并且可以據(jù)此確定實際的訪問目標(biāo)是I/O設(shè)備。相應(yīng)地,管理器204可以執(zhí)行所需I/O處理。[0059]備選地,根據(jù)某些其他實施例,可以利用硬件級別的寄存器映射機(jī)制來支持ΜΜΙ0。如已知的,當(dāng)數(shù)據(jù)TLB未命中發(fā)生時,硬件在產(chǎn)生中斷的同時將引起未命中的存儲器訪問指令的上下文記錄在一個硬件寄存器中,例如數(shù)據(jù)異常地址寄存器(DataExcept1nAddressRegister,DEAR)或其他任何適當(dāng)?shù)募拇嫫?。這里所說的“上下文”例如包括導(dǎo)致異常的地址。根據(jù)本發(fā)明的實施例,可以在硬件中建立一個存儲上下文的復(fù)本寄存器。該復(fù)本寄存器特定于VM201或者客戶0S203。當(dāng)發(fā)生TLB未命中時,相關(guān)聯(lián)的上下文被存儲在相關(guān)的寄存器(例如,DEAR)中并且被拷貝到復(fù)本寄存器中。[0060]根據(jù)這些實施例,當(dāng)由于I/O訪問而導(dǎo)致TLB未命中發(fā)生時,硬件205向VM201發(fā)出中斷,并且該TLB未命中的上下文被拷貝在復(fù)本寄存器中。此后,當(dāng)VM201嘗試執(zhí)行TLB寫入時,將會導(dǎo)致輔助轉(zhuǎn)換表未命中,從而將控制轉(zhuǎn)移給管理器204。此時,管理器204可以訪問特定于客戶0S203的復(fù)本寄存器,以獲得存儲器指令的上下文。注意,盡管此時主寄存器(例如,DEAR)的內(nèi)容可能隨著系統(tǒng)的運行而發(fā)生變化,但是特定于0S203的復(fù)本寄存器所保存的內(nèi)容仍然是由I/O訪問引起的TLB未命中的上下文。以此方式,管理器204可以基于獲取的上下文來調(diào)用的有關(guān)過程來執(zhí)行I/o處理。[0061]下面參考圖4,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的方法400的流程圖??梢岳斫?,方法400可由支持虛擬化的系統(tǒng)中的底層硬件設(shè)備來執(zhí)行,例如上文參考圖2所描述的硬件205。[0062]如圖所示,方法400開始之后,在步驟S401,接收來自運行于系統(tǒng)中的虛擬機(jī)的存儲器訪問指令。接下來,在步驟S402,利用由該存儲器訪問指令所指定的客戶虛擬地址(GVA)查詢TLB。如果在TLB中命中該GVA,則方法400進(jìn)行到步驟S403,在此向虛擬機(jī)發(fā)出中斷以使虛擬機(jī)處理未命中??蛇x地,還可以將該存儲器訪問指令的上下文存儲在特定于虛擬機(jī)的寄存器中,以用于潛在的MM1處理。[0063]此后,在步驟S404-S408,硬件根據(jù)虛擬機(jī)的未命中處理的結(jié)果而利用輔助轉(zhuǎn)換表來管理TLB。如上所述,虛擬機(jī)對未命中的處理可以包括查詢頁表以確定與所述客戶虛擬地址對應(yīng)的客戶物理地址;以及發(fā)出用于向所述TLB寫入將所述客戶虛擬地址映射為所述客戶物理地址的條目的TLB寫入指令。相應(yīng)地,根據(jù)某些實施例,在步驟S404處接收來自虛擬機(jī)的TLB寫入指令,該TLB寫入指令用于向TLB寫入將GVA映射為GPA的條目。接下來,在步驟S405,利用GPA查詢輔助轉(zhuǎn)換表。如果命中,則在步驟S406確定與GPA對應(yīng)的HPA,并且在步驟S407向TLB寫入將GVA映射為HPA的條目。如果在步驟S405確定在輔助轉(zhuǎn)換表中未命中GPA,則在步驟S408向系統(tǒng)的管理器發(fā)出中斷,以使管理器更新如上文所述那樣更新輔助轉(zhuǎn)換表。當(dāng)輔助轉(zhuǎn)換表由管理器更新之后,硬件返回步驟S404繼續(xù)執(zhí)行來自虛擬機(jī)的TLB寫入指令。[0064]另一方面,如果在步驟S402確定TLB命中,則可以可選地確定TLB中包含該GVA的條目是否被禁止訪問(未示出)。如果該條目被禁止訪問(表明當(dāng)前的存儲器訪問指令實際上涉及針對I/o設(shè)備的訪問),則可以向系統(tǒng)的管理器發(fā)出指示數(shù)據(jù)存儲異常的中斷,以便管理器執(zhí)行相應(yīng)的I/o處理。[0065]接下來參考圖5,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的方法500的流程圖??梢岳斫?,方法500可由支持虛擬化的系統(tǒng)中的管理器來執(zhí)行,例如上文參考圖2所描述的管理器204。[0066]如圖5所示,在步驟S501,接收來自系統(tǒng)的硬件的中斷。如上所述,該中斷是由于在輔助轉(zhuǎn)換表未命中一個GPA而引起的,該GPA根據(jù)虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定(與該指令所指定的GVA相對應(yīng))。響應(yīng)于接收到中斷,在步驟S502,確定與GPA相對應(yīng)的ΗΡΑ??梢岳斫猓芾砥骺刂普麄€系統(tǒng)的運行,因此知道GPA與HPA之間的對應(yīng)關(guān)系。方法500繼而進(jìn)行到步驟S503,在此,對于涉及存儲器空間訪問的存儲器訪問指令,向輔助轉(zhuǎn)換表寫入將GPA映射為HPA的條目從而更新輔助性轉(zhuǎn)換表。[0067]另一方面,在支持MM1的系統(tǒng)中,如果管理器確定存儲器訪問指令涉及針對I/O設(shè)備的訪問,則方法503可以進(jìn)行到可選的步驟S504,在此處理針對I/O設(shè)備的訪問。根據(jù)某些實施例,步驟S504的處理包括:向輔助轉(zhuǎn)換表寫入將GPA映射為HPA的條目,并且禁止對所寫入的所述條目的訪問。備選地,可以訪問特定于虛擬機(jī)的寄存器(例如,上文描述的復(fù)本寄存器GDEAR),以獲得存儲器訪問指令的上下文。而后,可以基于所獲取的上下文來執(zhí)行針對I/O設(shè)備的訪問。[0068]參考圖6,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的方法600的流程圖??梢岳斫?,方法600可由支持虛擬化的系統(tǒng)中的虛擬機(jī)來執(zhí)行。更具體地,方法600可以由虛擬機(jī)的客戶OS執(zhí)行,例如上文參考圖2所描述的客戶0S203。[0069]方法600開始之后,在步驟S601,發(fā)出存儲器訪問指令。該存儲器訪問指令可以指定特定于VM的GVA。接下來,在步驟S602,從硬件接收由于在TLB中未命中GVA而引起的中斷。響應(yīng)于該中斷,在步驟S603,響應(yīng)于中斷而處理TLB未命中。特別地,根據(jù)本發(fā)明的實施例,步驟S603處的處理可以包括:通過查詢頁表來確定與GVA對應(yīng)的HPA,并且發(fā)出TLB寫入指令,該TLB寫入指令用于向TLB寫入將GVA映射為GPA的條目。可以理解,硬件不會實際將這樣的條目寫入,而是借助于輔助地址轉(zhuǎn)換表生成將GVA映射為HPA的條目,并且將其寫入TLB。[0070]下面參考圖7,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的裝置700的框圖。裝置700例如由被實現(xiàn)為駐留于系統(tǒng)中的硬件,并且可被配置為執(zhí)行上文描述的方法400。特別地,根據(jù)某些實施例,裝置700可以被實現(xiàn)為專用集成電路、通用集成電路、現(xiàn)場可編程門陣列或者其他任何適當(dāng)?shù)挠捎布崿F(xiàn)的裝置。下文將要描述的裝置700所包括的各個單元可以被實現(xiàn)為相應(yīng)的硬件模塊。[0071]如圖7所示,根據(jù)本發(fā)明的實施例,裝置700包括:TLB查詢單元701,被配置為利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,該虛擬機(jī)訪問指令接收自系統(tǒng)中的虛擬機(jī);第一中斷發(fā)出單元702,被配置為響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,向所述虛擬機(jī)發(fā)出中斷以使所述虛擬機(jī)處理所述未命中;以及TLB管理單元703,被配置為根據(jù)所述虛擬機(jī)對所述未命中的所述處理的結(jié)果,利用輔助轉(zhuǎn)換表來管理所述TLB,所述輔助轉(zhuǎn)換表的條目將客戶物理地址映射為所述系統(tǒng)中的主機(jī)物理地址。[0072]根據(jù)某些實施例,裝置700還可以包括:TLB寫入指令接收單元,被配置為接收來自所述虛擬機(jī)的TLB寫入指令,所述TLB寫入指令用于向所述TLB寫入將所述客戶虛擬地址映射為客戶物理地址的條目;轉(zhuǎn)換表查詢單元,被配置為利用所述客戶物理地址查詢輔助轉(zhuǎn)換表;地址轉(zhuǎn)換單元,被配置為響應(yīng)于在所述輔助轉(zhuǎn)換表中命中所述客戶物理地址,確定與所述客戶物理地址對應(yīng)的主機(jī)物理地址;以及TLB寫入單元,被配置為向所述TLB寫入將所述客戶虛擬地址映射為所述主機(jī)物理地址的條目。[0073]根據(jù)某些實施例,裝置700還可以包括:第二中斷發(fā)出單元,被配置為響應(yīng)于在所述輔助轉(zhuǎn)換表中未命中所述客戶物理地址,向所述系統(tǒng)的管理器發(fā)出中斷以使所述管理器更新所述輔助轉(zhuǎn)換表。[0074]根據(jù)某些實施例,裝置700還可以包括:第三中斷發(fā)出單元,被配置為響應(yīng)于在所述TLB中命中所述客戶虛擬地址并且包含所述客戶虛擬地址的條目被禁止訪問,向所述系統(tǒng)的管理器發(fā)出指示數(shù)據(jù)存儲異常的中斷。[0075]根據(jù)某些實施例,裝置700還可以包括:上下文存儲單元,被配置為響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,將所述存儲器訪問指令的上下文存儲在特定于所述虛擬機(jī)的寄存器中。[0076]現(xiàn)在參考圖8,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的裝置800的框圖。裝置800例如駐留于系統(tǒng)中的管理器,并且可被配置為執(zhí)行上文描述的方法500。如圖所示,根據(jù)本發(fā)明的實施例,裝置800包括:中斷接收單元801,被配置為接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在輔助轉(zhuǎn)換表中未命中客戶物理地址而引起,所述客戶物理地址根據(jù)運行于所述系統(tǒng)中的虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定;地址轉(zhuǎn)換單元802,被配置為確定與所述客戶物理地址相對應(yīng)的所述系統(tǒng)中的主機(jī)物理地址;以及轉(zhuǎn)換表寫入單元803,被配置為響應(yīng)于所述存儲器訪問指令涉及針對存儲器空間的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目。[0077]根據(jù)某些實施例,裝置800還可以包括:被配置為響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目的單元;以及被配置為禁止對所寫入的所述條目的訪問的單元。[0078]根據(jù)某些實施例,裝置800還可以包括:被配置為響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,訪問特定于所述虛擬機(jī)的寄存器以獲得所述存儲器訪問指令的上下文的單元;以及被配置為基于獲取的所述上下文來執(zhí)行針對所述輸入/輸出設(shè)備的所述訪問的單元。[0079]參考圖9,其示出了根據(jù)本發(fā)明示例性實施例的用于TLB管理的裝置900的框圖。裝置900例如駐留于系統(tǒng)中的虛擬機(jī),并且可被配置為執(zhí)行上文描述的方法600。如圖所示,根據(jù)本發(fā)明的實施例,裝置900包括:指令發(fā)出單元901,被配置為發(fā)出存儲器訪問指令,所述存儲器訪問指令指定客戶虛擬地址;中斷接收單元902,被配置為接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在所述TLB中未命中所述客戶虛擬地址而引起;以及TLB未命中處理單元903,被配置為響應(yīng)于所述中斷,處理所述TLB的所述未命中。[0080]根據(jù)某些實施例,TLB未命中處理單元903可以包括:頁表查詢單元,被配置為查詢頁表以確定與所述客戶虛擬地址對應(yīng)的客戶物理地址;以及TLB寫入指令發(fā)出單元,被配置為發(fā)出用于向所述TLB寫入將所述客戶虛擬地址映射為所述客戶物理地址的條目的TLB寫入指令。[0081]為清晰起見,圖7到圖9中沒有示出裝置所包含的可選單元或者子單元。然而應(yīng)當(dāng)理解,上文所描述的所有特征和操作分別適用于裝置700到900,故在此不再贅述。而且,各裝置中的單元或子單元的劃分不是限制性的而是示例性的,旨在從邏輯上描述其主要功能或操作。一個單元的功能可以由多個單元來實現(xiàn);反之,多個單元亦可由一個單元來實現(xiàn)。本發(fā)明的范圍在此方面不受限制。而且,上文描述的裝置800和900中所包含的單元可以利用各種方式來實現(xiàn),包括軟件、硬件、固件或其任意組合。[0082]上文已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所公開的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本【
技術(shù)領(lǐng)域:
】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋屑夹g(shù)的技術(shù)改進(jìn),或者使本【
技術(shù)領(lǐng)域:
】的其它普通技術(shù)人員能理解本文公開的各實施例?!緳?quán)利要求】1.一種在支持虛擬化的系統(tǒng)中的硬件處管理轉(zhuǎn)換旁視緩沖TLB的方法,所述方法包括:利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,所述存儲器訪問指令接收自運行于所述系統(tǒng)中的虛擬機(jī);響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,向所述虛擬機(jī)發(fā)出中斷以使所述虛擬機(jī)處理所述未命中;以及根據(jù)所述虛擬機(jī)對所述未命中的所述處理的結(jié)果,利用輔助轉(zhuǎn)換表來管理所述TLB,所述輔助轉(zhuǎn)換表的條目將客戶物理地址映射為所述系統(tǒng)中的主機(jī)物理地址。2.根據(jù)權(quán)利要求1所述的方法,其中利用輔助轉(zhuǎn)換表來管理所述TLB包括:接收來自所述虛擬機(jī)的TLB寫入指令,所述TLB寫入指令用于向所述TLB寫入將所述客戶虛擬地址映射為客戶物理地址的條目;利用所述客戶物理地址查詢輔助轉(zhuǎn)換表;響應(yīng)于在所述輔助轉(zhuǎn)換表中命中所述客戶物理地址,確定與所述客戶物理地址對應(yīng)的主機(jī)物理地址;以及向所述TLB寫入將所述客戶虛擬地址映射為所述主機(jī)物理地址的條目。3.根據(jù)權(quán)利要求2所述的方法,其中利用輔助轉(zhuǎn)換表來管理所述TLB還包括:響應(yīng)于在所述輔助轉(zhuǎn)換表中未命中所述客戶物理地址,向所述系統(tǒng)的管理器發(fā)出中斷以使所述管理器更新所述輔助轉(zhuǎn)換表。4.根據(jù)權(quán)利要求1到3任一項所述的方法,還包括:響應(yīng)于在所述TLB中命中所述客戶虛擬地址并且包含所述客戶虛擬地址的條目被禁止訪問,向所述系統(tǒng)的管理器發(fā)出指示數(shù)據(jù)存儲異常的中斷。5.根據(jù)權(quán)利要求1到3任一項所述的方法,還包括:響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,將所述存儲器訪問指令的上下文存儲在特定于所述虛擬機(jī)的寄存器中。6.根據(jù)權(quán)利要求1到3任一項所述的方法,其中所述虛擬機(jī)對所述未命中的所述處理的所述結(jié)果包括來自所述虛擬機(jī)的TLB寫入指令,所述TLB寫入指令用于向所述TLB寫入將所述客戶虛擬地址映射為客戶物理地址的條目,所述客戶物理地址是所述虛擬機(jī)通過查詢頁表確定的。7.—種在支持虛擬化的系統(tǒng)中的管理器處管理轉(zhuǎn)換旁視緩沖TLB的方法,所述方法包括:接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在輔助轉(zhuǎn)換表中未命中客戶物理地址而引起,所述客戶物理地址根據(jù)運行于所述系統(tǒng)中的虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定;確定與所述客戶物理地址相對應(yīng)的所述系統(tǒng)中的主機(jī)物理地址;以及響應(yīng)于所述存儲器訪問指令涉及針對存儲器空間的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目。8.根據(jù)權(quán)利要求7所述的方法,還包括:響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目;以及禁止對所寫入的所述條目的訪問。9.根據(jù)權(quán)利要求7所述的方法,還包括:響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,訪問特定于所述虛擬機(jī)的寄存器,以獲得所述存儲器訪問指令的上下文;以及基于獲取的所述上下文來執(zhí)行針對所述輸入/輸出設(shè)備的所述訪問。10.一種在支持虛擬化的系統(tǒng)中的硬件處管理轉(zhuǎn)換旁視緩沖TLB的裝置,所述裝置由硬件實現(xiàn)并且包括:TLB查詢單元,被配置為利用存儲器訪問指令所指定的客戶虛擬地址來查詢所述TLB,所述存儲器訪問指令接收自運行于所述系統(tǒng)中的虛擬機(jī);第一中斷發(fā)出單元,被配置為響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,向所述虛擬機(jī)發(fā)出中斷以使所述虛擬機(jī)處理所述未命中;以及TLB管理單元,被配置為根據(jù)所述虛擬機(jī)對所述未命中的所述處理的結(jié)果,利用輔助轉(zhuǎn)換表來管理所述TLB,所述輔助轉(zhuǎn)換表的條目將客戶物理地址映射為所述系統(tǒng)中的主機(jī)物理地址。11.根據(jù)權(quán)利要求10所述的裝置,還包括:TLB寫入指令接收單元,被配置為接收來自所述虛擬機(jī)的TLB寫入指令,所述TLB寫入指令用于向所述TLB寫入將所述客戶虛擬地址映射為客戶物理地址的條目;轉(zhuǎn)換表查詢單元,被配置為利用所述客戶物理地址查詢輔助轉(zhuǎn)換表;地址轉(zhuǎn)換單元,被配置為響應(yīng)于在所述輔助轉(zhuǎn)換表中命中所述客戶物理地址,確定與所述客戶物理地址對應(yīng)的主機(jī)物理地址;以及TLB寫入單元,被配置為向所述TLB寫入將所述客戶虛擬地址映射為所述主機(jī)物理地址的條目。12.根據(jù)權(quán)利要求11所述的裝置,還包括:第二中斷發(fā)出單元,被配置為響應(yīng)于在所述輔助轉(zhuǎn)換表中未命中所述客戶物理地址,向所述系統(tǒng)的管理器發(fā)出中斷以使所述管理器更新所述輔助轉(zhuǎn)換表。13.根據(jù)權(quán)利要求10到12任一項所述的裝置,還包括:第三中斷發(fā)出單元,被配置為響應(yīng)于在所述TLB中命中所述客戶虛擬地址并且包含所述客戶虛擬地址的條目被禁止訪問,向所述系統(tǒng)的管理器發(fā)出指示數(shù)據(jù)存儲異常的中斷。14.根據(jù)權(quán)利要求10到12任一項所述的裝置,還包括:上下文存儲單元,被配置為響應(yīng)于在所述TLB中未命中所述客戶虛擬地址,將所述存儲器訪問指令的上下文存儲在特定于所述虛擬機(jī)的寄存器中。15.根據(jù)權(quán)利要求10到12任一項所述的裝置,其中所述虛擬機(jī)對所述未命中的所述處理的所述結(jié)果包括來自所述虛擬機(jī)的TLB寫入指令,所述TLB寫入指令用于向所述TLB寫入將所述客戶虛擬地址映射為客戶物理地址的條目,所述客戶物理地址是所述虛擬機(jī)通過查詢頁表確定的。16.一種在支持虛擬化的系統(tǒng)中的管理器處管理轉(zhuǎn)換旁視緩沖TLB的裝置,所述裝置包括:中斷接收單元,被配置為接收來自所述系統(tǒng)的硬件的中斷,所述中斷由在輔助轉(zhuǎn)換表中未命中客戶物理地址而引起,所述客戶物理地址根據(jù)運行于所述系統(tǒng)中的虛擬機(jī)所發(fā)出的存儲器訪問指令而被確定;地址轉(zhuǎn)換單元,被配置為確定與所述客戶物理地址相對應(yīng)的所述系統(tǒng)中的主機(jī)物理地址;以及轉(zhuǎn)換表寫入單元,被配置為響應(yīng)于所述存儲器訪問指令涉及針對存儲器空間的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目。17.根據(jù)權(quán)利要求16所述的裝置,還包括:被配置為響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,向所述輔助轉(zhuǎn)換表寫入將所述客戶物理地址映射為所述主機(jī)物理地址的條目的單元;以及被配置為禁止對所寫入的所述條目的訪問的單元。18.根據(jù)權(quán)利要求16所述的裝置,還包括:被配置為響應(yīng)于所述存儲器訪問指令涉及針對輸入/輸出設(shè)備的訪問,訪問特定于所述虛擬機(jī)的寄存器以獲得所述存儲器訪問指令的上下文的單元;以及被配置為基于獲取的所述上下文來執(zhí)行針對所述輸入/輸出設(shè)備的所述訪問的單元。【文檔編號】G06F12/10GK104239238SQ201310250683【公開日】2014年12月24日申請日期:2013年6月21日優(yōu)先權(quán)日:2013年6月21日【發(fā)明者】常曉濤,戈弋,H·弗蘭克,王鯤申請人:國際商業(yè)機(jī)器公司