首页> 中国专利> 利用虚拟化技术来加速域特定运行时环境的框架

利用虚拟化技术来加速域特定运行时环境的框架

摘要

在一些实施例中,本发明涉及利用虚拟化技术来有效地支持域特定运行时环境的框架。在至少一个实施例中,使用框架以利用虚拟化技术(VT)来划分相同的域特定应用程序的性能关键和非性能关键任务。本发明的一个实施例利用通用操作系统来执行域的非性能关键方面,并利用特权的VT-根模式来执行该域的性能关键方面。另一个实施例利用一个或多个访客VM来执行域特定运行时环境的性能关键方面。还描述和主张其它实施例。

著录项

  • 公开/公告号CN101405712A

    专利类型发明专利

  • 公开/公告日2009-04-08

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200780009841.7

  • 发明设计人 E·约翰逊;A·孔策;

    申请日2007-03-14

  • 分类号G06F15/16;G06F9/06;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人柯广华

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 21:44:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-11-16

    授权

    授权

  • 2009-06-03

    实质审查的生效

    实质审查的生效

  • 2009-04-08

    公开

    公开

说明书

技术领域

一般来说,本发明的实施例涉及利用虚拟化技术的计算环境,更 具体地说,涉及利用虚拟化技术来有效地支持域特定运行时环境的框 架。

背景技术

存在各种机制用来在单个平台中实现多个虚拟机。一类称为虚拟 机监视器(VMM)的软件使得单个平台/处理器能够同时支持多个访 客操作系统。公司的虚拟化技术(VT)使得能够在体系 结构(IA)处理器上(以及最终在平台上)有效执行VMM。

在VT环境中,会向每个访客操作系统(OS)提供处理器和平台 的“虚拟机”(VM)视图,并且访客OS通常不知道它并没有控制所 有的处理器或平台资源。利用VMM的动机包括合并物理硬件(例如, 一个硬件平台合并之前在多个物理平台上执行的软件)和资源划分以 实现可管理性、安全性和质量原因的任意组合(例如,托管多个访客 的平台可以使用VMM来向那些支付高额费用的被托管应用程序提供 隔离和更好的服务)。

公司的虚拟化技术(VT)环境使得能够创建新的“更高” (更具特权)的特权级,称为“根模式”,这使得VMM软件能够控 制处理器和平台资源并向现有访客操作系统呈现访客OS能控制的硬 件资源视图。

目前,使用VT来创建VMM软件,该MM软件调度和隔离多 个访客操作系统的执行。计算模型是,域或应用的性能关键和非性能 关键代码在相同的访客操作系统(VT非根模式)中运行,并且VT 根模式中的软件那时只用于确保访客操作系统之间的隔离和公正。

如行业从业人员所注意到的那样,利用通用平台作为嵌入式或域 特定设备(如联网设备)存在性能问题。设备类型可以包括侵入检测 或XML加速,但也可以适用于其它域。这些问题与需要访问来自通 用操作系统(GPOS)的服务的应用程序有关,通用操作系统如或BSD变型(如或OpenBSD)、 在通用OS下运行的这些域特定应用程序的性能往往较 差。具体来说,对于网络设备,问题包括存在太多的中断或大量的缓 冲器副本。为了消除这个问题,厂商已经对通用OS做出大量的修改 以适应联网应用。换句话说,厂商已经通过实现与GPOS紧密结合的 定制域特定运行时环境(DSRTE)克服了这个问题。这些平台很难维 护。当对通用OS做出更新时,通常会有“多米诺”效应,从而需要 对DSRTE做出改变。对GPOS所做的一些改变可以是对内核模块所 做的类似于内核模块的动态链接库(dll)的修改,但也可以是对调度 器或网络堆栈的改变。当更新或修改GPOS时,对GPOS所做的非dll 修改或直接改变极难维护。

附图说明

通过以下对本发明的详细描述,本发明的特征和优点将变得显而 易见,其中:

图1是可以在其上实现本发明的实施例的示例性平台的框图;

