CN1794177A - 用于为虚拟机揭示处理器拓扑结构的系统和方法 - Google Patents

用于为虚拟机揭示处理器拓扑结构的系统和方法 Download PDF

Info

Publication number
CN1794177A
CN1794177A CNA2005101271088A CN200510127108A CN1794177A CN 1794177 A CN1794177 A CN 1794177A CN A2005101271088 A CNA2005101271088 A CN A2005101271088A CN 200510127108 A CN200510127108 A CN 200510127108A CN 1794177 A CN1794177 A CN 1794177A
Authority
CN
China
Prior art keywords
operating system
computer
virtual
processor
passenger plane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005101271088A
Other languages
English (en)
Other versions
CN1794177B (zh
Inventor
E·P·特劳特
R·A·威加
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1794177A publication Critical patent/CN1794177A/zh
Application granted granted Critical
Publication of CN1794177B publication Critical patent/CN1794177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Numerical Control (AREA)

Abstract

本发明针对的是使得客机操作系统知道当前分配给它的主机资源的子集的拓扑结构。在虚拟机引导时,虚拟化器将使用静态资源关系表(SRAT)来将客机物理存储器和客机虚拟处理器组合成虚拟节点。之后,在一个实施例中,虚拟化器能够按所需的改变虚拟节点背后的主机物理存储器,且虚拟化器将为该节点中的虚拟处理器提供合适的物理处理器。

Description

用于为虚拟机揭示处理器拓扑结构的系统和方法
技术领域
本发明一般涉及虚拟机(也被称为“处理器虚拟化”)领域,以及在虚拟机环境中执行的操作系统。更具体而言,本发明涉及用于向在虚拟机中执行的客机操作系统揭示虚拟机的处理器拓扑结构的系统和方法,其中,所述拓扑结构基于主机计算机系统处理器和存储器资源分配是动态的。
背景技术
包含通用中央处理单元(CPU)或“处理器”的计算机被设计成执行特定的系统指令集。具有类似体系结构或设计规范的一组处理器可以被认为是同一处理器家族的成员。当前的处理器家族的示例包括,由亚利桑那州菲尼克斯的摩托罗拉有限公司制造的摩托罗拉680X0处理器家族、由加利福尼亚州桑尼维尔的英特尔公司制造的英特尔80X86处理器家族、以及由摩托罗拉有限公司制造并在由加利福尼亚州库珀蒂诺苹果计算机有限公司制造的计算机中使用的PowerPC处理器家族。尽管一组处理器可以由于其类似的体系结构和设计规范而处于相同的家族中,但是根据其时钟速度和其它性能参数,家族中的处理器可能差异很大。
每一微处理器家族执行仅对该处理器家族独特的指令。处理器或处理器家族可执行的指令的集合被称为处理器指令集。作为示例,由英特尔80X86处理器家族使用的指令集与由PowerPC处理器家族使用的指令不兼容。英特尔80X86指令集是基于复杂指令集计算机(CISC)格式的。摩托罗拉的PowerPC指令集是基于精简指令集计算机(RISC)格式的。CISC处理器使用大量指令,其中某些可以执行相当复杂的功能,但是一般需要多个时钟周期来执行。RISC处理器使用较小数量的可用指令来执行以远远更高的速率执行的一组较简单的功能。
计算机系统之间的处理器家族的独特性一般也导致计算机系统的硬件体系结构的其它元件之间的不兼容性。使用来自英特尔80X86处理器家族的处理器制造的计算机系统将具有与使用来自PowerPC处理器家族的处理器制造的计算系统不同的硬件体系结构。由于处理器指令集和计算机系统硬件体系结构的独特性,应用软件程序一般被编写以在运行特定操作系统的特定计算机系统上运行。
虚拟机
计算机制造商希望通过使更多而不是更少的应用程序在与该计算机制造商的生产线相关联的微处理器家族上运行来最大化其市场份额。为了扩大可以运行在计算机系统上的操作系统和应用程序的数量,开发了一种技术领域,其中含有一种类型的CPU的给定计算机,被称为主机,将包含允许主机计算机仿真被称为客机的不相关类型的CPU的指令的虚拟化器程序。这样,主机计算机将执行使得一条或多条主机指令响应于给定的客机指令而被调用的应用程序,且使用这种方式,主机计算机可以运行为其自身硬件体系结构设计的软件和为含有不相关硬件体系结构的计算机而编写的软件。
作为更具体的示例,例如,由苹果计算机制造的计算机系统可以运行为基于PC的计算机系统编写的操作系统和程序。它也有可能使用虚拟化器程序以在单个CPU上并发地运行多个不兼容的操作系统。在后一安排中,尽管每一操作系统彼此不兼容,但是虚拟化器程序可以作为若干操作系统的主机,从而允许不兼容的操作系统在同一主机计算机系统上并发地运行。
当在主机计算机系统上仿真客机计算机系统时,客机计算机系统被称为“虚拟机”,因为客机计算机系统在主机计算机系统中仅作为一种特殊硬件体系结构的操作的纯软件表示而存在。术语虚拟化器、仿真器、直接执行程序、虚拟机以及处理器仿真有时可互换使用,以表示使用本领域的技术人员已知且理解的一种或若干方法来模拟或仿真整个计算机系统的硬件体系结构的能力。而且,以任何形式的术语“仿真”的所有使用旨在传达其广义,且不旨在区分仿真的指令执行概念与虚拟机中的操作系统指令的直接执行。这样,例如,由加利福尼亚州圣马特奥的Connectix公司创建的Virtual PC软件“仿真”(通过指令执行仿真和/或直接执行)包括英特尔80X86奔腾处理器和各种主板组件和卡的整个计算机,且在运行在主机上的虚拟机中“仿真”这些组件的操作。运行在诸如含有PowerPC处理器的计算机系统等主机计算机的操作系统软件和硬件体系结构上的虚拟化器程序模拟整个客机计算机系统的操作。
虚拟化器程序担当主机的硬件体系结构和由运行在仿真环境内的软件(例如,操作系统、应用程序等)发送的指令之间的互换。该虚拟化器程序可以是主机操作系统(HOS),HOS是直接运行在物理计算机硬件上的操作系统(且可以包括系统管理程序,在本发明的下文中将更详细描述)。或者,仿真的环境也可以是虚拟机监控程序(VMM),VMM是直接在硬件上运行的软件层,可能与主机操作系统并行运行或结合工作,且可以通过揭示与VMM正在虚拟的硬件相同的接口来虚拟化主机的所有资源(以及某些虚拟资源)。该虚拟化使得虚拟化器(以及主机计算机系统本身)不被运行于其上的操作系统层察觉。
总而言之,处理器仿真使得客机操作系统能够在由主机计算机系统上运行的虚拟化器创建的虚拟机上执行,所述主机计算系统包括物理硬件和主机操作系统。
处理器和存储器拓扑结构
现代操作系统调度程序考虑机器的处理器和存储器拓扑结构来优化性能。这通常在启动时完成,且对于在物理硬件上执行的操作系统,这往往是充分的,因为物理硬件的处理器拓扑结构保持不变。Windows操作系统(Windows XP、Windows2003)以及其它操作系统一般在引导时间以两种方式确定系统的拓扑结构:(a)通过检查BIOS静态资源关系表(SRAT)中的存储器和处理器节点拓扑信息,以及(b)通过读取自包含的处理器标识数据(x86/x64处理器中的CPUID)来确定具体的同时多线程(SMT,也称为超线程)和多核拓扑。
如此处所使用的,术语“处理器拓扑结构”广泛指的是处理器及相关联的存储器的物理特征,如果操作系统知道这些特征,理论上可以使得操作系统能够更好地利用相关联的处理器资源。处理器拓扑可以包括,但不限于,下列静态处理器信息,诸如SMT、多核和BIOS的SRAT数据和/或信息、诸如处理器、存储器和I/O资源方案等静态NUMA信息、以及对前述的任何改变。
然而,在虚拟机环境中,尽管“主机代理”(主机操作系统、虚拟机监控程序和/或系统管理程序)的物理处理器拓扑结构是保持不变的,但是分配给虚拟化器从而虚拟机的物理资源可能随时间迅速变化,使得由运行在虚拟机上的客机操作系统作出的拓扑结构假设是不准确且因此是低效的。
尽管可以通过对虚拟处理器总是使用相同的物理处理器分配或者通过限制对特定节点的分配来减轻拓扑结构的动态本质,但是这会严重且消极地影响虚拟化器来最优地使用所有主机资源的能力。从而,本领域中需要的是用于校正变化的虚拟拓扑结构的低效,同时不消极地影响虚拟化器最优使用所有主机资源的能力的方法。
发明内容
本发明的各个实施例针对用于使得客机操作系统知道当前分配给它的主机资源的子集的拓扑结构。对这些实施例中的某一些,在虚拟机引导时,虚拟化器将使用静态资源关系表(SRAT)来将客机物理存储器和客机虚拟处理器组合成虚拟节点。之后,虚拟化器能够按所需地改变虚拟节点背后的主机物理存储器,且虚拟化器将为该节点中的虚拟处理器提供合适的物理处理器。
附图说明
当结合附图阅读以上概述以及以下最佳实施例的详细描述时,能更好地理解它们。为说明本发明起见,在附图中示出了本发明的示例性构造,然而,本发明不限于所揭示的特定方法和手段。在附图中:
图1是表示可在其中包含本发明的各方面的计算机系统的框图,
图2是表示计算机系统中的仿真的操作环境的硬件和软件体系结构的逻辑分层的框图,
图3A是表示虚拟化计算系统的框图,其中仿真是由主机操作系统执行的(或者直接地或者通过系统管理程序),
图3B是表示另一虚拟化计算系统的框图,其中仿真是由与主机操作系统并行运行的虚拟机监控程序执行的,
图4是示出可以利用本发明的若干实施例的多核处理器和NUMA两节点系统的框图,
图5是示出对本发明的某些实施例,虚拟化器用于为虚拟机存储器中的客机操作系统提供动态处理器拓扑信息的一种方法的处理流程图,以及
图6是示出对本发明的若干实施例的双重揭示和暗示方法的框图。
具体实施方式
发明是用特殊性来描述的,以满足法定要求。然而,描述本身不旨在限制本专利的范围。而是相反,发明人已经构想到所要求保护的本发明也可以用其它方式来实施,以结合其它现有或未来技术包括与在该文档中描述的方式不同的步骤或类似于这些步骤的步骤组合。此外,尽管可以在此处使用术语“步骤”来包含所使用的方法的不同元素,但是除非当明确描述单个步骤的顺序,否则不应该把该术语揭示为暗示此处所揭示的多个步骤之间的的任何特定顺序。
计算机环境
本发明的众多实施例可以在图1的计算机上执行,且以下讨论旨在提供可在其中实现本发明的合适的计算环境的简要概括描述。尽管不是必需的,但本发明将在如诸如由客户机工作站或服务器等计算机执行的程序模块等计算机可执行指令的通用语境中描述。一般而言,过程包括程序模块、例程、函数、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。而且,本领域的技术人员可以理解,本发明可以在其它计算机系统配置中实现,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、小型机、大型机等。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
如图1所示,示例性通用计算系统包括常规个人计算机20等,包括处理单元21、系统存储器22和将包括系统存储器在内的各种系统组件耦合至处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)包含有助于诸如启动时在个人计算机20中元件之间传递信息的基本例程,它存储在ROM 24中。个人计算机20还可以包括从硬盘(未示出)中读取或向其写入的硬盘驱动器27,从可移动磁盘29中读取或向其写入的磁盘驱动器28,以及从诸如CD ROM或其它光学介质等可移动光盘31中读取或向其写入的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别由硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其相关联的计算机存储介质为个人计算机20提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管此处所示的示例性环境使用硬盘、可移动磁盘29和可移动光盘31,本领域的技术人员应该理解,也可以在示例性操作环境中使用其它类型的计算机可读介质,它们可以存储可由计算机访问的数据,诸如盒式磁带、闪存卡、数字多功能盘、贝努利盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等。
可以在硬盘、磁盘29、光盘31、ROM 24或RAM 25上存储多个程序模块,包括操作系统35、一个或多个应用程序模块36、其它程序模块37和程序数据38。用户可以通过诸如键盘40和定点设备42等输入设备向个人计算机20输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的串行端口接口46连接至处理单元21,但也可以由诸如并行端口、游戏端口或通用串行总线(USB)等其它接口连接。监视器47或其它类型的显示设备也经由诸如视频适配器48等接口连接至系统总线23。除监视器47之外,个人计算机一般包括其它外围输出设备(未示出),诸如扬声器和打印机。图1的示例性系统还包括主机适配器55、小型计算机系统接口(SCSI)总线56以及连接至SCSI总线56的外部存储设备62。
个人计算机20可使用至一个或多个远程计算机,诸如远程计算机49的逻辑连接在网络化环境下操作。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于个人计算机20描述的许多或所有元件,尽管在图1中只示出存储器存储设备50。图1中所示逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,个人计算机20通过网络接口或适配器53连接至局域网51。当在WAN网络环境中使用时,个人计算机20通常包括调制解调器54或用于通过诸如因特网等广域网52建立通信的其它装置。调制解调器54可以是内置或外置的,它通过串行端口接口46连接至系统总线23。在网络化环境中,相对于个人计算机20所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。而且,尽管预期到本发明的众多实施例尤其适用于计算机化的系统,然而本文档中没有旨在将本发明限制于这些实施例。
虚拟机
从概念的观点来看,计算机系统一般包括在硬件基础层上运行的一个或多个软件层。为抽象的原因进行分层。通过为给定软件层定义接口,该层可以由其上的其它层来不同地实现。在设计良好的计算机系统中,每一层仅了解(且仅依赖于)直接在其下的层。这允许层或“堆栈”(多个邻接层)被替代,而没有消极地影响所述层或堆栈上方的层。例如,软件应用程序(较高层)一般依赖于操作系统的较低层(较低层),来向某一形式的持久存储写入文件,且这些应用程序不需理解向软盘、硬盘驱动器或网络文件夹写入数据之间的不同。如果较低层被新的操作系统组件取代来写入文件,较高层的软件应用程序的操作保持不受影响。
分层软件的灵活性允许虚拟机(VM)呈现实际上是另一软件层的虚拟硬件层。以这种方式,VM可以为其上的软件层创建所述软件层运行在其自身的专用计算机系统上的幻觉,从而VM可以允许多个“客机系统”在单个“主机系统”上并发地运行。该抽象层由图2示出。
图2是表示计算机系统中的仿真的操作环境的硬件和软件体系结构的逻辑分层的示意图。在图中,仿真程序94直接或间接地运行在物理硬件体系结构92上。仿真程序94可以是(a)与主机操作系统并排运行的虚拟机监控程序,(b)含有本机仿真能力的专用主机操作系统,或者(c)具有系统管理程序组件的主机操作系统,其中所述系统管理程序组件执行所述仿真。仿真程序94仿真客机硬件体系结构96(由虚线示出,以说明该组件是“虚拟机”的事实,即硬件实际上不存在但是改为由所述仿真程序94仿真)。客机操作系统98在所述客机硬件体系结构96上执行,且软件应用程序100在客机操作系统98上运行。在图2的仿真操作系统中,且由于仿真程序94的操作,即使软件应用程序100被设计成运行在通常与主机操作系统和硬件体系结构92不兼容的操作系统上,软件应用程序100也可以运行在计算机系统90中。
图3A示出了含有直接在物理计算机硬件102上运行的主机操作系统软件层104的虚拟化计算系统,其中主机操作系统(主机OS)104通过展现与主机OS正仿真(或“虚拟化”)的硬件相同的接口提供对物理计算机硬件102的资源的访问,这进而又允许主机OS能够不被运行于其上的操作系统察觉。再一次,为了执行仿真,主机操作系统102可以是具有本机仿真能力的专门设计的操作系统,或者,它可以是含有用于执行仿真的合并的系统管理程序组件的标准操作系统。
再次参考图3A,在主机OS 104上方是两种虚拟机(VM)实现,即VM A 108和VM B 110,VM A 108可以是例如虚拟化的英特尔386处理器,而VM B 110可以是例如摩托罗拉680X0处理器家族中的一个的虚拟化版本。在VM 108和110的每一个的上方分别是客机操作系统(客机OS)A 112和B 114。运行在客机OS A112上方的是两个应用程序,即应用程序A1 116和应用程序A2 118,而运行在客机OS B 114上方的应用程序B1 120。
关于图3A,重要的是注意到VM A 108和VM B 110(以虚线示出)是虚拟化的计算机硬件表示,它们仅作为软件构造而存在,且由于专用仿真软件的执行而变得可能,专用仿真软件不仅分别向客机OS A 112和客机OS B 114呈现VM A 108和VM B 110,且还执行客机OS A 112和客机OS B 114与真实物理计算机硬件102间接交互所必需的软件步骤。
图3B示出了另一个虚拟化计算系统,其中仿真由与主机操作系统104″一起运行的虚拟机监控程序(VMM)104′执行。对某些实施例,VMM可以是在主机操作系统104上方运行且仅通过所述主机操作系统104与计算机硬件交互的应用程序。而如图3B所示,在其它实施例中,VMM可以改为包含部分独立软件系统,它在某些层上通过主机操作系统104与计算机硬件102间接交互,而在其它层上VMM与计算机硬件102直接交互(类似于主机操作系统与计算机硬件直接交互的方式)。且在另外的其它实施例中,VMM可以包括完全独立软件系统,它在所有层上与计算机硬件102直接交互(类似于主机操作系统与计算机硬件直接交互的方式)而不利用主机操作系统104(尽管在协调所述计算机硬件102的使用和避免冲突等范围内仍旧与所述主机操作系统104交互)的。
用于实现虚拟机的所有这些变化被预期为形成此处所述的本发明的替换实施例,且此处没有内容应该被解释为将本发明限于任何特定的仿真实施例。另外,对分别通过VM A 108和/或VM B 110在应用程序116、118和120之间的交互(假定在硬件仿真的情形中)的任何引用应该被解释为实际上是应用程序116、118和120与创建虚拟化的虚拟化器之间的交互。同样,对应用程序VM A 108和/或VMB 110与主机操作系统104和/或计算机硬件102之间的交互(假定直接或间接地在计算机硬件102上执行计算机指令)的任何引用应该被合适地解释为实际上是创建虚拟化的虚拟化器与主机操作系统104和/或计算机硬件102之间的交互。
处理器拓扑结构
一般而言,“处理器”是响应并处理驱动计算机的基本指令的逻辑电路,该术语也经常被用作中央处理器(CPU)的简写。个人计算机中的或嵌入在小型设备中的处理经常被称作微处理器。
关于处理器拓扑结构,如此处所使用的,术语“处理器”特别地指的是物理处理器。“物理处理器”是有时被称为“芯片”或“微芯片”的集成电路(IC),它包含在其上众多小型电阻、电容和晶体管形成包含至少一个逻辑处理器的至少一个处理器核的半导体晶片(“硅酸盐”)。每一处理器核具有执行系统指令的能力,且每一逻辑处理器代表了超线程能力(也被称为对称多线程即“SMT”),通过超线程能力,单个处理器核看上去能够并行地执行两个线程(从而仿佛是系统的两个核)。
每一物理处理器被安装在CPU主板的单个槽中。物理处理器可以含有一个以上处理器核(每一处理器核含有一个或多个逻辑处理器)。每一处理器一般含有其自身的1级高速缓存,而与物理处理器上的其它处理器核共享2级高速缓存。
“多核处理器”是为提高的性能、减少功耗和/或更有效的多任务的同时处理(例如,并行处理)而含有两个或更多核的物理处理器。例如“双核处理器”按照其名称是含有两个处理器核的多核处理器,有些类似于将两个独立的处理器安装在同一计算机中。然而,这两个核驻留在单个物理处理器上,且本质上被插入到同一槽中,从而该两个核之间的连接比插在分开的槽中的两个单核处理器要快。
由于这些性能增益,多核处理愈发受欢迎,因为单核处理器迅速地到达可能的复杂性和速度的物理限制。已经生产或正从事多核产品的公司包括AMD、ARM、Broadcom、英特尔和VIA。AMD和英特尔都宣布他们将在2005年之前销售双核处理器。
图4是示出可使用本发明的若干实施例的多核处理器和NUMA双节点系统的框图。该图中,物理处理器406包含两个处理器核404,每一处理器核又含有两个逻辑处理器402。物理处理器406被耦合至诸如L3(3级)高速缓存等存储器408,L3高速缓存被物理处理器406的两个核404共享和使用。该图将在下文中进一步描述。
存储器拓扑结构
NUMA(非均匀存储器访问)是多处理系统中配置物理处理器的节点,使得它们能本地共享存储器,从而改进要扩展的系统的性能和能力的一种方法。NUMA一般被用于对称多处理(SMP)系统中,它是一种“紧密耦合,共享所有”的系统,其中单个操作系统下工作的多个处理器通过公共总线或“互连”路径访问彼此的存储器。通常,SMP的限制是当添加微处理器时,共享的总线和数据路径变得超载,并成为性能瓶颈;然而,NUMA在节点的微处理器之间添加共享的中间存储器层(存储器节点),使得不必所有的数据访问都通过主总线。
再次参考图4,两个节点系统416包含两个节点414,每一节点含有四个物理处理器406,每一物理处理器406含有各自的L3高速缓存,L3高速缓存由每一所述高速缓存的处理器核404共享。另外,每一物理处理器406及其相关联的L3高速缓存存储器418被彼此耦合并耦合至共享节点存储器412。如图所示,节点414及其相关联的节点存储器412也在两节点系统416中被耦合在一起。
NUMA节点一般包含在本地总线上互连至都位于单个主板上的共享存储器(“L3高速缓存”)的四个物理处理器。该单元可以被添加至类似的单元以形成对称多处理系统,其中公共SMP总线互连所有节点。这一系统通常包含从16到256个微处理器。对于运行在SMP系统中的应用程序,所有各个处理器存储器看似为单个存储器。
当处理器核查找位于某个存储器地址的数据时,它首先查看其L1(1级)高速缓存,然后查看物理处理器的L2(2级)高速缓存,再然后到在位于其它微处理器附近的“远程存储器”中寻找数据之前NUMA所提供的L3高速缓存。使用可伸缩相干接口(SCI)技术,在NUMA SMP系统的簇之间在总线上移动数据。SCI协调被称之为“高速缓存一致性”的东西,即跨多个簇的节点的一致性。
展示处理器拓扑结构
本发明的各实施例针对用于使得客户机操作系统知道当前分配给它的主机资源的子集的拓扑结构。对这些实施例中的某一些,在虚拟机引导时,虚拟化器将使用静态资源关系表(SRAT)来将客机物理存储器和客机虚拟处理器组合成虚拟节点。之后,能够由虚拟化器按所需改变虚拟节点背后的主机物理存储器,且虚拟化器将为该节点中的虚拟处理器提供合适的物理处理器。该方法允许在虚拟机上运行的知道NUMA的操作系统为最优性能进行调度而不需进一步的修改。
对某些另外的实施例,虚拟化器也可以为虚拟机存储器中的客机操作系统提供动态处理器拓扑信息。该信息可以直接被置于客机操作系统的内部表中,或者,客机操作系统可以执行附加代码来从共享的存储器位置中选取该信息。被称为“揭示”的后一方法(其中,VM在定期的基础上向客机操作系统揭示信息,且客机操作系统定期地检查更新的信息并相应地调整)要求向客机操作系统提供附加代码以周期性地取得该动态信息。
图5是示出对本发明的某些实施例,虚拟化器用于为虚拟机存储器中的客机操作系统提供动态处理器拓扑信息的一种方法的过程流程图。在该图中,在步骤502处,虚拟化器知道分配给它的物理硬件资源改变。在步骤504处,虚拟化器重新配置它正在虚拟化的处理器拓扑结构。在步骤506处,虚拟化器通过将更新的拓扑信息直接置于客机操作系统的内部表中来直接更新客机操作系统的处理器拓扑信息。
对本发明的某些实施例,客机操作系统可以执行虚拟机调用(对虚拟化器的调用),该调用指定虚拟机的物理存储页面被虚拟化器和客机OS共享。该页面可以包括带有揭示数据的控制字段,来确定,例如:(a)无论何时虚拟化器改变了虚拟机拓扑结构来匹配对所述虚拟机的主机计算机系统资源分配的变化,虚拟化器是否应该向客机操作系统发送中断;(b)用于通知中断的向量;(c)只要系统管理程序更新拓扑数据就增加的生成计数器;(d)同一SMT或超线程处理器核中的所有虚拟处理器的位屏蔽;和/或(e)同一物理处理器中的所有虚拟处理器,即每一物理处理器的所有核中的所有逻辑处理器的位屏蔽。另外,揭示数据可以解决下列效率方面的任何问题:(a)线程优先级;(b)I/O优先级;(c)被保护的存储器的范围;(d)NUMA节点;(e)属于附近存储器和远处存储器的数据访问;(f)处理器速度和处理器能源消耗;(g)插槽以及对每一核的超线程;和/或(h)对每一物理处理器共享层。
诸如何时使用“揭示”方法等具有访问动态处理器和NUMA拓扑信息的能力的操作系统的调度程序能够使用该信息来优化其自身的资源分配机制(例如,处理器调度、存储器分配等)和资源利用方案。对本发明的某些其它实施例,客机OS(或者通过虚拟化器/虚拟机调用,或者通过共享的存储器页面)可以在被称为“暗示”(与“揭示”逻辑上相反)的进程中向虚拟化器提供关于资源分配偏好的提示。例如,如果客机OS为效率起见偏向于将两个虚拟处理器分配给同一处理器上的两个核或者同一NUMA节点内的两个处理器,它可以向VM提供这样的提示,且由于在任何给定时刻,虚拟化处理器属于分配给所述VM的基本物理处理器,虚拟机调度程序可以对于虚拟化处理器考虑该提示。更特别地,这样的提示可以解决下列效率方面的任何问题:(a)线程优先级;(b)I/O优先级;和/或(c)等待时间信息。这样,对本发明的实施例,客机操作系统的调度程序和独立管理资源VM的调度程序都利用和使用“揭示”和“暗示”来协同工作以最大化整个系统的效率。
图6是示出本发明的若干实施例的双重揭示和暗示方法的框图。该图中,客机操作系统602包含OS调度程序604,且虚拟机612包含VM调度程序614。当例如调度所述物理硬件资源的使用的主机操作系统使物理硬件的各个逻辑处理器对虚拟机(不断变化)可用时,VM调度程序614在这些逻辑处理器上调度虚拟现成的执行。已被分配给虚拟机的共享存储器622由客机OS调度程序604使用,来向VM调度程序614提供“暗示”信息,且该共享存储器622也由VM调度程序614利用来向客机OS调度程序604提供“揭示”信息。例如,沿着数据流632,VM调度程序614向共享存储器622写入揭示数据642,且沿着数据流634,该数据由OS调度程序604读取并用来更有效地使用可用的当前处理器资源(当前可用的处理器资源随时间动态变化)。相反地,沿着数据流636,OS调度程序604向共享存储器622写入“暗示”数据644,且沿着数据流638,该数据由VM调度程序614读取并使用来更有效地向所述客机操作系统分配(和/或请求)当前处理器资源。
结论
此处描述的各种系统、方法和技术可以使用硬件或软件或在恰当使使用两者的组合来实现。这样,本发明的方法和装置,或某些方面或其部分,可以采用包含在有形介质中的程序代码(即指令)的形式,有形介质诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读介质,其中,当程序代码被装载至诸如计算机等机器上并由该机器执行时,该机器成为实现本发明的装置。在程序代码在可编程计算机上执行的情况下,计算机一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序较佳地用高级过程语言或面向对象编程语言实现来与计算机系统通信。然而,程序按照所需可以用汇编或机器语言实现。在任何情况下,语言可以是编译或解释语言,且可以与硬件实现相结合。
本发明的方法和装置也可以用通过某些传输介质,诸如通过电线或电缆,通过光导纤维或通过任何其它形式的传输而传输的程序代码的形式来实施,其中,当程序代码被接收并装载至诸如EPROM、门阵列、可编程逻辑设备(PLD)、客户机计算机、录影机等机器并由该机器执行时,该机器成为实现本发明的装置。当在通用处理器上实现时,程序代码结合处理器来提供用于执行本发明的索引功能的独特的装置。
尽管本发明在此处结合各个附图的较佳实施例来描述,但可以理解,可以使用其它类似的实施例或者可以对所述实施例进行修改或添加,来实现本发明的相同功能而不背离本发明。例如,尽管本发明的示例性实施例是在仿真个人计算机功能的数字设备的环境中描述的,但本领域的技术人员可以认识到,本发明不限于这样的数字设备,如在本申请中所述,本发明可以应用于任何数量的现有或新兴计算设备或环境,诸如游戏控制台、手持式计算机、便携式计算机等,不论它们是有线还是无线,且本发明可以应用于通过通信网络连接且通过网络交互的任何数量的这样的计算设备。而且,应该强调,此处构想了各种计算机平台,包括手持式设备操作系统和其它应用专用硬件/软件接口系统,尤其是当无线网络化设备的数量持续激增的时候。从而,本发明不应被限于任何单个的实施例,而是相反,应该根据所附权利要求书来解释宽度和范围。
最后,此处描述的所揭示的实施例可以被改写以在其它处理器体系结构、基于计算机的系统或系统虚拟化中使用,且此处的揭示明确地预期了这样的实施例,从而,本发明不应限于此处描述的具体实施例,而是相反,应该最宽泛地解释。同样,为除了处理器虚拟化的目的以外的合成指令的使用也由此处的揭示所预期,且在除了处理器虚拟化之外的上下文中的这样的合成指令的使用应该加上此处的揭示的最广泛含义。

