专利名称:用于协作访客固件的设备和方法
技术领域:
一个或多个实施例一般涉及计算机系统设计的领域。更具体来说,一个或多个实施例涉及用于协作访客固件的方法和设备。
背景技术:
虚拟机体系结构在逻辑上将物理机器分区,使得机器的底层硬件是时间共享的,并且看上去如同一个或多个独立操作的虚拟机(VM)。虚拟机监视器(VMM)创建VM并在计算机上运行以使一个或多个VM的抽象更方便用于其他软件。每个VM可以作为独立平台来工作,以运行它自己的操作系统(OS)和应用软件。在VM中运行的软件在本文中通称为“访客软件”。
访客软件期望如同它在专用计算机上而非在VM中运行一样地运行。即,访客软件期望控制多种事件并具有对计算机上的硬件资源的访问权(例如物理机器)。物理机器的硬件资源可以包括一个或多个处理器、驻留在处理器上的资源(例如控制寄存器、高速缓存和其他资源)、存储器(驻留在存储器中的指令,例如描述符表)和驻留在物理机器中的其他资源(例如输入/输出装置)。事件可以包括中断、异常、平台事件(例如初始化)(INIT)或系统管理中断(SMI)等。
因此,VMM向其他软件(“访客软件”、多个“访客”或仅单个“访客”)提供一个或多个VM的抽象。VMM可以向多个不同访客提供相同或不同的抽象。每个访客期望VM中提供的可供其使用的硬件平台的充分方便性。例如,访客期望根据VM中呈现的处理器和平台的体系结构具有对所有寄存器、高速缓存、结构、I/O装置、存储器等的访问权。而且每个访客还期望处理多种事件、例如异常、中断、和平台事件(例如初始化)(INIT)和系统管理中断(SMI)。
这些资源和事件的其中一些是具有特权的,因为由VMM管理它们以便确保VM的正确运行以及保护 MM和其他VM。对于具有特权的资源和事件,VMM使访客软件期望的功能便于实现,同时保留对这些资源和事件的最终控制。使访客软件的功能便于实现的动作可以包括对VMM的部分上的范围广泛的活动。VMM的活动及其特征并不限制本文描述的多种实施例的范围。
通过举例而非限定的形式在附图中图示了本发明的多种实施例,其中图1是图示根据一个实施例、包括操作系统软件与平台硬件之间的固件接口的计算机系统的框图。
图2是图示根据一个实施例的协作访客固件的框图。
图3是图示根据一个实施例、如图2所示的使协作访客固件能够实现的切换块(HOB)数据结构的框图。
图4是图示根据一个实施例、用于协作访客固件的方法的流程图。
图5是图示根据一个实施例、提供协作访客固件的系统的框图。
具体实施例方式
在下文描述中,提出许多特定细节、诸如逻辑实现、信号和总线的大小和名称、系统组件的类型和相互关系以及逻辑分区/集成选择来提供更透彻的理解。然而对于本领域人员来说,将认识到本发明也可以在没有这些特定细节的情况下实施。在其他情况中,未详细地示出控制结构和门级的电路,以免妨碍对本发明的理解。本领域技术人员利用所包括的描述无需过多实验即可实现适合的逻辑电路。
在下文描述中,使用某些术语来描述本发明的特征。例如,术语“逻辑”表示配置为执行一个或多个功能的硬件和/或软件。例如,“硬件”的示例包括但不限于或不限制于集成电路、有限态机器或甚至组合逻辑。集成电路可以采用例如微处理器的处理器、专用集成电路、数字信号处理器、微控制器等的形式。
图1是图示包括用于在操作系统软件130与平台硬件101之间提供接口的固件140的计算机系统的框图。如本文描述的,固件系指存储在诸如只读存储器(ROM)、闪速存储器等的非易失性存储器结构中的处理器例行程序。这些存储器结构即使在电源被切断时仍保存存储在其中的代码。即使将固件存储在非易失性存储器中,仍可以将固件复制到易失性存储器或映像到到易失性存储器。固件通常在测试并配置易失性存储器结构之前提供当计算机系统从关机状态开机时控制计算机系统的必需指令或例行程序。还可以在多种事件之后使用固件例行程序重新初始化和重新配置计算机系统,并处理例如系统中断的某些平台事件。
如图1所示,固件140包括三个主要的组件用于向OS软件130提供对固件组件的访问的可扩展固件(EFI)接口142。具有代表性地,固件组件包括系统抽象层(SAL)144和处理器抽象层(PAL)146。如本文中描述的,EFI 142、SAL 144和PAL 146在本文中通称为“主机固件”。在一个实施例中,操作系统软件130与主机固件交互,确切来说经由EFI接口142与PAL 144和SAL 146交互,以提供可以由CPU执行应用的环境。SAL 144是将操作系统和其他较高级别的软件与平台中的实现差异隔离的固件层。PAL 146提供用于跨不同处理器实现来访问处理器资源以及封装所有处理器型号特定硬件的一致性软件接口。
如图2所示,虚拟机体系结构在逻辑上将物理机器分区,使得机器的底层硬件是时间共享的,并且看上去如同一个或多个独立操作的虚拟机(VM)。虚拟机监视器(VMM)创建VM并在计算机上运行以使一个或多个VM的抽象更方便用于其他软件。每个VM可以作为独立平台来工作,以运行它自己的操作系统(OS)和应用软件。在VM中运行的软件在本文中通称为“访客软件”。
再次参考图1,SAL 144是可以由例如OEM和系统软件供应商提供的平台特定固件组件。SAL 144与基本输入/输出系统(BIOS)相似。在计算机系统100的引导期间,SAL 144与OS 130(存储在例如硬盘的被引导的装置上)交互,以将操作系统130的若干部分加载到(计算机系统的)存储器。在计算机系统100的引导中,SAL 144负责执行平台测试、初始化和加载第一级别的操作系统加载器。根据一个实施例,作为此过程的一部分,加载VMM 210,而VMM 210负责创建和部署包括协作访客固件的VM 220。
在一个实施例中,如图2所示,除了在VM 220内加载访客OS外,VMM 210还在VM 220内加载访客固件240。在一个实施例中,访客固件240包括EFI 242、SAL 244和PAL 246,它们通称为“访客固件”。在常规环境中,OS需要调用多种固件服务。相应地,在图2所示的实施例中,在VM 220内提供访客固件240以便直接服务于所有访客OS固件的需要。在一个实施例中,VMM内的协作访客固件提供更佳的处理器和平台虚拟化。如本文描述的,虚拟化或虚拟化策略系指有关由访客固件执行哪些服务、由主机固件140和主机平台101执行哪些服务的决策。
在一个实施例中,为了实现访客固件240与VMM 210之间的协作,提供切换块(handoff block)(HOB)数据结构250以将VMM虚拟化策略和VM配置信息传送到访客固件240。在一个实施例中,当VMM 210创建VM 220时,VMM 210定义用于VM 220的处理器和平台配置信息。例如,处理器和平台配置信息可以包括例如虚拟处理器抽象(例如支持的物理地址位和转换后援缓冲器(TLB)转换寄存器)、平台物理存储器大小等。在一个实施例中,VMM 210定义该处理器和平台配置信息,并创建HOB数据结构250以将静态信息提供到访客固件240。
在一个实施例中,在存储器中创建了HOB数据结构250之后,VMM 210在VM 220的创建时将HOB数据结构250传递到访客固件240。在一个实施例中,访客固件240提取HOB信息并相应地操作。具有代表性地,HOB数据结构250提供访客固件240与VMM 210之间的静态接口。在一个实施例中,响应访客OS 230发出的固件服务请求,访客固件240可以查询HOB数据结构250以确定该请求是否是获取配置信息的,并将此类配置信息提供到访客OS 230,而无需俘获(trap)到VMM 210以访问处理器和平台信息。
虽然HOB数据结构250可以提供静态信息,在某些情况中,该设备无法满足访客固件240与VMM 210之间的协作要求。例如,访客固件240可能需要某些主机软件提供的服务(例如高速缓存刷新),因为访客固件240正在VM 220内运行,所以访客固件240无法自身调用主机。但是,以最高特权级别运行的VMM 210能够发起此类请求或服务于此类请求。相应地,在一个实施例中,在访客固件240与VMM 210之间提供动态协作接口以使访客固件240能够动态地向VMM 210发起服务请求。
在一个实施例中,使用两种可能的同步机制来提供用于访客固件240与VMM 210之间的通信的握手协议。虽然描述了两个同步机制,但是本领域技术人员应该认识到用于与VMM 210通信并使VMM210能够截取来自访客固件的服务请求的其他技术也是可能的,同时这些其他技术也仍在描述的实施例的范围内。在一个实施例中,为了动态地向VMM 210发起服务请求,访客固件240可以发起中止(break)指令,这提供了用于访客固件240俘获到VMM的主机模式中的中止向量中的机制。
在一个实施例中,作为处理器虚拟化或初始平台配置的一部分VMM 210和访客固件确定从体系结构预留的范围中选择的中断中间值。相应地,响应检测到中止指令,VMM 210可以检查这些中止中间值来识别软件中止是否是对固件运行时服务的访客请求。在备选实施例中,提供指令,该指令可以在访客和主机模式之间更改处理器虚拟化模式而不采取任何中断。相应地,在一个实施例中,访客固件240可以使用此指令来实现无VMM截取的情况下有效率地转换到主机模式。
具有代表性地,可以使用上文描述的特征来实现访客EFI 242、访客PAL 246和访客SAL 244。例如在一个实施例中,提供处理器信息的PAL过程;例如PAL VM SUMMARY或PAL CACHE INFO,访客PAL 246可以通过响应访客OS 230发出的请求直接从HOB数据结构250中检索处理器信息来使用静态协作方法。相反,需要VMM的其他PAL过程在运行时期间访问主机PAL 146(参见图1),例如PAL HALT LIGHT,其中在将逻辑处理器置于停止状态之前,VMM必须等待直到所有虚拟处理器都在相同的逻辑处理器内为止。
相应地,在一个实施例中,访客PAL 246响应此类主机固件运行时服务请求需要通过VMM 210来向主机平台发起服务请求。如本文中描述的,此类过程称为“主机固件运行时服务”,它们需要VMM截取来发起此类请求。相应地,访客固件240可以检测到对主机固件运行时服务的请求,并将其传输到VMM 210,VMM 210负责服务于此类请求。其他多种信息过程以及非信息过程可以由访客SAL244和访客EFI 242来提供,但是本文不进行描述以免妨碍对本发明实施例的理解。但是,本领域技术人员应该认识到此类附加的特征可以由访容EFI 242、访客PAL 246和访客SAL 244来提供,同时这些仍在描述的实施例的范围内。
图3图示根据一个实施例的HOB数据结构250。在一个实施例中,HOB数据结构250是用于存储多种VM配置和虚拟化策略信息的软件数据结构。在一个实施例中,如图3所示,HOB结构250是具有许多连续HOB项的连续存储器区域。在一个实施例中,前导HOB项251指定HOB结构250的长度。在一个实施例中,所有HOB项都具有类型字段以及长度字段,以便标识HOB项的长度。在一个实施例中,使用16-字节全局唯一的标识符(GUID)来唯一地标识每种类型。
在一个实施例中,每个HOB项具有数据字段,但是该数据字段内的格式是HOB类型特定的。具有代表性地,HOB数据结构250包括前导HOB 251,然后是存储器配置HOB 252。在一个实施例中,存储器配置HOB提供已经为VM配置的物理存储器的量。HOB数据结构250还包括虚拟处理器寻址HOB 253。在一个实施例中,HOB项253定义最大物理地址线、虚拟地址线和其他类似虚拟处理器寻址。下一个HOB项254可以包括虚拟处理器TLB HOB,它定义最大转换寄存器数量、区域ID线等。下一个项254可以定义处理器或虚拟处理器高速缓存HOB。如图所示,最后一个HOB 256、VMM策略HOB 256将定义虚拟化策略。
在一个实施例中,如本文描述的虚拟化策略定义哪些访客固件功能可以由访客固件处理以及哪些功能将归如VMM 210所请求的主机固件处理。相应地,如本文描述的,将在HOB项226内描述可以由访客固件240执行的功能。相应地,当接收到HOB项226时,可以按指示来配置访客固件240。虽然是结合图3所示的多个HOB项来进行描述的,但是本领域技术人员应该认识到这多个项不提供HOB250内所有可能项的穷举列表,以及可以按多种配置所需要的来添加或修改它们,同时它们仍在描述的实施例的范围内。
图4是图示根据一个实施例、用于提供协作访客固件的方法300的流程图。在过程框310,VMM最初创建HOB数据结构,以包含VM配置信息和虚拟化策略。在这样的创建之后,在过程框320,VMM将启动VM以包括至少访客固件以及访客OS。一旦启动,访客固件将确定是否由访客OS来调用访客固件服务。响应这样的服务请求,访客固件将搜索HOB以获取所请求的信息。
相应地,如果访客操作系统请求有关处理器和平台配置信息的静态信息,则在过程框342,在HOB内查找此类信息,并在过程框344,访客固件根据HOB中的信息来工作,并将控制返回给调用方。但是如果请求是对主机固件运行时服务的请求,则在过程框350,访客固件向VMM发起服务请求。在过程框360,VMM确定是否从访客固件接收到请求。一旦接收到请求,则VMM认证该访客固件服务请求以验证该服务请求是可信的。一旦通过认证,则在过程框380,VMM服务于访客固件请求。
图5是图示如本文的实施例中描述的可以实现协作访客固件的计算机系统400的框图。最初,访客固件240、访客OS 230、VMM 210和其他类似组件被存储在硬盘或磁盘存储器474中,如图5的计算机系统400所示。相似地,包括EFI 142、PAL 146和SAL 144的主机固件最初被存储在非易失性存储器480中。相应地,访客固件240最初被存储在硬盘474上。操作中,VMM 210将从硬盘474加载访客固件240,并将访客固件240复制到恰当定义的位置、例如存储器的预定的VMM块。
在一个实施例中,为访客固件预留存储器区域。在一个实施例中,预留的范围可以是16兆字节(MB)区域,以便包含访客固件映像和其他配置数据。具有代表性地,VMM 210将准备以HOB数据格式的VM配置,以包含物理存储器大小、地址空间、PAL信息、SAL信息、EFI信息等,并且VMM 210将VM配置置于VM块中。VMM然后将访客固件映像从主机硬盘复制到VMM块中定义的区域。在一个实施例中,该固件将提供访客固件映像和多种组件至预定的访客物理地址空间的映射。
具有代表性地,计算机系统400可以是例如个人计算机系统。计算机系统400可以包括一个或多个处理器(例如处理器460)、存储器控制器465、输入/输出(I/O)控制器470和一个或多个BIOS存储器(例如BIOS存储器480)。在一个实施例中,处理器460、存储器控制器465、I/O控制器470和BIOS存储器480可以驻留在主板461上。在备选实施例中,一个或多个处理器460、存储器控制器465、I/O控制器470和BIOS存储器480可以驻留在其他类型的组件板上,例如驻留在子板上。
存储器控制器465控制处理器460与例如随机存取存储器(RAM)的存储器装置464之间的操作。I/O控制器470可以控制处理器460与例如通过低引脚数(LPC)的键盘和鼠标的一个或多个输入/输出(I/O)装置475之间的操作。I/O控制器470还可以控制处理器460与例如通过集成驱动器电子装置(IDE)接口477耦合到I/O控制器的驱动器474的外围设备之间的操作。还可以将附加的总线耦合到I/O控制器470用于控制装置、例如外围组件互连(PCI)总线472或延续总线(follow on bus)(例如PCIx、PCI Express)和通用串行总线(USB)476。在一个实施例中,可以将存储器控制器465和I/O控制器470集成到一个组件中。
在图示的实施例中,驱动程序控制器473可以耦合到PCI总线472并且可以控制硬盘驱动器474的操作。在一个实施例中,包括访客EFI242、访客SAL 244、访客PAL 246、访客OS 230和VMM 210的访客固件240可以被存储在硬盘驱动器474上。以此方式,硬盘驱动器可以用作引导装置,它包含例如用于加载多种主机组件的加载器程序以及用于加载VM以及多种访客组件的VMM 210,这些多种访客组件包括VMM内的访客固件和访客OS。
可以经由总线466将BIOS存储器480耦合到I/O控制器470。BIOS存储器480是非易失性可编程存储器、例如即使不再供电之后仍保留有其中存储的数据内容的闪速存储器。或者,BIOS存储器480可以是其他类型的可编程存储器装置、例如可编程只读存储器(PROM)和可擦写可编程只读存储器(EPROM)。除了BIOS存储器480外,计算机系统400还可以包括其他BIOS存储器。
相应地,如图5所示,BIOS存储器480可以包括用于系统复位之后初始化计算机系统的主机平台固件。如本文中描述的,主机固件包括EFI 142、SAL 144和PAL 146。相应地,如本文描述的,在计算机系统400的引导期间加载访客固件240以提供主机平台。在引导之后,主机平台将加载VMM,VMM负责从硬盘474加载访客固件240、访客软件和其他类似组件。
备选实施例将认识到对于其他实施例,可以使用不同的系统配置。例如,虽然系统400包括单个CPU 460,但是对于其他实施例,多处理器系统(其中一个或多个处理器可在配置和操作上与上文描述的CPU相似)也可以从多种实施例的协作访客固件中获益。对于其他实施例还可以使用另外不同类型的系统或不同类型的计算机系统、例如服务器、工作站、桌上型计算机系统、游戏系统、嵌入式计算机系统、刀片服务器等。
公开了实施例和最佳实施方式,可以对公开的实施例进行修改和改变,同时仍在由所附权利要求定义的实施例的范围内。
权利要求
1.一种方法,包括启动虚拟机(VM)以至少包含访客操作系统(OS)和访客固件;在存储器中生成与所述访客固件关联的数据结构,以向所述访客固件提供处理器和平台配置信息;以及服务于对主机平台服务的访客固件请求。
2.如权利要求1所述的方法,其特征在于,服务于所述访客固件请求还包括从访客可扩展固件接口(EFI)固件模块、访客处理器抽象层(PAL)固件模块和访客系统抽象层(SAL)固件模块的其中之一中接收访客固件请求;以及向主机EFI固件模块、主机PAL固件模块和主机SAL固件模块的其中之一请求主机固件运行时服务。
3.如权利要求1所述的方法,其特征在于,生成所述数据结构还包括定义所述VM的处理器和平台配置信息;定义所述VM的虚拟化策略;根据所述虚拟化策略和所述处理器和平台配置信息在存储器中创建所述结构;以及在创建所述VM时将所述数据结构传递到所述访客固件。
4.如权利要求1所述的方法,其特征在于,服务于对主机平台服务的访客固件请求包括检测中止指令;检查与所述指令关联的一个或多个值以识别所述中止指令是否是对主机固件运行时服务的访客请求;以及向主机平台请求所述主机固件运行时服务。
5.如权利要求1所述的方法,其特征在于,服务于对主机平台服务的访客固件请求包括在访客模式和主机模式之间更改处理器虚拟化模式而无需中断虚拟机监视器;以及向主机平台请求所述主机固件运行时服务。
6.一种方法,包括根据从访客操作系统(OS)接收的访客固件服务请求搜索从虚拟机监视器(VMM)接收的数据结构;以及如果所述访客固件服务请求是对主机平台服务的请求,则向所述VMM发起服务请求。
7.如权利要求6所述的方法,其特征在于,在搜索所述数据结构之前,所述方法还包括在创建至少包含访客固件和所述访客操作系统的虚拟机(VM)时接收数据结构;以及根据所述数据结构指示的虚拟化策略配置所述访客固件。
8.如权利要求6所述的方法,其特征在于,搜索所述数据结构还包括检测所述访客OS请求的所述数据结构内的信息;根据所述数据结构内的信息工作;以及将控制返回给所述访客OS。
9.如权利要求6所述的方法,其特征在于,发起还包括向所述VMM发出中止指令,所述中止指令包括用于指示对主机固件运行时服务的访客固件请求的值。
10.如权利要求6所述的方法,其特征在于,发起所述服务请求还包括发出指令将处理器指令状态从访客模式更改成主机模式来请求主机固件运行时服务。
11.一种具有机器可访问介质的制造产品,所述机器可访问介质具有关联的指令,其中所述指令在执行时使包括至少一个组件的机器执行如下步骤在存储器中生成包括虚拟机(VM)配置信息和虚拟化策略的数据结构;向所述VM内的访客固件传递存储器参量,以使所述访客固件能够访问所述数据结构内的所述配置信息和虚拟化策略;启动所述VM以至少包含访客操作系统(OS)和访客固件;以及服务于对主机固件运行时服务的访客固件请求。
12.如权利要求11所述的制造产品,其特征在于,服务于所述访客固件请求还包括从访客可扩展固件接口(EFI)固件模块、访客处理器抽象层(PAL)固件模块和访客系统抽象层(SAL)固件模块的其中之一中接收访客固件请求;以及向主机EFI固件模块、主机PAL固件模块和主机SAL固件模块的其中之一请求主机固件运行时服务。
13.如权利要求11所述的制造产品,其特征在于,服务于所述请求还包括检测从所述访客固件接收的请求;对作为访客固件服务请求的所述请求进行认证;以及服务于对主机固件运行时服务的访客固件请求。
14.如权利要求11所述的制造产品,其特征在于,服务于对主机平台服务的访客固件请求包括检测中止指令;检查与所述中止指令关联的一个或多个值以识别所述中止指令是否是对主机固件运行时服务的访客请求;以及向主机平台请求所述主机固件运行时服务。
15.如权利要求11所述的制造产品,其特征在于,服务于对主机平台服务的访客固件请求包括在访客模式和主机模式之间更改处理器虚拟化模式而无需中断虚拟机监视器;以及向主机平台请求主机固件运行时服务。
16.一种具有机器可访问介质的制造产品,所述机器可访问介质具有关联的指令,其中所述指令在执行时使包括至少一个组件的机器执行如下步骤检测访客操作系统(OS)发出的访客固件服务请求;搜索虚拟机(VM)的启动期间从虚拟机监视器(VMM)传递的数据结构;以及如果从所述访客OS接收的所述访客固件服务请求请求主机固件运行时服务,则向所述VMM发起服务请求。
17.如权利要求16所述的制造产品,其特征在于,在检测所述访客固件服务请求之前,所述至少一个组件执行如下步骤由访客固件搜索所述数据结构来识别虚拟化策略;以及根据检测的虚拟化策略配置所述访客固件。
18.如权利要求17所述的制造产品,其特征在于,配置所述访客固件还包括分析所述虚拟化策略以识别所述访客固件要执行的访客固件功能;以及分析所述虚拟化策略以识别所述主机固件要执行的固件功能。
19.如权利要求18所述的制造产品,其特征在于,所述至少一个组件还执行如下步骤根据所检测的虚拟化策略配置访客处理器抽象层(PAL)固件来处理至少一个PAL功能;以及根据所检测的虚拟化策略配置访客系统抽象层(SAL)固件来执行至少一个SAL功能。
20.如权利要求17所述的制造产品,其特征在于,所述访客固件包括访客可扩展固件接口(EFI)固件模块、处理器抽象层(PAL)固件模块和系统抽象层(SAL)访客固件模块。
21.一种系统,包括主机平台;虚拟机监视器(VMM);以及至少包含访客操作系统(OS)和访客固件的虚拟机(VM),所述访客固件根据从所述访客OS接收的访客固件服务请求搜索从所述VMM接收的数据结构以查找配置信息,并且如果所述访客固件服务请求是对主机平台服务的请求,则向所述VMM发起服务请求。
22.如权利要求21所述的系统,所述访客固件包括访客可扩展固件接口模块、访客处理器抽象层(PAL)访客固件模块和访客系统抽象层(SAL)访客固件模块。
23.如权利要求21所述的系统,其特征在于,所述VMM用于在存储器中生成与所述访客固件关联的数据结构,以向所述访客固件提供虚拟化策略以及处理器和平台信息,所述访客固件用于使用所述数据结构来响应从访客OS接收的对静态配置信息的请求,并服务于对主机平台服务的访客固件请求。
24.如权利要求21所述的系统,其特征在于,所述访客固件用于根据所述数据结构指示的虚拟化策略执行配置。
25.如权利要求21所述的系统,其特征在于,所述访客固件用于向所述VMM发出中止指令,所述中止指令包含用于指示对主机固件运行时服务的访客固件请求的值。
26.如权利要求21所述的系统,其特征在于,所述访客固件用于发出将处理器指令状态从访客模式更改成主机模式来请求主机固件运行时服务的指令。
27.如权利要求24所述的系统,其特征在于,所述访客固件还用于分析所述虚拟化策略以识别所述访客固件要执行的访客固件功能,以及分析所述虚拟化策略以识别所述主机固件要执行的固件功能。
28.如权利要求27所述的系统,其特征在于,所述访客固件还用于根据所检测的虚拟化策略配置访客处理器抽象层(PAL)固件来处理至少一个PAL功能,以及根据所检测的虚拟化策略配置访客系统抽象层(SAL)固件来执行至少一个SAL功能。
29.如权利要求21所述的系统,其特征在于,所述VMM用于在访客固件地址空间内加载所述访客固件,并结合对所述数据结构的存储器参量来启动所述访客固件。
全文摘要
描述一种用于协作访客固件的方法和设备。在一个实施例中,该方法包括启动包括访客操作系统(OS)和访客固件的虚拟机(VM)。在启动VM之前,在存储器中生成数据结构,并将其与访客固件关联,以向访客固件提供VM所提供的虚拟化策略以及处理器和平台配置信息。在一个实施例中,访客固件响应来自访客OS的请求使用数据结构来访问有关虚拟化策略的静态信息以及处理器和平台配置信息。但是,当访客OS需要主机平台服务时,虚拟机监视器(VMM)服务于对主机平台服务的访客固件请求。还描述了其他实施例并且对这些其他实施例要求权利。
文档编号G06F9/455GK101091161SQ200480044724
公开日2007年12月19日 申请日期2004年12月31日 优先权日2004年12月31日
发明者S·李, H·高, W·荘, K·于 申请人:英特尔公司