CN103814357A - 经由虚拟机迁移的存储器相干性加速 - Google Patents

经由虚拟机迁移的存储器相干性加速 Download PDF

Info

Publication number
CN103814357A
CN103814357A CN201280045737.4A CN201280045737A CN103814357A CN 103814357 A CN103814357 A CN 103814357A CN 201280045737 A CN201280045737 A CN 201280045737A CN 103814357 A CN103814357 A CN 103814357A
Authority
CN
China
Prior art keywords
processor
virtual machine
memory requests
processing environment
memory
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.)
Pending
Application number
CN201280045737.4A
Other languages
English (en)
Inventor
埃里克·J·普隆德克
卢西恩·科德雷斯库
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103814357A publication Critical patent/CN103814357A/zh
Pending legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Abstract

一种用于经由虚拟机迁移的存储器相干性加速的系统和方法包括多个处理器。所述多个处理器中的第一处理器经配置以实施至少一个虚拟机。监视器经配置以监视所述多个处理器中的所述第一处理器与至少一第二处理器之间的存储器请求的数目。虚拟机管理器经配置以基于存储器请求的所述数目超过阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器。

Description

经由虚拟机迁移的存储器相干性加速
技术领域
所揭示的实施例是针对使多核处理系统中的存储器相干性操作加速。更明确地说,示范性实施例是针对多核处理系统中的虚拟机迁移技术。
背景技术
多核处理系统可由能够独立地操作的两个或两个以上处理器/处理器核组成。多个处理器可集成在单个芯片中。每一处理器可具有其专用存储器,同时还具有对与其它处理器共享的共享存储器的存取权。网络接口和系统总线架构实现处理器与共享存储器结构之间的数据流动。多核处理系统还可包括两个或两个以上处理环境,其中每一处理环境可包含一个或一个以上处理器以及共享存储器结构,且所述两个或两个以上处理环境可通过网络连接。
多核处理环境内的处理器有时可能希望将数据存储在本地专用存储器或高速缓冲存储器中,同时也希望在其它时间存取共享存储器。然而,所述多个处理器经常希望向用户和某些程序表现为它们正全部存取统一的共享存储器。因此,为了维持共享存储器的一致图像,此项技术中已开发了复杂的高速缓冲存储器和存储器相干性技术。有时,可通过专门的硬件解决方案来实现高速缓冲存储器相干性。在耦合到网络的多个处理环境的情况下,使用分布式共享存储器技术来实现相干性。以上相干性技术按照惯例涉及存储器块从一个处理环境向另一处理环境的迁移。
另外,每一处理器可使用一个或一个以上虚拟机。虚拟机是处理器环境的抽象概念。这些虚拟机可部分地或完全在软件中实施。存在虚拟机的许多应用。举例来说,可使用虚拟机来在主机处理器上运行软件应用程序,或创建用于运行用户级程序的虚拟环境。虚拟机还通常由主机处理器用来运行不同于主机处理器的操作系统的操作系统,或执行不同于主机环境的指令集的指令集。另外,使用虚拟机来在单个物理机中多路复用许多完整处理环境。归因于其操作和使用的本质,虚拟机按照惯例与其使用的物理资源分离,因为所述物理资源可被动态地再指派给不同主机,或主机内的物理资源可在主机上运行的若干虚拟机中的一者之间再指派。
为了维持高速缓冲存储器和存储器相干性,虚拟机可经常从驻存在与主机处理器分离的处理环境中的共享存储器请求数据传送。举例来说,属于第一处理环境中的主机处理器的虚拟机可从驻存在第二处理环境中的共享存储器请求数据,这导致较大量的数据在共享网络和系统总线资源上的移动。此外,处理环境之间的数据传送可仅在某些最小传送大小下受支持。此些最小传送大小可比以上实例中虚拟机所需要的数据传送大小大得多。因此,在具有支持较大数目的虚拟机的处理器的多核环境中,较大存储器块在共享系统资源上频繁输送的这个问题实际上可能阻塞网络接口和系统总线。
当考虑虚拟机本身的大小通常比虚拟机所起始的数据传送的大小小得多时,以上问题更加显著。因此,此项技术中需要改进存储器相干性同时不为虚拟机所导致的较大数据传送牺牲系统资源。
发明内容
本发明的示范性实施例是针对用于使多核处理系统中的存储器相干性操作加速的虚拟机迁移的系统和方法。
举例来说,示范性实施例是针对包括多个处理器的用于虚拟机迁移的系统。所述多个处理器中的第一处理器经配置以实施至少一个虚拟机。监视器经配置以监视所述多个处理器中的所述第一处理器与至少一第二处理器之间的存储器请求的数目。虚拟机管理器经配置以基于存储器请求的所述数目超过阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器。
另一示范性实施例是针对一种管理包括多个处理器的多核处理环境中的虚拟机的方法,其中所述方法包括在所述多个处理器中的第一处理器中实施至少一个虚拟机。所述方法进一步包括:监视所述多个处理器中的第一处理器与至少一第二处理器之间的存储器请求的数目;以及基于存储器请求数目超过阈值而将虚拟机的至少一部分从第一处理器迁移到第二处理器。
又一示范性实施例是针对用于管理包括多个处理器的多核处理环境中的虚拟机的系统,所述系统包括在所述多个处理器中的第一处理器中实施的至少一个虚拟机装置。所述系统包括:用于监视所述多个处理器中的第一处理器与至少一第二处理器之间的存储器请求的数目的装置;以及用于基于存储器请求数目超过阈值而将虚拟机装置的至少一部分从第一处理器迁移到第二处理器的装置。
另一示范性实施例是针对非暂时性计算机可读存储媒体,其包括代码,所述代码在由多个处理器中的管理处理器执行时,致使虚拟机从所述多个处理器中的第一处理器迁移到第二处理器,其中所述非暂时性计算机可读存储媒体包括:用于监视所述第一处理器与所述第二处理器之间的存储器请求的数目的代码;以及用于基于存储器请求数目超过阈值而将虚拟机的至少一部分从第一处理器迁移到第二处理器的代码。
附图说明
呈现附图以辅助描述本发明的实施例,且提供附图只是为了说明实施例而不是限制实施例。
图1是说明根据常规技术的多核处理系统100的实施方案的概念框图。
图2是根据示范性实施例的多核处理系统200的说明。
图3是多核处理系统200的处理环境上的理论数据传送的说明。
图4是根据示范性实施例的虚拟机迁移的说明。
图5是说明与示范性实施例中的虚拟机迁移相关联的事件序列的流程图。
具体实施方式
在针对本发明的特定实施例的以下描述和相关图式中揭示本发明的方面。可在不脱离本发明的范围的情况下设计替代实施例。另外,将不详细地描述或将省略本发明的众所周知的元件,以便不模糊本发明的相关细节。
词语“示范性”在本文中用于表示“充当实例、例子或说明”。本文中被描述为“示范性的”任何实施例不一定被解释为比其它实施例优选或有利。同样,术语“本发明的实施例”不要求本发明的所有实施例均包含所论述的特征、优点或操作模式。
本文中所使用的术语是仅用于描述特定实施例的目的,且无意限制本发明的实施例。如在本文中所使用,除非上下文另外清楚地指示,否则希望单数形式“一”和“所述”也包含复数形式。将进一步理解,术语“包括”和/或“包含”在用于本文中时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或一个以上其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
此外,根据待由(例如)计算装置的元件执行的动作的序列来描述许多实施例。将认识到,可由特定电路(例如,专用集成电路(ASIC))、由正由一个或一个以上处理器执行的程序指令或由两者的组合来执行本文中所述的各种动作。此外,可认为本文中所述的这些动作序列完全包含于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中已存储一组对应计算机指令,所述指令在被执行时将致使相关联的处理器执行本文中所述的功能性。因此,本发明的各种方面可以许多不同形式来实施,所有所述形式均被涵盖在所主张的标的物的范围内。此外,对于本文中所述的实施例的每一者来说,任何所述实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
图1是说明根据常规技术的多核处理系统100的实施方案的概念框图。系统100可为独立系统,或通过网络耦合到一个或一个以上处理系统。系统100可实施为集成电路,或分布在多个集成电路上。系统100的合适实施方案可嵌入在装置中,所述装置例如是无线装置、桌上型计算机、膝上型计算机、调制解调器,或需要系统100的处理能力的任何其它装置。所属领域的技术人员将认识到系统100对特定应用的可能的最佳实施方案。
将多核处理系统100展示为具有通过网络140彼此通信的两个概念处理环境130a和130b。基于系统100的实施方案,网络140可为任何合适通信网络,例如局域网(LAN)、广域网(WAN)、以太网、无线LAN、光纤等。
每一处理环境130a和130b被展示为具有一个或一个以上处理器、共享存储器系统、网络接口以及在处理器内实施的虚拟机。举例来说,处理环境130a包括处理器104a和106a。如图所示,处理器104a和106a被展示为实施虚拟机120a、122a、124a和126a。存储器102a通过总线互连108a在处理器104a与106a之间共享。总线互连108a还将处理器104a、106a和存储器102a连接到网络接口110a。网络接口110a与网络140介接,并充当用于将处理环境130a连接到网络140的装置。
类似地,处理环境130b包含处理器104b和106b,其包括虚拟机120b、122b、124b和126b,如图所示。存储器102b通过也连接到网络接口110b的总线互连108b在处理器104b和106b之间共享。网络接口110b与网络140介接,如图所示。
处理器104a、106a、104b和106b可实施为任何处理器,包含例如通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑或处理实体。处理器104a、106a、104b和106b中的一者或一者以上可经配置以在操作系统上运行,且执行与特定指令集架构有关的指令。处理器104a、106a、104b和106b中的一者或一者以上可为一个或一个以上虚拟机的主机处理器,如图1中所示。
虚拟机120a到126a以及120b到126b的实施方案可基于其所要用途以及与其对应主机处理器的附接程度。举例来说,虚拟机124a可经编程以在与主机处理器106a的指令集不同的指令集上运行。替代地或另外,虚拟机124a可运行操作系统或专用程序。举例来说,可实施Java虚拟机,以在主机处理器106a上运行Java编程语言。所属领域的技术人员将认识到虚拟机的各种实施方案,如本文所述。
现在参看图2,说明系统200的示范性实施例。系统200说明用以控制其主机环境中的虚拟机的操作的虚拟机管理器250a和250b。处理器204a和206a展示为实施虚拟机220a、222a、224a和226a。同样,处理器204b和206b展示为实施虚拟机220b、222b、224b和226b。将了解,虚拟机管理器250a和250b可维持与系统200中的其它虚拟机管理器和/或实施虚拟机的各种处理器的通信。虚拟机管理器250a和250b可用于实现新虚拟机的提供;将所需资源分配给虚拟机;存储个别虚拟机的状态和操作参数,以及用于将整个虚拟机或虚拟机的一部分的位置传送到同一主机处理器内的新位置或传送到新主机环境。虚拟机管理器250a和250b可在软件和/或硬件中实施,且其可为各个主机处理器专用或由一个或一个以上主机环境共享。虽然已将虚拟机管理器250a和250b说明为独立单元,但不应将此说明解释为限制性的;虚拟机管理器250a和250b可作为一个或一个以上处理环境集成在同一芯片内,或甚至集成在一个或一个以上主机处理器内。此外,如所说明,实施例不限于在每一处理环境中需要单独的虚拟机管理器。举例来说,一实施例可通过整合虚拟机管理器250b的功能性,因此避免对虚拟机管理器250b的单独实例的要求来实施虚拟机管理器250a。所属领域的技术人员将认识到虚拟机管理器250a和/或250b的合适实施方案。
继续参看图2,属于主机处理器206b和处理环境230b的虚拟机226b从属于处理环境230a的存储器202a请求数据传送。为了满足此数据传送请求,所述请求必须从总线互连208b行进到网络240的网络接口210b,且其后经由网络接口210a和总线互连208a到达存储器202a。在示范性实施例中,存储器管理单元(未图示)和/或存储器控制器(也未展示)可控制去往/来自存储器202a的数据传送。虚拟机管理器250a和250b可促进虚拟机226b的请求向存储器202a的传播。
图3说明用于在将传送所请求数据以便服务所述请求的情况下服务所述请求的理论路径252:所请求的数据将从处理环境230a中的存储器202a传送到处理环境230b中的存储器202b,且其后使其经由总线互连208b可用于虚拟机226b。按照惯例,可这样传送的数据的最小大小为整页的大小。这是因为传送整页促进了多个处理环境上的分布式共享存储器结构的存储器相干性。页大小按照惯例为4KB或更大,然而,各种实施例不限于任何特定页大小。因此,存储器202a将响应于来自虚拟机226b的请求而传送至少大小为4KB的整页。
如先前所阐释,这些大数据传送会不利地影响带宽和系统资源。此外,通常情况是,例如虚拟机226b等虚拟机在其操作期间作出对从同一存储器装置来回的数据传送的频繁且大量的请求,从而使问题恶化。
示范性实施例认识到,整个主机处理器的状态通常小于4KB。更明确地说,虚拟机的状态可通常由256个字节表示。实施例还认识到,与虚拟机正从中请求频繁数据传送的存储器装置接近,将减少系统资源上的压力,因为数据将不必行进得非常远。
因此,图4说明示范性实施例,其中不是沿图3中所说明的理论路径252传送数据以服务来自虚拟机226b的请求,而是虚拟机226b本身迁移到主机处理器206a。可在虚拟机管理器250a和250b的控制下执行迁移。此外,不是作为整体迁移虚拟机226b,而是可仅迁移虚拟机226b的需要与存储器202a频繁通信的部分。举例来说,虚拟机可在多核处理环境中的处理器群集的通信机制上抽象化。此些虚拟机可包括与群集中的一个或一个以上处理器中的个别处理器相关联的一个或一个以上进程。返回参看图4,虚拟机226b可包括与需要与存储器202a通信的主机处理器206a相关联的特定进程。在此情况下,可仅将虚拟机226b的运行特定进程的部分而不是整个虚拟机226b迁移到主机处理器206a。在另一实例中,可将虚拟机226b的包括整数寄存器的部分传送到主机处理器206a,而可不传送所有浮点或向量寄存器,除非明确需要。
虚拟机226b到主机处理器206a的迁移可允许虚拟机226b通过总线互连208a与存储器202a通信,而不必经过总线互连208b、网络接口210a和210b以及网络240。还可针对主机处理器206a与存储器202a之间经由总线互连208a的数据传送支持较小的数据传送大小,因为在处理环境230a内可能更容易维持存储器相干性。
因此,无需以大小为最小(例如,4KB)页的块传送所请求的数据,而是可为与所请求的数据的大小成比例的适当大小。另外,在其中一个或一个以上主机处理器希望共享精细粒度的数据((例如)在争夺锁定或假共享情形的时候)的情景中,可将不同主机处理器上的虚拟机传送到单个主机处理器,且可避免高速缓冲存储器/存储器相干性问题。还将了解,虚拟机迁移可用于加速存储器相干性,而无需相干性总线结构或对相干性操作的专门硬件支持。所属领域的技术人员将认识到虚拟机迁移的这些和其它优点。
另外,如图3到4中所说明,示范性实施例还可包含存储器请求监视器260,以监视处理器之间的存储器请求。虽然已将监视器260说明为与网络240通信,但各种其它实施方案包含在实施例的范围内。举例来说,一个或一个以上存储器请求监视器可集成在一个或一个以上主机处理器内。作为另一实例,可将存储器请求监视器配置为虚拟机管理器(例如250a和250b)的一部分。此外,存储器请求监视器还可部分地或完全在软件中实施。将了解,可基于特定应用和系统配置来实施存储器请求监视器260的各种配置。
在示范性实施方案中,监视器260可监视一个处理环境中的一个或一个以上处理器与另一处理环境中同一个或一个以上处理器相关联的存储器之间的请求。情况通常可为这样:跨处理环境的此些存储器请求可与驻存在处理器中的一个或一个以上虚拟机相关联。可确定处理器(或驻存在处理器内的虚拟机)与同不同处理器相关联的存储器元件之间的数据传送请求的阈值数目。如果此些存储器请求的数目超过预定阈值数目,那么可起始虚拟机迁移。将理解,预定阈值数目可为“零”,即,处理器(或驻存在处理器内的虚拟机)与同不同处理器相关联的存储器元件之间的任何存取或数据传送请求的检测可经配置以触发虚拟机迁移。
另一触发机制可涉及配置监视器260以区分各种类型的存储器请求,包含对只读数据的请求、对可写数据的请求、对不同数据大小的请求和/或其它属性。预定阈值数目可与每一类型的存储器请求相关联,且如果个别类型的存储器请求的存储器请求数目超过相关联的预定阈值数目,那么可触发虚拟机迁移。
示范性实施例还可利用一个或一个以上虚拟机管理器(例如,250a和250b)来跟踪虚拟机迁移的数目。迁移虚拟机的决策可部分地基于先前已执行的虚拟机迁移的数目。虚拟机管理器250a和250b的此迁移虚拟机的决策可结合来自监视器260的存储器请求的数目的确定而作出。
因此,示范性实施例有利地迁移虚拟机的至少一部分,而不是跨大量互连和网络装置传送来自共享存储器结构的较大数据块。一旦虚拟机管理器250a或250b或任何其它合适监视装置已确定不再需要虚拟机留在其迁移到的主机环境中,就可将所迁移的虚拟机传送回到曾与所述虚拟机相关联的原始主机处理器,或传送到任何新的合适的主机环境。所属领域的技术人员将了解以所述方式迁移虚拟机或虚拟机的状态的优点。
还将了解,实施例包含用于执行本文所揭示的进程、函数和/或算法的各种方法。举例来说,如图5中所说明,实施例可包含在多个处理器中的至少一第一处理器中实施虚拟机(框502)的方法。可监视所述多个处理器中的第一处理器与至少一第二处理器之间的存储器请求的数目(框504)。可确定存储器请求的数目是否超过阈值(框506)。如果超过阈值,那么可将虚拟机的至少一部分从第一处理器传送到第二处理器(框508)。
所属领域的技术人员将了解,可使用多种不同技术及技法中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的这种互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决定不应被解释为会导致脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列及/或算法可直接包含于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
因此,本发明的实施例可包含实施用于虚拟机迁移的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且用于执行本文所描述的功能性的任何装置均包含在本发明的实施例中。
虽然前述揭示内容展示本发明的说明性实施例,但应注意,可在不脱离如由所附权利要求书界定的本发明的范围的情况下在本文中作出各种改变和修改。无需以任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,尽管可以单数形式来描述或主张本发明的元件,但涵盖复数形式,除非明确规定限于单数形式。

