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

在恢復(fù)虛擬機(jī)的操作時(shí)將中斷或異常轉(zhuǎn)向的制作方法

文檔序號(hào):6493881閱讀:154來(lái)源:國(guó)知局
專利名稱:在恢復(fù)虛擬機(jī)的操作時(shí)將中斷或異常轉(zhuǎn)向的制作方法
領(lǐng)域一般來(lái)說(shuō),本發(fā)明的實(shí)施例涉及虛擬機(jī),更具體來(lái)說(shuō),涉及處理虛擬機(jī)環(huán)境中的故障。
背景傳統(tǒng)的虛擬機(jī)監(jiān)控器(VMM)通常在計(jì)算機(jī)上運(yùn)行,以及為其它軟件提供一個(gè)或多個(gè)虛擬機(jī)的抽象。各虛擬機(jī)可用作獨(dú)立平臺(tái),運(yùn)行它自己的“客戶操作系統(tǒng)”(即VMM接管的操作系統(tǒng)(OS))和其它軟件,它們統(tǒng)稱為客戶軟件。客戶軟件預(yù)期工作起來(lái)好像它在專用計(jì)算機(jī)而不是虛擬機(jī)上運(yùn)行。也就是說(shuō),客戶軟件預(yù)期將控制各種事件,以及有權(quán)訪問(wèn)硬件資源。硬件資源可包括處理器駐留資源(例如控制寄存器)、駐留在存儲(chǔ)器中的資源(例如描述符表)以及駐留在基礎(chǔ)硬件平臺(tái)上的資源(例如輸入輸出裝置)。事件可包括內(nèi)部中斷、外部中斷、異常、平臺(tái)事件(例如初始化(INIT)或系統(tǒng)管理中斷(SMI))等。在虛擬機(jī)環(huán)境中,VMM應(yīng)當(dāng)能夠具有對(duì)如前面部分所述的這些事件和硬件資源的最終控制,以便提供在虛擬機(jī)上運(yùn)行的客戶軟件的適當(dāng)操作,以及提供對(duì)虛擬機(jī)上運(yùn)行的客戶軟件及它們之間的防范。為了實(shí)現(xiàn)這個(gè)目的,當(dāng)客戶軟件訪問(wèn)受保護(hù)資源時(shí),或者當(dāng)其它事件(例如中斷或異常)出現(xiàn)時(shí),VMM通常接收控制。例如,當(dāng)VMM支持的虛擬機(jī)中的操作使系統(tǒng)裝置產(chǎn)生中斷時(shí),當(dāng)前運(yùn)行的虛擬機(jī)被中斷,以及處理器的控制被傳遞給VMM。然后,VMM接收該中斷,并且自行處理中斷或者調(diào)用適當(dāng)?shù)奶摂M機(jī),并把中斷傳遞給那個(gè)虛擬機(jī)。
附圖概述通過(guò)參照用來(lái)說(shuō)明本發(fā)明的實(shí)施例的以下描述和附圖,可以最佳地理解本發(fā)明。附圖包括