图2是示出根据本发明的实施例的传统管理程序虚拟机监视器 (VMM)体系结构平台的框图;

图3A-B是示出域特定运行时环境体系结构的选择的框图;

图4是示出根据本发明的实施例、用于执行DSRTE的框架的框 图,该DSRTE不仅控制着平台资源(处理器、存储器、I/O),而且 还与未经修改的通用OS共存;

图5是示出根据本发明的实施例、用于利用虚拟化来实现有效的 域特定运行时环境(DSRTE)的方法的流程图;

图6是示出根据本发明的实施例、用于执行DSRTE的框架的框 图,该DSRTE利用多个访客VM来划分一个应用程序的任务;以及

图7是示出本发明的实施例可用的存储器映射的框图。

具体实施方式

本发明的实施例是关于域特定运行时环境的系统和方法。在至少 一个实施例中,本发明要利用利用与现有系统中所用的虚拟化技术 (VT)不同的虚拟化技术的框架。不是支持多个访客操作系统,本发 明的实施例而是描述这样一种框架,它利用VT来有效地支持域特定 运行时环境(DSRTE)(如同在诸如联网设备的特定域的嵌入式系统 中所常见的那样),同时维持对于应用程序和现有通用操作系统的透 明度。运行时环境的实施例允许在DSRTE中执行的应用程序的性能 关键部分在体系结构(IA)处理器的特权VT-根模式中或在具 有适于该特定域的特殊特权的独立VM中运行。应用程序和操作系统 (OS)不知道这种变化;因此,当需要OS服务时,这些服务仍可用, 但是运行时环境现在可以用调谐到它的特定域的方式来控制处理器 和平台资源。这种方法对于通用操作系统(GPOS)很难,或者有时 不可能。本发明的实施例将虚拟化技术的范围扩展到体系结构 (IA)和目前在IA上运行的通用操作系统的通用性目前还不适合的 域中。其它平台体系结构也可以受益。

说明书中提到本发明的“一个实施例”时是指,结合该实施例描 述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此, 在整篇说明书的各个地方出现短语“在一个实施例中”时不一定都指 相同的实施例。

出于说明的目的,阐述了特定配置和细节,以便充分理解本发明。 但是,本领域的技术人员将明白,在没有本文介绍的这些特定细节的 情况下,也可以实现本发明的实施例。此外,可以省略或简化众所周 知的特征,以免使本发明晦涩难懂。本说明书中给出了各种实例。这 些实例只是为了描述本发明的具体实施例。本发明的范围不限于所给 出的实例。

图1是可以在其上实现本发明的实施例的示例性平台的框图。处 理器110经由前端总线101与存储器控制器集线器(MCH)114(又 称为北桥)通信。MCH 114经由存储器总线103与系统存储器112通 信。MCH 114还可经由图形总线105与高级图形端口(AGP)116通 信。MCH 114经由外围组件互连(PCI)总线107与I/O控制器集线 器(ICH)120(又称为南桥)通信。ICH 120可以经由低引脚计数(LPC) 总线109耦合到一个或多个组件,如PCI硬盘驱动器(未示出)、传 统组件(如IDE 122、USB 124、LAN 126和音频128)及高级I/O(SIO) 控制器156。

处理器110可以是能够执行软件的任何类型的处理器,如微处理 器、数字信号处理器、微控制器等。尽管图1只示出一个这样的处理 器110,但在平台硬件100中可以存在一个或多个处理器,并且这些 处理器中的一个或多个处理器可以包括多个线程、多个核等。

存储器112可以是硬盘、软盘、随机存取存储器(RAM)、只读 存储器(ROM)、闪速存储器、或可以由处理器110读取的任何其它 类型的介质。存储器112可以存储用于完成本发明的方法实施例的执 行的指令。

诸如闪速存储器152的非易失性存储器可以经由低引脚计数 (LPC)总线109耦合到IO控制器。BIOS固件154通常驻留在闪速 存储器152中,并且启动将执行来自闪速存储器或固件的指令。