Claims (30)

1.一种用于虚拟机迁移的系统,其包括:
多个处理器;
所述多个处理器中的第一处理器实施至少一个虚拟机;
监视器,其经配置以监视所述多个处理器中的所述第一处理器与至少一第二处理器之间的存储器请求的数目;以及
虚拟机管理器,其经配置以基于存储器请求的所述数目超过阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器。
2.根据权利要求1所述的系统,其进一步包括:
至少所述第一处理器与所述第二处理器之间的存取接口,其中在所述存取接口上监视存储器请求的所述数目。
3.根据权利要求2所述的系统,其中所述存取接口为总线。
4.根据权利要求2所述的系统,其中所述存取接口为耦合第一处理环境与第二处理环境的网络,使得所述第一处理器集成到所述第一处理环境中且所述第二处理器集成到所述第二处理环境中。
5.根据权利要求1所述的系统,其中所述虚拟机管理器经配置以迁移所述虚拟机的整体。
6.根据权利要求1所述的系统,其中所述虚拟机管理器经配置以仅迁移完成所述存储器请求操作所需的所述虚拟机的一部分以及与所述虚拟机相关联的状态信息。
7.根据权利要求1所述的系统,其中所述虚拟机管理器经配置以跟踪虚拟机迁移的数目,且基于先前执行的虚拟机迁移的数目来确定当前虚拟机迁移的条件。
8.根据权利要求1所述的系统,其进一步包括:多个类型的存储器请求;
多个阈值,其与所述多个类型的存储器请求相关联;
所述监视器包括用以针对所述多个类型的存储器请求中的每一类型监视所述第一处理器与至少所述第二处理器之间的存储器请求的数目的逻辑;且
所述虚拟机管理器包括用以基于所述存储器请求类型中的至少一者的存储器请求的所述数目超过相关联阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器的逻辑。
9.一种管理包括多个处理器的多核处理环境中的虚拟机的方法,所述方法包括:
在所述多个处理器中的第一处理器中实施至少一个虚拟机;
监视所述多个处理器中的所述第一处理器与至少一第二处理器之间的存储器请求的数目;以及
基于存储器请求的所述数目超过阈值而将一个虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器。
10.根据权利要求9所述的方法,其中在所述第一处理器与所述第二处理器之间配置存取接口,且其中在所述存取接口上监视存储器请求的所述数目。
11.根据权利要求10所述的方法,其中所述存取接口为总线。
12.根据权利要求10所述的方法,其中所述存取接口为耦合第一处理环境与第二处理环境的网络,使得所述第一处理器集成到所述第一处理环境中且所述第二处理器集成到所述第二处理环境中。
13.根据权利要求9所述的方法,其中迁移所述虚拟机的整体。
14.根据权利要求9所述的方法,其中仅迁移所述虚拟机的一部分和相关联状态信息。
15.根据权利要求9所述的方法,其进一步包括基于先前执行的虚拟机迁移的数目确定当前虚拟机迁移的条件。
16.根据权利要求9所述的方法,其进一步包括:
确定多个类型的存储器请求;
确定多个阈值,其与所述多个类型的存储器请求相关联;
针对所述多个类型的存储器请求中的每一者监视所述第一处理器与至少所述第二处理器之间的存储器请求的数目;以及
基于所述存储器请求类型中的至少一者的存储器请求的所述数目超过相关联阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器。
17.一种用于管理包括多个处理器的多核处理环境中的虚拟机的系统,所述系统包括:
在所述多个处理器中的第一处理器中实施的至少一个虚拟机装置;
用于监视所述多个处理器中的所述第一处理器与至少一第二处理器之间的存储器请求的数目的装置;以及
用于基于存储器请求的所述数目超过阈值而将所述虚拟机装置的至少一部分从所述第一处理器迁移到所述第二处理器的装置。
18.根据权利要求17所述的系统,其中在所述第一处理器与所述第二处理器之间配置接口装置,且其中在所述接口装置上监视存储器请求的所述数目。
19.根据权利要求18所述的系统,其中所述接口装置经配置以耦合第一处理环境与第二处理环境,使得所述第一处理器集成到所述第一处理环境中且所述第二处理器集成到所述第二处理环境中。
20.根据权利要求17所述的系统,其中所述虚拟机装置的整体被迁移。
21.根据权利要求17所述的系统,其中仅所述虚拟机装置的一部分和相关联状态信息被迁移。
22.根据权利要求17所述的系统,其进一步包括用于基于先前执行的虚拟机装置迁移的数目来迁移所述虚拟机装置的装置。
23.根据权利要求17所述的系统,其进一步包括:
多个类型的存储器请求;
多个阈值,其与所述多个类型的存储器请求相关联;
用于针对所述多个类型的存储器请求中的每一者监视所述第一处理器与至少所述第二处理器之间的存储器请求的数目的装置;以及
用于基于所述存储器请求类型中的至少一者的存储器请求的所述数目超过相关联阈值而将所述虚拟机装置的至少一部分从所述第一处理器迁移到所述第二处理器的装置。
24.一种非暂时性计算机可读存储媒体,其包括代码,所述代码在由多个处理器中的管理处理器执行时,致使虚拟机从所述多个处理器中的第一处理器迁移到第二处理器,其中所述非暂时性计算机可读存储媒体包括:
用于监视所述第一处理器与所述第二处理器之间的存储器请求的数目的代码;以及
用于基于存储器请求的所述数目超过阈值而将所述虚拟机的至少一部分从所述第一处理器迁移到所述第二处理器的代码。
25.根据权利要求24所述的非暂时性计算机可读存储媒体,其中存取接口配置在所述第一处理器与所述第二处理器之间。
26.根据权利要求25所述的非暂时性计算机可读存储媒体,其中所述存取接口为耦合第一处理环境与第二处理环境的网络,使得所述第一处理器集成到所述第一处理环境中且所述第二处理器集成到所述第二处理环境中。
27.根据权利要求24所述的非暂时性计算机可读存储媒体,其中所述虚拟机装置的整体被迁移。
28.根据权利要求24所述的非暂时性计算机可读存储媒体,其中仅所述虚拟机装置的一部分和相关联状态信息被迁移。
29.根据权利要求24所述的非暂时性计算机可读存储媒体,其进一步包括用于基于先前执行的虚拟机装置迁移的数目来迁移所述虚拟机装置的代码。
30.根据权利要求24所述的非暂时性计算机可读存储媒体,其进一步包括:
多个类型的存储器请求;
多个阈值,其与所述多个类型的存储器请求相关联;
用于针对所述多个类型的存储器请求中的每一者监视所述第一处理器与至少所述第二处理器之间的存储器请求的数目的代码;以及
用于基于所述存储器请求类型中的至少一者的存储器请求的所述数目超过相关联阈值而将所述虚拟机装置的至少一部分从所述第一处理器迁移到所述第二处理器的代码。
CN201280045737.4A 2011-09-23 2012-09-24 经由虚拟机迁移的存储器相干性加速 Pending CN103814357A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/241,407 US8756601B2 (en) 2011-09-23 2011-09-23 Memory coherency acceleration via virtual machine migration
US13/241,407 2011-09-23
PCT/US2012/056957 WO2013044257A1 (en) 2011-09-23 2012-09-24 Memory coherency acceleration via virtual machine migration