Claims (20)

1.一种用于优化在计算机系统上执行的操作系统的性能的方法,所述计算机系统含有动态虚拟处理器拓扑结构,所述方法包括在启动之后,使用至少一个更新来更新所述操作系统,以反映所述虚拟处理器拓扑结构中的至少一个改变。
2.如权利要求1所述的方法,其特征在于,所述操作系统是客机操作系统,所述计算机系统是虚拟机,且所述虚拟机含有基于由主机计算机系统动态分配的一组资源的变化的动态虚拟处理器拓扑结构。
3.如权利要求2所述的方法,其特征在于,所述更新步骤是通过与所述虚拟机相关联的虚拟化器直接更新所述客机操作系统的至少一张内部表来完成的。
4.如权利要求2所述的方法,其特征在于,所述更新步骤是通过与所述虚拟机相关联的虚拟化器使用揭示更新共享存储器位置来完成的,且所述客机操作系统随后访问所述共享存储器位置、检索所述揭示并应用所述揭示。
5.如权利要求4所述的方法,其特征在于,所述客机操作系统随后访问所述共享存储器位置的步骤是根据时间表执行的,或是响应于所述虚拟机中的所述仿真器生成的中断而执行的。
6.如权利要求4所述的方法,其特征在于,所述客机操作系统通过使用提示更新共享存储器位置来向所述虚拟化器提供提示,且所述虚拟化器随后访问所述共享存储器位置、检索所述提示、并应用所述提示。
7.如权利要求2所述的方法,其特征在于,所述方法是由硬件控制设备实现的,所述硬件控制设备包括用于实现所述方法的每一元素的装置。
8.一种含有用于优化在计算机系统上执行的操作系统的性能的计算机可读指令的计算机可读介质,所述计算机系统含有动态虚拟处理器拓扑结构,所述计算机可读指令包含用于在启动之后使用至少一个更新来更新所述操作系统,以反映所述虚拟处理器拓扑结构中的至少一个变化的指令。
9.如权利要求8所述的计算机可读介质,其特征在于,所述操作系统是客机操作系统,所述计算机系统是虚拟机,且所述虚拟机包含基于由主机计算机系统动态分配的一组资源的变化的动态虚拟处理器拓扑结构。
10.如权利要求9所述的计算机可读介质,其特征在于,还包括指令,其中所述更新步骤是通过与所述虚拟机相关联的虚拟化器直接揭示所述客机操作系统的至少一个内部表来完成的。
11.如权利要求9所述的计算机可读介质,其特征在于,还包括指令,其中所述更新步骤是通过与所述虚拟机相关联的虚拟化器使用揭示更新共享存储器位置来完成的,且所述客机操作系统随后访问所述共享存储器位置、检索所述揭示并应用所述揭示。
12.如权利要求11所述的计算机可读介质,其特征在于,还包括指令,其中所述客机操作系统随后访问共享的存储器位置的步骤根据是时间表执行的,或是响应于所述虚拟机中的所述仿真器生成的中断而执行的。
13.如权利要求11所述的计算机可读介质,其特征在于,还包括指令,其中所述客机操作系统通过使用提示更新共享存储器位置来向所述虚拟化器提供提示,且所述虚拟化器随后访问所述共享存储器位置、检索所述提示并应用所述提示。
14.如权利要求9所述的计算机可读介质,其特征在于,所述计算机可读介质是通过通信介质传输的电磁载波信号。
15.一种用于优化在计算机系统上执行的操作系统的性能的系统,所述计算机系统含有动态虚拟处理器拓扑结构,所述系统包含用于在启动之后使用至少一个更新来更新所述操作系统,以反映所述虚拟处理器拓扑结构中的至少一个变化的至少一个子系统。
16.如权利要求15所述的系统,其特征在于,所述操作系统是客机操作系统,所述计算机系统是虚拟机,且所述虚拟机包含基于由主机计算机系统动态分配的一组资源的变化的动态虚拟处理器拓扑结构。
17.如权利要求16所述的系统,其特征在于,还包括至少一个子系统,其中所述更新步骤是通过与所述虚拟机相关联的虚拟化器直接揭示所述客机操作系统的至少一个内部表来完成的。
18.如权利要求16所述的系统,其特征在于,还包括至少一个子系统,其中所述更新步骤是通过与所述虚拟机相关联的虚拟化器使用揭示更新共享存储器位置来完成的,且所述客机操作系统随后访问所述共享存储器单元、检索所述揭示并应用所述揭示。
19.如权利要求18所述的系统,其特征在于,还包括至少一个子系统,其中所述客机操作系统随后访问共享存储器单元的步骤是根据时间表执行的,或是响应于所述虚拟机中的所述仿真器生成的中断而执行的。
20.如权利要求18所述的系统,其特征在于,还包括至少一个子系统,其中所述客机操作系统通过使用提示更新共享存储器位置来向所述虚拟化器提供提示,且所述虚拟化器随后访问所述共享存储器位置、检索所述提示并应用所述提示。
CN2005101271088A 2004-12-21 2005-11-21 用于为虚拟机揭示处理器拓扑结构的系统和方法 Active CN1794177B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/018,337 2004-12-21
US11/018,337 US8621458B2 (en) 2004-12-21 2004-12-21 Systems and methods for exposing processor topology for virtual machines

