欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對(duì)在虛擬機(jī)體系結(jié)構(gòu)中客戶(hù)軟件操作期間出現(xiàn)的故障的控制的制作方法

文檔序號(hào):6414829閱讀:211來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):對(duì)在虛擬機(jī)體系結(jié)構(gòu)中客戶(hù)軟件操作期間出現(xiàn)的故障的控制的制作方法
技術(shù)領(lǐng)域
一般來(lái)說(shuō),本發(fā)明涉及虛擬機(jī),更具體來(lái)說(shuō),涉及處理與虛擬機(jī)體系結(jié)構(gòu)中客戶(hù)軟件的操作相關(guān)聯(lián)的故障。
背景技術(shù)
傳統(tǒng)的虛擬機(jī)監(jiān)控器(VMM)通常在計(jì)算機(jī)上運(yùn)行,并為其它軟件提供一個(gè)或多個(gè)虛擬機(jī)的抽象。各虛擬機(jī)可用作自含式平臺(tái),運(yùn)行它自己的“客戶(hù)操作系統(tǒng)”(即VMM接納的操作系統(tǒng)(OS))和其它軟件,這些統(tǒng)稱(chēng)為客戶(hù)軟件。客戶(hù)軟件預(yù)期工作起來(lái)就象它在專(zhuān)用計(jì)算機(jī)而不是虛擬機(jī)上運(yùn)行一樣。也就是說(shuō),客戶(hù)軟件預(yù)期控制各種事件并有權(quán)訪(fǎng)問(wèn)硬件資源。硬件資源可包括處理器駐留資源(例如控制寄存器)、駐留在存儲(chǔ)器中的資源(例如描述符表)以及駐留在基礎(chǔ)硬件平臺(tái)上的資源(例如輸入-輸出裝置)。事件可包括中斷、異常、平臺(tái)事件(例如初始化(INIT)或系統(tǒng)管理中斷(SMI))等。
在虛擬機(jī)環(huán)境中,VMM應(yīng)當(dāng)能夠具有對(duì)這些事件和硬件資源的最終控制,以便提供在虛擬機(jī)上運(yùn)行的客戶(hù)軟件的適當(dāng)操作,以及用于從在虛擬機(jī)上運(yùn)行的客戶(hù)軟件及在它們之間保護(hù)。為了實(shí)現(xiàn)這個(gè)目的,當(dāng)客戶(hù)軟件訪(fǎng)問(wèn)受保護(hù)資源時(shí)或者其它事件(諸如中斷或異常)出現(xiàn)時(shí),VMM通常接收控制。
例如,當(dāng)頁(yè)面錯(cuò)誤(即與地址轉(zhuǎn)換操作相關(guān)聯(lián)的異常)在客戶(hù)軟件的操作期間出現(xiàn)時(shí),控制被轉(zhuǎn)移到VMM,VMM則確定客戶(hù)軟件或VMM本身是否需要處理頁(yè)面錯(cuò)誤。如果頁(yè)面錯(cuò)誤需要由客戶(hù)軟件處理,則控制重新轉(zhuǎn)移到客戶(hù)軟件。由于不需要由VMM處理的頁(yè)面錯(cuò)誤(以及其它異常和中斷)相當(dāng)頻繁地發(fā)生,因此存在與VMM和客戶(hù)軟件之間的這種控制轉(zhuǎn)移相關(guān)聯(lián)的大量性能成本。
附圖簡(jiǎn)介在附圖的各圖中通過(guò)舉例而不是限制的方式來(lái)說(shuō)明本發(fā)明,附圖中相似的參考標(biāo)號(hào)表示類(lèi)似的元件,其中