圖1說(shuō)明本發(fā)明的一些實(shí)施例在其中可工作的虛擬機(jī)環(huán)境的一個(gè)實(shí)施例;圖2是用于處理虛擬機(jī)環(huán)境中的故障的過(guò)程的一個(gè)實(shí)施例的流程圖;圖3說(shuō)明存儲(chǔ)故障標(biāo)識(shí)信息的VMCS字段的示范格式;圖4是用于采用VMM提供的故障信息來(lái)處理虛擬機(jī)環(huán)境中的故障的過(guò)程的一個(gè)實(shí)施例的流程圖。
實(shí)施例的描述描述用于采用VMM提供的故障信息來(lái)處理虛擬機(jī)環(huán)境中的故障的方法及設(shè)備。在以下描述中,為了說(shuō)明的目的,陳述了許多具體細(xì)節(jié)。然而,本領(lǐng)域的技術(shù)人員十分清楚,即使沒有這些具體細(xì)節(jié),也可以實(shí)施本發(fā)明的實(shí)施例。按照對(duì)計(jì)算機(jī)系統(tǒng)的寄存器或存儲(chǔ)器中的數(shù)據(jù)位的操作的算法和符號(hào)表示來(lái)提供以下詳細(xì)說(shuō)明的一些部分。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用來(lái)向本領(lǐng)域的其它技術(shù)人員最有效地傳達(dá)其工作實(shí)質(zhì)的方式。算法在此以及一般被認(rèn)為是產(chǎn)生預(yù)期結(jié)果的獨(dú)立操作序列。操作是要求物理量的物理處理的那些操作。這些量通常但不一定采取電或磁信號(hào)的形式,它們能夠被存儲(chǔ)、傳送、組合、比較或者以其它方式處理。主要為了一般使用的原因,將這些信號(hào)稱作位、值、元素、符號(hào)、字符、項(xiàng)、數(shù)等,已經(jīng)證明有時(shí)便利。但應(yīng)當(dāng)記住,所有這些及類似的術(shù)語(yǔ)均與適當(dāng)?shù)奈锢砹筷P(guān)聯(lián),并且只是應(yīng)用于這些量上的便捷標(biāo)簽。若沒有明確說(shuō)明,從以下論述中應(yīng)當(dāng)知道,采用諸如“處理”或“計(jì)算”或“運(yùn)算”或者“確定”等術(shù)語(yǔ)的論述可表示計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算裝置的動(dòng)作和過(guò)程,其中所述計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算裝置處理表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器中的物理(電子)量的數(shù)據(jù)并將其轉(zhuǎn)換為同樣表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或者其它這種信息存儲(chǔ)、傳送或顯示裝置中的物理量的其它數(shù)據(jù)。在對(duì)實(shí)施例的以下詳細(xì)描述中,參照附圖,附圖舉例說(shuō)明可實(shí)現(xiàn)本發(fā)明的特定實(shí)施例。附圖中,相似的標(biāo)號(hào)描述若干視圖中基本上相似的組件。對(duì)這些實(shí)施例進(jìn)行充分詳細(xì)的描述,使本領(lǐng)域的技術(shù)人員能夠?qū)嵤┍景l(fā)明。可采用其它實(shí)施例,并且可進(jìn)行結(jié)構(gòu)、邏輯以及電氣變更,而沒有背離本發(fā)明的范圍。此外,要理解,本發(fā)明的各種實(shí)施例雖然有所不同,但不一定是相互排斥的。例如,在一個(gè)實(shí)施例中描述的特定功能、結(jié)構(gòu)或特征可包含在其它實(shí)施例中。雖然以下實(shí)例可能在執(zhí)行單元和邏輯電路的上下文中描述本發(fā)明的實(shí)施例,但是,本發(fā)明的其它實(shí)施例也可通過(guò)軟件來(lái)實(shí)現(xiàn)。例如,在一些實(shí)施例中,本發(fā)明可作為計(jì)算機(jī)程序產(chǎn)品或軟件來(lái)提供,它可包括其中已存儲(chǔ)指令的機(jī)器或計(jì)算機(jī)可讀介質(zhì),這些指令可用于對(duì)計(jì)算機(jī)(或其它電子裝置)編程以執(zhí)行根據(jù)本發(fā)明的過(guò)程。在其它實(shí)施例中,本發(fā)明的步驟可由包含用于執(zhí)行步驟的硬連線邏輯的特定硬件組件來(lái)執(zhí)行,或者由編程計(jì)算機(jī)組件和定制硬件組件的任何組合來(lái)執(zhí)行。因此,機(jī)器可讀介質(zhì)可包括用于存儲(chǔ)或傳送機(jī)器(例如計(jì)算機(jī))可讀形式的信息的任何機(jī)構(gòu),但不限于軟盤、光盤、小型盤只讀存儲(chǔ)器(CD-ROM)以及磁光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、可擦可編程只讀存儲(chǔ)器(EPROM)、電可擦可編程只讀存儲(chǔ)器(EEPROM)、磁或光卡、閃速存儲(chǔ)器、基于因特網(wǎng)的傳輸、電、光、聲或其它形式的傳播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào)等)等等。此外,設(shè)計(jì)可經(jīng)過(guò)各種階段,從創(chuàng)建到模擬直到制造。
表示設(shè)計(jì)的數(shù)據(jù)可通過(guò)許多方式來(lái)表示設(shè)計(jì)。首先,如在模擬中有用的那樣,硬件可采用硬件描述語(yǔ)言或者另一種功能描述語(yǔ)言來(lái)表示。另外,采用邏輯和/或晶體管門電路的電路級(jí)模型可在設(shè)計(jì)過(guò)程的某些階段產(chǎn)生。此外,在某個(gè)階段,大部分設(shè)計(jì)達(dá)到表示硬件模型中的各種裝置的物理設(shè)置的數(shù)據(jù)級(jí)。在使用傳統(tǒng)半導(dǎo)體制造技術(shù)的情況中,表示硬件模型的數(shù)據(jù)可能是指定用來(lái)產(chǎn)生集成電路的掩模的不同掩模層上的各種特征是否存在的數(shù)據(jù)。在設(shè)計(jì)的任何表示中,數(shù)據(jù)可通過(guò)任何形式的機(jī)器可讀介質(zhì)來(lái)存儲(chǔ)。經(jīng)調(diào)制或者以其它方式產(chǎn)生以便傳送這種信息的光或電波、存儲(chǔ)器或者磁或光存儲(chǔ)裝置、如盤可能是機(jī)器可讀介質(zhì)。這些介質(zhì)的任一種可“攜帶”或“表明”設(shè)計(jì)或軟件信息。傳送表明或攜帶代碼或設(shè)計(jì)的電載體以便執(zhí)行電信號(hào)的復(fù)制、緩沖或重傳時(shí),制作新的副本。因此,通信提供商或網(wǎng)絡(luò)提供商可制作體現(xiàn)本發(fā)明的技術(shù)的產(chǎn)品(載體)的副本。圖1說(shuō)明本發(fā)明的一些實(shí)施例在其中可工作的虛擬機(jī)環(huán)境100。在虛擬機(jī)環(huán)境100中,裸平臺(tái)硬件110包括計(jì)算平臺(tái),它可以例如能夠運(yùn)行標(biāo)準(zhǔn)操作系統(tǒng)(0S)和/或虛擬機(jī)監(jiān)控器(VMM)、如VMM 112。VMM 112雖然通常以軟件來(lái)實(shí)現(xiàn),但可模擬裸機(jī)接口并將其導(dǎo)出到高級(jí)軟件。這種高級(jí)軟件可包括標(biāo)準(zhǔn)或?qū)崟r(shí)OS,可以是具有有限操作系統(tǒng)功能性的高度剝離的操作環(huán)境,或者可能不包括傳統(tǒng)的OS工具?;蛘?,例如,VMM 112可以在另一個(gè)VMM之中或之上運(yùn)行。VMM及其典型特征和功能性是本領(lǐng)域的技術(shù)人員熟知的,并且可能例如以軟件、固件、硬件或通過(guò)各種技術(shù)的組合來(lái)實(shí)現(xiàn)。平臺(tái)硬件110包括處理器118和存儲(chǔ)器120。處理器118可以是能夠運(yùn)行軟件的任何類型的處理器,例如微處理器、數(shù)字信號(hào)處理器、微控制器等等。雖然在圖1中僅示出一個(gè)處理器118,但是,平臺(tái)硬件110可包括一個(gè)或多個(gè)這類處理器。存儲(chǔ)器120可能是任何類型的可記錄/不可記錄介質(zhì)(例如,隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、磁盤存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、閃速存儲(chǔ)裝置等),以及電、光、聲或其它形式的傳播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào)等),以上裝置的任何組合,或者處理器118可讀的其它任何類型的機(jī)器介質(zhì)。存儲(chǔ)器120可存儲(chǔ)用于執(zhí)行本發(fā)明的方法實(shí)施例的運(yùn)行的指令。平臺(tái)硬件110可能是個(gè)人計(jì)算機(jī)(PC)、大型計(jì)算機(jī)、手持裝置、便攜計(jì)算機(jī)、機(jī)頂盒或其它任何計(jì)算系統(tǒng)的。VMM112為其它軟件(即“客戶”軟件)提供一個(gè)或多個(gè)虛擬機(jī)(VM)的抽象,它可向各種客戶提供相同或不同抽象。圖1表示三個(gè)VM 130、140和150。在各VM上運(yùn)行的客戶軟件可包括諸如客戶OS 154、160或170等客戶OS以及各種客戶軟件應(yīng)用程序152、162和172??蛻鬙S 154、160和170預(yù)期將訪問(wèn)客戶OS正在其中運(yùn)行的相應(yīng)VM(例如VM 130、140和150)中的物理資源(例如處理器寄存器、存儲(chǔ)器和輸入-輸出(I/O)裝置)以及執(zhí)行其它功能。例如,根據(jù)VM中提供的處理器和平臺(tái)的體系結(jié)構(gòu),客戶OS預(yù)期將有權(quán)訪問(wèn)所有寄存器、高速緩存、結(jié)構(gòu)、I/O裝置、存儲(chǔ)器等??捎煽蛻糗浖L問(wèn)的資源可分類為“特許”或者“非特許”。對(duì)于特許資源,VMM112有助于客戶軟件所需的功能性,同時(shí)保持對(duì)這些特許資源的最終控制。非特許資源不需要由VMM 112控制,并且可由客戶軟件訪問(wèn)。此外,每個(gè)客戶OS預(yù)期將處理諸如異常(例如頁(yè)面故障、一般保護(hù)故障等)、中斷(例如硬件中斷、軟件中斷)以及平臺(tái)事件(例如初始化(INIT)和系統(tǒng)管理中斷(SMI))之類的各種故障事件。這些故障事件的一部分是“特許的”,因?yàn)樗鼈儽仨氂蒝MM 112來(lái)處理,以便確保VM 130至150的正確操作,以及用于對(duì)客戶軟件及其之間的防范。當(dāng)特許故障事件出現(xiàn)或者客戶軟件嘗試訪問(wèn)特許資源時(shí),控制可被轉(zhuǎn)移到VMM 112??刂茝目蛻糗浖絍MM 112的轉(zhuǎn)移在本文稱作VM出口。在幫助資源訪問(wèn)或者適當(dāng)?shù)靥幚硎录?,VMM 112可把控制返回給客戶軟件??刂茝腣MM 112到客戶軟件的轉(zhuǎn)移稱作VM入口。在一個(gè)實(shí)施例中,VMM 112通過(guò)執(zhí)行VM入口指令來(lái)請(qǐng)求處理器118執(zhí)行VM入口。在一個(gè)實(shí)施例中,處理器118根據(jù)虛擬機(jī)控制結(jié)構(gòu)(VMCS)126中存儲(chǔ)的數(shù)據(jù)來(lái)控制VM 130、140和150的操作。VMCS126是一種可包含客戶軟件的狀態(tài)、VMM 112的狀態(tài)、表明VMM 112如何希望控制客戶軟件的操作的運(yùn)行控制信息、控制VMM 112與VM之間轉(zhuǎn)變的信息等的結(jié)構(gòu)。在一個(gè)實(shí)施例中,VMCS存儲(chǔ)在存儲(chǔ)器120中。在一些實(shí)施例中,多個(gè)VMCS結(jié)構(gòu)用來(lái)支持多個(gè)VM。當(dāng)特許故障事件出現(xiàn)時(shí),VMM 112可自行處理故障,或者判定故障是否需要通過(guò)適當(dāng)?shù)腣M來(lái)處理。如果VMM 112判定故障要由VM來(lái)處理,則VMM 112請(qǐng)求處理器118調(diào)用這個(gè)VM并且把故障傳遞給這個(gè)VM。在一個(gè)實(shí)施例中,VMM 112通過(guò)把故障指示符設(shè)定到傳遞值并且產(chǎn)生VM入口請(qǐng)求來(lái)實(shí)現(xiàn)這個(gè)目的。在一個(gè)實(shí)施例中,故障指示符存儲(chǔ)在VMCS 126中。在一個(gè)實(shí)施例中,處理器118包括故障傳遞邏輯124,它接收VMM 112對(duì)于VM入口的請(qǐng)求,并確定VMM 122是否已經(jīng)請(qǐng)求向VM的故障傳遞。在一個(gè)實(shí)施例中,故障傳遞邏輯124根據(jù)VMCS 126中存儲(chǔ)的故障指示符的當(dāng)前值來(lái)進(jìn)行這個(gè)確定。如果故障傳遞邏輯124確定VMM已請(qǐng)求向VM的故障傳遞,則在把控制轉(zhuǎn)到這個(gè)VM時(shí),它把故障傳遞給VM。在一個(gè)實(shí)施例中,故障的傳遞涉及搜索與所傳遞的故障關(guān)聯(lián)的入口的重定向結(jié)構(gòu),從這個(gè)入口中提取被指定為處理這個(gè)故障的例程的位置的描述符,以及采用描述符跳轉(zhuǎn)到例程的開始。被指定為處理相應(yīng)中斷、異常或其它任何故障的例程稱作句柄。在一些指令集體系結(jié)構(gòu)(ISA)中,某些故障與在跳轉(zhuǎn)到句柄的開始之前可能需要入棧(或者在硬件寄存器中或經(jīng)由其它方式來(lái)提供)的錯(cuò)誤代碼相關(guān)聯(lián)。在故障傳遞期間,處理器118可執(zhí)行一個(gè)或多個(gè)地址轉(zhuǎn)換,把地址從虛擬形式轉(zhuǎn)換為物理形式。例如,中斷表的地址或者關(guān)聯(lián)句柄的地址可能是虛擬地址。處理器還可能需要在故障傳遞期間執(zhí)行各種校驗(yàn)。例如,處理器可執(zhí)行一致性校驗(yàn),例如分段寄存器和訪問(wèn)地址的驗(yàn)證(產(chǎn)生極限違反故障、段不存在故障、棧故障等)、可能產(chǎn)生保護(hù)故障(例如一般保護(hù)故障)的許可級(jí)校驗(yàn)等。故障轉(zhuǎn)向期間的地址轉(zhuǎn)換和校驗(yàn)可能產(chǎn)生各種故障,例如頁(yè)面故障、一般保護(hù)故障等。在當(dāng)前故障的傳遞過(guò)程中出現(xiàn)的一些故障可能引起VM出口。例如,如果VMM 112要求VM在頁(yè)面故障上存在以便保護(hù)物理存儲(chǔ)器并且使其虛擬化,則在到VM的當(dāng)前故障的傳遞過(guò)程中出現(xiàn)的頁(yè)面故障將產(chǎn)生VM出口。在一個(gè)實(shí)施例中,故障傳遞邏輯124通過(guò)校驗(yàn)當(dāng)前故障的傳遞是否成功來(lái)解決上述可能的附加故障的出現(xiàn)。如果故障傳遞邏輯124確定傳遞不成功,則進(jìn)一步確定所得附加故障是否引起VM出口。如果是的話,則故障傳遞邏輯124產(chǎn)生VM出口。如果不是的話,則故障傳遞邏輯124把附加故障傳遞給VM。圖2是用于處理虛擬機(jī)環(huán)境中的故障的過(guò)程200的一個(gè)實(shí)施例的流程圖。該過(guò)程可通過(guò)可包括硬件(例如電路、專用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器的軟件)或者它們兩者的組合的處理邏輯來(lái)執(zhí)行。在一個(gè)實(shí)施例中,過(guò)程200由圖1的故障傳遞邏輯124來(lái)執(zhí)行。參照?qǐng)D2,過(guò)程200從處理邏輯接收把控制從VMM轉(zhuǎn)到VM的請(qǐng)求(處理框202)開始。在一個(gè)實(shí)施例中,經(jīng)由VMM執(zhí)行的VM入口指令來(lái)接收轉(zhuǎn)移控制的請(qǐng)求。在判定框204,處理邏輯確定VMM是否已請(qǐng)求向?qū)⒈徽{(diào)用的VM的故障傳遞。故障可能是內(nèi)部中斷(例如軟件中斷)、外部中斷(例如硬件中斷)、異常(例如頁(yè)面故障)、平臺(tái)事件(例如初始化(INIT)或者系統(tǒng)管理中斷(SMI))或者其它任何故障事件。在一個(gè)實(shí)施例中,處理邏輯通過(guò)讀取VMM所保存的故障指示符的當(dāng)前值來(lái)確定VMM是否已請(qǐng)求故障的傳遞。故障指示符可駐留在VMCS或者VMM和處理邏輯200可訪問(wèn)的其它任何數(shù)據(jù)結(jié)構(gòu)中。在一個(gè)實(shí)施例中,當(dāng)VMM希望讓故障傳遞到VM時(shí),VMM把故障指示符設(shè)置到傳遞值,然后產(chǎn)生把控制轉(zhuǎn)到這個(gè)VM的請(qǐng)求。如果在VM入口期間不需要故障傳遞,則VMM在請(qǐng)求向VM的控制轉(zhuǎn)移之前把故障指示符設(shè)置到非傳遞值。下面將針對(duì)圖3來(lái)論述這個(gè)方面。如果處理邏輯確定VMM已請(qǐng)求故障的傳遞,則處理邏輯把故障傳遞給VM,同時(shí)把控制轉(zhuǎn)到VM(處理框206)。然后,處理邏輯檢查故障的傳遞是否成功(判定框208)。如果是的話,則過(guò)程200結(jié)束。如果不是的話,則處理邏輯確定所得附加故障是否引起VM出口(判定框210)。如果是的話,則處理邏輯產(chǎn)生VM出口(處理框212)。如果不是的話,則處理邏輯把附加故障傳遞給VM(處理框214),以及返回到處理框208,檢查是否成功傳遞這個(gè)附加故障。如果是的話,則過(guò)程200結(jié)束。如果不是的話,則處理邏輯返回到判定框210。如果處理邏輯確定VMM沒有請(qǐng)求故障的傳遞,則處理邏輯把控制轉(zhuǎn)到VM,而沒有執(zhí)行任何故障相關(guān)操作(處理框218)。在一個(gè)實(shí)施例中,當(dāng)處理邏輯需要把故障傳遞給VM時(shí),它搜索與被傳遞的故障關(guān)聯(lián)的入口的重定向結(jié)構(gòu)(例如IntelPentium4的指令集體系結(jié)構(gòu)(ISA)中的中斷描述符表(在本文稱作IA-32ISA)),從這個(gè)入口中提取與這個(gè)故障關(guān)聯(lián)的句柄的描述符,以及采用該描述符跳轉(zhuǎn)到句柄的開始。中斷描述符表可采用故障標(biāo)識(shí)信息、如故障標(biāo)識(shí)符和故障類型(例如外部中斷、內(nèi)部中斷、不可屏蔽中斷(NMI)、異常等)來(lái)搜索。在一個(gè)實(shí)施例中,某些故障(例如一些異常)與在跳轉(zhuǎn)到句柄的開始之前需要入棧(或者在硬件寄存器中或經(jīng)由其它方式來(lái)提供)的錯(cuò)誤代碼關(guān)聯(lián)。在一個(gè)實(shí)施例中,故障標(biāo)識(shí)信息及關(guān)聯(lián)錯(cuò)誤代碼由VMM采用指定數(shù)據(jù)結(jié)構(gòu)來(lái)提供。在一個(gè)實(shí)施例中,指定數(shù)據(jù)結(jié)構(gòu)為VMCS的組成部分。圖3說(shuō)明存儲(chǔ)故障標(biāo)識(shí)信息的VMCS字段的示范格式。這個(gè)VMCS字段稱作故障信息字段。參照?qǐng)D3,在一個(gè)實(shí)施例中,故障信息字段為32位字段,在其中,前8位存儲(chǔ)故障的標(biāo)識(shí)符(例如中斷或異常),后2位標(biāo)識(shí)故障的類型(例如外部中斷、軟件中斷、NMI、異常等),位11表明與這個(gè)故障關(guān)聯(lián)的錯(cuò)誤代碼(若有的話)是否要提供給相應(yīng)的句柄(通過(guò)入棧,存儲(chǔ)在硬件寄存器中,等等),以及位31是指定故障是否要如上所述傳遞給VM的故障指示符。如果故障信息字段的位11表明錯(cuò)誤代碼要提供給句柄,則第二VMCS字段被訪問(wèn),以便得到與這個(gè)故障關(guān)聯(lián)的錯(cuò)誤代碼。第二VMCS字段稱作故障錯(cuò)誤代碼字段。在一個(gè)實(shí)施例中,當(dāng)VMM希望故障被傳遞給VM時(shí),VMM把故障標(biāo)識(shí)符和故障類型存儲(chǔ)在故障信息字段中,并且把故障指示符(位31)設(shè)置到傳遞值(例如位31=1)。另外,如果故障與需要被提供給句柄的錯(cuò)誤代碼關(guān)聯(lián),則VMM把位11設(shè)置到傳遞值(例如位11=1),并且把錯(cuò)誤代碼值存儲(chǔ)在VMCS的故障錯(cuò)誤代碼字段中。圖4是用于采用VMM提供的故障信息來(lái)處理虛擬機(jī)環(huán)境中的故障的過(guò)程400的一個(gè)實(shí)施例的流程圖。該過(guò)程可通過(guò)可包括硬件(例如電路、專用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器的)或者它們兩者的組合的處理邏輯來(lái)執(zhí)行。在一個(gè)實(shí)施例中,過(guò)程400由圖1的故障傳遞邏輯124來(lái)執(zhí)行。參照?qǐng)D4,過(guò)程400從處理邏輯檢測(cè)由VMM對(duì)VM入口指令的執(zhí)行(處理框402)開始。進(jìn)行響應(yīng),處理邏輯訪問(wèn)VMM控制的故障指示符位(處理框403),并確定故障是否要傳遞給將被調(diào)用的VM(判定框404)。如果不是的話,則處理邏輯忽略其余的故障信息,并執(zhí)行所請(qǐng)求的VM入口(處理框406)。如果是的話,則處理邏輯從VMCS的故障信息字段中獲取故障信息(處理框408),并確定與這個(gè)故障關(guān)聯(lián)的錯(cuò)誤代碼是否要提供給故障的句柄(判定框410)。如果是的話,則處理邏輯從VMCS的故障錯(cuò)誤代碼字段中獲取錯(cuò)誤代碼(處理框412)。如果不是的話,則處理邏輯直接進(jìn)入處理框414。在處理框414,處理邏輯把故障傳遞給VM,同時(shí)執(zhí)行VM入口。然后,處理邏輯檢查故障的傳遞是否成功(判定框416)。如果是的話,則過(guò)程400結(jié)束。如果不是的話,則處理邏輯確定所得附加故障是否引起VM出口(判定框418)。如果是的話,則處理邏輯產(chǎn)生VM出口(處理框420)。如果不是的話,則處理邏輯把附加故障傳遞給VM(處理框422),以及返回到處理框416,檢查是否成功傳遞了這個(gè)附加故障。如果是的話,則過(guò)程400結(jié)束。如果不是的話,則處理邏輯返回到判定框418。這樣描述了用于處理虛擬機(jī)環(huán)境中的故障的方法及設(shè)備。應(yīng)當(dāng)理解,以上描述只是說(shuō)明性而不是限制性的。通過(guò)閱讀和理解以上描述,本領(lǐng)域的技術(shù)人員將會(huì)十分清楚其它許多實(shí)施例。因此,本發(fā)明的范圍應(yīng)當(dāng)參照所附權(quán)利要求以及這些權(quán)利要求涵蓋的完整等效范圍共同確定。
權(quán)利要求
1.一種方法,包括接收把控制從虛擬機(jī)監(jiān)控器(VMM)轉(zhuǎn)到虛擬機(jī)(VM)的請(qǐng)求;確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞;以及如果所述VMM已請(qǐng)求向所述VM的故障傳遞,則在把控制轉(zhuǎn)到所述VM時(shí),把所述故障傳遞給所述VM。
2.如權(quán)利要求1所述的方法,其特征在于,把控制轉(zhuǎn)到所述VM的所述請(qǐng)求經(jīng)由所述VMM執(zhí)行的指令來(lái)接收。
3.如權(quán)利要求1所述的方法,其特征在于,確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞包括訪問(wèn)所述VMM保存的故障指示符;以及確定所述故障指示符是否被設(shè)置到傳遞值。
4.如權(quán)利要求1所述的方法,其特征在于,還包括確定所述故障的標(biāo)識(shí)符和所述故障的類型;以及確定所述故障是否與要提供給和所述故障關(guān)聯(lián)的句柄的錯(cuò)誤代碼相關(guān)聯(lián)。
5.如權(quán)利要求4所述的方法,其特征在于,還包括如果所述故障要求向與所述故障關(guān)聯(lián)的句柄傳遞錯(cuò)誤代碼,則檢索所述錯(cuò)誤代碼并把所述錯(cuò)誤代碼提供給所述句柄。
6.如權(quán)利要求4所述的方法,其特征在于,所述故障指示符、所述故障標(biāo)識(shí)符和所述故障的類型存儲(chǔ)在第一字段中;以及所述錯(cuò)誤代碼存儲(chǔ)在第二字段中。
7.如權(quán)利要求6所述的方法,其特征在于,所述第一字段和所述第二字段包含在虛擬機(jī)控制結(jié)構(gòu)(VMCS)中。
8.如權(quán)利要求1所述的方法,其特征在于,還包括確定所述故障的傳遞是否成功;確定新的故障是否要求控制轉(zhuǎn)到所述VMM;以及如果所述新的故障要求所述轉(zhuǎn)變,則把控制轉(zhuǎn)到所述VMM。
9.如權(quán)利要求8所述的方法,其特征在于,還包括確定所述新的故障不要求控制轉(zhuǎn)到所述VMM;以及把所述新的故障傳遞給所述VM。
10.一種設(shè)備,包括虛擬機(jī)監(jiān)控器(VMM);由所述VMM控制的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)故障指示符;以及故障傳遞邏輯,接收把控制從所述VMM轉(zhuǎn)到虛擬機(jī)(VM)的請(qǐng)求,采用所述故障指示符來(lái)確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞,以及如果所述VMM已請(qǐng)求向所述VM的故障傳遞,則在把控制轉(zhuǎn)到所述VM時(shí)把故障傳遞給所述VM。
11.如權(quán)利要求10所述的設(shè)備,其特征在于,把控制轉(zhuǎn)到所述VM的所述請(qǐng)求經(jīng)由所述VMM執(zhí)行的指令來(lái)接收。
12.如權(quán)利要求10所述的設(shè)備,其特征在于,所述故障傳遞邏輯通過(guò)訪問(wèn)所述VMM所保存的所述故障指示符以及確定所述故障指示符是否設(shè)置到傳遞值,確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞。
13.如權(quán)利要求10所述的設(shè)備,其特征在于,所述故障傳遞邏輯還確定所述故障的標(biāo)識(shí)符和所述故障的類型,以及確定所述故障是否與要提供給和所述故障關(guān)聯(lián)的句柄的錯(cuò)誤代碼相關(guān)聯(lián)。
14.如權(quán)利要求13所述的設(shè)備,其特征在于,所述故障傳遞邏輯還檢索所述錯(cuò)誤代碼,以及如果所述故障要求把錯(cuò)誤代碼傳遞給與所述故障關(guān)聯(lián)的句柄,則向所述句柄提供所述錯(cuò)誤代碼。
15.如權(quán)利要求13所述的設(shè)備,其特征在于所述故障指示符、所述故障標(biāo)識(shí)符和所述故障的類型存儲(chǔ)在第一字段中;以及所述錯(cuò)誤代碼存儲(chǔ)在第二字段中。
16.如權(quán)利要求15所述的設(shè)備,其特征在于,所述第一字段和所述第二字段包含在虛擬機(jī)控制結(jié)構(gòu)(VMCS)中。
17.如權(quán)利要求10所述的設(shè)備,其特征在于,所述故障傳遞邏輯還確定所述故障的傳遞不成功,確定新的故障是否要求控制轉(zhuǎn)到所述VMM,以及如果所述新的故障要求所述轉(zhuǎn)變,則把控制轉(zhuǎn)到所述VMM。
18.如權(quán)利要求17所述的設(shè)備,其特征在于,所述故障傳遞邏輯還確定所述新的故障不要求控制轉(zhuǎn)到所述VMM,以及把所述新的故障傳遞給所述VM。
19.一種系統(tǒng),包括存儲(chǔ)器,存儲(chǔ)客戶軟件;以及處理器,耦合到所述存儲(chǔ)器,接收把控制從虛擬機(jī)監(jiān)控器(VMM)轉(zhuǎn)到所述客戶軟件的請(qǐng)求,確定所述VMM是否已請(qǐng)求向所述客戶軟件的故障傳遞,以及在把控制轉(zhuǎn)到所述客戶軟件時(shí),把所述故障傳遞給所述客戶軟件。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述處理器還通過(guò)訪問(wèn)所述VMM所保存的故障指示符以及確定所述故障指示符是否設(shè)置到傳遞值,確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞。
21.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述處理器還確定所述故障的標(biāo)識(shí)符和所述故障的類型,以及確定所述故障是否與要提供給和所述故障關(guān)聯(lián)的句柄的錯(cuò)誤代碼相關(guān)聯(lián)。
22.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述處理器還檢索所述錯(cuò)誤代碼,以及如果所述故障要求把所述錯(cuò)誤代碼傳遞給與所述故障關(guān)聯(lián)的所述句柄,則向所述句柄提供所述錯(cuò)誤代碼。
23.一種機(jī)器可讀介質(zhì),其中包含指令,這些指令由處理系統(tǒng)執(zhí)行時(shí),使所述處理系統(tǒng)執(zhí)行一種方法,所述方法包括接收把控制從虛擬機(jī)監(jiān)控器(VMM)轉(zhuǎn)到虛擬機(jī)(VM)的請(qǐng)求;確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞;以及如果所述VMM已請(qǐng)求向所述VM的故障傳遞,則在把控制轉(zhuǎn)到所述VM時(shí),把所述故障傳遞給所述VM。
24.如權(quán)利要求23所述的機(jī)器可讀介質(zhì),其特征在于,把控制轉(zhuǎn)到所述VM的所述請(qǐng)求經(jīng)由所述VMM執(zhí)行的指令來(lái)接收。
25.如權(quán)利要求23所述的機(jī)器可讀介質(zhì),其特征在于,確定所述VMM是否已請(qǐng)求向所述VM的故障傳遞包括訪問(wèn)所述VMM保存的故障指示符;以及確定所述故障指示符是否被設(shè)置到傳遞值。
26.如權(quán)利要求23所述的機(jī)器可讀介質(zhì),其特征在于,所述方法還包括確定所述故障的標(biāo)識(shí)符和所述故障的類型;以及確定所述故障是否與要提供給和所述故障關(guān)聯(lián)的句柄的錯(cuò)誤代碼相關(guān)聯(lián)。
全文摘要
在一個(gè)實(shí)施例中,從虛擬機(jī)監(jiān)控器(VMM)接收把控制轉(zhuǎn)到虛擬機(jī)(VM)的請(qǐng)求,以及確定VMM是否已請(qǐng)求向VM的故障傳遞。如果確定為肯定的,則在控制被轉(zhuǎn)到VM時(shí),故障被傳遞給VM。
文檔編號(hào)G06F9/455GK1849586SQ200480026398
公開日2006年10月18日 申請(qǐng)日期2004年9月15日 優(yōu)先權(quán)日2003年9月15日
發(fā)明者S·貝內(nèi)特, A·安德遜, S·耶亞辛, A·卡吉, G·奈格, R·烏利希, M·科祖奇, L·史密斯三世, S·羅杰斯 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鹰潭市| 乌兰浩特市| 南岸区| 科技| 仪征市| 酉阳| 婺源县| 高雄县| 湟源县| 喀喇沁旗| 宁远县| 云安县| 天柱县| 杭州市| 勐海县| 信阳市| 吴川市| 义马市| 惠来县| 通许县| 巴马| 明光市| 定西市| 蒙阴县| 华宁县| 义乌市| 定安县| 湟中县| 金昌市| 台南县| 宝坻区| 新田县| 淅川县| 永定县| 铜鼓县| 白城市| 射洪县| 涿州市| 彭泽县| 田东县| 庆阳市|