在一些实施例中,平台100是启用服务器管理任务的服务器。该 平台实施例可以具有经由LPC 109耦合到ICH 120的底板管理控制器 (BMC)150。

图2是示出传统管理程序VMM体系结构平台200的框图。多个 访客VM 201、203、205和207可以同时在平台200上运行。虚拟机 监视器(VMM)210经由处理器/平台虚拟化层211控制访客VM对 硬件220的访问。在VMM 210内可以存在多个虚拟设备模型213和 215。VMM 210能以最高特权级操作。VMM 210控制对文件系统、 存储器和所有设备的访问,这将在下文进一步描述。VMM 210通常 具有用于平台上的每个硬件设备的设备驱动程序219。

VMM 210和访客VM 201、203、205和207在平台硬件220上执 行。平台硬件220可以包括处理器222、存储器224以及一个或多个 I/O设备226和228。平台硬件220可以是个人计算机(PC)、主机、 手持式设备、便携式计算机、机顶盒或任何其它计算系统。

处理器222可以是能够执行软件的任何类型的处理器,如微处理 器、数字信号处理器、微控制器等。尽管图2只示出一个这样的处理 器222,但在平台硬件220中可以存在一个或多个处理器,并且这些 处理器中的一个或多个处理器可以包括多个线程、多个核等。

存储器224可以是硬盘、软盘、随机存取存储器(RAM)、只读 存储器(ROM)、闪速存储器、或可以由处理器222读取的任何其它 类型的介质。存储器224可以存储用于完成本发明的方法实施例的执 行的指令。

这个或这些I/O设备226和228可以是例如网络接口卡、通信端 口、视频控制器、系统总线上的盘控制器(例如,外围组件互连(PCI)、 行业标准体系结构(ISA)、高级图形端口(AGP))、集成到芯片 集逻辑或处理器中的设备(如实时时钟、可编程计时器、性能计数器)、 或平台硬件220上的任何其它设备。这个或这些I/O设备226和228 可以通过I/O指令、存储器映射I/O访问或通过本领域中已知的任何 其它方式来访问。

图3A-B是示出域特定运行时环境体系结构的选择的框图。域特 定应用程序(DS-App)301和运行时环境303需要来自操作系统(OS) 305的一些服务。对于最佳性能,域特定应用程序需要控制平台100 的其它方面。例如,嵌入式分组处理系统可以得益于定制的知道分组 的调度器、存储器管理器和网络接口卡(NIC)服务(I/O服务)。偶 尔地,对文件系统的访问也是必需的。

图3A示出域特定运行时环境体系结构的第一选择。平台100上 的域特定运行时环境(domain-specific run-time environment DSRTE) 303在现有OS 305及其应用程序之上执行。该方法通常执行较差,因 为GPOS的假定通常不适于诸如网络分组处理环境之类的环境。例如, 通用操作系统利用中断来在网络设备与CPU之间通信,并使用分页来 管理虚拟存储器。这些技术益处较少,并且对于分组处理应用显示出 显著的性能降级。

图3B示出DSRTE体系结构的另一个选择。这里,DSRTE 313 与OS 315紧密耦合。尽管这向DSRTE及其应用程序提供了域特定性 能和控制方面,但它具有额外的用于测试和维护经过修改的OS的不 良成本。该方法还禁止使用闭合源GPOS,由此不能提供足以实现该 紧密耦合的控制。

在以下论述中,使用网络分组处理域来说明本发明的实施例。本 领域的技术人员将明白,目前受现有操作系统的通用性限制的任何域 特定运行时都可以在本发明框架内适用。

在一个实施例中,该平台可以分成两个域。一个域驻留在具有需 要GPOS的服务的代码/模块的未经修改的GPOS中,这些代码/模块 是由厂商选择的。这些模块通常是非性能关键进程(non-performance critical process),例如对硬盘驱动器或USB端口的偶尔访问或对GUI 的访问。另一个域可以包含可“在裸露金属上运行”的性能关键进程。 换句话说,在这些进程与硬件本身之间基本不存在层。出于本论述的 目的,将一个域称为VT-根模式,而将另一个域称为非VT-根模式。 性能关键任务将在VT-根模式中运行。在备选实施例中,性能关键 (performance critical)任务可以在一个非VT-根VM中运行,而非性能 关键任务可以在另一个非VT-根VM中运行,其中VT-根模式中的 VMM控制这两个VM。