Publications (1)

Publication Number Publication Date
CN103814357A true CN103814357A (zh) 2014-05-21

Family

ID=47089128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280045737.4A Pending CN103814357A (zh) 2011-09-23 2012-09-24 经由虚拟机迁移的存储器相干性加速

Country Status (5)

Country Link
US (1) US8756601B2 (zh)
EP (1) EP2758876A1 (zh)
JP (1) JP2014530430A (zh)
CN (1) CN103814357A (zh)
WO (1) WO2013044257A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104678757A (zh) * 2013-12-02 2015-06-03 景德镇昌航航空高新技术有限责任公司 一种直升机发动机双余度燃油调节控制器
CN110471759A (zh) * 2019-07-04 2019-11-19 中科晶上(苏州)信息技术有限公司 一种多核嵌入式处理器内存实时动态管理方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367452B1 (en) 2011-09-30 2016-06-14 Emc Corporation System and method for apportioning storage
US9367453B1 (en) * 2011-09-30 2016-06-14 Emc Corporation System and method for migrating cache data
US10289412B2 (en) * 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US9280380B2 (en) * 2012-02-29 2016-03-08 Red Hat Israel, Ltd. Management of I/O reqeusts in virtual machine migration
US9152448B2 (en) * 2012-05-11 2015-10-06 Vmware, Inc. Performance of load balancing modules with migration awareness
US20130326038A1 (en) * 2012-06-05 2013-12-05 Microsoft Corporation Management of datacenters for fault tolerance and bandwidth
US9251181B2 (en) * 2012-06-18 2016-02-02 International Business Machines Corporation Dynamic map template discovery and map creation
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9454487B2 (en) 2012-08-27 2016-09-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
CN105210037B (zh) * 2013-05-10 2019-05-21 英派尔科技开发有限公司 存储器访问的加快
US9454549B1 (en) 2013-06-28 2016-09-27 Emc Corporation Metadata reconciliation
EP3014464A4 (en) * 2013-06-28 2017-03-15 Intel Corporation Techniques to aggregate compute, memory and input/output resources across devices
US9424056B1 (en) * 2013-06-28 2016-08-23 Emc Corporation Cross site recovery of a VM
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US9354918B2 (en) 2014-02-10 2016-05-31 International Business Machines Corporation Migrating local cache state with a virtual machine
US9785374B2 (en) 2014-09-25 2017-10-10 Microsoft Technology Licensing, Llc Storage device management in computing systems
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US9348655B1 (en) * 2014-11-18 2016-05-24 Red Hat Israel, Ltd. Migrating a VM in response to an access attempt by the VM to a shared memory page that has been migrated
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10558580B2 (en) 2016-02-29 2020-02-11 Apple Inc. Methods and apparatus for loading firmware on demand
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10725833B2 (en) * 2016-10-28 2020-07-28 Nicira, Inc. Monitoring and optimizing interhost network traffic
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10430352B1 (en) * 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US11461123B1 (en) * 2019-11-21 2022-10-04 Amazon Technologies, Inc. Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations
US11734038B1 (en) 2019-11-21 2023-08-22 Amazon Technologies, Inc Multiple simultaneous volume attachments for live migration between cloud regions and edge locations
US11573839B1 (en) 2019-11-21 2023-02-07 Amazon Technologies, Inc. Dynamic scheduling for live migration between cloud regions and edge locations
US11231930B2 (en) 2019-11-25 2022-01-25 Alibaba Group Holding Limited Methods and systems for fetching data for an accelerator
CN117331704B (zh) * 2023-11-30 2024-03-15 摩尔线程智能科技(北京)有限责任公司 图形处理器gpu调度方法、装置和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08190537A (ja) * 1995-01-09 1996-07-23 Toshiba Corp マルチプロセッサシステム及びプロセススケジューリング方法
EP0848330A2 (en) * 1996-12-11 1998-06-17 Ncr International Inc. Memory page location control for multiple memory-multiple processor system
US20060236073A1 (en) * 2005-02-03 2006-10-19 Craig Soules Method of hashing address space to storage servers
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法
US20110145545A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation Computer-implemented method of processing resource management

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7526515B2 (en) 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
JP4982971B2 (ja) * 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US20070204266A1 (en) 2006-02-28 2007-08-30 International Business Machines Corporation Systems and methods for dynamically managing virtual machines
JP5317010B2 (ja) 2006-11-24 2013-10-16 日本電気株式会社 仮想マシン配置システム、仮想マシン配置方法、プログラム、仮想マシン管理装置およびサーバ装置
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
JP5088366B2 (ja) 2007-03-27 2012-12-05 富士通株式会社 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8230069B2 (en) 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8102781B2 (en) * 2008-07-31 2012-01-24 Cisco Technology, Inc. Dynamic distribution of virtual machines in a communication network
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
JP5333735B2 (ja) * 2009-01-27 2013-11-06 日本電気株式会社 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
US8019861B2 (en) * 2009-01-29 2011-09-13 Vmware, Inc. Speculative virtual machine resource scheduling
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US8726275B2 (en) * 2009-12-18 2014-05-13 International Business Machines Corporation Selective partial cloning of virtual machines in a virtual computing environment
US8938589B2 (en) * 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
US8751738B2 (en) * 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8539060B2 (en) * 2010-12-10 2013-09-17 Nec Laboratories America, Inc. System positioning services in data centers
US8413148B2 (en) * 2011-03-10 2013-04-02 Telefonaktiebolaget L M Ericsson (Publ) Virtualization support in platform management (PLM) information model
US8918595B2 (en) * 2011-04-28 2014-12-23 Seagate Technology Llc Enforcing system intentions during memory scheduling
US9384116B2 (en) * 2011-05-16 2016-07-05 Vmware, Inc. Graphically representing load balance in a computing cluster
US8490092B2 (en) * 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08190537A (ja) * 1995-01-09 1996-07-23 Toshiba Corp マルチプロセッサシステム及びプロセススケジューリング方法
EP0848330A2 (en) * 1996-12-11 1998-06-17 Ncr International Inc. Memory page location control for multiple memory-multiple processor system
JPH10320272A (ja) * 1996-12-11 1998-12-04 Ncr Internatl Inc 多重プロセッサを有するコンピュータ・システム及びそのためのメモリ・ページ位置制御方法
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20060236073A1 (en) * 2005-02-03 2006-10-19 Craig Soules Method of hashing address space to storage servers
CN101398770A (zh) * 2007-09-30 2009-04-01 赛门铁克公司 迁移一个或多个虚拟机的系统和方法
US20110145545A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation Computer-implemented method of processing resource management

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104678757A (zh) * 2013-12-02 2015-06-03 景德镇昌航航空高新技术有限责任公司 一种直升机发动机双余度燃油调节控制器
CN110471759A (zh) * 2019-07-04 2019-11-19 中科晶上(苏州)信息技术有限公司 一种多核嵌入式处理器内存实时动态管理方法
CN110471759B (zh) * 2019-07-04 2023-09-01 中科晶上(苏州)信息技术有限公司 一种多核嵌入式处理器内存实时动态管理方法