Publications (2)

Publication Number Publication Date
CN1794177A true CN1794177A (zh) 2006-06-28
CN1794177B CN1794177B (zh) 2010-10-27

Family

ID=36406489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101271088A Active CN1794177B (zh) 2004-12-21 2005-11-21 用于为虚拟机揭示处理器拓扑结构的系统和方法

Country Status (8)

Country Link
US (2) US8621458B2 (zh)
EP (1) EP1674987B1 (zh)
JP (1) JP5048940B2 (zh)
KR (1) KR20060071307A (zh)
CN (1) CN1794177B (zh)
AT (1) ATE554445T1 (zh)
ES (1) ES2382470T3 (zh)
PL (1) PL1674987T3 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043380B (zh) * 2007-04-20 2010-07-21 北京航空航天大学 虚拟机网络拓扑信息的处理方法及装置
CN101911018A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 计算机配置虚拟拓扑发现
CN102346684A (zh) * 2010-06-01 2012-02-08 微软公司 将虚拟高速缓存拓扑结构展示给客操作系统
CN103135964A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 跨指令集调用函数的方法和电子设备
CN101490646B (zh) * 2006-08-08 2013-10-16 英特尔公司 虚拟化性能计数器
CN102346684B (zh) * 2010-06-01 2016-12-14 微软技术许可有限责任公司 将虚拟高速缓存拓扑结构展示给客操作系统
CN108293056A (zh) * 2015-12-04 2018-07-17 T移动美国公司 集线器设备
CN108701058A (zh) * 2016-02-12 2018-10-23 微软技术许可有限责任公司 虚拟化传感器
CN109791534A (zh) * 2016-10-26 2019-05-21 英特尔公司 可切换拓扑机器
CN110998523A (zh) * 2017-06-08 2020-04-10 思科技术公司 用于服务器虚拟化的计算资源的物理划分
CN112953797A (zh) * 2014-08-27 2021-06-11 适应性频谱和信号校正股份有限公司 用于实现接入节点功能的虚拟化的系统、方法和装置

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621458B2 (en) * 2004-12-21 2013-12-31 Microsoft Corporation Systems and methods for exposing processor topology for virtual machines
US20060149899A1 (en) * 2004-12-30 2006-07-06 Zimmer Vincent J Method and apparatus for ongoing block storage device management
US7716638B2 (en) * 2005-03-04 2010-05-11 Microsoft Corporation Methods for describing processor features
US8028295B2 (en) * 2005-09-30 2011-09-27 Intel Corporation Apparatus, system, and method for persistent user-level thread
US7406407B2 (en) * 2006-06-01 2008-07-29 Microsoft Corporation Virtual machine for operating N-core application on M-core processor
JP2008152594A (ja) 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
US8381209B2 (en) * 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
US8762999B2 (en) * 2007-09-27 2014-06-24 Oracle America, Inc. Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8521966B2 (en) 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8881163B2 (en) * 2007-12-07 2014-11-04 Microsoft Corporation Kernel processor grouping
US8615757B2 (en) * 2007-12-26 2013-12-24 Intel Corporation Negotiated assignment of resources to a virtual machine in a multi-virtual machine environment
US8352950B2 (en) * 2008-01-11 2013-01-08 International Business Machines Corporation Algorithm to share physical processors to maximize processor cache usage and topologies
US7739434B2 (en) * 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
JP2009266027A (ja) * 2008-04-25 2009-11-12 Toshiba Corp 情報処理装置および制御方法
US8291426B2 (en) * 2008-06-02 2012-10-16 Microsoft Corporation Memory allocators corresponding to processor resources
US9201673B2 (en) * 2008-07-30 2015-12-01 Microsoft Technology Licensing, Llc Efficient detection and response to spin waits in multi-processor virtual machines
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US20100138829A1 (en) * 2008-12-01 2010-06-03 Vincent Hanquez Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process
KR101437122B1 (ko) * 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US8930953B2 (en) * 2009-01-16 2015-01-06 International Business Machines Corporation Dynamic checking of hardware resources for virtual environments
US8490094B2 (en) 2009-02-27 2013-07-16 International Business Machines Corporation Non-uniform memory access (NUMA) enhancements for shared logical partitions
US8244955B2 (en) * 2009-03-17 2012-08-14 Hitachi, Ltd. Storage system and its controlling method
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US9535767B2 (en) * 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
US8443376B2 (en) 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
US8271710B2 (en) * 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US20120096462A1 (en) * 2010-10-18 2012-04-19 Electronics And Telecommunications Research Institute Dynamic virtualization technique for multicore processor system
CN103262035B (zh) * 2010-12-15 2017-05-17 超威半导体公司 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告
JP5888331B2 (ja) * 2010-12-28 2016-03-22 日本電気株式会社 ネットワーク仮想化システム、物理ノード及び仮想マシンにおける仮想インタフェース識別方法
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
WO2013082437A1 (en) 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
KR101850318B1 (ko) 2011-12-09 2018-04-20 삼성전자주식회사 가상 메모리 관리 장치 및 방법
JP5820525B2 (ja) * 2012-03-29 2015-11-24 株式会社日立製作所 仮想計算機のスケジュールシステム及びその方法
US9436493B1 (en) * 2012-06-28 2016-09-06 Amazon Technologies, Inc. Distributed computing environment software configuration
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
US10331589B2 (en) 2013-02-13 2019-06-25 Red Hat Israel, Ltd. Storing interrupt location for fast interrupt register access in hypervisors
US9329880B2 (en) * 2013-02-13 2016-05-03 Red Hat Israel, Ltd. Counter for fast interrupt register access in hypervisors
US9898475B1 (en) 2013-02-25 2018-02-20 EMC IP Holding Company LLC Tiering with pluggable storage system for parallel query engines
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9342342B2 (en) * 2013-03-15 2016-05-17 International Business Machines Corporation Refreshing memory topology in virtual machine operating systems
EP3042305A4 (en) * 2013-09-05 2017-04-05 Tidalscale Inc. Selective resource migration
US9606843B2 (en) 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US20150169363A1 (en) * 2013-12-18 2015-06-18 Qualcomm Incorporated Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance
US10261875B2 (en) 2013-12-18 2019-04-16 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9354883B2 (en) 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9218185B2 (en) 2014-03-27 2015-12-22 International Business Machines Corporation Multithreading capability information retrieval
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
CN103995733B (zh) * 2014-05-27 2017-02-15 西安交通大学 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法
US9400672B2 (en) 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
US9304805B2 (en) 2014-06-06 2016-04-05 Interinational Business Machines Corporation Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors
US9384027B2 (en) * 2014-06-06 2016-07-05 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
US9542320B2 (en) 2015-01-12 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Multi-node cache coherency with input output virtualization
US10853104B2 (en) * 2015-02-27 2020-12-01 Plasma Business Intelligence, Inc. Virtual environment for simulating a real-world environment with a large number of virtual and real connected devices
US9335982B1 (en) 2015-04-28 2016-05-10 Microsoft Technology Licensing, Llc Processor emulation using multiple translations
US11240334B2 (en) 2015-10-01 2022-02-01 TidalScale, Inc. Network attached memory using selective resource migration
US10620992B2 (en) 2016-08-29 2020-04-14 TidalScale, Inc. Resource migration negotiation
CN106502760B (zh) * 2016-09-21 2019-06-21 华为技术有限公司 一种虚拟机亲和性策略可视化的方法及装置
US10169069B2 (en) 2017-04-06 2019-01-01 International Business Machines Corporation System level update protection based on VM priority in a multi-tenant cloud environment
US10579274B2 (en) 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US11113088B2 (en) * 2017-07-26 2021-09-07 Dell Products, L.P. Generating and managing groups of physical hosts associated with virtual machine managers in an information handling system
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US11487574B2 (en) * 2017-09-19 2022-11-01 Microsoft Technology Licensing, Llc Targeted interrupts for virtual processors
US11175927B2 (en) 2017-11-14 2021-11-16 TidalScale, Inc. Fast boot
US10776150B2 (en) 2018-10-30 2020-09-15 Red Hat, Inc. Dynamically updating virtual central processing units
US11144326B2 (en) * 2019-02-19 2021-10-12 Cisco Technology, Inc. System and method of initiating multiple adaptors in parallel
US11249804B2 (en) 2019-10-07 2022-02-15 International Business Machines Corporation Affinity based optimization of virtual persistent memory volumes
US11954534B2 (en) 2021-06-21 2024-04-09 Red Hat, Inc. Scheduling in a container orchestration system utilizing hardware topology hints
US20230096040A1 (en) * 2021-09-30 2023-03-30 Fortinet, Inc. Artificial virtual machine for preventing malware execution by applying virtual machine characteristics in real computing environments
WO2023136373A1 (ko) * 2022-01-13 2023-07-20 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
EP0917056B1 (en) 1997-11-04 2008-01-09 Compaq Computer Corporation A multi-processor computer system and a method of operating thereof
US6247109B1 (en) 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6769076B1 (en) * 2000-02-07 2004-07-27 Freescale Semiconductor, Inc. Real-time processor debug system
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7480911B2 (en) 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US7140021B2 (en) * 2002-09-13 2006-11-21 Microsoft Corporation Dynamic TCP partitioning
US7337442B2 (en) * 2002-12-03 2008-02-26 Microsoft Corporation Methods and systems for cooperative scheduling of hardware resource elements
US7103881B2 (en) 2002-12-10 2006-09-05 Intel Corporation Virtual machine to provide compiled code to processing elements embodied on a processor device
US7451459B2 (en) * 2003-05-05 2008-11-11 Microsoft Corporation Systems, methods, and apparatus for indicating processor hierarchical topology
US7430737B2 (en) * 2003-12-04 2008-09-30 Sun Microsystems, Inc. Processor and method for supporting compiler directed multithreading management
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US20050132363A1 (en) 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7788670B2 (en) 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US8621458B2 (en) * 2004-12-21 2013-12-31 Microsoft Corporation Systems and methods for exposing processor topology for virtual machines
US7512826B2 (en) 2005-04-20 2009-03-31 International Business Machines Corporation Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer
US8249853B2 (en) 2006-03-31 2012-08-21 Intel Corporation Exposing device features in partitioned environment

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490646B (zh) * 2006-08-08 2013-10-16 英特尔公司 虚拟化性能计数器
CN101043380B (zh) * 2007-04-20 2010-07-21 北京航空航天大学 虚拟机网络拓扑信息的处理方法及装置
CN101911018A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 计算机配置虚拟拓扑发现
CN101911018B (zh) * 2008-01-11 2013-08-28 国际商业机器公司 计算机配置虚拟拓扑发现
CN102346684A (zh) * 2010-06-01 2012-02-08 微软公司 将虚拟高速缓存拓扑结构展示给客操作系统
CN102346684B (zh) * 2010-06-01 2016-12-14 微软技术许可有限责任公司 将虚拟高速缓存拓扑结构展示给客操作系统
CN103135964A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 跨指令集调用函数的方法和电子设备
CN112953797A (zh) * 2014-08-27 2021-06-11 适应性频谱和信号校正股份有限公司 用于实现接入节点功能的虚拟化的系统、方法和装置
CN112953797B (zh) * 2014-08-27 2023-04-25 适应性频谱和信号校正股份有限公司 用于实现接入节点功能的虚拟化的系统、方法和装置
CN108293056A (zh) * 2015-12-04 2018-07-17 T移动美国公司 集线器设备
CN108701058A (zh) * 2016-02-12 2018-10-23 微软技术许可有限责任公司 虚拟化传感器
CN108701058B (zh) * 2016-02-12 2022-08-02 微软技术许可有限责任公司 虚拟化传感器
CN109791534A (zh) * 2016-10-26 2019-05-21 英特尔公司 可切换拓扑机器
CN109791534B (zh) * 2016-10-26 2023-10-27 英特尔公司 可切换拓扑机器
CN110998523A (zh) * 2017-06-08 2020-04-10 思科技术公司 用于服务器虚拟化的计算资源的物理划分
CN110998523B (zh) * 2017-06-08 2024-05-17 思科技术公司 用于服务器虚拟化的计算资源的物理划分