圖1說(shuō)明本發(fā)明可在其中工作的虛擬機(jī)環(huán)境的一個(gè)實(shí)施例;圖2是因故障而利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾VM出口的過(guò)程的一個(gè)實(shí)施例的流程圖;圖3-5說(shuō)明因故障而利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾VM出口的過(guò)程的示范實(shí)施例;圖6是因故障而利用故障過(guò)濾標(biāo)準(zhǔn)和控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾故障和VM出口的過(guò)程的一個(gè)實(shí)施例的流程圖;圖7-8說(shuō)明利用故障過(guò)濾標(biāo)準(zhǔn)過(guò)濾故障的過(guò)程的示范實(shí)施例;以及圖9是定義故障過(guò)濾標(biāo)準(zhǔn)和控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)的過(guò)程的一個(gè)實(shí)施例的流程圖。
實(shí)施例描述描述處理與虛擬機(jī)體系結(jié)構(gòu)中的客戶(hù)軟件的操作相關(guān)聯(lián)的故障的方法和裝置。為了說(shuō)明,以下描述中提出了大量具體細(xì)節(jié),以便透徹地理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員十分清楚,即使沒(méi)有這些具體細(xì)節(jié),也可以實(shí)施本發(fā)明。
以下詳細(xì)描述的某些部分是以對(duì)計(jì)算機(jī)系統(tǒng)的寄存器或存儲(chǔ)器中的數(shù)據(jù)位進(jìn)行操作的算法和符號(hào)表示來(lái)提供的。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用來(lái)向本領(lǐng)域的其它技術(shù)人員最有效地傳達(dá)其工作實(shí)質(zhì)的方式。算法在這里以及一般被認(rèn)為是產(chǎn)生所希望結(jié)果的獨(dú)立運(yùn)算序列。運(yùn)算是物理量的那些要求的物理處理。這些量通常但不一定采取電或磁信號(hào)的形式,它們能夠被存儲(chǔ)、傳送、組合、比較以及以其它方式處理。主要為了普通使用的原因,將這些信號(hào)稱(chēng)作位、值、元素、符號(hào)、字符、項(xiàng)目、數(shù)字等,已經(jīng)證明有時(shí)非常方便。
但應(yīng)當(dāng)記住,所有這些及類(lèi)似的術(shù)語(yǔ)要與適當(dāng)物理量相關(guān)聯(lián),并且只是應(yīng)用于這些量的便捷標(biāo)記。若沒(méi)有明確說(shuō)明,從以下論述中顯而易見(jiàn),在本發(fā)明中,采用諸如“處理”或“計(jì)算”或“運(yùn)算”或“確定”等術(shù)語(yǔ)的論述可表示計(jì)算機(jī)系統(tǒng)或類(lèi)似電子計(jì)算裝置的動(dòng)作和過(guò)程,所述計(jì)算機(jī)系統(tǒng)或類(lèi)似電子計(jì)算裝置處理表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器中的物理(電子)量的數(shù)據(jù)并將其轉(zhuǎn)換為類(lèi)似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或者其它這類(lèi)信息存儲(chǔ)、傳送或顯示裝置中的物理量的其它數(shù)據(jù)。
在實(shí)施例的以下詳細(xì)描述中,參照附圖,附圖以圖解說(shuō)明的方式示出可實(shí)施本發(fā)明的具體實(shí)施例。附圖中,相似的標(biāo)號(hào)描述若干視圖中基本相似的元件。對(duì)這些實(shí)施例進(jìn)行充分詳細(xì)的描述,使本領(lǐng)域的技術(shù)人員能夠?qū)嵤┍景l(fā)明??刹捎闷渌鼘?shí)施例,并且可進(jìn)行結(jié)構(gòu)、邏輯以及電氣變更,而沒(méi)有背離本發(fā)明的范圍。此外,大家理解,本發(fā)明的各種實(shí)施例雖然有所不同,但不一定是相互排斥的。例如,在一個(gè)實(shí)施例中描述的特定功能、結(jié)構(gòu)或特征可包含在其它實(shí)施例中。因此,以下詳細(xì)描述不是限制性的,本發(fā)明的范圍僅由所附權(quán)利要求以及這些權(quán)利要求涵蓋的全部等效范圍來(lái)限定。
圖1說(shuō)明本發(fā)明可在其中工作的虛擬機(jī)環(huán)境100的一個(gè)實(shí)施例。在此實(shí)施例中,裸平臺(tái)硬件116包括計(jì)算平臺(tái),它可以例如能夠運(yùn)行標(biāo)準(zhǔn)操作系統(tǒng)(OS)或虛擬機(jī)監(jiān)控器(VMM)、如VMM 112。VMM 112雖然通常以軟件實(shí)現(xiàn),但可模擬裸機(jī)接口并將其輸出到較高層軟件。這種較高層軟件可包括標(biāo)準(zhǔn)或?qū)崟r(shí)OS,可以是具有有限操作系統(tǒng)功能性的嚴(yán)重剝離的操作環(huán)境,可以不包括傳統(tǒng)的OS工具,等等?;蛘?,例如VMM 112可以在另一個(gè)VMM之中或之上運(yùn)行。VMM及其典型特征和功能性是本領(lǐng)域的技術(shù)人員熟知的,并且可例如以軟件、固件或通過(guò)各種技術(shù)的組合來(lái)實(shí)現(xiàn)。
平臺(tái)硬件116可以屬于個(gè)人計(jì)算機(jī)(PC)、大型計(jì)算機(jī)、手持裝置、便攜計(jì)算機(jī)、機(jī)頂盒或其它任何計(jì)算系統(tǒng)。平臺(tái)硬件116包括處理器118、存儲(chǔ)器120以及可能的其它未示出的平臺(tái)硬件(例如輸入-輸出裝置)。
處理器118可以是能夠運(yùn)行軟件的任何類(lèi)型的處理器,諸如微處理器、數(shù)字信號(hào)處理器、微控制器等等。處理器118可包括用于完成本發(fā)明的方法實(shí)施例運(yùn)行的微碼、可編程邏輯或硬編碼邏輯。
存儲(chǔ)器120可以是硬盤(pán)、軟盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃速存儲(chǔ)器、以上裝置的任何組合、或者處理器118可讀的其它任何類(lèi)型的機(jī)器媒體。存儲(chǔ)器120可存儲(chǔ)用于完成本發(fā)明的方法實(shí)施例運(yùn)行的指令或數(shù)據(jù)。
VMM 112為其它軟件(即“客戶(hù)”軟件)提供一個(gè)或多個(gè)虛擬機(jī)(VM)的抽象。VMM 112可向各種客戶(hù)提供相同或不同的抽象。圖1表示兩個(gè)這樣的VM、即102和114,但VMM 112可支持多于或少于2個(gè)的VM。在各VM上運(yùn)行的客戶(hù)軟件可包括諸如客戶(hù)OS 104或106等客戶(hù)OS以及各種客戶(hù)軟件應(yīng)用程序108和110。客戶(hù)OS和軟件應(yīng)用程序在本文中統(tǒng)稱(chēng)客戶(hù)軟件103和115。客戶(hù)軟件103和105預(yù)期訪(fǎng)問(wèn)客戶(hù)軟件正在其中運(yùn)行的VM 102和114中的物理資源(例如處理器寄存器、存儲(chǔ)器和I/O裝置)。VMM 112便于對(duì)客戶(hù)軟件所需資源的訪(fǎng)問(wèn),同時(shí)保持對(duì)平臺(tái)硬件116內(nèi)資源的最終控制。
此外,客戶(hù)軟件103和115預(yù)期處理各種事件,諸如異常、中斷以及平臺(tái)事件(例如初始化(INIT)和系統(tǒng)管理中斷(SMI))。這些事件中的一部分是“特許的”,因?yàn)樗鼈儽仨氂蒝MM 112來(lái)處理,以便確保VM 102、114和客戶(hù)軟件103、115的正確工作,以及用于從客戶(hù)軟件103和115及在其之間保護(hù)。對(duì)于特許事件,VMM 112便于客戶(hù)軟件所需的功能性,同時(shí)保持對(duì)這些特許事件的最終控制。便于客戶(hù)軟件的功能性的動(dòng)作可包括VMM 112的一部分上的大量活動(dòng)。VMM 112的活動(dòng)及其特性不應(yīng)當(dāng)限制本發(fā)明的范圍。
除了特許事件之外,還存在大量“非特許事件”,它們?cè)诳蛻?hù)軟件的操作期間出現(xiàn),但不需要由VMM 112處理,因而不要求控制向VMM 112轉(zhuǎn)移。在一個(gè)實(shí)施例中,提供一種過(guò)濾機(jī)制來(lái)區(qū)分特許事件與非特許事件。通過(guò)這種過(guò)濾機(jī)制,利用一個(gè)或多個(gè)過(guò)濾標(biāo)準(zhǔn)來(lái)評(píng)估與當(dāng)前事件(例如異常)相關(guān)聯(lián)的信息,從而確定對(duì)當(dāng)前事件的控制是屬于客戶(hù)軟件還是被轉(zhuǎn)移到VMM 112。這些過(guò)濾標(biāo)準(zhǔn)在本文中稱(chēng)作控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)。與當(dāng)前事件相關(guān)聯(lián)的信息在本文中稱(chēng)作故障信息。
在另一個(gè)實(shí)施例中,提供一種過(guò)濾機(jī)制以識(shí)別可能被忽視的某些非特許事件,因?yàn)樵诋?dāng)前事件時(shí)存在的其它因素表明客戶(hù)軟件可完成期望的操作,而不損害VMM 112或其它VM的安全性及正確操作。在此實(shí)施例中,利用一個(gè)或多個(gè)過(guò)濾標(biāo)準(zhǔn)來(lái)評(píng)估與當(dāng)前事件相關(guān)聯(lián)的故障信息,從而確定當(dāng)前事件是否可被忽視(即,是否允許客戶(hù)軟件完成期望的操作)。這些過(guò)濾標(biāo)準(zhǔn)在本文中稱(chēng)作故障過(guò)濾標(biāo)準(zhǔn)。
在一個(gè)實(shí)施例中,過(guò)濾標(biāo)準(zhǔn)(控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)和/或故障過(guò)濾標(biāo)準(zhǔn))采用在虛擬機(jī)控制結(jié)構(gòu)(VMCS)122中的一個(gè)或多個(gè)指定字段中存儲(chǔ)的數(shù)據(jù)來(lái)定義。不同的VM可采用來(lái)自不同VMCS存儲(chǔ)映象的數(shù)據(jù),但圖1中僅示出一個(gè)這樣的VMCS。VMCS 122可駐留在存儲(chǔ)器120中,并且可由處理器118維護(hù)。應(yīng)當(dāng)指出,其它任何數(shù)據(jù)結(jié)構(gòu)(例如芯片內(nèi)高速緩存、文件、查找表等)可用來(lái)存儲(chǔ)VMCS 122或者與過(guò)濾機(jī)制相關(guān)聯(lián)的字段,而不失一般性。下面更詳細(xì)地描述過(guò)濾機(jī)制的各種實(shí)施例。
在一個(gè)實(shí)施例中,如果過(guò)濾機(jī)制確定當(dāng)前事件必須由VMM 112處理,則控制被轉(zhuǎn)移到VMM 112。然后,VMM 112可處理該事件,以及把控制重新轉(zhuǎn)移到客戶(hù)軟件。在一個(gè)實(shí)施例中,控制從VMM 112到客戶(hù)軟件的轉(zhuǎn)移通過(guò)執(zhí)行特殊指令來(lái)實(shí)現(xiàn)??刂茝腣MM到客戶(hù)軟件的轉(zhuǎn)移在本文中稱(chēng)作VM入口,控制從客戶(hù)軟件到VMM的轉(zhuǎn)移在本文中稱(chēng)作VM出口,VM出口的可能原因(例如特許的異常和中斷以及特許的平臺(tái)事件)在本文中稱(chēng)作虛擬化事件。
在一個(gè)實(shí)施例中,當(dāng)VM出口出現(xiàn)時(shí),控制在VMCS 122中描述的特定入口點(diǎn)(例如指令指針值)被傳遞給VMM 112。在另一個(gè)實(shí)施例中,控制在通過(guò)重定向結(jié)構(gòu)(例如IntelPentiumIV的處理器指令集體系結(jié)構(gòu)(ISA)中的中斷描述符表(在本文中稱(chēng)作IA-32 ISA))引導(dǎo)之后被傳遞到VMM 112。或者,本領(lǐng)域已知的其它任何機(jī)制都可用來(lái)把控制從客戶(hù)軟件轉(zhuǎn)移到VMM 112。
包括異常、中斷和平臺(tái)事件的特許和非特許事件在本文中稱(chēng)作故障。故障可由處理器上指令的執(zhí)行來(lái)產(chǎn)生。例如,訪(fǎng)問(wèn)存儲(chǔ)器的操作可因調(diào)頁(yè)和分段保護(hù)機(jī)制而產(chǎn)生各種故障。各故障與故障信息相關(guān)聯(lián)。故障信息可表征為動(dòng)態(tài)、靜態(tài)或半動(dòng)態(tài)故障信息。動(dòng)態(tài)故障信息在故障時(shí)或接近故障時(shí)產(chǎn)生。動(dòng)態(tài)故障信息的實(shí)例包括誤碼,它由異常產(chǎn)生,并直接取決于出錯(cuò)操作的特性或者準(zhǔn)備通過(guò)導(dǎo)致頁(yè)面錯(cuò)誤的寫(xiě)存儲(chǔ)器操作寫(xiě)入存儲(chǔ)器的數(shù)據(jù)值。
靜態(tài)或半靜態(tài)故障信息可能具有相同的值,而與故障的定時(shí)無(wú)關(guān)。半靜態(tài)故障信息的一個(gè)實(shí)例是各種控制寄存器中很少改變的位的設(shè)定,例如IA-32 ISA中CR0寄存器中的高速緩存禁用(CD)或?qū)懕Wo(hù)(WP)位。靜態(tài)故障信息的一個(gè)實(shí)例是處理器實(shí)現(xiàn)的版本(例如通過(guò)IA-32 ISA中的CPUID指令來(lái)報(bào)告那樣)。
一般來(lái)說(shuō),故障信息可包括故障標(biāo)識(shí)符、相關(guān)故障誤碼、與故障相關(guān)聯(lián)的附加數(shù)據(jù)值或者這些數(shù)據(jù)項(xiàng)的任何組合。故障標(biāo)識(shí)符可以是用來(lái)區(qū)分這個(gè)特定故障與其它故障的值。誤碼可包含多個(gè)值,其中每個(gè)值指示特定條件的出現(xiàn)。附加數(shù)據(jù)值可表示連接到出錯(cuò)指令或故障觸發(fā)條件的其它任何數(shù)據(jù)。另外,附加數(shù)據(jù)值可表示在故障產(chǎn)生期間計(jì)算的數(shù)據(jù)。附加數(shù)據(jù)值的一些實(shí)例包括在故障時(shí)被請(qǐng)求寫(xiě)入特定位置的數(shù)據(jù)、在故障時(shí)被訪(fǎng)問(wèn)的地址、導(dǎo)致故障的指令的地址、在故障時(shí)存儲(chǔ)器的狀態(tài)等。
可參照IA-32 ISA中的頁(yè)面錯(cuò)誤來(lái)說(shuō)明故障信息的一個(gè)實(shí)例。在IA-32 ISA中,頁(yè)面錯(cuò)誤由等于14的故障標(biāo)識(shí)符來(lái)標(biāo)識(shí)。因此,當(dāng)頁(yè)面錯(cuò)誤出現(xiàn)時(shí),通過(guò)經(jīng)由條目14處的中斷描述符表(IDT)引導(dǎo)到故障處理器,控制被傳遞到故障處理器。(產(chǎn)生頁(yè)面錯(cuò)誤的)被訪(fǎng)問(wèn)地址被存儲(chǔ)在控制寄存器(CR2)中。另外,在把控制傳遞到故障處理器之前,頁(yè)面錯(cuò)誤產(chǎn)生誤碼,它被推入堆棧,供故障處理器使用。誤碼包含四位,它通知故障處理器什么條件導(dǎo)致頁(yè)面錯(cuò)誤。具體來(lái)說(shuō),誤碼中的位0表明錯(cuò)誤是否由用于地址轉(zhuǎn)換的頁(yè)面表中的非當(dāng)前頁(yè)面引起,誤碼中的位1表明錯(cuò)誤訪(fǎng)問(wèn)是否為寫(xiě)入,誤碼中的位2表明訪(fǎng)問(wèn)是否在處理器處于用戶(hù)模式時(shí)被發(fā)起,以及誤碼中的位3表明錯(cuò)誤是否由頁(yè)面目錄中設(shè)置為1的保留位引起。
附加數(shù)據(jù)值可與頁(yè)面錯(cuò)誤相關(guān)聯(lián)。相關(guān)附加數(shù)據(jù)值的實(shí)例包括導(dǎo)致頁(yè)面錯(cuò)誤的被訪(fǎng)問(wèn)地址(CR2)、出錯(cuò)指令的地址、客戶(hù)軟件在出現(xiàn)頁(yè)面錯(cuò)誤時(shí)嘗試寫(xiě)入頁(yè)面表分級(jí)結(jié)構(gòu)中的不可寫(xiě)頁(yè)面的數(shù)據(jù)值、物理和客戶(hù)線(xiàn)性存儲(chǔ)器中的頁(yè)面表的地址等等。
現(xiàn)在將描述利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)的過(guò)濾機(jī)制的一些實(shí)施例??刂妻D(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)可手動(dòng)或以編程方式來(lái)定義。控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)隨特定故障、誤碼形式、ISA、附加數(shù)據(jù)值的存在、VMM的特性及其它因素而改變??刂妻D(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)的復(fù)雜度和表達(dá)標(biāo)準(zhǔn)所需的元素?cái)?shù)量取決于誤碼中包含的值的數(shù)量、附加數(shù)據(jù)值的數(shù)量、以及需要(和不需要)引起向VMM的轉(zhuǎn)換的誤碼值和/或附加數(shù)據(jù)值的可能組合的數(shù)量。例如,當(dāng)需要考慮大量這類(lèi)組合時(shí),控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)可能要求對(duì)誤碼和/或其它故障信息及一組預(yù)定數(shù)據(jù)執(zhí)行若干運(yùn)算(例如算術(shù)和/或布爾邏輯運(yùn)算)。
在一些實(shí)施例中,預(yù)定數(shù)據(jù)存儲(chǔ)在VMCS的指定字段中,如上所述。在其它實(shí)施例中,預(yù)定數(shù)據(jù)可被硬編碼(例如在計(jì)算機(jī)程序、可編程邏輯、微碼或處理器的硬編碼邏輯中)。
圖2是因故障而利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾VM出口的過(guò)程200的一個(gè)實(shí)施例的流程圖。該過(guò)程可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。
參照?qǐng)D2,過(guò)程200從處理邏輯接收故障信息(處理框202)開(kāi)始。故障信息可涉及在允許操作繼續(xù)進(jìn)行到完成的情況下已出現(xiàn)或?qū)⒊霈F(xiàn)的故障。故障信息包括標(biāo)識(shí)該故障的故障標(biāo)識(shí)符。在一些實(shí)施例中,故障信息還包括與該故障相關(guān)聯(lián)的誤碼和/或附加數(shù)據(jù)值。
在判定框204,確定故障信息是否滿(mǎn)足一個(gè)或多個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)。如果在判定框204進(jìn)行的確定為否定,即,故障信息不滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則控制轉(zhuǎn)到VMM(處理框206),它處理該故障,然后可把控制重新轉(zhuǎn)移到客戶(hù)OS。否則,如果在判定框204進(jìn)行的確定為肯定,即,故障信息滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則控制仍屬于客戶(hù)軟件。然后,可允許客戶(hù)軟件處理該故障。
在備選實(shí)施例中,如果故障信息不滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則控制被轉(zhuǎn)到VMM(如果故障信息滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則控制仍屬于客戶(hù)軟件)。
如上所述,控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)的復(fù)雜度取決于各種因素。在一個(gè)實(shí)施例中,控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)可能只要求將故障信息與某個(gè)值進(jìn)行比較(例如,如果誤碼大于10,則產(chǎn)生VM出口,或者如果誤碼等于0×4,則產(chǎn)生VM出口,等等)。在另一個(gè)實(shí)施例中,控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)可能要求將故障信息與若干值進(jìn)行比較。例如,需要引起到VMM的轉(zhuǎn)換的誤碼值可事先確定,以及當(dāng)前誤碼可與這些預(yù)定值進(jìn)行比較以識(shí)別匹配。預(yù)定值可存儲(chǔ)在指定字段中(例如在圖1的VMCS 122中),或者被硬編碼在計(jì)算機(jī)程序、可編程邏輯、微碼或處理器的硬編碼邏輯中。在其它實(shí)施例中,可能要求過(guò)濾機(jī)制對(duì)故障信息和一組預(yù)定值執(zhí)行一個(gè)或多個(gè)布爾邏輯和/或算術(shù)運(yùn)算。
圖3-5說(shuō)明因故障而利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾VM出口的過(guò)程的示范實(shí)施例。這些過(guò)程可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。
參照?qǐng)D3,過(guò)程300從處理邏輯在客戶(hù)軟件操作期間檢測(cè)故障的出現(xiàn)(處理框301)開(kāi)始。在處理框302,處理邏輯接收標(biāo)識(shí)故障并且可包含與故障有關(guān)的其它信息的故障信息。在判定框303,處理邏輯確定故障信息是否包含與故障相關(guān)聯(lián)的誤碼。如果該確定為肯定,則處理邏輯確定(在處理框304)以下表達(dá)式的值(真或假)EC AND MASK==MATCH(1)其中EC為誤碼,AND為逐位布爾邏輯算子,“==”為逐位比較算子,MASK為在第一字段、本文稱(chēng)作掩碼字段中存儲(chǔ)的預(yù)定數(shù)據(jù),以及MATCH為在第二字段、本文稱(chēng)作匹配字段中存儲(chǔ)的預(yù)定數(shù)據(jù)。
各掩碼字段和匹配字段的大小取決于相應(yīng)誤碼的大小。在一些實(shí)施例中,掩碼字段和匹配字段的寬度與誤碼的大小相同。在其它實(shí)施例中,掩碼字段和匹配字段的寬度可以與誤碼的大小不同。例如,掩碼字段和匹配字段可小于誤碼,并且可以?xún)H把某些位映射到表達(dá)式1中。
此外,在圖3所示的一個(gè)實(shí)施例中,處理邏輯還采用重定向圖中的相應(yīng)控制位來(lái)進(jìn)一步確定是否產(chǎn)生VM出口。重定向圖表示由VMM維護(hù)的一組控制位,用于配置哪些虛擬化事件將產(chǎn)生VM出口。被咨詢(xún)的控制位對(duì)應(yīng)于導(dǎo)致當(dāng)前故障的虛擬化事件。例如,虛擬化事件可以是頁(yè)面錯(cuò)誤、外部中斷或客戶(hù)軟件對(duì)調(diào)試寄存器的訪(fǎng)問(wèn),其中的每個(gè)在重定向圖中具有相關(guān)位。在一個(gè)實(shí)施例中,重定向圖包含在圖1的VMCS 122中。在一個(gè)實(shí)施例中,重定向圖是VMCS 122中的單字段。在其它實(shí)施例中,在VMCS 122中要求多個(gè)字段來(lái)詳細(xì)描述重定向圖。
如果在判定框303作出的確定為否定(即故障信息沒(méi)有包含與此故障相關(guān)聯(lián)的誤碼),或者處理邏輯在判定框304確定表達(dá)式1中的等式成立(即經(jīng)由逐位AND算子與掩碼字段中存儲(chǔ)的數(shù)據(jù)組合的誤碼匹配在匹配字段中存儲(chǔ)的數(shù)據(jù)),則在一個(gè)實(shí)施例中,重定向圖中的相應(yīng)控制位的值被用來(lái)確定是否產(chǎn)生VM出口(處理框306)。例如,如果控制位被置位,則處理邏輯將產(chǎn)生VM出口(處理框313);否則,處理邏輯將把故障傳遞給客戶(hù)軟件(處理框312)。
如果表達(dá)式1中的等式不成立,則處理邏輯對(duì)重定向位圖中的控制位的值取反(處理框308),并使用這個(gè)取反值來(lái)確定是否產(chǎn)生VM出口(處理框310)。如果取反值被置位,則處理邏輯產(chǎn)生VM出口(處理框314);否則,故障將被引導(dǎo)到客戶(hù)軟件(處理框312)。在另一個(gè)實(shí)施例中,如果如判定框304中所確定的那樣,等式不成立,則處理邏輯可使用控制位的實(shí)際值,如果等式成立,則使用控制位的取反值。
在圖3的過(guò)程300中掩碼字段和匹配字段與控制位的使用可采用與IA-32 ISA頁(yè)面錯(cuò)誤相關(guān)聯(lián)的誤碼(本文中稱(chēng)作頁(yè)面錯(cuò)誤誤碼或PFEC)的各種值作為實(shí)例來(lái)說(shuō)明。以下實(shí)例假定在表達(dá)式1的等式不成立時(shí)存在控制位的取反(如圖3所示)。
如上所述,PFEC包括四位。為了實(shí)現(xiàn)PFEC值的所有可能組合所需的結(jié)果,掩碼字段、匹配字段和控制位中的每個(gè)應(yīng)當(dāng)具有特定設(shè)定。例如,為了對(duì)所有頁(yè)面錯(cuò)誤產(chǎn)生VM出口,控制位可被設(shè)置為1,掩碼字段位的值將設(shè)置為0×0,以及匹配字段的值將設(shè)置為0×0?;蛘撸瑸榱说玫酵瑯拥男阅?,控制位可被設(shè)置為0,掩碼字段設(shè)置為0×0,以及匹配字段設(shè)置為0×F(注意,有匹配、掩碼字段及控制位值的許多設(shè)定都提供相同的功能性)。在另一個(gè)實(shí)例中,為了對(duì)于因監(jiān)督程序?qū)懭氘?dāng)前頁(yè)面而導(dǎo)致的頁(yè)面錯(cuò)誤產(chǎn)生VM出口,控制位將設(shè)置為1,掩碼字段的值將設(shè)置為0×F,以及匹配字段的值將設(shè)置為0×3。這些值確保只對(duì)產(chǎn)生等于0×3的誤碼的頁(yè)面故障出現(xiàn)VM出口。在又一個(gè)實(shí)例中,為了對(duì)于因非當(dāng)前頁(yè)面或保留位違反而導(dǎo)致的頁(yè)面錯(cuò)誤產(chǎn)生VM出口,控制位將設(shè)置為0,掩碼字段的值將設(shè)置為0×9(即只有位0和3被設(shè)置為1),以及匹配字段的值將設(shè)置為0×1。這將對(duì)指示當(dāng)前頁(yè)面(即位0被設(shè)置為1)以及無(wú)保留位違反(即位3被清除為0)的那些之外的所有頁(yè)面錯(cuò)誤產(chǎn)生VM出口。
在另一個(gè)實(shí)施例(未示出)中,沒(méi)有使用控制位。也就是說(shuō),處理邏輯根據(jù)表達(dá)式1的結(jié)果來(lái)確定是否把控制轉(zhuǎn)到VMM(即產(chǎn)生VM出口)。如果表達(dá)式1中評(píng)估的等式成立(即經(jīng)由逐位AND算子與掩碼字段中存儲(chǔ)的數(shù)據(jù)組合的誤碼匹配在匹配字段中存儲(chǔ)的數(shù)據(jù)),則滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),以及與誤碼相關(guān)聯(lián)的故障將由客戶(hù)操作系統(tǒng)處理。否則(即經(jīng)由AND算子與掩碼字段中存儲(chǔ)的數(shù)據(jù)組合的誤碼不匹配在匹配字段中存儲(chǔ)的數(shù)據(jù)),則不滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),并產(chǎn)生VM出口,把控制轉(zhuǎn)到VMM。
圖3所示實(shí)施例中使用的控制位的取反增加了實(shí)現(xiàn)誤碼值的各種組合的預(yù)期結(jié)果(即VM出口結(jié)果或無(wú)VM出口結(jié)果)時(shí)的靈活性。例如,下表說(shuō)明包含兩位的誤碼的值的各種組合的兩種可能的預(yù)期結(jié)果
如果掩碼字段位的值等于(11),匹配字段的值等于(01),以及控制位等于0,則圖3所示的過(guò)程300的實(shí)施例可得到預(yù)期結(jié)果1。如果掩碼字段位的值等于(11),匹配字段的值等于(01),以及控制位被設(shè)置為1,則可得到預(yù)期結(jié)果2。
應(yīng)當(dāng)指出,預(yù)期結(jié)果2不要求使用控制位(即預(yù)期結(jié)果2僅要求掩碼=(11)以及匹配=(01))。但是,如果不使用控制位的取反,或者更多字段沒(méi)有包含在確定是否產(chǎn)生VM出口的過(guò)程中,則無(wú)法得到預(yù)期結(jié)果1。
采用四個(gè)指定字段用于確定是否產(chǎn)生VM出口的控制轉(zhuǎn)移過(guò)濾過(guò)程的一個(gè)實(shí)施例如圖4所示。參照?qǐng)D4,過(guò)程400可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。
過(guò)程400從處理邏輯在客戶(hù)軟件操作期間檢測(cè)故障的出現(xiàn)(處理框401)開(kāi)始。在圖4所示實(shí)施例中,假定所有故障產(chǎn)生誤碼,在處理框402處理邏輯接收這些誤碼。隨后,處理邏輯采用逐位AND算子將誤碼與第一掩碼字段中存儲(chǔ)的數(shù)據(jù)組合(處理框404)以及與第二掩碼字段中存儲(chǔ)的數(shù)據(jù)組合(處理框406)。即,第一組合的結(jié)果INT1=ECAND MASK1以及第二組合的結(jié)果INT2=EC AND MASK2。
此外,在判定框408,處理邏輯確定第一組合INT1是否匹配第一匹配字段中存儲(chǔ)的數(shù)據(jù)(MATCH1),或者第二組合INT2是否匹配第二匹配字段中存儲(chǔ)的數(shù)據(jù)(MATCH2)。如果找到任何匹配,則處理邏輯產(chǎn)生VM出口(處理框410)?;蛘撸绻麤](méi)有發(fā)現(xiàn)任何匹配,則故障被插入客戶(hù)操作系統(tǒng)(處理框409)。
控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)可采用更復(fù)雜的算術(shù)或布爾邏輯和/或附加字段,以便為預(yù)期結(jié)果提供更大的靈活性,如圖5所示。參照?qǐng)D5,過(guò)程500可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。
過(guò)程500從處理邏輯在客戶(hù)軟件操作期間檢測(cè)故障的出現(xiàn)(處理框501)開(kāi)始。在處理框502,處理邏輯接收故障信息。如處理框503所確定的那樣,如果故障信息包含誤碼,則處理邏輯采用逐位AND算子將誤碼與第一掩碼字段中存儲(chǔ)的數(shù)據(jù)組合(處理框504)以及與第二掩碼字段中存儲(chǔ)的數(shù)據(jù)組合(處理框506)。即,第一組合的結(jié)果INT1=EC AND MASK1以及第二組合的結(jié)果INT2=EC ANDMASK2。
此外,在判定框508,處理邏輯確定在第一組合INT1中是否設(shè)置了任何位,或者第二組合INT2是否匹配在匹配字段中存儲(chǔ)的數(shù)據(jù)(MATCH)。在一個(gè)實(shí)施例中(圖5中未示出),如果任一個(gè)確定為肯定,則處理邏輯產(chǎn)生VM出口。否則,故障被插入客戶(hù)OS。
在另一個(gè)實(shí)施例中(圖5中所示),與VM出口有關(guān)的確定還取決于重定向圖中的相應(yīng)控制位。明確地說(shuō),如果在判定框508進(jìn)行的確定為肯定(或者如果在判定框503進(jìn)行的確定為否定,即故障信息沒(méi)有包含誤碼),則處理邏輯還在判定框510確定控制位是否指定VM出口(例如控制位被設(shè)置為1)。如果控制位指定了VM出口,則處理邏輯產(chǎn)生VM出口(處理框512)。如果控制位沒(méi)有指定VM出口(例如控制位被清零),則故障被插入客戶(hù)OS(處理框518)。
否則,如果在判定框508作出的確定為否定,則處理邏輯對(duì)控制位的值取反(處理框514)。如果取反值指定了VM出口(判定框516),則處理邏輯產(chǎn)生VM出口(處理框512)。如果取反值沒(méi)有指定VM出口,則故障被插入客戶(hù)OS(處理框518)。
雖然圖3-5所示的實(shí)施例采用某些算子(即逐位AND、比較等),但各種各樣的其它算子也可與過(guò)濾標(biāo)準(zhǔn)配合使用,而不失一般性。另外,以上結(jié)合圖3-5所述的那些之外的各種過(guò)濾標(biāo)準(zhǔn)也可用來(lái)處理在客戶(hù)軟件操作期間出現(xiàn)的故障。此外,上述附加數(shù)據(jù)值可用來(lái)代替與過(guò)濾過(guò)程中的故障相關(guān)聯(lián)的誤碼,或者與它們一起使用。
在一些實(shí)施例中,附加過(guò)濾標(biāo)準(zhǔn)(本文中稱(chēng)作故障過(guò)濾標(biāo)準(zhǔn))可在控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)之前應(yīng)用于故障信息。在其它實(shí)施例中,故障過(guò)濾標(biāo)準(zhǔn)在控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)之后應(yīng)用于故障信息。在另一些實(shí)施例中,故障過(guò)濾標(biāo)準(zhǔn)而不是控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)被應(yīng)用于故障信息。故障過(guò)濾標(biāo)準(zhǔn)用來(lái)確定在客戶(hù)軟件操作期間出現(xiàn)的出錯(cuò)條件是否可被忽略。出錯(cuò)條件表示若允許操作完成、則通常會(huì)導(dǎo)致故障的事件。這種出錯(cuò)條件的一個(gè)實(shí)例是客戶(hù)軟件寫(xiě)入頁(yè)面表分級(jí)結(jié)構(gòu)中的不可寫(xiě)頁(yè)面的嘗試。在一些情況下,出錯(cuò)條件可以被忽略,因?yàn)樵诔鲥e(cuò)條件時(shí)存在的其它因素表明出錯(cuò)條件不會(huì)例如損害VMM或其它虛擬機(jī)的性能、安全性或正確操作。下面結(jié)合圖7和圖8更詳細(xì)地描述這些情況的實(shí)例。
圖6是因故障而利用故障過(guò)濾標(biāo)準(zhǔn)和控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)過(guò)濾故障和VM出口的過(guò)程600的一個(gè)實(shí)施例的流程圖。該過(guò)程可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。
過(guò)程600從處理邏輯在客戶(hù)軟件操作期間檢測(cè)出錯(cuò)條件的出現(xiàn)(處理框602)以及分析與出錯(cuò)條件有關(guān)的故障信息(處理框604)開(kāi)始。這種故障信息可包括故障標(biāo)識(shí)符、誤碼、出錯(cuò)地址、待寫(xiě)入的數(shù)據(jù)、頁(yè)面表地址等。
隨后,處理邏輯確定故障信息是否滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn)(判定框604)。故障過(guò)濾標(biāo)準(zhǔn)要求利用與客戶(hù)軟件的工作有關(guān)的規(guī)則,評(píng)估處理器狀態(tài)、存儲(chǔ)器狀態(tài)和/或故障信息的一個(gè)或多個(gè)元素。例如,故障過(guò)濾標(biāo)準(zhǔn)可要求將客戶(hù)軟件嘗試寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)與當(dāng)前存儲(chǔ)在此存儲(chǔ)單元的數(shù)據(jù)進(jìn)行比較。故障過(guò)濾標(biāo)準(zhǔn)可要求單獨(dú)檢驗(yàn)處理器狀態(tài)、存儲(chǔ)器狀態(tài)和/或故障信息的一個(gè)元素,或者多次檢驗(yàn)各種元素。故障過(guò)濾標(biāo)準(zhǔn)的復(fù)雜度可隨特定出錯(cuò)條件、與出錯(cuò)條件有關(guān)的操作規(guī)則、ISA、VMM的特性、應(yīng)用及其它因素而改變。下面結(jié)合圖7和圖8更詳細(xì)地論述示范過(guò)濾標(biāo)準(zhǔn)。
如果滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn),則處理邏輯忽略出錯(cuò)條件,以及允許客戶(hù)軟件繼續(xù)進(jìn)行,好像沒(méi)有檢測(cè)到出錯(cuò)條件一樣(處理框608)。因此,客戶(hù)軟件發(fā)起的操作的行為經(jīng)修改以允許其完成,而不管出錯(cuò)條件的檢測(cè)如何。
如果不滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn),則處理邏輯利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)確定處理該故障的適當(dāng)實(shí)體(判定框610)。如果故障信息滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則處理邏輯把故障傳遞到客戶(hù)軟件,以及允許客戶(hù)軟件處理該故障(處理框612)。如果故障信息不滿(mǎn)足控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則處理邏輯把控制轉(zhuǎn)到VMM(處理框614)。
在其它實(shí)施例中,如果不滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn),則處理邏輯不使用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),而始終把控制轉(zhuǎn)到VMM。
在其它實(shí)施例中,處理邏輯首先利用控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)來(lái)確定處理故障的適當(dāng)實(shí)體。然后,如果適當(dāng)實(shí)體為客戶(hù)軟件,則處理邏輯還確定是否滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn)。如果滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn),則允許客戶(hù)忽略故障條件;如果不滿(mǎn)足故障過(guò)濾標(biāo)準(zhǔn),則該故障被傳遞給客戶(hù),如上所述。
以下論述假定頁(yè)面表結(jié)構(gòu)在IA-32 ISA中,但應(yīng)當(dāng)指出,類(lèi)似的頁(yè)面表結(jié)構(gòu)存在于各種ISA中,本發(fā)明不限于使用IA-32 ISA。另外,可進(jìn)行各種簡(jiǎn)化以便于以下論述。例如,沒(méi)有包含物理地址擴(kuò)展(PAE)和頁(yè)面大小擴(kuò)展(PSE)標(biāo)志的作用,沒(méi)有說(shuō)明基于環(huán)的保護(hù)機(jī)制,沒(méi)有測(cè)試存儲(chǔ)器存取的對(duì)準(zhǔn)要求等等。
如本領(lǐng)域熟知的那樣,IA-32 ISA中的頁(yè)面表由頁(yè)面目錄條目(PDE)和頁(yè)面表?xiàng)l目(PTE)組成。每個(gè)PDE和PTE包含控制存儲(chǔ)器頁(yè)面的可存取性的各種位字段。例如,“P”位把頁(yè)面標(biāo)記為當(dāng)前(1)或非當(dāng)前(0),“R/W”位表明頁(yè)面是只讀(0)還是可讀寫(xiě)(1),“U/S”位表明頁(yè)面是否要求監(jiān)督程序特權(quán),頁(yè)面幀編號(hào)(PFN)是否包含邏輯頁(yè)面所在的物理地址的一部分,等等。CR3是ISA中的控制寄存器,它包含頁(yè)面目錄的基物理地址(和附加標(biāo)志)。頁(yè)面目錄基物理地址等于CR3[31:12]<<12(即,頁(yè)面目錄基地址的低12位為0,高20位處于CR3的高20位中)。
為了防止一個(gè)虛擬機(jī)中的錯(cuò)誤或惡意代碼損害在VMM或另一個(gè)虛擬機(jī)上運(yùn)行的代碼,需要把客戶(hù)軟件的訪(fǎng)問(wèn)限制為基礎(chǔ)物理機(jī)器的物理存儲(chǔ)資源。在提供了由客戶(hù)OS和VMM分別管理的獨(dú)立頁(yè)面表分級(jí)結(jié)構(gòu)的一些體系結(jié)構(gòu)中,一種把客戶(hù)軟件的訪(fǎng)問(wèn)限制為物理存儲(chǔ)資源的方法包括客戶(hù)頁(yè)面表分級(jí)結(jié)構(gòu)的VMM修改許可,從而防止客戶(hù)軟件對(duì)受保護(hù)頁(yè)面(例如屬于VMM或其它VM的頁(yè)面)的讀或?qū)懖僮?。另外,客?hù)頁(yè)面表經(jīng)修改以防止對(duì)屬于存儲(chǔ)客戶(hù)頁(yè)面表的VM的一些頁(yè)面的寫(xiě)操作。一旦已經(jīng)進(jìn)行這些許可修改,則客戶(hù)軟件改變頁(yè)面表的嘗試將導(dǎo)致頁(yè)面錯(cuò)誤事件,這是VMM可通過(guò)VM出口觀察的。VMM可檢查所嘗試的訪(fǎng)問(wèn),并確定要采取的適當(dāng)動(dòng)作。例如,它可允許、不允許或修改所嘗試的訪(fǎng)問(wèn)。例如,可能不允許客戶(hù)軟件映射屬于VMM或另一個(gè)VM的物理頁(yè)面。由于客戶(hù)軟件對(duì)頁(yè)面表的修改頻繁出現(xiàn),因此與退出到VMM相關(guān)的、用于篩選每次嘗試的客戶(hù)頁(yè)面表改變的開(kāi)銷(xiāo)可能強(qiáng)加重大的性能負(fù)擔(dān)。
為了簡(jiǎn)化頁(yè)面表的管理,若干操作系統(tǒng)、例如Microsoft WindowsXP采用遞歸頁(yè)面目錄。換言之,頁(yè)面目錄條目(PDE)將設(shè)置為把頁(yè)面目錄頁(yè)引用為頁(yè)面表頁(yè)。這種把同一個(gè)頁(yè)面用作頁(yè)面目錄和頁(yè)面表的用法使所有頁(yè)面表頁(yè)在通過(guò)自指的PDE訪(fǎng)問(wèn)的線(xiàn)性地址空間的4MB區(qū)域中是可訪(fǎng)問(wèn)的。給定自指PDE的使用,則可計(jì)算用來(lái)映射任何特定線(xiàn)性地址的PTE或PDE的線(xiàn)性地址。在采用自指PDE的操作系統(tǒng)中,典型的頁(yè)面表編輯是通過(guò)這種自映射區(qū)域進(jìn)行的(即,對(duì)頁(yè)面表的編輯是利用自映射PDE通過(guò)寫(xiě)入采用處于4MB區(qū)域的線(xiàn)性地址的存儲(chǔ)器進(jìn)行的)。不采用這種自映射PDE的頁(yè)面表編輯在數(shù)量上極少。
其中公共頁(yè)面用作頁(yè)面目錄頁(yè)以及頁(yè)面表頁(yè)的頁(yè)面表在本文中稱(chēng)作自映射頁(yè)面表。本領(lǐng)域的技術(shù)人員非常清楚,本發(fā)明還適用于其它方法,其中頁(yè)面表?xiàng)l目以組織方式映射到線(xiàn)性地址,無(wú)論這種映射是在頁(yè)面表分級(jí)結(jié)構(gòu)的多層上結(jié)構(gòu)再用的結(jié)果,還是通過(guò)OS慣例。
在本發(fā)明的一個(gè)實(shí)施例中,過(guò)濾機(jī)制用來(lái)標(biāo)識(shí)不要求退出到VMM的頁(yè)面映射編輯。在此實(shí)施例中,用于過(guò)濾標(biāo)準(zhǔn)的附加字段被添加到VMCS。
在一個(gè)實(shí)施例中,客戶(hù)操作系統(tǒng)所用的頁(yè)面表是自映射的,即,頁(yè)面表分級(jí)結(jié)構(gòu)中的頁(yè)面目錄條目(PDE)之一重新指向頁(yè)面目錄(PD)頁(yè)的基部。如上所述,自映射頁(yè)面表的概念是本領(lǐng)域都熟知的,以及由操作系統(tǒng)、例如Microsoft的Windows XP使用。在一個(gè)實(shí)施例中,通過(guò)確保頁(yè)面目錄基部線(xiàn)性地址(本文中稱(chēng)作PTBASE)滿(mǎn)足一組條件來(lái)支持自映射。這組條件可檢驗(yàn)PTBASE值為4MB對(duì)準(zhǔn)的、即PTBASE[21:0]==0,以及頁(yè)面表包含適當(dāng)?shù)淖杂成錀l目、即單元((CR3[31:12]<<12)+(PTBASE[31:22]<<2))中條目中的PFN等于CR3[31:12]。在一個(gè)實(shí)施例中,PTBASE值存儲(chǔ)在VMCS中,由過(guò)濾機(jī)制使用,如以下所述。
假定自映射頁(yè)面表正在使用,則可確定任何給定地址是否處于頁(yè)面表中(即,是否ADDR[31:22]==PTBASE[31:22],其中ADDR為被訪(fǎng)問(wèn)的地址)。另外,可確定該地址是否處于PDE中(即地址是否處于頁(yè)面表中,并且ADDR[21:12]==PTBASE[31:22])或者處于PTE中(即該地址是否處于頁(yè)面表中,但不在PDE中)。
圖7和圖8說(shuō)明利用故障過(guò)濾標(biāo)準(zhǔn)過(guò)濾頁(yè)面錯(cuò)誤的過(guò)程的兩個(gè)示范實(shí)施例。該過(guò)程可通過(guò)可包括硬件(例如電路、專(zhuān)用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上)或者兩者的組合的處理邏輯來(lái)執(zhí)行。在圖7和圖8所示的實(shí)施例中,VMM通過(guò)確保映射頁(yè)面表自身的客戶(hù)頁(yè)面表?xiàng)l目(客戶(hù)PTE)具有只讀訪(fǎng)問(wèn)來(lái)保護(hù)物理存儲(chǔ)器。因此,當(dāng)客戶(hù)軟件嘗試改變頁(yè)面表?xiàng)l目時(shí),頁(yè)面錯(cuò)誤條件出現(xiàn)。這些實(shí)施例可與采用自映射頁(yè)面表的客戶(hù)OS配合使用,如上所述,或者與沒(méi)有采用這個(gè)頁(yè)面表結(jié)構(gòu)的客戶(hù)OS配合使用,但采用自映射頁(yè)面表的客戶(hù)OS的使用提供更大的性能提高。
在圖7所示的實(shí)施例中,說(shuō)明了故障過(guò)濾標(biāo)準(zhǔn)的集合,它允許完成對(duì)PTE的寫(xiě)入,在客戶(hù)操作系統(tǒng)沒(méi)有嘗試把“P”位設(shè)置為1時(shí)沒(méi)有傳遞故障或產(chǎn)生VM出口,同時(shí)仍然保護(hù)物理存儲(chǔ)空間以及制止為客戶(hù)軟件提供對(duì)頁(yè)面表的完全控制。這個(gè)規(guī)則的理論基礎(chǔ)在于,標(biāo)記了非當(dāng)前的PTE(即“P”位等于0)無(wú)法映射物理存儲(chǔ)頁(yè)面。因此,由客戶(hù)軟件改變的PTE無(wú)法映射物理存儲(chǔ)頁(yè)面,因此無(wú)法干擾VMM或者在另一個(gè)VM上運(yùn)行的軟件的操作。因此,不需要通知VMM頁(yè)面表修改,以及將允許頁(yè)面表寫(xiě)入繼續(xù)進(jìn)行,而沒(méi)有導(dǎo)致頁(yè)面錯(cuò)誤或VM出口。
參照?qǐng)D7,處理邏輯從在客戶(hù)軟件操作期間檢測(cè)頁(yè)面錯(cuò)誤條件(處理框702)以及接收與頁(yè)面錯(cuò)誤條件有關(guān)的頁(yè)面錯(cuò)誤信息(處理框704)開(kāi)始。
隨后,一組故障過(guò)濾標(biāo)準(zhǔn)被應(yīng)用于頁(yè)面錯(cuò)誤信息。明確地說(shuō),處理邏輯確定出錯(cuò)訪(fǎng)問(wèn)是否為寫(xiě)操作(判定框706)、寫(xiě)入PTE(判定框708),以及不是把“P”位設(shè)置為1的嘗試(即DATA.P==0,其中DATA為客戶(hù)正試圖寫(xiě)入的值)(判定框710)。如果這些確定為肯定的,則允許客戶(hù)操作系統(tǒng)的訪(fǎng)問(wèn)完成(即允許寫(xiě)入以修改存儲(chǔ)器),而沒(méi)有產(chǎn)生故障或VM出口(處理框714)。如果處理框706、708和710中的確定的任一個(gè)為否定,則控制被轉(zhuǎn)移到處理框712以確定VM出口是否要被產(chǎn)生,或者故障將被引導(dǎo)到客戶(hù)軟件,如結(jié)合圖2-5更詳細(xì)描述的。
在另一個(gè)實(shí)施例中(附圖中未示出),寫(xiě)入必須是對(duì)PTE進(jìn)行的條件可被取消,或者采用例如只要當(dāng)前位未被設(shè)置就允許對(duì)PTE或PDE寫(xiě)入的測(cè)試來(lái)代替。
參照?qǐng)D8,說(shuō)明更復(fù)雜的故障過(guò)濾標(biāo)準(zhǔn)集合,它包括以上結(jié)合圖7所述的故障過(guò)濾標(biāo)準(zhǔn)以及其它一些標(biāo)準(zhǔn)。故障過(guò)濾標(biāo)準(zhǔn)的這個(gè)集合允許客戶(hù)操作系統(tǒng)修改PTE中除PFN、讀/寫(xiě)以及當(dāng)前位之外的位,而不要求頁(yè)面錯(cuò)誤或產(chǎn)生VM出口。另外,允許讀/寫(xiě)和當(dāng)前位的某些修改,而不要求頁(yè)面錯(cuò)誤或產(chǎn)生VM出口。
處理邏輯從在客戶(hù)軟件操作期間檢測(cè)頁(yè)面錯(cuò)誤條件(處理框802)以及接收與頁(yè)面錯(cuò)誤條件有關(guān)的頁(yè)面故障信息(處理框804)開(kāi)始。隨后,處理邏輯確定出錯(cuò)訪(fǎng)問(wèn)是否為寫(xiě)操作(判定框806)、寫(xiě)入PTE(判定框808),以及不是把“P”位設(shè)置為1的嘗試(即DATA.P==0)(判定框810)。如果這些確定均為肯定,則允許客戶(hù)操作系統(tǒng)的訪(fǎng)問(wèn)完成(即允許寫(xiě)入以修改存儲(chǔ)器),而沒(méi)有產(chǎn)生故障或VM出口(處理框814)。如果處理框806或808中的確定為否定,則控制進(jìn)入處理框812,確定是否要求VM出口,如參照?qǐng)D2-5所述。
如果處理框810中的確定為否定,則應(yīng)用附加故障過(guò)濾規(guī)則。明確地說(shuō),處理邏輯確定PTE是否已經(jīng)在PTE中標(biāo)記為當(dāng)前(即,ADDR->P==1,其中ADDR為客戶(hù)軟件正嘗試寫(xiě)入的地址,以及ADDR->P表示在存儲(chǔ)器中位于ADDR的數(shù)據(jù)被解釋為PTE時(shí)的P位)(判定框816),PFN是否沒(méi)有改變(即ADDR->PFN==DATA.PFN)(判定框818),以及客戶(hù)是否正嘗試把PTE映射的頁(yè)面標(biāo)記為只讀(DATA.R/W==0)或者由PTE映射的頁(yè)面是否在存儲(chǔ)器中的PTE中已經(jīng)標(biāo)記為可寫(xiě)(ADDR->R/W==1)(判定框820)。如果這些確定為肯定,則允許客戶(hù)操作系統(tǒng)的訪(fǎng)問(wèn)完成(即允許寫(xiě)入以修改存儲(chǔ)器),而沒(méi)有產(chǎn)生故障或VM出口(處理框814)。如果處理框816、818和810中的任何確定為否定,則控制被轉(zhuǎn)移到處理框812以確定是否要求VM出口。
應(yīng)當(dāng)指出,圖7和圖8所示的過(guò)濾機(jī)制將濾除利用自映射PDE嘗試修改頁(yè)面表的訪(fǎng)問(wèn),如上所述。沒(méi)有采用自映射PDE的修改頁(yè)面表的嘗試不會(huì)被故障過(guò)濾標(biāo)準(zhǔn)濾除(即,在框708和808中對(duì)于寫(xiě)入是否對(duì)PTE進(jìn)行的確定將失敗)。然后,控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)用來(lái)確定是否需要VM出口,如圖2-5所示。從安全性或正確操作的觀點(diǎn)來(lái)看,這不會(huì)產(chǎn)生問(wèn)題,因?yàn)閂MM能夠確定是否在實(shí)際上編輯PTE。控制轉(zhuǎn)移過(guò)濾機(jī)制將配置成對(duì)所有寫(xiě)入頁(yè)面錯(cuò)誤產(chǎn)生VM出口,以及評(píng)估被寫(xiě)入的地址和數(shù)據(jù),以確定是否正嘗試頁(yè)面表編輯。
除以上參照?qǐng)D7和圖8所述的那些之外的各種故障過(guò)濾標(biāo)準(zhǔn)可用來(lái)過(guò)濾故障,而不失一般性。過(guò)濾的形式可由各種VMM控制字段(例如PTBASE)來(lái)控制,在一個(gè)實(shí)施例中,這些字段可駐留在VMCS中?;蛘撸^(guò)濾可由單個(gè)啟用位來(lái)控制,可以被硬編碼到處理器實(shí)現(xiàn)中,等等。
圖9是定義控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)和/或故障過(guò)濾標(biāo)準(zhǔn)的過(guò)程900的一個(gè)實(shí)施例的框圖。過(guò)程900可手動(dòng)或自動(dòng)執(zhí)行。
參照?qǐng)D9,過(guò)程900從識(shí)別故障信息的哪些組合(例如誤碼值、故障標(biāo)識(shí)符等)不要求到VMM的轉(zhuǎn)換或者應(yīng)當(dāng)被允許完成、忽略故障(處理框902)開(kāi)始。然后,可用于VM出口和/或故障過(guò)濾標(biāo)準(zhǔn)的字段最大數(shù)量以及字段語(yǔ)義被識(shí)別(處理框904),以及可用算子(例如布爾、算術(shù)等)被識(shí)別(處理框906)。此外,根據(jù)在處理框902-906所識(shí)別的信息,創(chuàng)建過(guò)濾標(biāo)準(zhǔn)(處理框908)。過(guò)濾標(biāo)準(zhǔn)可包括一個(gè)或多個(gè)預(yù)定值以及對(duì)預(yù)定值和誤碼執(zhí)行的一個(gè)或多個(gè)布爾邏輯和/或算術(shù)運(yùn)算。
這樣,已經(jīng)描述了處理在客戶(hù)軟件操作期間出現(xiàn)的故障的方法及裝置。應(yīng)當(dāng)理解,以上描述只是說(shuō)明性而不是限制性的。通過(guò)閱讀和理解以上說(shuō)明,本領(lǐng)域的技術(shù)人員將會(huì)十分清楚其它許多實(shí)施例。因此,本發(fā)明的范圍應(yīng)當(dāng)參照所附權(quán)利要求以及這些權(quán)利要求涵蓋的完整等效范圍來(lái)確定。
權(quán)利要求
1.一種方法,包括接收關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息;確定所述故障信息是否滿(mǎn)足至少一個(gè)過(guò)濾標(biāo)準(zhǔn);以及如果所述故障信息滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則禁止把控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM)。
2.如權(quán)利要求1所述的方法,其特征在于所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn)是至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn);以及禁止把控制轉(zhuǎn)移到所述VMM還包括如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則把所述故障傳遞給所述客戶(hù)軟件。
3.如權(quán)利要求1所述的方法,其特征在于,所述故障信息為故障標(biāo)識(shí)符、與所述故障相關(guān)聯(lián)的誤碼以及與所述故障相關(guān)聯(lián)的一個(gè)或多個(gè)附加數(shù)據(jù)值其中的至少一項(xiàng)。
4.如權(quán)利要求1所述的方法,其特征在于,所述故障表示中斷、異常和平臺(tái)事件其中的任一項(xiàng)。
5.如權(quán)利要求1所述的方法,其特征在于,所述故障信息包括多個(gè)值,所述多個(gè)值中的每個(gè)值指示特定條件的出現(xiàn)。
6.如權(quán)利要求5所述的方法,其特征在于,所述故障信息的值的一個(gè)或多個(gè)組合要求向所述VMM的轉(zhuǎn)移。
7.如權(quán)利要求1所述的方法,其特征在于還包括如果所述故障信息不滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則把控制轉(zhuǎn)移到所述VMM。
8.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn)采用在一個(gè)或多個(gè)指定字段中存儲(chǔ)的數(shù)據(jù)來(lái)定義。
9.如權(quán)利要求8所述的方法,其特征在于,所述一個(gè)或多個(gè)指定字段包括匹配字段和掩碼字段。
10.如權(quán)利要求8所述的方法,其特征在于,確定所述故障信息是否滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn)包括利用一個(gè)或多個(gè)布爾邏輯運(yùn)算將所述故障信息與存儲(chǔ)在一個(gè)或多個(gè)指定字段中的所述數(shù)據(jù)組合。
11.一種方法,包括利用關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息以及至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),確定所述故障是否要求控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM);以及如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則把所述故障傳遞給所述客戶(hù)軟件。
12.如權(quán)利要求11所述的方法,其特征在于,所述故障信息為故障標(biāo)識(shí)符、與所述故障相關(guān)聯(lián)的誤碼以及與所述故障相關(guān)聯(lián)的一個(gè)或多個(gè)附加數(shù)據(jù)值其中的至少一項(xiàng)。
13.如權(quán)利要求11所述的方法,其特征在于,所述故障表示中斷、異常和平臺(tái)事件其中的任一項(xiàng)。
14.如權(quán)利要求11所述的方法,其特征在于,所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)采用在一個(gè)或多個(gè)指定字段中存儲(chǔ)的數(shù)據(jù)來(lái)定義。
15.如權(quán)利要求14所述的方法,其特征在于,所述一個(gè)或多個(gè)指定字段包括匹配字段和掩碼字段。
16.如權(quán)利要求15所述的方法,其特征在于,確定與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障是否要求控制轉(zhuǎn)移到所述VMM包括采用按位進(jìn)行的“與”算子將所述故障信息與所述掩碼字段中存儲(chǔ)的數(shù)據(jù)組合;以及確定所述組合的結(jié)果是否與所述匹配字段中存儲(chǔ)的數(shù)據(jù)匹配。
17.如權(quán)利要求16所述的方法,其特征在于,確定與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障是否要求控制轉(zhuǎn)移到所述VMM還包括確定所述組合的結(jié)果是否與所述匹配字段中存儲(chǔ)的數(shù)據(jù)匹配;以及識(shí)別重定向圖中相應(yīng)位的值,所述相應(yīng)位的值指示所述故障是否要求控制轉(zhuǎn)移到所述VMM。
18.如權(quán)利要求16所述的方法,其特征在于,確定與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障是否要求控制轉(zhuǎn)移到所述VMM還包括確定所述組合的結(jié)果與所述匹配字段中存儲(chǔ)的數(shù)據(jù)不匹配;以及識(shí)別重定向圖中相應(yīng)位的值;以及對(duì)所述相應(yīng)位的值取反,所述相應(yīng)位的取反值指示所述故障是否要求控制轉(zhuǎn)移到所述VMM。
19.一種系統(tǒng),包括存儲(chǔ)器,其中存儲(chǔ)了客戶(hù)軟件;以及處理器,耦合到所述存儲(chǔ)器,運(yùn)行所述客戶(hù)軟件,確定關(guān)于與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息是否滿(mǎn)足至少一個(gè)過(guò)濾標(biāo)準(zhǔn),以及如果所述故障信息滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則禁止把控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM)。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn)是至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn);以及如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則所述處理器通過(guò)把所述故障傳遞給所述客戶(hù)軟件來(lái)禁止把控制轉(zhuǎn)移到所述VMM。
21.如權(quán)利要求19所述的系統(tǒng),其特征在于,如果所述故障信息不滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則所述處理器還把控制轉(zhuǎn)移到所述VMM。
22.一種系統(tǒng),包括存儲(chǔ)器,其中存儲(chǔ)了客戶(hù)軟件;以及處理器,耦合到所述存儲(chǔ)器,運(yùn)行所述客戶(hù)軟件,利用關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息以及至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),確定所述故障是否要求控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM),以及如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則把所述故障傳遞給所述客戶(hù)軟件。
23.如權(quán)利要求22所述的系統(tǒng),其特征在于,所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)采用在一個(gè)或多個(gè)指定字段中存儲(chǔ)的數(shù)據(jù)來(lái)定義,所述一個(gè)或多個(gè)指定字段包括匹配字段和掩碼字段。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述處理器通過(guò)以下步驟來(lái)確定與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障是否要求控制轉(zhuǎn)移到所述VMM采用按位進(jìn)行的“與”算子將所述故障信息與所述掩碼字段中存儲(chǔ)的數(shù)據(jù)組合;以及確定所述組合的結(jié)果是否與所述匹配字段中存儲(chǔ)的數(shù)據(jù)匹配。
25.一種包含指令的機(jī)器可讀媒體,所述指令在由處理系統(tǒng)執(zhí)行時(shí),導(dǎo)致所述處理系統(tǒng)執(zhí)行一種方法,該方法包括接收關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息;確定所述故障信息是否滿(mǎn)足至少一個(gè)過(guò)濾標(biāo)準(zhǔn);以及如果所述故障信息滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則禁止把控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM)。
26.如權(quán)利要求25所述的機(jī)器可讀媒體,其特征在于所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn)是至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn);以及禁止把控制轉(zhuǎn)移到所述VMM包括如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則把所述故障傳遞給所述客戶(hù)軟件。
27.如權(quán)利要求25所述的機(jī)器可讀媒體,其特征在于所述方法還包括如果所述故障信息不滿(mǎn)足所述至少一個(gè)過(guò)濾標(biāo)準(zhǔn),則把控制轉(zhuǎn)移到所述VMM。
28.一種包含指令的機(jī)器可讀媒體,所述指令在由處理系統(tǒng)執(zhí)行時(shí),導(dǎo)致所述處理系統(tǒng)執(zhí)行一種方法,該方法包括利用關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息以及至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),確定所述故障是否要求控制轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM);以及如果所述故障信息滿(mǎn)足所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn),則把所述故障傳遞給所述客戶(hù)軟件。
29.如權(quán)利要求28所述的機(jī)器可讀媒體,其特征在于,所述至少一個(gè)控制轉(zhuǎn)移過(guò)濾標(biāo)準(zhǔn)采用在一個(gè)或多個(gè)指定字段中存儲(chǔ)的數(shù)據(jù)來(lái)定義,所述一個(gè)或多個(gè)指定字段包括匹配字段和掩碼字段。
30.如權(quán)利要求29所述的機(jī)器可讀媒體,其特征在于,所述處理器通過(guò)以下步驟來(lái)確定與所述客戶(hù)軟件的操作相關(guān)聯(lián)的故障是否要求控制轉(zhuǎn)移到所述VMM采用按位進(jìn)行的“與”算子將所述故障信息與所述掩碼字段中存儲(chǔ)的數(shù)據(jù)組合;以及確定所述組合的結(jié)果是否與所述匹配字段中存儲(chǔ)的數(shù)據(jù)匹配。
全文摘要
在一個(gè)實(shí)施例中,接收關(guān)于與客戶(hù)軟件的操作相關(guān)聯(lián)的故障的故障信息。此外,確定故障信息是否滿(mǎn)足一個(gè)或多個(gè)過(guò)濾標(biāo)準(zhǔn)。如果該確定為肯定的,則控制仍保留在客戶(hù)軟件中而不轉(zhuǎn)移到虛擬機(jī)監(jiān)控器(VMM)。
文檔編號(hào)G06F9/455GK1679001SQ03819900
公開(kāi)日2005年10月5日 申請(qǐng)日期2003年6月13日 優(yōu)先權(quán)日2002年6月29日
發(fā)明者S·貝內(nèi)特, A·安德森, S·耶亞辛, A·卡吉, G·奈格爾, R·烏爾利希, X·鄒, M·科祖赫 申請(qǐng)人:英特爾公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
盘锦市| 石河子市| 萨迦县| 宝应县| 松原市| 绥宁县| 临安市| 海阳市| 汪清县| 江门市| 海丰县| 庄河市| 新巴尔虎左旗| 岚皋县| 永新县| 扶绥县| 宁夏| 含山县| 胶州市| 明水县| 米易县| 屯留县| 红安县| 修水县| 禹城市| 太仆寺旗| 桐柏县| 皋兰县| 南开区| 合肥市| 镇雄县| 广宁县| 古浪县| 磐石市| 余姚市| 阳谷县| 宁夏| 昆明市| 睢宁县| 读书| 甘谷县|