现在参照图4,示出说明根据本发明的实施例、用于执行DSRTE 的框架的框图,其中该DSRTE不仅控制平台资源(处理器、存储器、 I/O),而且还与未经修改的通用OS(GPOS)共存。OS 405可以在 访客虚拟机(VM)201中运行,并且不知道在访客VM 203中运行的 DSRTE 403实际上控制着诸如调度、存储器管理及I/O的平台资源, 然而当它的应用程序401需要非性能关键服务时,域特定运行时可以 听从访客OS(201)。在本发明的实施例中,DSRTE 403仍然呈现这 样一种观点,即,应用程序401是在DSRTE 403之上执行的,而DSRTE 403又在OS 405之上。但是,在实施例中,域特定应用程序(DS-App) 401执行非性能关键任务。如椭圆409所示,在VT-根DSRTE 407中 执行DS-App的性能关键任务。VT-根(VT-root)模式407中的DS-App 409与在DSRTE 403的GPOS部分中运行的DS-App 401通信。

但是,DSRTE 403可以在VT-根模式运行它的应用程序的性能关 键部分,并采用为该应用程序的域优化的方式开始执行这些应用程序 401。当应用程序401请求DSRTE 403的VT-根部分407所不支持的 OS服务时,调度访客OS 201/203,并允许其为该请求服务。在一个 实施例中,VT-根模式407是应用程序的主要执行环境,并使用单个 访客OS来扩展提供给应用程序的服务集。本发明对于现有应用程序 和OS透明。

图5是示出根据本发明的一个实施例、用于利用虚拟化来实现有 效的域特定运行时环境(DSRTE)的方法的流程图。在本发明的一个 实施例中,在方框501,在初始化时,DSRTE可以启用VT-根执行, 并假设(assume)虚拟机监视器(VMM)的传统地位(traditional place)。 在方框503,可以通过VT-根DSRTE组件将未经修改的应用程序二进 制数提供给DSRTE并加载到存储器中。在方框505,可以允许应用程 序二进制数在VT-根模式中执行。然后,在方框507,可以加载未经 修改的GPOS,并使其在非VT-根模式中运行,从而允许运行应用程 序的非性能关键组成部分。然后,如同在方框509中那样,应用程序 的性能关键部分可以在VT-根模式中运行,同时应用程序的非性能关 键部分在非VT-根模式中在GPOS下运行。基于本文的描述,本领域 的技术人员将明白,这可以用多种方式来实现。在一个实施例中,应 用程序的不同部分经由分时法来同时运行。在另一个实施例中,应用 程序的不同部分在不同的处理器上下文、线程或核上运行。

例如,在无线路由器的一个实现中,在路由器上运行的进程可以 在两个域中运行。用于控制路由器设置的GUI接口可以在非VT-根(非 性能关键)域中运行。网络分组通信和处理可以在VT-根(性能关键) 域中运行。本领域的技术人员将明白,可以使用多种技术来在这两个 域之间通信。例如,在虚拟化技术中,可以在不同的实现中利用邮箱、 共享存储器或软件机制来在这两个域之间发送网络分组。可以在URL www.xensource.com的公共因特网上找到与Xen有关的用来在VM之 间传递信息的一些技术,其中Xen是企业级开放源虚拟化应用程序。 与虚拟化技术有关的其它信息可以在 www.intel.com/cd/ids/developer/asmo-na/eng/dc/enterprise/technologies/197668.htm找到。

当在非VT-根模式中执行VM时发生了具有特殊意义的操作或事 件时,处理器可以跳转到VT-根模式。在VT技术中,这可以称为 VM-EXIT(从VM退出)。当根域结束该特殊情形的处理时,可以利 用VM-ENTER将控制转回到之前执行的VM。