Also Published As

Publication number Publication date
US8972991B2 (en) 2015-03-03
EP1674987B1 (en) 2012-04-18
JP5048940B2 (ja) 2012-10-17
US20060136653A1 (en) 2006-06-22
EP1674987A3 (en) 2007-10-24
KR20060071307A (ko) 2006-06-26
PL1674987T3 (pl) 2012-09-28
CN1794177B (zh) 2010-10-27
EP1674987A2 (en) 2006-06-28
US20140115588A1 (en) 2014-04-24
ES2382470T3 (es) 2012-06-08
ATE554445T1 (de) 2012-05-15
JP2006178933A (ja) 2006-07-06
US8621458B2 (en) 2013-12-31

Similar Documents

Publication Publication Date Title
CN1794177B (zh) 用于为虚拟机揭示处理器拓扑结构的系统和方法
US9268394B2 (en) Virtualized application power budgeting
US20190089574A1 (en) Computer Cluster Arrangement for Processing a Computation Task and Method for Operation Thereof
US8661435B2 (en) System and method for affinity dispatching for task management in an emulated multiprocessor environment
US11579908B2 (en) Containerized workload scheduling
CN1716193A (zh) 用于在虚拟机环境中实现操作系统的系统和方法
CN1831775A (zh) 虚拟机环境中用于多级截取处理的系统和方法
CN102693230B (zh) 用于存储区域网络的文件系统
CN1841331A (zh) 为被先占的虚拟处理器分配应得处理器周期的方法和系统
US20120272235A1 (en) Consolidation of idle virtual machines
Hoefler et al. An overview of topology mapping algorithms and techniques in high-performance computing
Wang et al. Avoiding performance fluctuation in cloud storage
Hu et al. GPGPU cloud: A paradigm for general purpose computing
US9477518B1 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
Li et al. A novel disk I/O scheduling framework of virtualized storage system
CN105677481A (zh) 一种数据处理方法、系统及电子设备
Kale Virtual machine migration techniques in cloud environment: A survey
Luckow et al. Abstractions for loosely-coupled and ensemble-based simulations on Azure
CN111459871A (zh) 一种基于fpga异构计算的区块链加速系统及方法
Chang et al. The performance analysis of cache architecture based on Alluxio over virtualized infrastructure
Peng et al. A throughput-oriented nvme storage virtualization with workload-aware management
CN103631648A (zh) 一种任务处理方法及系统
US20140237149A1 (en) Sending a next request to a resource before a completion interrupt for a previous request
KR102592330B1 (ko) OpenCL 커널을 처리하는 방법과 이를 수행하는 컴퓨팅 장치
Um et al. Development of a virtualized supercomputing environment for genomic analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.