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

用于擴(kuò)充中斷控制器和合成中斷來(lái)源的系統(tǒng)和方法

文檔序號(hào):6566732閱讀:305來(lái)源:國(guó)知局
專利名稱:用于擴(kuò)充中斷控制器和合成中斷來(lái)源的系統(tǒng)和方法
用于擴(kuò)充中斷控制器和合成中斷來(lái)源的系統(tǒng)和方法發(fā)明領(lǐng)域本發(fā)明一般涉及中斷控制器領(lǐng)域,尤其涉及在虛擬機(jī)(也被稱為"處理器虛 擬化")中使用的中斷控制器。更具體地,本發(fā)明針對(duì)在虛擬機(jī)環(huán)境中使用的擴(kuò)充 中斷控制器,以及包含由所述擴(kuò)充中斷控制器使用的更豐富的中斷信息的合成中斷 來(lái)源。發(fā)明背景計(jì)算機(jī)包括被設(shè)計(jì)成執(zhí)行一組特定的系統(tǒng)指令的通用中央處理單元(CPU)。具有類似架構(gòu)或設(shè)計(jì)規(guī)范的一組處理器可被認(rèn)為是同一處理器系列的成員。目前的處理器系列的示例包括由亞利桑那州鳳凰城摩托羅拉有限公司制造的Motorola 680X0處理器系列;加利福尼亞州桑尼維爾市英特爾公司制造的Intel 80X86處理 器系列;以及摩托羅拉有限公司制造并在加利福尼亞州庫(kù)珀蒂諾市蘋果計(jì)算機(jī)有限 公司所制造的計(jì)算機(jī)中使用的PowerPC處理器系列。盡管一組處理器可由于其類 似的架構(gòu)或設(shè)計(jì)考慮而處于同一系列中,但處理器可根據(jù)其時(shí)鐘速度和其它性能參 數(shù)而在一系列內(nèi)變化很大。每一系列的微處理器執(zhí)行該處理器系列獨(dú)有的指令。 一處理器或一系列處理 器可執(zhí)行的指令集合被稱為處理器的指令集。作為示例,Intel 80X86處理器系所 使用的指令集與PowerPC處理器系列所使用的指令集不兼容。Intel 80X86指令集 基于復(fù)雜指令集計(jì)算機(jī)(CISC)格式。Motorola PowerPC指令集基于精簡(jiǎn)指令集 計(jì)算機(jī)(RISC)格式。CISC處理器使用大量指令,其中的某一些可執(zhí)行相當(dāng)復(fù)雜 的功能,但一般要求多個(gè)時(shí)鐘周期來(lái)執(zhí)行。RISC處理器使用以高得多的速率執(zhí)行 的較少數(shù)目的可用指令來(lái)執(zhí)行一組較簡(jiǎn)單的功能處理器系列在各計(jì)算機(jī)系統(tǒng)之間的唯一性一般也導(dǎo)致計(jì)算機(jī)系統(tǒng)的硬件架構(gòu) 的其它元件之間的不兼容性。使用來(lái)自Intel 80X86處理器系列的處理器制造的計(jì) 算機(jī)系統(tǒng)的硬件架構(gòu)將不同于使用來(lái)自PowerPC處理器系列的處理器制造的計(jì)算 機(jī)系統(tǒng)的硬件架構(gòu)。由于處理器指令集和計(jì)算機(jī)系統(tǒng)硬件架構(gòu)的唯一性,應(yīng)用軟件
程序一般被編寫為運(yùn)行在運(yùn)行特定操作系統(tǒng)的特定計(jì)算機(jī)系統(tǒng)上。 必潘器虛微計(jì)算機(jī)制造商想要通過(guò)使更多而非更少的應(yīng)用程序在與該計(jì)算機(jī)制造商的產(chǎn) 品線相關(guān)聯(lián)的微處理器系列上運(yùn)行來(lái)最大化其市場(chǎng)份額。為了擴(kuò)大可在計(jì)算機(jī)系統(tǒng) 上運(yùn)行的操作系統(tǒng)和應(yīng)用程序的數(shù)目,開(kāi)發(fā)了一種技術(shù)領(lǐng)域,其中被稱為主機(jī)的具有一種類型的CPU的給定計(jì)算機(jī)將包括仿真器程序,它允許主機(jī)計(jì)算機(jī)仿真被稱 為客機(jī)(guest)的不相關(guān)類型的CPU的指令。因此,主機(jī)計(jì)算機(jī)將執(zhí)行會(huì)使得一 條或多條主機(jī)指令響應(yīng)于給定的客機(jī)指令而被調(diào)用的應(yīng)用程序。因此,主機(jī)計(jì)算機(jī) 既可運(yùn)行為其自身硬件架構(gòu)設(shè)計(jì)的軟件,又可運(yùn)行為具有不相關(guān)硬件架構(gòu)的計(jì)算機(jī) 編寫的軟件。作為一個(gè)更具體的示例,例如由蘋果計(jì)算機(jī)制造的計(jì)算機(jī)系統(tǒng)可運(yùn)行 為基于PC的計(jì)算機(jī)系統(tǒng)而編寫的操作系統(tǒng)和程序。也有可能使用仿真器程序來(lái)在 單個(gè)CPU上并發(fā)地操作多個(gè)不兼容的操作系統(tǒng)。在這種安排中,盡管每一操作系 統(tǒng)彼此不兼容,但仿真器程序可主存兩個(gè)操作系統(tǒng)之一,從而允許本來(lái)不兼容的操作系統(tǒng)在同一計(jì)算機(jī)系統(tǒng)上并發(fā)運(yùn)行。當(dāng)客機(jī)計(jì)算機(jī)系統(tǒng)在主機(jī)計(jì)算機(jī)系統(tǒng)上仿真時(shí),客機(jī)計(jì)算機(jī)系統(tǒng)被稱為"虛擬機(jī)",因?yàn)榭蜋C(jī)計(jì)算機(jī)系統(tǒng)僅作為一個(gè)特定的硬件架構(gòu)的操作的純軟件表示而存 在于主機(jī)計(jì)算機(jī)系統(tǒng)中。術(shù)語(yǔ)仿真器、虛擬機(jī)和處理器仿真有時(shí)被互換使用以表示 模擬或仿真整個(gè)計(jì)算機(jī)系統(tǒng)的硬件架構(gòu)的能力。作為示例,加利福尼亞州圣馬特奧 市Connectix公司所創(chuàng)建的Virtual PC軟件仿真包括Intel 80X86奔騰處理器和各種 主板組件和卡的整個(gè)計(jì)算機(jī)。這些組件的操作在運(yùn)行在主機(jī)上的虛擬機(jī)中仿真。在 諸如具有PowerPC處理器的計(jì)算機(jī)系統(tǒng)等主機(jī)計(jì)算機(jī)的操作系統(tǒng)軟件和硬件架構(gòu) 上執(zhí)行的仿真器程序模擬整個(gè)客機(jī)計(jì)算機(jī)系統(tǒng)的操作。仿真器程序用作主機(jī)的硬件架構(gòu)與仿真環(huán)境內(nèi)運(yùn)行的軟件所發(fā)送的指令之間 的互換。該仿真環(huán)境可由虛擬機(jī)監(jiān)控程序(VMM)創(chuàng)建,它是直接運(yùn)行在硬件上 的軟件層且通過(guò)展示與VMM正虛擬化的硬件相同的接口來(lái)虛擬化機(jī)器的所有資 源(這允許VMM不會(huì)被運(yùn)行在其上的操作系統(tǒng)層注意到)。在這種配置中,主機(jī) 操作系統(tǒng)(HOS)和VMM可在同一物理硬件上并排運(yùn)行?;蛘?,仿真器程序可以 是直接運(yùn)行在物理計(jì)算機(jī)硬件上并仿真另一硬件配置的HOS本身。在該實(shí)施例的 一個(gè)特定實(shí)現(xiàn)中,HOS軟件可特別包括"超級(jí)管理程序"的一個(gè)實(shí)施例。超級(jí)管理程序是存在于HOS的內(nèi)核層附近且操作來(lái)允許一個(gè)或多個(gè)除HOS
以外的次要操作系統(tǒng)使用包括計(jì)算機(jī)系統(tǒng)的物理處理器在內(nèi)的計(jì)算機(jī)系統(tǒng)硬件的 控制程序。超級(jí)管理程序仿真次要操作系統(tǒng)的操作環(huán)境,使得次要操作系統(tǒng)相信它 正在其通常的硬件和/或操作系統(tǒng)環(huán)境中操作且它處在計(jì)算機(jī)系統(tǒng)的邏輯控制之 下,即使實(shí)際上它可能在另一硬件和/或操作系統(tǒng)環(huán)境中操作且處于計(jì)算機(jī)系統(tǒng)的 邏輯控制之下的可能是HOS。這是重要的,因?yàn)楸姸嗖僮飨到y(tǒng)運(yùn)作,使得該操作 系統(tǒng)必須如它處于計(jì)算機(jī)系統(tǒng)硬件的排他邏輯控制之下一般操作。因此,對(duì)同時(shí)在 單個(gè)計(jì)算機(jī)系統(tǒng)上作運(yùn)作多個(gè)操作系統(tǒng)而言,每一操作系統(tǒng)的超級(jí)管理程序必須作用于掩蓋其它操作系統(tǒng)的存在,使得每一操作系統(tǒng)如它具有對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)的排 他控制一般運(yùn)作。為簡(jiǎn)明起見(jiàn),包括但不限于VMM和超級(jí)管理程序的處理器虛擬化程序此處 被統(tǒng)稱為"虛擬化器"。而且,此處在超級(jí)管理程序的上下文中公開(kāi)的本發(fā)明的任何方面也被假定為對(duì)VMM (或其它虛擬化器)同樣有效和公開(kāi),反之亦然。伊微繊如本領(lǐng)域技術(shù)人員所知并領(lǐng)會(huì)的,在典型的計(jì)算機(jī)系統(tǒng)(例如,執(zhí)行單個(gè)操 作系統(tǒng)的物理硬件)中,硬件設(shè)備(網(wǎng)卡、打印機(jī)、其它外設(shè)等)通過(guò)中斷來(lái)與運(yùn) 行在每一處理器核心上的處理器核心軟件通信。然而,盡管系統(tǒng)中每一處理器核心 與其它硬件之間存在若干類型的交互,但是從核心外部發(fā)起的所有這樣的交互均通 過(guò)單個(gè)、簡(jiǎn)單的中斷傳遞機(jī)制。而且,在傳統(tǒng)系統(tǒng)中,中斷向量的數(shù)目非常有限, 這使得有必要將多個(gè)事件一起歸組在每一組的單個(gè)公共中斷下。因此,當(dāng)處理器核 心軟件接收到中斷時(shí),它必須采取若干步驟來(lái)標(biāo)識(shí)中斷的原因和上下文,因?yàn)楝F(xiàn)有 的中斷傳遞機(jī)制一般不能可靠地標(biāo)識(shí)中斷的來(lái)源或原因。此外,單個(gè)中斷也可僅指 示來(lái)自單個(gè)物理或虛擬設(shè)備的若干類似事件之一。例如,在較高的抽象層實(shí)現(xiàn)的消息通信機(jī)制可能需要數(shù)百或數(shù)千個(gè)單獨(dú)可尋址信號(hào)以便執(zhí)行,而核心處理器軟件必 須確定哪一可尋址信號(hào)對(duì)應(yīng)于從這些類型的設(shè)備中接收到的中斷。當(dāng)系統(tǒng)在超級(jí)管理程序、VMM或其它機(jī)器虛擬化技術(shù)(統(tǒng)稱為"虛擬化器") 的控制下運(yùn)行時(shí),由虛擬設(shè)備向分區(qū)(虛擬機(jī)的實(shí)例)提供的服務(wù)一般經(jīng)由與典型 計(jì)算機(jī)系統(tǒng)中的硬件設(shè)備相同的中斷機(jī)制來(lái)向該分區(qū)發(fā)送信號(hào)。然而,在虛擬機(jī)環(huán) 境中,不僅虛擬機(jī)的各設(shè)備被虛擬化了,而且每一虛擬機(jī)的處理器核心也被虛擬化 了。因此,每一這樣的被虛擬化的處理器核心的核心處理器軟件因它必須與虛擬化 器(例如,超級(jí)管理程序或VMM)通信以便實(shí)際處理中斷而被進(jìn)一步復(fù)雜化,其 中這些中斷可由硬件設(shè)備和虛擬化設(shè)備兩者生成(其中后者僅作為軟件存在)。因 為現(xiàn)有的中斷傳遞機(jī)制一般不能夠可靠地標(biāo)識(shí)中斷來(lái)源,尤其是由軟件生成的中 斷,因此在虛擬化環(huán)境中,標(biāo)識(shí)中斷的來(lái)源和本質(zhì)所需的處理器資源更是昂貴得多。 而且,與中斷相關(guān)聯(lián)的數(shù)據(jù)一般必須可被硬件和系統(tǒng)軟件廣泛地訪問(wèn),且在虛擬化 器主存多個(gè)互不信任的系統(tǒng)軟件的典型情況中難以進(jìn)行可信的傳遞。(在這樣的情 況中,需要使用中斷將信息推入分區(qū)內(nèi),且即使當(dāng)所有的分區(qū)都正參與同一中斷管 理方案時(shí),與這些中斷相關(guān)聯(lián)的任何信息也需要針對(duì)相鄰分區(qū)中的惡意操作系統(tǒng)進(jìn) 行保護(hù)。)因此,由于中斷可能來(lái)自每一 vm中的若干不同的來(lái)源(包括硬件和軟件來(lái) 源兩者),其中多個(gè)來(lái)源比硬件總線上的設(shè)備"更遠(yuǎn)"(因此需要更多的物理處理 器周期來(lái)完成),本領(lǐng)域中需要一種包括更多信息以便于增強(qiáng)機(jī)器虛擬化系統(tǒng)的性 能和效用的更豐富的中斷傳遞機(jī)制。發(fā)明概述本發(fā)明的各個(gè)實(shí)施例針對(duì)擴(kuò)充中斷控制器(aic)和提供更豐富中斷信息(或"合成中斷",即"sr )的合成中斷來(lái)源(sis) 。 aic和sis提供用于發(fā)送和接收中斷,尤其是發(fā)送到虛擬機(jī)和由其接收的中斷的有效手段。這些實(shí)施例中的若 干個(gè)特別針對(duì)一種被擴(kuò)展以接受和傳遞與傳入中斷相關(guān)聯(lián)的附加信息的中斷控制 器。對(duì)一些這樣的實(shí)施例,對(duì)中斷控制器的存儲(chǔ)器映射擴(kuò)展包括使用附加信息來(lái)填 充的數(shù)據(jù)結(jié)構(gòu)作為中斷傳遞的一部分。盡管此處所述的若干實(shí)施例是在虛擬機(jī)系統(tǒng) 的上下文中公開(kāi)的,但此處公開(kāi)的本發(fā)明也可應(yīng)用于傳統(tǒng)計(jì)算機(jī)系統(tǒng)(沒(méi)有虛擬化 層)。附圖簡(jiǎn)述當(dāng)結(jié)合附圖閱讀前述概述以及之后對(duì)優(yōu)選實(shí)施例的詳細(xì)描述時(shí),它們能被更好地理解。為闡述本發(fā)明起見(jiàn),附圖中示出了本發(fā)明的示例性構(gòu)造;然而,本發(fā)明 不限于所公開(kāi)的特定方法和手段。附圖中

圖1是表示可在其中包括本發(fā)明的各方面的計(jì)算機(jī)系統(tǒng)的框圖;圖2示出了計(jì)算機(jī)系統(tǒng)中的仿真操作環(huán)境的硬件和軟件架構(gòu)的邏輯分層;圖3a示出了一虛擬化計(jì)算系統(tǒng),其中仿真由主機(jī)操作系統(tǒng)執(zhí)行(或者直接或 者經(jīng)由超級(jí)管理程序);圖3B示出了一替換虛擬化計(jì)算系統(tǒng),其中仿真由與主機(jī)操作系統(tǒng)并排運(yùn)行的 虛擬機(jī)監(jiān)控程序執(zhí)行;圖4A是示出典型硬件中斷控制器(也被稱為"高級(jí)可編程中斷控制器",即 "APIC")的框圖;圖4B是示出典型虛擬中斷控制器,即虛擬機(jī)中的虛擬化APIC的框圖; 圖5A示出了典型中斷過(guò)程流的過(guò)程流程圖;圖5B示出了使用本發(fā)明的若干實(shí)施例中所提供的擴(kuò)充中斷控制器的改進(jìn)的 概念上的中斷處理過(guò)程的過(guò)程流程圖;圖6A是示出本發(fā)明的一些實(shí)施例的擴(kuò)充中斷控制器的框圖,其中中斷控制器 接口被擴(kuò)展以接受并可靠地傳遞與傳入中斷(例如,消息信號(hào)發(fā)送中斷)相關(guān)聯(lián)的 附加信息;以及圖6B是示出本發(fā)明的一些實(shí)施例的擴(kuò)充中斷控制器的框圖,其中中斷控制器 接口被擴(kuò)展以接受并可靠地傳遞與傳入中斷相關(guān)聯(lián)的附加信息(其中關(guān)于中斷的附 加信息由中斷來(lái)源放置在共享存儲(chǔ)器位置中)。說(shuō)明性實(shí)施例的詳細(xì)描述詳細(xì)地描述本發(fā)明的主題以滿足法定要求。然而,描述本身不旨在限制本專 利的范圍。相反,發(fā)明人構(gòu)想了所要求的主題可結(jié)合其它目前或?qū)?lái)的技術(shù)按照其 它方式來(lái)具體化,以包括不同的步驟或類似于本文檔中所描述的步驟的步驟的組 合。而且,盡管術(shù)語(yǔ)"步驟"可在此處用于指示所采用的方法的不同元素,但除非 當(dāng)明確描述了各個(gè)步驟的順序時(shí),否則該術(shù)語(yǔ)不應(yīng)被解釋為暗示此處公開(kāi)的各個(gè)步 驟之間的任何特定順序。伊微膽本發(fā)明的眾多實(shí)施例可在計(jì)算機(jī)上執(zhí)行。圖1和以下討論旨在提供對(duì)可在其 中實(shí)現(xiàn)本發(fā)明的合適的計(jì)算環(huán)境的簡(jiǎn)要一般描述。盡管不是必需的,但本發(fā)明將在 如諸如程序模塊等由諸如客戶機(jī)工作站或服務(wù)器等計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指 令的通用上下文中描述。 一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù) 結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。而且,本領(lǐng)域的技術(shù)人員可 以理解,本發(fā)明可以使用其它計(jì)算機(jī)系統(tǒng)配置實(shí)現(xiàn),包括手持式設(shè)備、多處理器系 統(tǒng)、基于微處理器或可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)等。本發(fā) 明也可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備 執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。如圖1所示,示例性通用計(jì)算系統(tǒng)包括常規(guī)個(gè)人計(jì)算機(jī)20等,它包括處理單元21 、系統(tǒng)存儲(chǔ)器22和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合至處理單元21 的系統(tǒng)總線23。系統(tǒng)總線23可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲(chǔ)器 總線或存儲(chǔ)器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。 系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM) 24和隨機(jī)存取存儲(chǔ)器(RAM) 25?;据斎?/輸出系統(tǒng)26 (BIOS)包含有助于諸如啟動(dòng)時(shí)在個(gè)人計(jì)算機(jī)20中元件之間傳遞信 息的基本例程,它被存儲(chǔ)在ROM24中。個(gè)人計(jì)算機(jī)20還可以包括從硬盤(未示 出)中讀取或向其寫入的硬盤驅(qū)動(dòng)器27,從可移動(dòng)磁盤29中讀取或向其寫入的磁 盤驅(qū)動(dòng)器28,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動(dòng)光盤31中讀取或向 其寫入的光盤驅(qū)動(dòng)器30。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28和光盤驅(qū)動(dòng)器30分別由 硬盤驅(qū)動(dòng)器接口 32、磁盤驅(qū)動(dòng)器接口 33和光盤驅(qū)動(dòng)器接口 34連接至系統(tǒng)總線23。 驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為個(gè)人計(jì)算機(jī)20提供了對(duì)計(jì)算機(jī)可讀指令、 數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管此處所示的示例性環(huán)境使用 硬盤、可移動(dòng)磁盤29和可移動(dòng)光盤31,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,也可以在 示例性操作環(huán)境中使用可以存儲(chǔ)可由計(jì)算機(jī)訪問(wèn)的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀 介質(zhì),諸如盒式磁帶、閃存卡、數(shù)字多功能盤、貝努利盒式磁盤、隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)等??梢栽谟脖P、磁盤29、光盤31、 ROM24或RAM25上存儲(chǔ)多個(gè)程序模塊, 包括操作系統(tǒng)35、 一個(gè)或多個(gè)應(yīng)用程序36、其它程序模塊37和程序數(shù)據(jù)38。用 戶可以通過(guò)諸如鍵盤40和定點(diǎn)設(shè)備42等輸入設(shè)備向個(gè)人計(jì)算機(jī)20輸入命令和信 息。其它輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、 掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的串行端口接口 46連接至 處理單元21,但也可以由諸如并行端口、游戲端口或通用串行總線(USB)等其 它接口連接。監(jiān)視器47或其它類型的顯示設(shè)備也經(jīng)由諸如視頻適配器48等接口連 接至系統(tǒng)總線23。除監(jiān)視器47之外,個(gè)人計(jì)算機(jī)一般包括其它外圍輸出設(shè)備(未 示出),諸如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)還包括主機(jī)適配器55、小型計(jì) 算機(jī)系統(tǒng)接口 (SCSI)總線56以及連接至SCSI總線56的外部存儲(chǔ)設(shè)備62。個(gè)人計(jì)算機(jī)20可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)49的邏輯 連接在網(wǎng)絡(luò)化環(huán)境下操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一臺(tái)個(gè)人計(jì)算機(jī)、服務(wù)器、路 由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對(duì)于個(gè)人計(jì)算機(jī)20描述的許多或所有元件,盡管在圖1中只示出存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1中所示邏輯連接包括局域網(wǎng)(LAN) 51和廣域網(wǎng)(WAN) 52。這樣的連網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。當(dāng)在LAN連網(wǎng)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20通過(guò)網(wǎng)絡(luò)接口或適配器53連接至LAN 51。當(dāng)在WAN連網(wǎng)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20通常包括調(diào)制解調(diào)器54或用于在諸如因特網(wǎng)等廣域網(wǎng)52上建立通信的其它裝置。調(diào)制解調(diào)器54可以是內(nèi)置或外置的,它通過(guò)串行端口接口46連接至系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于個(gè)人計(jì)算機(jī)20所描述的程序模塊或其部分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。而且,盡管預(yù)期到本發(fā)明的眾多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng), 然而本文不旨在將本發(fā)明限制于這些實(shí)施例。虛微從概念上的觀點(diǎn)來(lái)看,計(jì)算機(jī)系統(tǒng)一般包括運(yùn)行在基礎(chǔ)硬件層上的一層或多 層軟件。這種分層是出于抽象原因來(lái)完成的。通過(guò)為給定一層軟件定義接口,該層 可由其上方的其它層不同地實(shí)現(xiàn)。在良好設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)中,每一層僅了解(且 僅依賴于)其下方緊接的一層。這允許替換層或"堆棧"(多個(gè)鄰接層)而不會(huì)負(fù) 面地影響所述層或堆棧上方的各層。例如,軟件應(yīng)用程序(較上層) 一般依賴于較 低層的操作系統(tǒng)層(較低層)以將文件寫入某種形式的持久存儲(chǔ),且這些應(yīng)用程序 不必理解將數(shù)據(jù)寫入軟盤、硬盤驅(qū)動(dòng)器或網(wǎng)絡(luò)文件夾之間的區(qū)別。如果使用新操作 系統(tǒng)組件替換了該較低層以便寫入文件,則較上層軟件應(yīng)用程序的操作保持不受影 響。分層軟件的靈活性允許虛擬機(jī)(VM)呈現(xiàn)實(shí)際上是另一軟件層的虛擬硬件層。 以此方式,VM可為其上方的軟件層創(chuàng)建所述軟件層正運(yùn)行在其自身專用的計(jì)算機(jī) 系統(tǒng)上的假象,因此VM可允許多個(gè)"客機(jī)系統(tǒng)"在單個(gè)"主機(jī)系統(tǒng)"上并發(fā)運(yùn) 行。圖2是表示計(jì)算機(jī)系統(tǒng)中的仿真操作環(huán)境的硬件和軟件架構(gòu)的邏輯分層的示 意圖。在該圖中,仿真程序94直接或間接地在物理硬件架構(gòu)92上運(yùn)行。仿真程序 94可以是(a)與主機(jī)操作系統(tǒng)并排運(yùn)行的虛擬機(jī)監(jiān)控程序、(b)具有本機(jī)仿真 能力的專用主機(jī)操作系統(tǒng)、或(c)具有超級(jí)管理程序組件的主機(jī)操作系統(tǒng),其中
所述超級(jí)管理程序組件執(zhí)行所述仿真。仿真程序94仿真客機(jī)硬件架構(gòu)96 (示為虛線以便示出該組件是"虛擬機(jī)"的事實(shí),即硬件實(shí)際不存在而相反由所述仿真程序94來(lái)仿真)??蜋C(jī)操作系統(tǒng)98在所述客機(jī)硬件架構(gòu)96上執(zhí)行,而軟件應(yīng)用程序 100在客機(jī)操作系統(tǒng)98上運(yùn)行。在圖2的仿真操作環(huán)境中,且由于仿真程序94的 操作,軟件應(yīng)用程序100可運(yùn)行在計(jì)算機(jī)系統(tǒng)90中,即使軟件應(yīng)用程序100被設(shè) 計(jì)成在與主機(jī)操作系統(tǒng)和硬件架構(gòu)92 —般不兼容的操作系統(tǒng)上運(yùn)行。圖3A示出包括在物理計(jì)算機(jī)硬件102上直接運(yùn)行的主機(jī)操作系統(tǒng)軟件層104 的虛擬化計(jì)算系統(tǒng),其中主機(jī)操作系統(tǒng)(主機(jī)OS) 104通過(guò)展示與主機(jī)OS正在 仿真(即"虛擬化")的硬件相同的接口來(lái)提供對(duì)物理計(jì)算機(jī)硬件102的資源的訪 問(wèn),這又允許主機(jī)OS不被其上運(yùn)行的操作系統(tǒng)層注意到。為了執(zhí)行仿真,主機(jī)操 作系統(tǒng)104可以是具有本機(jī)仿真能力的特別設(shè)計(jì)的操作系統(tǒng),或者它可以是具有所 結(jié)合的用于執(zhí)行仿真的超級(jí)管理程序組件的標(biāo)準(zhǔn)操作系統(tǒng)。再次參考圖3A,主機(jī)OS 104上方是兩個(gè)虛擬機(jī)(VM)實(shí)現(xiàn)VM A 108和 VMB110, VMA 108可以是例如虛擬化Intel386處理器,而VMB110可以是例 如Motorola 680X0處理器系列之一的虛擬化版本。在每一VM 108和110中,分 別有客機(jī)操作系統(tǒng)(客機(jī)OS) A 112和B 114。運(yùn)行在客機(jī)OS A 112上的是兩個(gè) 應(yīng)用程序,應(yīng)用程序A1 116和應(yīng)用程序A2 118,而運(yùn)行在客機(jī)OSB 114上的是 應(yīng)用程序B1 120。關(guān)于圖3A,重要的是注意到VM A 108和VM B 110 (以虛線示出)是虛擬化 計(jì)算機(jī)硬件表示,它們僅作為軟件構(gòu)造存在且由于專用軟件代碼的存在而使之成為 可能,專用軟件代碼不僅分別向客機(jī)OS A 112和客機(jī)OS B 114提供VM A 108和 VMB 110,而且執(zhí)行客機(jī)OS A 112和客機(jī)OSB 114與真實(shí)物理計(jì)算機(jī)硬件102 間接交互所需的所有軟件步驟。圖3B示出了其中仿真由與主機(jī)操作系統(tǒng)104"并排運(yùn)行的虛擬機(jī)監(jiān)控程序 (VMM) 104'執(zhí)行的替換虛擬化計(jì)算系統(tǒng)。對(duì)某些實(shí)施例而言,VMM可以是運(yùn)行 在主機(jī)操作系統(tǒng)104上方并僅通過(guò)所述主機(jī)操作系統(tǒng)104來(lái)與計(jì)算機(jī)硬件交互的應(yīng) 用程序。在其它實(shí)施例中,且如圖3B中所示,VMM可以改為包括部分獨(dú)立的軟 件系統(tǒng),它在某些層上經(jīng)由主機(jī)操作系統(tǒng)104與計(jì)算機(jī)硬件102間接交互,而在其 它層上,VMM與計(jì)算機(jī)硬件102直接交互(類似于主機(jī)操作系統(tǒng)與計(jì)算機(jī)硬件直 接交互的方式)。而在又一些實(shí)施例中,VMM可包括在所有層上與計(jì)算機(jī)硬件102 直接交互(類似于主機(jī)操作系統(tǒng)與計(jì)算機(jī)硬件直接交互的方式)而不利用主機(jī)操作
系統(tǒng)104 (盡管在協(xié)調(diào)對(duì)所述計(jì)算機(jī)硬件102的使用和避免沖突等的范圍內(nèi)仍與所述主機(jī)操作系統(tǒng)104交互)的完全獨(dú)立軟件系統(tǒng)。預(yù)期了用于實(shí)現(xiàn)VMM的所有這些變型以形成如此處所述的本發(fā)明的替換實(shí) 施例,且此處沒(méi)有一項(xiàng)內(nèi)容應(yīng)被解釋為將本發(fā)明限于任何特定VMM配置。此外, 對(duì)應(yīng)用程序116、 118和120之間分別經(jīng)由VMA 108和/或VMB IIO的交互(假 定處于硬件仿真情形中)的任何參考應(yīng)被解釋為實(shí)際上是應(yīng)用程序116、 118和120 與VMM之間的交互。同樣地,對(duì)應(yīng)用程序VMA108和/或VMB110與主機(jī)操作 系統(tǒng)104和/或計(jì)算機(jī)硬件102之間的交互(假定在計(jì)算機(jī)硬件102上直接或間接 執(zhí)行計(jì)算機(jī)指令)的任何參考應(yīng)被解釋為實(shí)際上是VMM與主機(jī)操作系統(tǒng)104或計(jì) 算機(jī)硬件102之間適當(dāng)?shù)慕换?。iT充德絲器圖4A是示出典型硬件中斷控制器(也被稱為"高級(jí)可編程中斷控制器"或 "APIC")的框圖。APIC400包括由總線402互連的兩組組件I/O APIC 410和 本地APIC 420。在該非限定性示例中,且如對(duì)示例性I/0 APIC412所示,1/OAPIC412、 414 和416中的每一個(gè)包括二十四(24)條輸入線,例如418a、 418b和418c,來(lái)處理 至多二十四(24)個(gè)唯一設(shè)備中斷。基于所接收的特定設(shè)備中斷(即,取決于激活 了哪一條輸入線),每一I/OAPIC使用邏輯路由表(未示出)來(lái)經(jīng)由公共總線402 將特定中斷轉(zhuǎn)發(fā)給分別對(duì)應(yīng)于特定處理器核心432、 434或436的本地APIC 422、 424或426之一 (每一處理器具有其自己的相應(yīng)的本地APIC組件)。當(dāng)從I/OAPIC412、 414或416之一接收中斷之后,該非限定性示例中可至多 接收二十四(24)個(gè)唯一中斷的每一本地APIC422、 424或426分別向其處理器核 心432、 434或436通知所接收的中斷。該處理器核心然后停止正在做的事,并立 即開(kāi)始確定哪一設(shè)備引起了中斷且為何原因的繁重過(guò)程。當(dāng)處理器核心最終收集了 關(guān)于該中斷的這種附加信息之后,處理器核心通過(guò)通知本地APIC基于處理器核心 能夠確定的關(guān)于中斷的來(lái)源和原因的新信息來(lái)對(duì)其它現(xiàn)有但尚未完成的中斷事件 重定優(yōu)先級(jí)以結(jié)束(conclude)該中斷。處理器核心然后繼續(xù)處理接下來(lái)的最高優(yōu) 先級(jí)中斷(取決于其相對(duì)優(yōu)先級(jí),這可以是它在處理最近中斷之前開(kāi)始工作的同一 中斷事件,或者這可以是該最新中斷)。盡管每一本地APIC可對(duì)約二百四十(240)個(gè)唯一中斷事件發(fā)出信號(hào),且每
一 I/O APIC —般可對(duì)約二十四(24)個(gè)唯一中斷事件發(fā)出信號(hào),但用于在I/O APIC 與本地APIC之間通信的典型PCI總線不夠精密復(fù)雜以區(qū)分中斷來(lái)源等(例如,它 不具有足夠的唯一信號(hào)線)。因此,特定處理器核心的本地APIC所接收的中斷可 能對(duì)應(yīng)于一個(gè)以上(可能若干個(gè))可能的中斷事件,因此需要處理器核心確定哪一 設(shè)備引起了中斷(通過(guò)輪詢其對(duì)應(yīng)于該中斷的若干設(shè)備)以及確定中斷的原因(通 過(guò)從中斷設(shè)備中收集關(guān)于中斷原因的附加信息)。在物理硬件中,這種輪詢和信息 收集是非常低效和資源密集的,且這種低效在虛擬機(jī)環(huán)境中還要再大若干數(shù)量級(jí)。
圖4B是示出典型虛擬中斷控制器,即虛擬機(jī)中的虛擬化APIC的框圖。虛擬 APIC 450邏輯上包括與圖4A的硬件APIC相同的結(jié)構(gòu)組件(未示出),不同之處 在于如虛擬機(jī)領(lǐng)域的技術(shù)人員所公知且容易理解地,虛擬APIC 450作為軟件表示 存在且因此對(duì)主機(jī)硬件處理器要求多得多的指令來(lái)執(zhí)行中斷操作,尤其是關(guān)于客機(jī) 操作系統(tǒng)、超級(jí)管理程序(或其它虛擬化器)和物理硬件之間的交互的中斷操作。
圖5A是一般示出如此處已經(jīng)對(duì)圖4A提及且類似于圖4B的典型中斷過(guò)程流 (盡管后者由于虛擬機(jī)、VMM和物理主機(jī)硬件之間的必要附加交互而更為復(fù)雜) 的過(guò)程流程圖。 一般而言,在步驟502處,由源設(shè)備生成中斷,且在步驟504處, 該中斷經(jīng)由中斷輸入線被連接至所述設(shè)備的I/O APIC接收。在步驟506處,I/O APIC進(jìn)行邏輯路由表查找來(lái)確定哪一處理器核心和相應(yīng)的本地APIC被指定為接 收該特定中斷,并在步驟508處基于該查找,將中斷轉(zhuǎn)發(fā)給所指定的本地APIC。 在步驟510處,該特定本地APIC接收該中斷并對(duì)其定優(yōu)先級(jí)以便進(jìn)一步處理。在 步驟512處,處理器核心接收中斷以便處理,但因?yàn)樗恢涝撝袛嗟膩?lái)源或原因, 因此它必須輪詢可能引起該中斷的各個(gè)設(shè)備直到標(biāo)識(shí)了正確的設(shè)備并確定了中斷 的原因。在步驟514處,基于步驟512處所確定的中斷的來(lái)源和中斷的原因(一起 構(gòu)成"中斷信息"即"i丄"),處理器然后處理該中斷,且當(dāng)完成時(shí)接收本地APIC 必須提供的接下來(lái)的最高優(yōu)先級(jí)中斷。
盡管這種方法一般是低效的,但對(duì)物理硬件(中斷控制器和核心處理器)而 言綽綽有余,而當(dāng)在虛擬機(jī)環(huán)境中被虛擬化時(shí),這種低效被放大了。然而,不同于 難以修改的物理硬件,虛擬硬件(即,在虛擬機(jī)環(huán)境中被虛擬化的機(jī)器)相對(duì)易于 修改,且因此此處本發(fā)明的眾多實(shí)施例針對(duì)經(jīng)由擴(kuò)充中斷控制器來(lái)簡(jiǎn)化中斷處理。
圖5B是示出使用本發(fā)明的若干實(shí)施例中所提供的擴(kuò)充中斷控制器的改進(jìn)的 概念上的中斷處理過(guò)程的過(guò)程流程圖。在圖中,在步驟522處,源設(shè)備所生成的中 斷(在這種情況中,虛擬設(shè)備被增強(qiáng)因此包括"合成中斷來(lái)源"即"SIC")附帶 有包括關(guān)于中斷的來(lái)源和原因的數(shù)據(jù)(在虛擬機(jī)的情況中,這些數(shù)據(jù)可由對(duì)所利用 的虛擬設(shè)備作出的增強(qiáng)來(lái)自動(dòng)生成)的中斷信息。在步驟554處,該中斷和附帶的中斷信息(它們一起構(gòu)成"合成中斷"即"sr )被擴(kuò)充中斷控制器(Aic)接收并被給定優(yōu)先級(jí),且在步驟556處,它們由處理器核心處理而無(wú)需向設(shè)備輪詢進(jìn)一 步的信息。還應(yīng)注意到,對(duì)本發(fā)明的若干這樣的實(shí)施例,當(dāng)諸如從實(shí)際物理硬件設(shè)備接 收到標(biāo)準(zhǔn)(非SI)中斷時(shí),可進(jìn)行常規(guī)的中斷處理,盡管預(yù)期了甚至物理硬件設(shè) 備也可被增強(qiáng)來(lái)提供SI而非標(biāo)準(zhǔn)中斷。圖6A和6B是示出本發(fā)明的某些實(shí)施例的擴(kuò)充中斷控制器的框圖,其中各自 的中斷控制器接口被擴(kuò)展來(lái)接受并可靠地傳遞與傳入中斷(即,SI)相關(guān)聯(lián)的附加 信息。在圖6A中,虛擬I/OAPIC612被擴(kuò)展來(lái)經(jīng)由例如消息信號(hào)發(fā)送中斷從中斷 來(lái)源606直接接受附加信息。該附加信息與中斷本身一起構(gòu)成標(biāo)識(shí)該中斷來(lái)源和該 中斷原因的合成中斷(SI)。該附加信息以及該中斷經(jīng)由總線602從I/OAPIC612 被傳遞給適當(dāng)?shù)谋镜谹PIC622,后者又將該信息直接提供給其核心處理器632。對(duì) 某些替換實(shí)施例,本地APIC也可被增強(qiáng)來(lái)接收附加信息,并基于它所接收的該附 加信息以及中斷優(yōu)先級(jí)來(lái)對(duì)該中斷定優(yōu)先級(jí)。在圖6B,中斷由I/OAPIC612接收并被傳遞給本地APIC622,且又被傳遞給 處理器核心632,但關(guān)于該中斷的附加信息由中斷來(lái)源606放置在可由核心處理器 632自動(dòng)訪問(wèn)的共享存儲(chǔ)器位置608中,來(lái)代替輪詢?cè)O(shè)備以確定該中斷的來(lái)源和原 因,因?yàn)楣蚕泶鎯?chǔ)器位置中的該附加信息標(biāo)識(shí)了中斷的來(lái)源和中斷的原因。對(duì)某些 替換實(shí)施例,本地APIC也可被增強(qiáng)來(lái)訪問(wèn)共享存儲(chǔ)器位置中的附加信息,并基于 它所接收的該附加信息和中斷優(yōu)先級(jí)來(lái)對(duì)該中斷定優(yōu)先級(jí)。r充中微織層據(jù)強(qiáng)除前述以外,由于在超級(jí)管理程序系統(tǒng)中,某些中斷可由軟件發(fā)送,因此重 要的是中斷接收方(即,核心處理器)具有發(fā)現(xiàn)該中斷的來(lái)源的可靠方式以便確定 它未被其它惡意軟件哄騙。類似地,分區(qū)可能需要知道與該中斷相關(guān)聯(lián)的某些信息 被完整地傳遞。這可通過(guò)定義對(duì)中斷控制器的存儲(chǔ)器映射擴(kuò)展來(lái)完成,該擴(kuò)展具有 作為至處理器核心的中斷傳遞的一部分被填充的指定結(jié)構(gòu)。該結(jié)構(gòu)中的某些域?qū)?含由發(fā)送方提供的參數(shù),尤其是給出關(guān)于正發(fā)送信號(hào)的事件的更多細(xì)節(jié)的"原因 碼"。其它域,尤其是"發(fā)送分區(qū)標(biāo)識(shí)符"域?qū)⒂芍袛嗫刂破魈峁?。由于這種結(jié)構(gòu) 僅可由接收方和中斷控制器訪問(wèn),因此接收方可依賴于中斷參數(shù)的真實(shí)性。由于這 種接收作為傳遞中斷的一部分來(lái)填充,因此對(duì)該附加信息的檢索也比傳統(tǒng)的搜索和 查詢發(fā)送方模型高效得多。這些結(jié)構(gòu)與常規(guī)中斷向量相關(guān)聯(lián),因此中斷優(yōu)先級(jí)區(qū)分 和傳遞可適應(yīng)并繼續(xù)利用當(dāng)前機(jī)制。對(duì)某些實(shí)施例,系統(tǒng)可包含允許設(shè)備被分配給特定分區(qū)的附加虛擬化硬件。 在這種情況中,由這樣的設(shè)備發(fā)出的中斷及相關(guān)聯(lián)的參數(shù)可按照與軟件發(fā)起中斷相 同的方式來(lái)保護(hù)。而且,由于典型中斷控制器己經(jīng)具有用于發(fā)送處理器間中斷的工具,因此當(dāng) 該工具從虛擬機(jī)環(huán)境中的分區(qū)內(nèi)訪問(wèn)以提供用于將中斷發(fā)送給該分區(qū)內(nèi)的虛擬處 理器的相同服務(wù)時(shí)是有利的。盡管需要用于將中斷發(fā)送給其它分區(qū)或用于在發(fā)送分 區(qū)內(nèi)發(fā)送帶參數(shù)的中斷的單獨(dú)工具,但該單獨(dú)工具可以是類似于常規(guī)控制器的命令 寄存器系列,或者它可以是功能接口,而不論中斷如何被發(fā)送,該接收中斷的機(jī)制 保持不變。此外,當(dāng)需要諸如用于高層通信協(xié)議的可讀/可寫信號(hào)發(fā)送等眾多類似中斷事 件時(shí),可提供替換安排,其中中斷繼續(xù)指示布爾條件而沒(méi)有其它信息。然而,盡管 常規(guī)中斷提供該基本功能,但常規(guī)中斷向量是相對(duì)稀缺的資源,因此這些實(shí)施例可 使用中斷控制器中的附加空間來(lái)保持單個(gè)常規(guī)中斷向量背后相對(duì)較大的標(biāo)志位圖, 從而實(shí)際上按某一操作系統(tǒng)指定因子增大了中斷請(qǐng)求表的大小。這種位圖倍增可在 影響分派優(yōu)先級(jí)的粒度級(jí)之上或之下進(jìn)行,且假定使用硬件難以復(fù)制的必要虛擬寄 存器相當(dāng)易于使用軟件來(lái)虛擬化時(shí),該位圖倍增在虛擬機(jī)上下文中相當(dāng)易于進(jìn)行。 例如,在常規(guī)APIC中,盡管中斷向量的前四位指示其優(yōu)先級(jí),最后四位被用于區(qū) 分相同優(yōu)先級(jí)的不同信號(hào),但此處所述的位圖擴(kuò)展可將后一組從16個(gè)可能的值擴(kuò)充為例如4096個(gè)或以上的不同值。如帶有上述參數(shù)的中斷一樣,這些中斷可由擴(kuò) 展命令寄存器系列或功能接口發(fā)送。對(duì)某些實(shí)施例,可任意配置單個(gè)常規(guī)中斷向量 來(lái)處理任一種類的中斷或這兩種中斷。類似地,本發(fā)明的其它實(shí)施例也可用于建立兩個(gè)分區(qū)之間使用的更高層通信 協(xié)議。盡管為打包消息以便通過(guò)面向字節(jié)流的傳輸和其它類似機(jī)制來(lái)傳輸設(shè)計(jì)了各 種方法,但對(duì)足夠小的消息,整個(gè)消息正文可作為關(guān)于中斷的參數(shù)來(lái)發(fā)送,從而有 效地將消息的通知和傳遞捆綁成一個(gè)實(shí)體。這又允許接收方接收整條消息而無(wú)需從 分區(qū)內(nèi)轉(zhuǎn)移到虛擬化器,因?yàn)楫?dāng)中斷被接收時(shí)整個(gè)消息正文已經(jīng)存在于該分區(qū)的地 址空間中。當(dāng)與消息相關(guān)聯(lián)的數(shù)據(jù)過(guò)大而無(wú)法完全位于參數(shù)工具內(nèi)時(shí),更高層的編
組(marshal)層必須以較不有效的方式來(lái)移動(dòng)信息,但大多數(shù)消息將能位于對(duì)中 斷參數(shù)允許的空間內(nèi),從而可更高效地被處理。對(duì)某些實(shí)施例,參數(shù)區(qū)的大小可在 編譯時(shí)或運(yùn)行時(shí)配置以得到特定負(fù)載的最優(yōu)平衡。該概念可被實(shí)現(xiàn)為分區(qū)之間的最 優(yōu)異步通信協(xié)議,從而各自互相發(fā)送中斷。該協(xié)議可包括(a)簡(jiǎn)單的單機(jī)消息傳 遞協(xié)議,帶有或不帶有與所發(fā)起的消息相關(guān)聯(lián)的響應(yīng)消息;(b)常規(guī)RPC協(xié)議, 它向調(diào)用者展示了同步和/或異步功能接口,使用中斷來(lái)跨分區(qū)邊界編組動(dòng)作和數(shù) 據(jù);和/或(c)具有任意數(shù)目的參與者的對(duì)等安排,各自互相自由地發(fā)送中斷??绶謪^(qū)同步可以是本發(fā)明的各個(gè)實(shí)施例的另一應(yīng)用。盡管操作系統(tǒng)一般提供 通過(guò)與其調(diào)度者共享數(shù)據(jù)結(jié)構(gòu)來(lái)起作用的同步原語(yǔ),但在分區(qū)和另一機(jī)制之間一般 不需要對(duì)這樣的數(shù)據(jù)結(jié)構(gòu)的共享。在這一點(diǎn)上,可建立分區(qū)內(nèi)的一類同步化對(duì)象, 使得多個(gè)分區(qū)中的對(duì)象可反映單個(gè)邏輯狀態(tài)。這一機(jī)制可允許分區(qū)內(nèi)和分區(qū)間同步 通過(guò)同一接口來(lái)進(jìn)行。翁論此處所述的各個(gè)系統(tǒng)、方法和技術(shù)可使用硬件或軟件或其適當(dāng)組合來(lái)實(shí)現(xiàn)。 因此本發(fā)明的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、 硬盤驅(qū)動(dòng)器或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(g卩,指令)的 形式,其中當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器內(nèi)并由其執(zhí)行時(shí),該機(jī)器成為用 于實(shí)現(xiàn)本發(fā)明的裝置。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況中,計(jì)算機(jī)一般包 括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性的存儲(chǔ)器和/或存儲(chǔ) 元件)、至少一個(gè)輸入設(shè)備以及至少一個(gè)輸出設(shè)備。 一個(gè)或多個(gè)程序優(yōu)選地以高級(jí) 過(guò)程或面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn)來(lái)與計(jì)算機(jī)系統(tǒng)通信。然而,如果需要,可以使用匯 編或機(jī)器語(yǔ)言來(lái)實(shí)現(xiàn)程序。在任何情況中,該語(yǔ)言可以是編譯或解釋語(yǔ)言,且與硬 件實(shí)現(xiàn)相結(jié)合。本發(fā)明的方法和裝置也可以具體化為通過(guò)諸如電線或電纜、光纖或任何其它 形式的傳輸?shù)饶承﹤鬏斀橘|(zhì)傳輸?shù)某绦虼a的形式,其中,當(dāng)程序代碼由諸如 EPROM、門陣列、可編程邏輯器件(PLD)、客戶計(jì)算機(jī)、錄影機(jī)等機(jī)器接收、 加載并執(zhí)行時(shí),該機(jī)器成為用于實(shí)現(xiàn)本發(fā)明的裝置。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),程 序模塊結(jié)合處理器來(lái)提供用于執(zhí)行本發(fā)明的功能的獨(dú)特的裝置。盡管結(jié)合各個(gè)附圖的優(yōu)選實(shí)施例描述了本發(fā)明,但是可以理解,可以使用其 它類似的實(shí)施例,或可以對(duì)所述實(shí)施例進(jìn)行修改或添加,來(lái)用于實(shí)現(xiàn)本發(fā)明的相同
的功能而不與之背離。例如,盡管在仿真?zhèn)€人計(jì)算機(jī)功能的數(shù)字設(shè)備的上下文中描 述了本發(fā)明的示例性實(shí)施例,但是本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到,本發(fā)明不限于這 樣的數(shù)字設(shè)備,如在本申請(qǐng)中所述,本發(fā)明可以應(yīng)用于任何數(shù)目的現(xiàn)有或新興計(jì)算 設(shè)備或環(huán)境,諸如游戲控制臺(tái)、手持式計(jì)算機(jī)、便攜式計(jì)算機(jī)等,無(wú)論是有線還是 無(wú)線,且可以被應(yīng)用于通過(guò)通信網(wǎng)絡(luò)連接并跨該網(wǎng)絡(luò)交互的任何數(shù)目的這樣的計(jì)算 設(shè)備。而且,應(yīng)該強(qiáng)調(diào),尤其因?yàn)闊o(wú)線網(wǎng)絡(luò)化設(shè)備的數(shù)量持續(xù)增長(zhǎng),此處構(gòu)想了各 種計(jì)算機(jī)平臺(tái),包括手持式設(shè)備操作系統(tǒng)和其它應(yīng)用程序?qū)S糜布?軟件接口系統(tǒng)。 從而,本發(fā)明不應(yīng)該限于任何單個(gè)實(shí)施例,而應(yīng)根據(jù)所附權(quán)利要求書的寬度和范圍 來(lái)解釋。最后,此處所述的公開(kāi)實(shí)施例可適用于在其它處理器體系結(jié)構(gòu)、基于計(jì)算機(jī) 的系統(tǒng)或系統(tǒng)虛擬化中使用,且由此處進(jìn)行的公開(kāi)明確地預(yù)期這樣的實(shí)施例,因此, 本發(fā)明不應(yīng)限于此處描述的具體實(shí)施例,相反可以被最廣義地解釋。同樣,對(duì)用于 除處理器虛擬化之外的目的的合成指令的使用也可以由此處進(jìn)行的公開(kāi)所預(yù)期,且 在除處理器虛擬化之外的上下文中對(duì)合成指令的任何這樣的使用應(yīng)最廣義地添加 此處進(jìn)行的公開(kāi)的意義。
權(quán)利要求
1.一種用于計(jì)算機(jī)系統(tǒng)中的擴(kuò)充的中斷控制的方法,所述方法包括中斷來(lái)源將中斷信號(hào)和中斷信息兩者發(fā)送給中斷控制器及其相應(yīng)的處理器核心。
2. 如權(quán)利要求l所述的方法,其特征在于,所述中斷信息包括來(lái)自以下元素的組的至少一個(gè)元素對(duì)所述中斷來(lái)源的標(biāo)識(shí)、所述中斷的原因。
3. 如權(quán)利要求2所述的方法,其特征在于,所述中斷控制器和相應(yīng)的處理器 核心使用所述中斷信息來(lái)對(duì)所述中斷定優(yōu)先級(jí)以便處理,而無(wú)需輪詢?nèi)魏卧O(shè)備來(lái)執(zhí) 行來(lái)自以下多個(gè)任務(wù)的一個(gè)任務(wù)標(biāo)識(shí)所述中斷的來(lái)源、確定所述中斷的原因。
4. 如權(quán)利要求3所述的方法,其特征在于,所述中斷由本地高級(jí)可編程中斷控制器APIC來(lái)定優(yōu)先級(jí)而不涉及相應(yīng)的處理器核心。
5. 如權(quán)利要求3所述的方法,其特征在于,所述中斷信息經(jīng)由共享存儲(chǔ)器位 置從所述中斷來(lái)源傳輸?shù)剿鲋袛嗫刂破骰蛩鎏幚砥骱诵摹?br> 6. 如權(quán)利要求3所述的方法,其特征在于,所述中斷來(lái)源、所述中斷控制器 或所述相應(yīng)的處理器核心的至少其中之一是虛擬機(jī)環(huán)境中的虛擬化軟件表示。
7. —種用于計(jì)算機(jī)系統(tǒng)中的擴(kuò)充的中斷控制的系統(tǒng),所述系統(tǒng)包括 中斷控制器和相應(yīng)的處理器核心;以及將中斷信號(hào)和中斷信息兩者發(fā)送給所述中斷控制器和所述相應(yīng)的處理器核心 的中斷來(lái)源。
8. 如權(quán)利要求7所述的方法,其特征在于,所述中斷信息包括來(lái)自以下元素 的組中的至少一個(gè)元素對(duì)所述中斷來(lái)源的標(biāo)識(shí)、所述中斷的原因。
9. 如權(quán)利要求8所述的方法,其特征在于,所述中斷控制器和所述相應(yīng)的處 理器核心使用所述中斷信息來(lái)對(duì)所述中斷定優(yōu)先級(jí)以便處理,而無(wú)需輪詢?nèi)魏卧O(shè)備 來(lái)執(zhí)行來(lái)自以下多個(gè)任務(wù)的一個(gè)任務(wù):標(biāo)識(shí)所述中斷的來(lái)源、確定所述中斷的原因。
10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述中斷由本地高級(jí)可編程中 斷控制器APIC定優(yōu)先級(jí)而不涉及相應(yīng)的處理器核心。
11. 如權(quán)利要求9所述的系統(tǒng),其特征在于,還包括共享存儲(chǔ)器位置,其中 所述中斷信息經(jīng)由所述共享存儲(chǔ)器位置從所述中斷來(lái)源傳輸給所述中斷控制器或 所述處理器核心。
12. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述中斷來(lái)源、所述中斷控制 器或所述相應(yīng)的處理器核心的至少其中之一是虛擬機(jī)環(huán)境中的虛擬化軟件表示。
13. —種包括用于計(jì)算機(jī)系統(tǒng)中的擴(kuò)充的中斷控制的計(jì)算機(jī)可讀指令的計(jì)算 機(jī)可讀介質(zhì),所述計(jì)算機(jī)可讀指令包括用于中斷來(lái)源將中斷信號(hào)和中斷信息兩者發(fā) 送給中斷控制器及其相應(yīng)的處理器核心的指令。
14. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過(guò)其所述 中斷信息包括來(lái)自以下元素的組的至少一個(gè)元素的指令對(duì)所述中斷來(lái)源的標(biāo)識(shí)、 和所述中斷的原因。
15. 如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過(guò)其所述 中斷控制器和相應(yīng)的處理器核心使用所述中斷信息對(duì)所述中斷定優(yōu)先級(jí)以便處理 而無(wú)需輪詢?nèi)魏卧O(shè)備來(lái)執(zhí)行來(lái)自以下多個(gè)任務(wù)中的一個(gè)任務(wù)的指令標(biāo)識(shí)所述中斷 的來(lái)源、確定所述中斷的原因。
16. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過(guò)其所述中斷由本地高級(jí)可編程中斷控制器APIC定優(yōu)先級(jí)而不涉及相應(yīng)的處理器核心的指令。
17. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過(guò)其所述 中斷信息經(jīng)由共享存儲(chǔ)器位置從所述中斷來(lái)源傳輸?shù)剿鲋袛嗫刂破骰蛩鎏幚?器核心的指令。
18. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括通過(guò)其所述 中斷來(lái)源、所述中斷控制器、或所述相應(yīng)處理器核心的至少其中之一是虛擬機(jī)環(huán)境 中的虛擬化軟件表示的指令。
19. 一種用于實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)中的擴(kuò)充的中斷控制的硬件控制設(shè)備,所述硬件控制設(shè)備包括用于以下功能的裝置中斷來(lái)源將中斷信號(hào)和中斷信息兩者發(fā)送到中斷控制器及其相應(yīng)的處理器核心,其中所述中斷信息包括來(lái)自以下元素的組的元素對(duì)所述中斷來(lái)源的標(biāo)識(shí)、所 述中斷的原因;以及所述中斷控制器和相應(yīng)的處理器核心使用所述中斷信息來(lái)對(duì)所述中斷定優(yōu)先 級(jí)以便處理,而無(wú)需輪詢?nèi)魏卧O(shè)備來(lái)執(zhí)行來(lái)自以下多個(gè)任務(wù)的一個(gè)任務(wù)標(biāo)識(shí)所述 中斷的來(lái)源、確定所述中斷的原因。
20. 如權(quán)利要求19所述的硬件控制設(shè)備,其特征在于,還包括用于經(jīng)由共享存儲(chǔ)器位置將所述中斷信息從所述中斷來(lái)源傳輸?shù)剿鲋袛嗫刂破骰蛩鎏幚砥?核心的裝置。
全文摘要
本發(fā)明的各個(gè)實(shí)施例針對(duì)擴(kuò)充中斷控制器(AIC)和提供更豐富合成信息(即“合成中斷”或“SI”)的合成中斷來(lái)源(SIS)。AIC和SIS提供用于發(fā)送和接收中斷,尤其是發(fā)送到虛擬機(jī)和由其接收的中斷的有效手段。這些實(shí)施例中的若干個(gè)特別針對(duì)被擴(kuò)展以接受和傳遞與傳入中斷相關(guān)聯(lián)的附加信息的中斷控制器。對(duì)一些這樣的實(shí)施例,對(duì)中斷控制器的存儲(chǔ)器映射擴(kuò)展包括使用附加信息來(lái)填充的數(shù)據(jù)結(jié)構(gòu)作為中斷傳遞的一部分。盡管此處所述的若干實(shí)施例在虛擬機(jī)系統(tǒng)的上下文中公開(kāi),但此處公開(kāi)的本發(fā)明也可應(yīng)用于傳統(tǒng)計(jì)算機(jī)系統(tǒng)(沒(méi)有虛擬化層)。
文檔編號(hào)G06F13/24GK101128807SQ200680006244
公開(kāi)日2008年2月20日 申請(qǐng)日期2006年3月28日 優(yōu)先權(quán)日2005年3月28日
發(fā)明者N·T·劉易斯, R·A·伏加 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1