例如,在网络分组交换的一个实施例中,DSRTE可以处理大部分 的分组,而不管它是否是在VT-根域或专门的VM中。因此,与GPOS VM的通信将最少,并且性能关键操作仍保留在DSRTE中。

在一些实施例中,将VMM最小化以使得性能关键任务能够直接 访问I/O驱动器/设备,或具有较少的开销。如上所述,在一个实施例 中,DSRTE是VMM的一部分,在另一个实施例中,DSRTE是访客 OS/访客VM的一部分。参照图6,VMM 611在平台100上以VT-根 模式操作。GPOS在访客VM 605中执行。一个或多个DS-App 601在 DSRTE 603中的GPOS访客VM内执行。但是,DS-App 609的性能 关键方面实际上是由第二访客VM 607执行的。控制可以通过VMM 611经由在第一访客VM 605中运行的DS-App 601所引起的VM-EXIT 而转到第二访客VM 607。在该实施例中,VMM 611确定应当将控制 转到第二访客VM中的性能关键DS-App部分。并且,在不同分区上 运行的应用程序部分可以经由共享存储器或消息传递而相互通信。

在另一个实施例中,至少一个与DSRTE无关的额外访客VM可 以在平台上运行。在此情形下,该额外访客VM可以执行与DSRTE 无关的性能关键或非性能关键任务。在又一个实施例中,DSRTE可能 需要几个不同的性能关键任务。例如,在非VT-根实施例(图6)中, 这些任务中的每个任务可以在它自己的访客VM中运行。例如,对于 具有多个I/O端口的嵌入式设备,每个端口可以配置成用于执行不同 的功能。每个端口的活动可以视为性能关键的,并且它们的性能关键 DSRTE可以在它们自己的访客VM中操作。

尽管用网络通信实例说明了以上描述,但是本发明的实施例可以 适合与各种应用配合使用。在应用程序的性能关键与非性能关键方面 之间具有显著差异的应用程序可以是使用该方法的良好的候选者。例 如,在机顶盒环境中,音频-视频流的编码和解码可以在性能关键 DSRTE中执行,而用户接口、或程序指南的下载、或软件更新可以在 GPOS VM中执行。

在另一个实施例中,可以轮询I/O设备的活动而不是依靠中断。 这可以增加性能。页故障非常昂贵,因此可以为性能关键代码禁用虚 拟存储器设施。性能关键DSRTE在直接访问设备时表现会更好。因 此,在性能关键DSRTE是在访客VM中而不是在VT-根模式中运行 的实施例中,访客VM将需要知道相对于设备的存储器地址偏移以便 正确地直接访问它们。PCI设备被存储器映射到物理空间中。这两个 域之间的通信对于实现该要求来说是必需的。

参照图7,示出说明存储器映射的框图。当性能关键DSRTE部分 在非根模式中运行时,访客操作系统(访客VM)相信它控制着在地 址0x00000000开始的物理存储器块,此时,实际上,它只具有系统 的实际物理存储器的一部分,该部分在由运行在VT-根模式的VMM 决定的某个偏移处开始。使用VT的VMM具有必须确保将通过访客 VM设置的页表设置成指向物理存储器的正确区域而不是访客看到的 物理存储器的机制。例如,如果访客OS将页表设置成用于将虚拟地 址0x40000000映射到物理地址0x10000000(使用以上映射),则VMM 将在页表中对此进行校正以使得虚拟地址0x40000000实际上映射到 物理地址0x30000000。这对于访客OS来说是透明的。这种技术可以 处理由访客OS执行的任何存储器读/写。但是,诸如网络接口卡(NIC) 的I/O设备也利用直接存储器访问(DMA)来读和写物理存储器。在 没有任何虚拟化的情况下,OS将通知NIC它应当将输入分组放到的 物理地址。利用虚拟化时,这因为存在访客操作系统通常不知道它的 物理存储器视图的实际物理偏移的事实而变得复杂。因此,访客OS 不知道要告诉NIC应当将输入分组DMA到哪里。但是,在以上描述 的环境中,性能关键DSRTE知道正在虚拟化环境中运行。因此, DSRTE可以利用这种了解来实现它的优点。在对VMM增加了 VMCALL以询问它的物理存储器偏移的情况下,访客OS可以计算正 确的物理地址,并通知NIC要将输入分组DMA到该正确的物理地址。