Also Published As

Publication number Publication date
WO2013044257A1 (en) 2013-03-28
US20130081013A1 (en) 2013-03-28
JP2014530430A (ja) 2014-11-17
EP2758876A1 (en) 2014-07-30
US8756601B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
CN103814357A (zh) 经由虚拟机迁移的存储器相干性加速
US20190068466A1 (en) Technologies for auto-discovery of fault domains
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
US11128555B2 (en) Methods and apparatus for SDI support for automatic and transparent migration
US11243845B2 (en) Method and device for data backup
US20220107881A1 (en) Agentless distributed monitoring of microservices through a virtual switch
EP3140734B1 (en) Mechanism for providing external access to a secured networked virtualization environment
US9569245B2 (en) System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
US20180225254A1 (en) Network communications using pooled memory in rack-scale architecture
US8516487B2 (en) Dynamic job relocation in a high performance computing system
US9544193B2 (en) Synchronizing configurations amongst multiple devices
CN109510856A (zh) 通过存储域网络中的目标设备对交替主要成员端口的标识
JP6468499B2 (ja) 分散コンピューティングアーキテクチャ
US10083051B1 (en) System, method, and code for classifying resources of a virtual computing environment
US11550637B2 (en) Node recovery solution for composable and disaggregated environment
US20190324821A1 (en) Method, device and computer program product for managing dedicated processing resources
US11405455B2 (en) Elastic scaling in a storage network environment
US10831525B2 (en) Intelligent assignment of virtual machines to compute only or hyper converged nodes
US9032063B2 (en) Dynamic port naming in a chassis
CN105404635A (zh) 字符串匹配的方法、设备和异构计算系统
KR20190059002A (ko) 지능형 컴포넌트를 위한 컨테이너 기반 관리 방법
CN116339902A (zh) 超融合基础设施环境中的事件消息管理
US20230195534A1 (en) Snapshot based pool of virtual resources for efficient development and test of hyper-converged infrastructure environments
US11178181B2 (en) System and method for managing security-relevant information in a computer network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140521