用于管理虛擬化環(huán)境中的中斷的體系結(jié)構(gòu)和方法
【專利摘要】一種方法,可包括:識(shí)別指示客戶操作系統(tǒng)(OS)的實(shí)時(shí)模式操作的信號(hào)并在該客戶OS正在運(yùn)行時(shí)直接將用于第一處理器的中斷路由至該客戶OS,而不引起從由該客戶OS執(zhí)行到由主機(jī)系統(tǒng)執(zhí)行的轉(zhuǎn)移。其他實(shí)施例被公開和聲明。
【專利說明】用于管理虛擬化環(huán)境中的中斷的體系結(jié)構(gòu)和方法
【背景技術(shù)】
[0001] 當(dāng)前,多個(gè)設(shè)備需要最佳運(yùn)行的實(shí)時(shí)操作系統(tǒng),同時(shí)非實(shí)時(shí)應(yīng)用的需求仍然流行。 隨著處理體系結(jié)構(gòu)諸如多個(gè)核處理器的增殖,在單個(gè)平臺(tái)滿足兩種需要是有用的,其可通 過增加處理器核的復(fù)雜度實(shí)現(xiàn)。
[0002] 虛擬化長(zhǎng)期用于安全并且可靠地對(duì)多個(gè)應(yīng)用域服務(wù)。該允許負(fù)載平衡W及魯棒 性。然而,當(dāng)前實(shí)時(shí)操作系統(tǒng)無法容易地作為真正虛擬化實(shí)體而存在而不犧牲響應(yīng)能力。該 很大程度上由于在虛擬化環(huán)境處理中斷的過程所導(dǎo)致。
[0003] 在某些設(shè)置中,程序諸如管理程序,也稱為虛擬機(jī)管理器(VMM),將虛擬操作平臺(tái) 呈現(xiàn)至稱為客戶的多個(gè)操作系統(tǒng)或客戶操作系統(tǒng)。術(shù)語(yǔ)"虛擬機(jī)"(VM),其表示管理程序所 管理的實(shí)體,總體上指代完全隔離的客戶操作系統(tǒng),安裝于一般主機(jī)操作系統(tǒng)。
[0004] 管理程序可安裝于硬件主機(jī),其任務(wù)為運(yùn)行客戶0S。當(dāng)應(yīng)用在虛擬化環(huán)境運(yùn)行時(shí), 管理程序管理用于給定客戶OS的應(yīng)用的中斷。例如,當(dāng)用于第一客戶OS的中斷遞送至管 理程序時(shí),虛擬機(jī)(VM)退出被觸發(fā),其中發(fā)生從客戶執(zhí)行到主機(jī)執(zhí)行的轉(zhuǎn)移。在中斷成功 地在管理程序處理之后,發(fā)生后續(xù)VM進(jìn)入并且中斷被注入至客戶0S。然后客戶OS重新開 始執(zhí)行并且就將管理程序注入的中斷視為生成自客戶OS自己的設(shè)備之一的中斷。中斷處 理可導(dǎo)致中斷延遲,具有當(dāng)非虛擬化應(yīng)用直接運(yùn)行于硬件主機(jī)時(shí)產(chǎn)生的中斷延遲的多倍的 持續(xù)時(shí)間。由于許多應(yīng)用對(duì)中斷延遲敏感,其增加了延遲(還有其他因素),限制虛擬化的 普及使用。
[0005] 結(jié)合上述和其他考慮,需要當(dāng)前的改進(jìn)。
【專利附圖】
【附圖說明】
[0006] 圖1說明了第一系統(tǒng)的一個(gè)實(shí)施例。
[0007] 圖2說明了圖1的系統(tǒng)的體系結(jié)構(gòu)的細(xì)節(jié)。
[000引圖3描述與本實(shí)施例一致的中斷處理的一個(gè)示例。
[0009] 圖4說明了與本實(shí)施例一致的中斷轉(zhuǎn)譯的一個(gè)示例。
[0010] 圖5描述了與多種實(shí)施例一致的用于處理中斷的一種情形。
[0011] 圖6描述了與多種實(shí)施例一致的用于處理中斷結(jié)束的一種情形。
[0012] 圖7說明了第一邏輯流程一個(gè)實(shí)施例。
[0013] 圖8說明了第二邏輯流程的一個(gè)實(shí)施例。
[0014] 圖9說明了第H邏輯流程的一個(gè)實(shí)施例。
[0015] 圖10說明了第四邏輯流程的一個(gè)實(shí)施例。
[0016] 圖11說明了計(jì)算體系結(jié)構(gòu)的實(shí)施例。
【具體實(shí)施方式】
[0017] 多種實(shí)施例針對(duì)用于在虛擬化環(huán)境中管理中斷的技術(shù)。除其他優(yōu)點(diǎn),實(shí)施例可改 進(jìn)成本可承受性、可伸縮性、模塊性、可擴(kuò)展性或操作者、設(shè)備或網(wǎng)絡(luò)的互操作性。
[001引現(xiàn)參考附圖,其中相同的參考數(shù)字用于指代全文中相同的元件。在如下描述中,為 進(jìn)行說明,多個(gè)特定細(xì)節(jié)被提出,W提供其全面理解。然而,顯而易見的是,新的實(shí)施例可被 實(shí)施,而不需要該些特定細(xì)節(jié)。在其它實(shí)例中,熟知的結(jié)構(gòu)和設(shè)備在框圖形式中示出,W實(shí) 現(xiàn)其描述。其意圖在于涵蓋屬于所聲明主題的精神和范圍的所有修改、等同和備選。
[0019] 在多種實(shí)施例,硬件和/或軟件中斷可被管理W當(dāng)應(yīng)用運(yùn)行于客戶操作系統(tǒng)時(shí)降 低應(yīng)用的中斷延遲。多種實(shí)施例呈現(xiàn)了新的體系結(jié)構(gòu),其通過提供偽發(fā)布的中斷來降低關(guān) 聯(lián)于用于實(shí)時(shí)應(yīng)用的中斷的開支。在多種實(shí)施例,客戶OS直接處理中斷,而不是具有最初 處理中斷的管理程序。
[0020] 關(guān)聯(lián)于中斷的開支的降低可使運(yùn)行于客戶操作系統(tǒng)的實(shí)時(shí)應(yīng)用W如同應(yīng)用直接 運(yùn)行于非虛擬化環(huán)境的硬件的相同的中斷延遲操作。由本實(shí)施例提供的優(yōu)點(diǎn)包括加強(qiáng)多個(gè) 實(shí)時(shí)工作量的能力。特別地,本實(shí)施例使N-I實(shí)時(shí)工作量利用虛擬化來加強(qiáng),其中N包含任 何正整數(shù)并且N-I的值僅由實(shí)時(shí)操作系統(tǒng)所固定的系統(tǒng)中核的數(shù)量N限制,假設(shè)一個(gè)核專 用于管理程序和/或其他活動(dòng)。本實(shí)施例致力于運(yùn)行對(duì)虛擬化環(huán)境中的中斷延遲敏感的實(shí) 時(shí)應(yīng)用的能力,由此提供虛擬化處理的可伸縮性W及低延遲操作的魯棒性。該提供了虛擬 化許多實(shí)時(shí)應(yīng)用的能力,其目前為止由于減少中斷延遲的關(guān)鍵性而總體上限于運(yùn)行于本地 硬件。作為該種應(yīng)用的示例,在用于控制機(jī)器諸如機(jī)器人設(shè)備的多種工業(yè)控制操作中,計(jì)時(shí) 可能非常關(guān)鍵,使得需要減少中斷延遲。其他示例包括產(chǎn)生高分組速率傳輸?shù)木W(wǎng)絡(luò)應(yīng)用,其 中及時(shí)響應(yīng)分組的能力可由于高中斷延遲而大打折扣,W使分組因?yàn)橹袛喽鴣G棄。因此,由 于相比于非虛擬化操作所產(chǎn)生的更大的中斷延遲,該限制了在虛擬化環(huán)境中運(yùn)行該實(shí)時(shí)應(yīng) 用的能力。
[0021] 為解決該問題,在多種實(shí)施例,中斷的直接處理或發(fā)布,可通過提供在系統(tǒng)中管理 一個(gè)或多個(gè)客戶OS的無記號(hào)管理程序來完成。無記號(hào)管理程序不需要定時(shí)器記號(hào)或其他 外部中斷,用于合適地在正在運(yùn)行實(shí)時(shí)客戶OS的處理器核上起作用。在其它實(shí)施例,管理 程序可基于記號(hào),并可在其他處理核的多個(gè)客戶之間實(shí)現(xiàn)時(shí)間分片(time slicing),其不 需要實(shí)時(shí)客戶固定于其上。
[0022] 圖1說明了與多種實(shí)施例一致的用于處理中斷的系統(tǒng)100的框圖。如所說明的, 系統(tǒng)100可從中斷源102接收中斷(未獨(dú)立示出),用于由運(yùn)行于系統(tǒng)100的應(yīng)用來處理。 在中斷102源遞送硬件中斷的情況下,中斷可為來自硬件設(shè)備的信號(hào),其當(dāng)處理器設(shè)備執(zhí) 行操作時(shí)被發(fā)送至處理器設(shè)備。然后目的處理器設(shè)備可停止正常處理,諸如應(yīng)用的運(yùn)行,并 可執(zhí)行關(guān)聯(lián)于中斷源102的存儲(chǔ)器中的例程或程序。如圖1所說明的,系統(tǒng)100可包括一 個(gè)或多個(gè)處理器l〇4a-104n,在某些實(shí)施例其可為多核平臺(tái)的處理器核。系統(tǒng)100還包括管 理程序106和一個(gè)或多個(gè)客戶操作系統(tǒng)(0巧IOSm-IO化,其中a,n,m和Z表示任何正整數(shù)。 一個(gè)或多個(gè)客戶OS IOSm-IO化可運(yùn)行于虛擬化環(huán)境中的管理程序106之上,如圖2進(jìn)一步 描述。系統(tǒng)100還包括實(shí)時(shí)中斷模塊110用于管理中斷,下文描述了其操作。
[0023] 與進(jìn)一步的實(shí)施例一致,圖2說明了圖1的系統(tǒng)100的體系結(jié)構(gòu)的細(xì)節(jié)。圖2描 述兩個(gè)虛擬機(jī)(VM) 202a,202b,其包括相應(yīng)的客戶OS 108m,108n。每個(gè)VM 202a,20化還包 括應(yīng)用,諸如相應(yīng)的非實(shí)時(shí)應(yīng)用204a-l,204b-l和實(shí)時(shí)應(yīng)用204a-2,204b-2。在多種實(shí)施 例,當(dāng)客戶OS正在運(yùn)行實(shí)時(shí)應(yīng)用時(shí),并當(dāng)客戶OS正在運(yùn)行非實(shí)時(shí)應(yīng)用時(shí),實(shí)時(shí)中斷模塊110 可用于管理用于客戶OS的中斷。實(shí)時(shí)中斷模塊110可體現(xiàn)于軟件,硬件或硬件和軟件的組 合。在某些實(shí)施例,實(shí)時(shí)中斷模塊可包括于管理程序106, 一個(gè)或多個(gè)客戶OS IOSm-IO化和 /或處理器104a-104n的其他部分。
[0024] 在實(shí)時(shí)中斷模塊110至少部分地包括于管理程序106的某些實(shí)施例中,管理程 序106可從傳統(tǒng)操作修改,W使其可操作W支持兩個(gè)獨(dú)立的操作模式,用于一個(gè)或多個(gè)客 戶OS IOSm-IO化。在第一操作模式,非實(shí)時(shí)操作模式,管理程序106可執(zhí)行為傳統(tǒng)管理程 序,其中要應(yīng)用于給定處理器l〇4a-104n的中斷由管理程序106處理。非實(shí)時(shí)操作模式可 適用于當(dāng)非實(shí)時(shí)應(yīng)用正在運(yùn)行時(shí)管理一個(gè)或多個(gè)客戶OS IOSm-IO化,諸如前述非實(shí)時(shí)應(yīng)用 204a-l,204b-l。W該種方式,因?yàn)榉菍?shí)時(shí)應(yīng)用可能對(duì)中斷延遲不敏感,管理程序處理過程 中斷所產(chǎn)生的開支是可接受的,使管理程序106 W傳統(tǒng)方式來處理中斷。
[002引在多種實(shí)施例,一個(gè)或多個(gè)客戶OS IOSm-IO化可進(jìn)入第二、實(shí)時(shí)操作模式,其當(dāng) 實(shí)時(shí)應(yīng)用,諸如實(shí)時(shí)應(yīng)用204a-2,204b-2,正在運(yùn)行時(shí)可能是所希望的。在實(shí)時(shí)操作模式, 如圖3說明的,所有外部中斷可直接路由至目的客戶OS,而不是由管理程序106處理。圖3 描述了與本實(shí)施例一致的實(shí)時(shí)操作模式的一個(gè)中斷處理的示例。中斷源102可生成中斷, 示出為中斷請(qǐng)求(IRQ)302,處理器104a將其直接路由至客戶OS 108m。W該種方式,進(jìn)入 的中斷可路由至客戶OS而不產(chǎn)生VM退出事件,其指代在所謂的非根(root)操作模式到根 (root)操作模式之間的轉(zhuǎn)移。根(root)操作模式指代當(dāng)處理器可在沒有虛擬化而運(yùn)行主 機(jī)系統(tǒng)時(shí)或當(dāng)管理程序在虛擬化為活動(dòng)時(shí)控制操作時(shí)的狀態(tài)。在非根(root)模式,處理器 操作是不同的。例如,結(jié)構(gòu)諸如虛擬機(jī)控制結(jié)構(gòu)(VMC巧可用于控制處理器操作并確定特定 指令如何被執(zhí)行。VMCS可位于存儲(chǔ)器304,其存儲(chǔ)主機(jī)和客戶兩者的完整的CPU狀態(tài),W及 某些控制位(例如,何時(shí)從當(dāng)前模式退出)。非根(root)模式特別地用于客戶OS正在運(yùn) 行時(shí)。因此,VM退出事件可需要從指令由VM或客戶OS執(zhí)行到由主機(jī)或管理程序執(zhí)行的轉(zhuǎn) 移。由于,在圖3的示例中,IRQ302直接路由至客戶OS 108m,管理程序106未被調(diào)用,并且 不產(chǎn)生VM退出。
[0026] 由于避免了外部處理步驟,在實(shí)時(shí)操作模式中操作的能力所帶來的VM退出事件 的防止可在運(yùn)行實(shí)時(shí)應(yīng)用時(shí)特別有用。此外,在實(shí)時(shí)和非實(shí)時(shí)操作模式之間切換的能力提 供了應(yīng)用操作的靈活性,其可對(duì)中斷延遲不明顯敏感。
[0027] 因此,例如,在非實(shí)時(shí)操作模式,當(dāng)客戶OS 108m正在運(yùn)行非實(shí)時(shí)應(yīng)用204a-l時(shí), 由管理程序106的中斷接收可產(chǎn)生VM退出,其中指令執(zhí)行從客戶OS 108傳輸至管理程序 106。當(dāng)中斷處理完成時(shí),VM進(jìn)入可被執(zhí)行,其指代從根(root)模式到非根(root)模式操 作的轉(zhuǎn)移。因此,在VM進(jìn)入發(fā)生之后,執(zhí)行返回客戶OS 108m,并且非實(shí)時(shí)應(yīng)用204a-l在中 斷被接收之前運(yùn)行。每次在客戶OS 108m系統(tǒng)正在運(yùn)行非實(shí)時(shí)應(yīng)用204a-l時(shí)中斷被處理 時(shí),VM進(jìn)入和VM退出事件可生成顯著延遲。然而,如果非實(shí)時(shí)應(yīng)用204a-l足W對(duì)中斷延 遲不敏感,則該中斷延遲是可接受的。
[002引相反,當(dāng)客戶OS 108m正在運(yùn)行實(shí)時(shí)應(yīng)用204a-2時(shí),在實(shí)時(shí)應(yīng)用204a-2正在運(yùn)行 時(shí)執(zhí)行的任何VM退出和/或VM進(jìn)入操作可產(chǎn)生中斷延遲,其持續(xù)時(shí)間對(duì)實(shí)時(shí)應(yīng)用204a-2 的最佳操作是不可接受的或不希望的。因此,客戶OS 108m希望進(jìn)入實(shí)時(shí)操作模式,其中當(dāng) 實(shí)時(shí)應(yīng)用204a-2將被運(yùn)行時(shí),中斷不產(chǎn)生VM退出,并且相反直接路由至客戶OS 108m,如圖 3所描述。
[0029]在多種實(shí)施例,在支持實(shí)時(shí)應(yīng)用的虛擬化操作的系統(tǒng)中實(shí)時(shí)操作模式可當(dāng)客戶OS 運(yùn)行于管理程序時(shí)被啟動(dòng)。例如,當(dāng)實(shí)時(shí)應(yīng)用正在運(yùn)行或?qū)⒈豢蛻鬙S運(yùn)行時(shí),客戶OS可生 成信號(hào)W進(jìn)入實(shí)時(shí)模式操作。在實(shí)時(shí)中斷模塊110的至少一部分被包含于管理程序106中 的實(shí)施例中,由客戶OS生成的用于實(shí)時(shí)操作模式的特定信號(hào)可路由至管理程序。當(dāng)管理程 序接收特定信號(hào)時(shí),管理程序可將信號(hào)識(shí)別為指示用于客戶OS的實(shí)時(shí)模式操作被請(qǐng)求。然 后,系統(tǒng)100的操作可被修改W使用于給定處理器的中斷在客戶OS正在運(yùn)行時(shí)直接路由至 客戶OS的核而不產(chǎn)生VM退出操作。
[0030] 在一個(gè)實(shí)施例,客戶OS可對(duì)管理程序進(jìn)行"VM調(diào)用",指示客戶OS準(zhǔn)備好進(jìn)入實(shí)時(shí) 操作模式。作為響應(yīng),管理程序可采取一個(gè)或多個(gè)動(dòng)作來設(shè)置實(shí)時(shí)模式的操作。在某些實(shí) 施例,管理程序可在運(yùn)行客戶OS的處理器的VMCS中執(zhí)行改變。例如,管理程序可改變VMCS 的域,其確定接收的中斷是否用于導(dǎo)致VM退出。因此,管理程序可"清除"指示中斷用于導(dǎo) 致VM退出的位。然后,當(dāng)中斷由運(yùn)行客戶OS的處理器接收時(shí),沒有產(chǎn)生VM退出,處理器仍 在非根(root)操作模式,并且客戶OS仍在實(shí)時(shí)操作模式。
[0031] 應(yīng)當(dāng)理解,在VM退出被禁止用于所接收的外部中斷的實(shí)施例中,發(fā)送至運(yùn)行客 戶OS的處理器的所有中斷將被客戶OS接收。除了其他類型的中斷,該包括處理器間中斷 (IPI)D因此,希望客戶OS正在運(yùn)行于其上的管理程序不發(fā)送任何中斷(包括定時(shí)器中斷) 至運(yùn)行客戶OS的處理器。因此,與多種實(shí)施例一致,運(yùn)行實(shí)時(shí)應(yīng)用的客戶OS可固定于特定 處理器。例如,再次參見圖1,客戶OS 108m可固定于處理器104a,客戶OS IOSn可固定于處 理器104b等。在多核平臺(tái)的實(shí)施例,每個(gè)處理器104a-104n可表示獨(dú)立的處理器核。該使 客戶OS將實(shí)時(shí)設(shè)備編程成客戶OS所固定的目標(biāo)處理器(核),由此始終在該處理器(核) 接收那些中斷。在某些實(shí)施例,實(shí)時(shí)中斷模塊110可將客戶OS固定在特定處理器核,W使 在不同的處理器核之間不產(chǎn)生遷移,即使當(dāng)實(shí)時(shí)應(yīng)用沒有運(yùn)行于客戶OS時(shí),而在其它實(shí)施 例管理程序106可操作W在不同的處理器或核之間W限制形式遷移客戶OS,其中,在客戶 OS被遷移的任何時(shí)間,管理程序106更新多種數(shù)據(jù)結(jié)構(gòu)W保證正確的中斷轉(zhuǎn)發(fā)。
[0032] 與多種實(shí)施例一致,因?yàn)榻o定處理器的所有中斷可由運(yùn)行于該處理器的客戶OS 接收,中斷格式可按需修改,W使該中斷按照使客戶OS正確地解釋中斷的格式被遞送至客 戶OS。在一個(gè)實(shí)施例,管理程序106可經(jīng)由實(shí)時(shí)中斷模塊110生成直接轉(zhuǎn)譯,用于被送往客 戶OS的中斷。該轉(zhuǎn)譯可將由硬件生成的中斷從第一格式轉(zhuǎn)譯為第二格式,W該第二格式, 客戶OS合適地處理該中斷。
[0033] 圖4說明了與本實(shí)施例一致的中斷轉(zhuǎn)譯的一個(gè)示例。在說明的示例中,中斷源102 可生成具有特定格式的IRQ 402。例如,中斷源可為機(jī)器人設(shè)備硬件,其生成中斷"4"(對(duì)應(yīng) 于IRQ 402的格式),W指示特定動(dòng)作。IRQ 402可遞送至管理程序106,其可識(shí)別中斷"4" 表示對(duì)應(yīng)于客戶OS 108m的格式的中斷"12"的特定動(dòng)作。因此,管理程序可利用例如軟件 例程執(zhí)行中斷"4"到中斷"12"的轉(zhuǎn)譯。轉(zhuǎn)譯的中斷可作為IRQ 404轉(zhuǎn)發(fā)至客戶OS 108m, 其正確地將中斷解釋為指示由中斷源102生成的中斷"4"所表示的特定動(dòng)作,并且因此W 正確方式處理中斷。
[0034] 在某些實(shí)施例,硬件轉(zhuǎn)譯表(未示出)可用于將中斷從由硬件中斷源生成的格式 轉(zhuǎn)譯為實(shí)時(shí)客戶OS的正確的格式。例如,返回先前示例,為表示特定硬件中斷的中斷"4" 和中斷"12"之間的轉(zhuǎn)譯可被編程到硬件或控制硬件的設(shè)備驅(qū)動(dòng)器中。
[00巧]在多種附加的實(shí)施例,設(shè)置可被調(diào)整,W保證客戶OS不從運(yùn)行中被搶占,除非客 戶OS執(zhí)行指今W引起VM退出。在一個(gè)實(shí)施例,實(shí)時(shí)中斷模塊110可修改典型管理程序初 始化,W禁止化T退出。術(shù)語(yǔ)"化T退出"指代當(dāng)"暫停"化T)命令由運(yùn)行客戶OS的處理 器執(zhí)行時(shí)執(zhí)行VM退出。因此,再次參見圖1,當(dāng)客戶OS 108m運(yùn)行于處理器104a時(shí),處理 器,經(jīng)由客戶OS 108m,可執(zhí)行化T指令,其將處理器104a設(shè)置于空閑狀態(tài)。在傳統(tǒng)操作下, 化T指令的執(zhí)行可使VM退出,其中產(chǎn)生到根(root)操作模式的轉(zhuǎn)移。因此,管理程序106 可被調(diào)用,W使當(dāng)空閑狀態(tài)被終止時(shí),客戶OS 108m不再運(yùn)行。相反,與本實(shí)施例一致,因?yàn)?VM退出并未由化T指令的執(zhí)行觸發(fā),客戶OS 108m在處理器104a退出空閑狀態(tài)之后保持處 理器控制。在一個(gè)實(shí)施例,化T退出的禁止可通過修改控制域?qū)崿F(xiàn)。例如,指定化T指令的 客戶執(zhí)行是否使VM退出的位的值可設(shè)置為"零",W指示在化T執(zhí)行時(shí)VM退出不發(fā)生。盡 管化T退出的禁止防止客戶正在運(yùn)行的處理器由其他虛擬機(jī)使用,該禁止通過保持由客戶 OS控制而可保證低延遲。
[0036] 為減少中斷延遲的效應(yīng),還可希望減少可搶占客戶OS的附加的事件,特別當(dāng)關(guān)鍵 實(shí)時(shí)應(yīng)用運(yùn)行于客戶OS時(shí)。因此,當(dāng)運(yùn)行于實(shí)時(shí)操作模式時(shí),實(shí)時(shí)中斷模塊110可指示客 戶OS降低或消除可導(dǎo)致VM退出的動(dòng)作。
[0037] 應(yīng)當(dāng)理解,根據(jù)本實(shí)施例的禁止客戶OS的搶占可改變?cè)O(shè)備驅(qū)動(dòng)器在管理程序中 仿真的方式。例如,如果系統(tǒng)中的硬驅(qū)動(dòng)機(jī)化ard化ive)被共享,在虛擬化處理器正在運(yùn) 行客戶OS的傳統(tǒng)操作下,由硬驅(qū)動(dòng)機(jī)生成的中斷被路由至自舉處理器,其正確地將中斷轉(zhuǎn) 發(fā)至虛擬化處理器。該促成VM退出,VM退出時(shí),該處理器上的管理程序通過VMCS注入中 斷。然而,根據(jù)本實(shí)施例,實(shí)時(shí)中斷模塊110可暫時(shí)修改自舉處理器的操作或發(fā)送信號(hào)至自 舉處理器,指示自舉處理器將由硬驅(qū)動(dòng)機(jī)生成為處理器間中斷(IPI)的中斷轉(zhuǎn)發(fā)至實(shí)時(shí)客 戶處理器W模仿所轉(zhuǎn)譯的中斷。
[0038] 圖5描述了與多種實(shí)施例一致的用于處理中斷的一種情形。如所說明的,硬驅(qū)動(dòng) 機(jī)502生成中斷IRQ 504。中斷由自舉處理器506接收,其將作為IPI508的中斷發(fā)送至處 理器104a。IPI 508可被路由至客戶OSlOSm而不調(diào)用管理程序106。
[0039] 根據(jù)進(jìn)一步的實(shí)施例,處理中斷結(jié)束巧01)的方式可被調(diào)整。EOI為發(fā)送至可編 程中斷控制器(PIC)的信號(hào),其可為高級(jí)PIC(APIC), W指示對(duì)給定中斷的中斷處理完成。 在EOI傳統(tǒng)的處理的情況下,當(dāng)客戶OS正在運(yùn)行時(shí),當(dāng)中斷過程完成時(shí),客戶OS生成E0I, 其導(dǎo)致VM退出??蛻鬙S正在運(yùn)行于其上的管理程序被調(diào)用,并且,如果中斷已被正確地 處理,則轉(zhuǎn)發(fā)EOI至PIC。然后EOI可用于使PIC清除寄存器中的對(duì)應(yīng)位,諸如服務(wù)中寄存 器(ISR),并由此使更多IRQ由PIC生成。然而,每次客戶OS生成EOI時(shí),操作模式從非根 (root)模式轉(zhuǎn)移到根(root)操作模式,并且控制返回管理程序。因此,即使進(jìn)入的IRQ最 初被設(shè)置為在客戶OS正在運(yùn)行時(shí)繞過管理程序,在EOI生成的VM退出之后處理的中斷將 由于客戶OS不再運(yùn)行而產(chǎn)生延遲。
[0040] 因此,在多種實(shí)施例,本地PIC,諸如APIC,可例如通過實(shí)時(shí)中斷模塊110編程,W 使EOI的生成不產(chǎn)生VM退出。因此,當(dāng)中斷的處理完成,并且EOI被生成時(shí),管理程序不被 調(diào)用并且客戶OS仍然運(yùn)行。
[0041] 圖6描述了與多種實(shí)施例一致的用于處理EOI的一種情形。如所說明的,客戶OS 108m生成EOI 602,其可在中斷成功處理之后發(fā)生,同時(shí)客戶OS 108m正操作于實(shí)時(shí)模式, 如上所討論。EOI 602可發(fā)送至虛擬APIC 604,其可設(shè)置成執(zhí)行傳統(tǒng)硬件APIC的至少某些 功能。當(dāng)EOI 602被生成時(shí),虛擬APIC 604可基于數(shù)據(jù)結(jié)構(gòu)的設(shè)置而確定,諸如EOI位圖, 無論VM退出是否發(fā)生。在所說明的情形中,EOI 602不引起VM退出,管理程序106不被調(diào) 用,并且APIC 604可通知處理器104a關(guān)聯(lián)于EOI 602的中斷完成,W使進(jìn)一步的中斷可按 需處理。W該種方式,源于VM退出和/或VM進(jìn)入的任何延遲被避免,并且運(yùn)行于客戶108m 的任何實(shí)時(shí)應(yīng)用由于接收、處理、并完成中斷而不退出非根(root)模式而可繼續(xù)具有所產(chǎn) 生的最小延遲。
[0042] 在虛擬APIC未被使用的某些實(shí)施例中,本地中斷延遲仍可被實(shí)現(xiàn),但W更低的頻 率。換言之,當(dāng)中斷被接收并且客戶OS運(yùn)行于實(shí)時(shí)模式時(shí),中斷可指向客戶OS而不產(chǎn)生VM 退出。然而,為確認(rèn)中斷,管理程序通過EOI的生成而被調(diào)用。
[0043] 表I呈現(xiàn)了根據(jù)一個(gè)實(shí)施例的多種設(shè)置的綜述,可應(yīng)用于在客戶OS運(yùn)行期間管理 中斷。如所說明的,"外部中斷退出"位可設(shè)置為"0",W使外部中斷直接被引導(dǎo)至客戶而不 導(dǎo)致VM退出。例如,中斷可直接遞送至客戶中斷描述符表(IDT),其將中斷請(qǐng)求關(guān)聯(lián)于合適 的中斷處理方(interrupt handler)。當(dāng)位設(shè)置為"1"時(shí)VM退出產(chǎn)生于中斷的接收,如上 所討論。
[0044]
【權(quán)利要求】
1. 一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 識(shí)別指示用于客戶操作系統(tǒng)(OS)的實(shí)時(shí)模式操作的信號(hào);以及 在該客戶OS正在運(yùn)行時(shí)將用于第一處理器的中斷直接路由至該客戶0S,而不引起從 由該客戶OS執(zhí)行到由主機(jī)系統(tǒng)執(zhí)行的轉(zhuǎn)移。
2. 根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:響應(yīng)于該信號(hào),清除虛擬機(jī)控制結(jié)構(gòu) (VMCS)中指示外部中斷要生成其中發(fā)生從由該客戶OS執(zhí)行到由主機(jī)系統(tǒng)執(zhí)行的轉(zhuǎn)移的虛 擬機(jī)(VM)退出的位。
3. 根據(jù)權(quán)利要求1至2中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:在該客戶OS的實(shí)時(shí)操 作期間將該客戶OS固定于第一處理器。
4. 根據(jù)權(quán)利要求1至3中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:當(dāng)該客戶OS執(zhí)行HLT 指令時(shí)禁止該客戶OS執(zhí)行虛擬機(jī)(VM)退出操作。
5. 根據(jù)權(quán)利要求1至4中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:指示自舉處理器將由 硬驅(qū)動(dòng)機(jī)生成的作為處理器間中斷(IPI)的中斷轉(zhuǎn)發(fā)至該客戶0S。
6. 根據(jù)權(quán)利要求1至5中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:設(shè)置直接轉(zhuǎn)譯結(jié)構(gòu),用 于要轉(zhuǎn)發(fā)至該客戶OS的中斷。
7. 根據(jù)權(quán)利要求1至6中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:將所述中斷轉(zhuǎn)譯為該 客戶操作系統(tǒng)的中斷格式。
8. 根據(jù)權(quán)利要求1至7中的任一個(gè)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:編程耦合于第一處理 器的虛擬高級(jí)可編程中斷控制器(APIC),以當(dāng)中斷結(jié)束(EOI)被生成時(shí)防止虛擬機(jī)(VM)退 出。
9. 根據(jù)權(quán)利要求8的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:轉(zhuǎn)發(fā)該EOI至虛擬化APIC頁(yè)用于處理。
10. -種設(shè)備,包括:用于執(zhí)行如權(quán)利要求1至9任一個(gè)的方法的裝置。
11. 至少一個(gè)機(jī)器可讀介質(zhì),包括:多個(gè)指令,其響應(yīng)于在計(jì)算設(shè)備執(zhí)行,而使該計(jì)算 設(shè)備實(shí)施根據(jù)權(quán)利要求1至9任一個(gè)的方法。
12. -種裝置,包括: 處理器電路; 實(shí)時(shí)中斷模塊,能操作于該處理器電路,用于: 識(shí)別接收自運(yùn)行于第一處理器的客戶操作系統(tǒng)(OS)的信號(hào),該信號(hào)指示用于該客戶 OS的實(shí)時(shí)模式操作;以及 將用于第一處理器的中斷直接路由至該客戶0S,而不引起從非根操作模式到根操作模 式的轉(zhuǎn)移。
13. 根據(jù)權(quán)利要求12的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路,以清除虛擬機(jī) 控制結(jié)構(gòu)(VMCS)中指示外部中斷要響應(yīng)于該信號(hào)而生成虛擬機(jī)(VM)退出的位。
14. 根據(jù)權(quán)利要求12至13任一個(gè)的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路,以 在該客戶OS實(shí)時(shí)操作的期間將該客戶OS固定于第一處理器。
15. 根據(jù)權(quán)利要求12至14任一個(gè)的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路,以 當(dāng)該客戶OS執(zhí)行HLT指令時(shí)禁止該客戶OS執(zhí)行虛擬機(jī)(VM)退出操作。
16. 根據(jù)權(quán)利要求12至15任一個(gè)的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路,以 在該客戶OS的實(shí)時(shí)操作期間將該中斷轉(zhuǎn)譯為該客戶OS的中斷格式。
17. 根據(jù)權(quán)利要求12至16中任一個(gè)的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路, 用于: 編程耦合于第一處理器的虛擬高級(jí)可編程中斷控制器(APIC),以當(dāng)中斷結(jié)束(EOI)被 生成時(shí)防止虛擬機(jī)(VM)退出;以及 轉(zhuǎn)發(fā)該EOI至虛擬化APIC頁(yè)用于處理。
18. 根據(jù)權(quán)利要求12至17任一個(gè)的裝置,該實(shí)時(shí)中斷模塊可操作于該處理器電路,以 指示自舉處理器輸出作為處理器間中斷的外部中斷,用于轉(zhuǎn)發(fā)至該客戶0S。
19. 根據(jù)權(quán)利要求12至18任一個(gè)的裝置,包括:數(shù)字顯示器,以呈現(xiàn)該客戶OS的輸出。
【文檔編號(hào)】G06F9/44GK104321749SQ201280071792
【公開日】2015年1月28日 申請(qǐng)日期:2012年3月29日 優(yōu)先權(quán)日:2012年3月29日
【發(fā)明者】J·A·科爾曼, S·M·厄爾萊因 申請(qǐng)人:英特爾公司