本文描述的技术不限于任何特定的硬件或软件配置;它们适用于 任何计算、消费型电子、或处理环境。这些技术可以在硬件、软件或 两者的组合中实现。

对于模拟,程序代码可以利用硬件描述语言或其它功能描述语言 来表示硬件,上述语言实质上提供期望如何执行所设计的硬件的模 型。程序代码可以是汇编或机器语言,或是可以编译和/或解译的数据。 此外,本领域中常用如采取动作或造成结果的一种或另一种形式提到 软件。这些表述只是处理系统开始执行程序代码从而使处理器执行动 作或产生结果的速记方式。

每个程序可以用高级程序或面向对象程序设计语言来实现以与 处理系统通信。但是,如果需要,程序也可以用汇编或机器语言来实 现。在任何情况下,语言都可编译或解译。

可以使用程序指令来使利用这些指令编程的通用或专用处理系 统执行本文描述的操作。或者,这些操作可以通过包含用于执行这些 操作的硬接线逻辑的特定硬件组件、或通过程序控制计算机组件和定 制的硬件组件的任意组合来执行。本文描述的方法可以作为计算机程 序产品来提供,该计算机程序产品可以包括机器可访问介质,在该机 器可访问介质上存储有指令,可以利用这些指令来将处理系统或其它 电子设备编程以执行这些方法。

程序代码或指令可以存储在例如易失性和/或非易失性存储器中, 如存储设备和/或关联的机器可读或机器可访问介质,包括固态存储 器、硬盘驱动器、软盘、光存储装置、磁带、闪速存储器、存储棒、 数字视频盘、数字多功能盘(DVD)等,以及更奇特的介质,如机器 可访问生物状态保存存储装置。机器可读介质可以包括用于存储、传 送或接收机器可读形式的信息的任何机制,并且该介质可以包括用于 传递将程序代码编码的电、光、声或其它形式的传播信号或载波的有 形介质,如天线、光纤、通信接口等。程序代码可以用分组、串行数 据、并行数据、传播信号等形式传送,并且可以用压缩或加密格式使 用。

程序代码可以在可编程机器上执行的程序中实现,这些可编程机 器如移动或静止计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、 消费型电子设备(包括DVD播放器、个人视频记录器、个人视频播 放器、卫星接收器、立体声接收器、电缆TV接收器)及其它电子设 备,每个设备均包括处理器、可由处理器读取的易失性和/或非易失性 存储器、至少一个输入设备和/或一个或多个输出设备。可以对利用输 入设备输入的数据应用程序代码以便执行所描述的实施例并生成输 出信息。输出信息可以应用于一个或多个输出设备。本领域的技术人 员将明白,所公开的主题的实施例可以用各种计算机系统配置来实 现,包括多处理器或多核处理器系统、微型计算机、大型计算机以及 可以嵌入到实际上任何设备中的渗透型或微型计算机或处理器。所公 开的主题的实施例也可以在分布式计算环境中实现,在分布式计算环 境中,任务或其部分可由通过通信网络链接的远程处理设备来执行。

尽管将操作描述成连续的进程,但其中一些操作实际上可以并 行、同时和/或在分布式环境中执行,并且可以用本地和/或远程存储 以供单处理器或多处理器机器访问的程序代码来执行。此外,在一些 实施例中,在不偏离所公开的主题的精神的情况下,操作顺序可以重 新排列。程序代码可以供嵌入式控制器使用或与嵌入式控制器结合使 用。

尽管参照说明性实施例描述了本发明,但不希望以限制意义理解 本描述。本发明所属领域的技术人员明白说明性实施例的各种修改以 及本发明的其它实施例,它们被视为是落在本发明的精神和范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号