CN104025050A - 在图形处理单元上虚拟机之间变化 - Google Patents
在图形处理单元上虚拟机之间变化 Download PDFInfo
- Publication number
- CN104025050A CN104025050A CN201280065008.5A CN201280065008A CN104025050A CN 104025050 A CN104025050 A CN 104025050A CN 201280065008 A CN201280065008 A CN 201280065008A CN 104025050 A CN104025050 A CN 104025050A
- Authority
- CN
- China
- Prior art keywords
- gpu
- global context
- switched
- signal
- virtual machine
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
一种用于在图形处理单元(GPU)上虚拟机之间变化的方法包括:请求从具有第一全局上下文的第一虚拟机(VM)切换到具有第二全局上下文的第二VM;停止在所述第一VM中采取新的命令;保存所述第一全局上下文;和切换出所述第一VM。
Description
相关申请的交叉参考
本申请请求于2011年12月28日提出的美国非临时申请序列号13/338,915的权益,所述申请的内容据此以引用的方式并入本文,如同其完全在此阐述。
发明领域
本申请涉及基于硬件的虚拟设备和处理器。
发明背景
图1是示例性设备100的框图,其中一个或多个所公开的实施方案可在图形处理单元(GPU)中实施。设备100例如可包括计算机、游戏设备、手持设备、机顶盒、电视机、移动电话或平板计算机。设备100包括处理器102、储存器104、存储装置106、一个或多个输入设备108和一个或多个输出设备110。设备100也可可选地包括输入驱动器112和输出驱动器114。应理解,设备100可包括图1中未示出的额外组件。
处理器102可包括中央处理单元(CPU)、GPU、位于同一芯片上的CPU和GPU(可被称为加速处理单元(APU)),或一个或多个处理器核心,其中每个处理器核心可为CPU或GPU。储存器104可与处理器102位于相同的芯片上,或可与处理器102分开设置。储存器104可包括易失性或非易失性储存器,例如,随机存取储存器(RAM)、动态RAM或高速缓存。
存储106可包括固定的或可移动的存储,例如,硬盘驱动器、固态驱动器、光盘,或闪存驱动器。输入设备108可包括键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于发送和/或接收无线IEEE802信号的无线局域网络卡)。输出设备110可包括显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发送和/或接收无线IEEE802信号的无线局域网络卡)。
输入驱动器112与处理器102和输入设备108进行通信,并允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110进行通信,并允许处理器102发送输出到输出设备110。应注意,输入驱动器112和输出驱动器114是可选组件,且设备100将以与不存在输入驱动器112和输出驱动器114相同的方式操作。
参看图1A,图1A示出本机(非虚拟)环境中的GPU上下文切换和层次,系统启动120使基本输入输出系统(视频BIOS)125建立初级全局上下文127。接着,或甚至与视频BIOS启动同时,操作系统(OS)启动130加载其基础驱动程序140,并建立全局上下文150。
一旦启动了系统和OS,在应用程序启动160上,GPU用户模式驱动程序170开始,且这些驱动程序驱动一个或多个每个进程上下文180。在多于一个每个进程上下文180被激活的情况下,可在多个上下文之间切换。
图1A表示在本机/非虚拟化环境中的GPU上下文管理方案。在这种环境下,每个进程上下文180中每一个共享相同的、静态的全局上下文和初级全局上下文-且这三个上下文中每一个在其较低水平上下文上逐步建立(每个进程在全局上,全局在初级上)。全局上下文实例可包括GPU:环形缓冲区设置、储存器光圈设置、页表映射、固件和微码版本和设置。取决于个人和OS和驱动程序实施的特殊性,全局上下文可能不同。
虚拟机(VM)是在虚拟化环境中安装在主机内的隔离客户操作系统。运行一个或多个VM的虚拟化环境是在同一系统中同时或以时间片的方式运行。在虚拟化环境中,存在某些挑战,例如在多个虚拟机之间切换,这会导致在其全局上下文中使用不同设置在不同VM之间切换。现有GPU上下文切换实施并不支持所述全局上下文切换机制。当VM异步启动且每个VM的基础驱动程序试图初始化其自身的全局上下文而不知道其它运行的VM时,可产生另一挑战-这导致了基础驱动程序初始化摧毁其它VM的全局上下文(例如,新的代码上传覆盖来自另一VM的现有的运行的微码)。基于硬件的虚拟设备中可产生其它的挑战,其中中央处理单元(CPU或图形处理单元(GPU))的物理性质可能需要在所有VM之间共享。共享GPU的物理性质和功能(例如,显示链接和时序、DRAM接口、时钟设定、过热保护、PCIE接口、挂机检测和硬件重置)可导致另一挑战,因为这些类型的物理功能不被设计为可在多个VM之间共享。
例如GPU的虚拟设备的纯软件实施提供有限的性能、特性集和安全性。另外,大量不同的虚拟化系统的实施和OS操作系统都需要特定的软件开发,这在经济上是不可扩展的。
发明概要
一种用于在图形处理单元(GPU)上虚拟机之间变化的方法包括:请求从具有第一全局上下文的第一虚拟机(VM)切换到具有第二全局上下文的第二VM;停止在第一VM中采取新的命令;保存第一全局上下文;和切换出第一VM。
附图简述
可从通过举例的方式结合附图给出的以下描述中获得更详细的理解,在附图中:
图1是其中可实施一个或多个公开的实施方案的示例性设备的框图。
图1A示出本机环境中的上下文切换和层次。
图2示出类似于图1的基于硬件的VM系统。
图3示出切换出VM的步骤。
图4示出切换到VM的步骤。
图5图示了同步全局上下文切换的资源成本。
具体实施方式
基于硬件的虚拟化允许客户VM表现得好像它们是在本机环境中,因为客户OS和VM驱动程序可能未意识到或极少意识到其VM状态。硬件虚拟化也可能需要极少地修改OS和驱动程序。因此,硬件虚拟化允许维护现有的软件生态系统。
图2示出类似于图1A但具有两个VM210、220的基于硬件的VM系统。建立初级上下文127的系统启动120和BIOS125由CPU的管理程序进行,所述管理程序是在虚拟化系统中管理VM210、220的基于软件的实体。管理程序可控制主机处理器和资源,从而又分配所需的资源到每个VM210、220,并确保每个VM不扰乱其它VM。
每个VM210、220具有其自身的OS启动230a、230b,且各自的基础驱动程序240a、240b建立各自的全局上下文250a、250b。应用程序启动160a、160b、用户模式驱动程序170a、170b,和上下文180a、180b在每个VM中与图1相同。
从VM1210切换到VM2220被称为世界切换(world switch),但在每个VM中,步骤120中建立的某个全局初级上下文被共享,而其它建立的全局上下文250a、250b不同。应理解,在这个系统中,每个VM210、220具有其自身的全局上下文250a、250b-且每个全局上下文在每个应用程序的基础上共享。在从VM1210世界切换到VM2220期间,可从GPU储存器恢复全局上下文250b,而全局上下文250a被保存在相同(或不同)的基于硬件的GPU储存器。
在GPU内,每个GPU IP模块可定义其自身的全局上下文,其中设置由其各自的VM的基础驱动程序在VM初始化时进行。这些设置可由VM内所有应用程序共享。例如多个VM共享的DRAM接口的物理资源和和性质被在VM外部初始化,而不是被在全局上下文切换期间保存并恢复的全局上下文的部分。GPU IP模块的实例包括图形引擎、GPU计算单元、DMA引擎、视频编码器和视频解码器。
在这个基于硬件的VM实施方案中,可能有被定义如下的物理功能(PF)和虚拟功能(VF)。物理功能(PF)可能是全功能的快速功能,包括配置资源(例如,PCI-快速功能);虚拟功能(VF)是缺乏配置资源的“轻便”功能。在基于硬件的VM系统中,GPU可根据PCI快速标准公开1个PF。在本机环境中,PF可如正常情况般由驱动程序使用;在虚拟环境中,PF可由管理程序或主机VM使用。另外,所有GPU寄存器可被映射到PF。
GPU可提供N个VF。在本机环境中,VF被禁用;在虚拟环境中,每个VM可能有一个VF,且VF可由管理程序被分配给VM。GPU寄存器的子集可被映射到共享单组物理存储触发器的每个VF。
全局上下文切换可涉及许多步骤,这取决于接入还是切换出VM。图3示出在示例性实施方案中切换出VM的步骤。给出1个VM到1个VF或PF映射,从一个VM切换到另一个VM的行为等同于从一个VF或PF切换到另一个VF或PF的硬件实施。在全局上下文切换期间,管理程序使用PF配置空间寄存器来将GPU从一个VF切换到另一个VF,且切换信号被从一个总线接口(BIF)传播到所有IP模块或授权给所有IP模块。在切换之前,管理程序必须将VM与VF断开(如果先前被映射,就通过取消映射MMIO寄存器空间)并确保系统构造中的任何待决活动已被刷新到GPU。
在从BIF400接收到这个全局上下文换出信号(420)之后,每个涉及的IP模块410可进行以下任务,不一定按此顺序-或任何顺序,因为一些任务可同时进行。首先,IP模块410可停止采取来自软件的命令(430)(所述“采取”可为避免将另外的命令发送到模块410,或者,停止模块410检索或接收命令)。然后其排空内部管道(440),包括允许管道中的命令完成处理和允许所得数据被刷新到储存器,但不接受新的命令(参看步骤420),直至达到其闲置状态。这样做使得GPU不携带现有命令到新的VF/PF-且当切换到下一VF/PF时可接受新的全局上下文(参看图4)。具有相互依存关系的IP可能需要协调状态保存(例如,3D引擎和和储存器控制器)。
一旦闲置,全局上下文可被保存到储存器(450)。储存器位置可被通过来自BIF的PF寄存器从管理程序通信。最后,每个IP模块使用换出完成的指示来响应BIF(460)。
一旦BIF收集所有换出完成响应,其向管理程序405发出全局上下文切换准备470的信号。如果在某一时间段内管理程序405未接收到准备信号470(475),那么管理程序通过PF寄存器重置GPU(480)。否则,在接收到信号之后,管理程序在495结束换出顺序。
图4描述切换到VF/PF的步骤。最初,PF寄存器指示全局上下文切换准备(510)。然后,管理程序405设置BIF中的PF寄存器以切换到被分配给VM的另一VF/PF(520),且切换信号可从BIF传播到所有IP模块(530)。
一旦IP模块410接收了切换信号(530),每个IP模块可从储存器恢复以前保存的上下文(540)并开始运行新的VM(550)。然后,IP模块410用切换-完成信号560响应于BIF400。BIF400向管理程序405发出全局上下文接入完成(565)的信号。
管理程序405同时检查以查看切换完成信号是否已被接收(570),且如果未被接收,则重置GPU(580),否则,接入顺序完成(590)。
某些性能后果可由这种设置造成。在全局上下文换出期间,可能有等待时间以供所有IP模块排空和闲置。在全局上下文接入期间,虽然有可能在所有IP模块为可运行之前开始运行IP模块的子集,但是这由于它们之间的相互依存关系而可能难以实施。
理解排空和停止时间产生了性能、可用性、架空使用和响应的概念。下面的公式显示了人机交互(HCI)和GPU效率因数的实例:
(1)HCI响应因数:
(N-1)×(T+V)<=100ms 方程1
(2)GPU效率因数:
(T-R)/(T+V)=(80%→90%) 方程2
其中N是VM的数量,T是VM的活动时间,V是切换开销,且R是上下文恢复开销。参看图5对这些变量中的若干变量进行最好的阐述。
图5图示了同步全局上下文切换的资源成本。在处于活跃状态的VMa610与以闲置状态开始的VMb620b之间的切换始于换出指令(630)。在这一点上,IP模块640、650、660(在图中称为引擎)开始其关闭,其中每个IP模块花费不同的时间来达到闲置。如前所述,一旦每个IP模块达到闲置(670),那么接入指令680在VMb620的空间中开始引擎,且一旦引擎都为活动的690,VMb620就为可操作的。标示为605的换出指令和接入指令670之间的时间是VM切换开销“V”,同时在690完全操作的接入指令680到VMb620的时间是上下文恢复开销R。
基于硬件的(例如基于GPU的)系统的一个实施方案将使IP模块能够异步执行,其中多个IP模块可在若干VF或PF上异步地运行。在这个实施方案中,全局上下文可被内部实例化,其中N个上下文用于N个运行的VF或PF。这样的实施方案可允许在没有管理程序的活跃和定期切换指令的情况下进行自主全局上下文切换,其中第二级调度(全局上下文)和运行列表控制器(RLC)可采用来自管理程序的政策控制顺序(例如优先级和抢占)来负责GPU中的上下文切换。RLC可控制IP模块/引擎并开始或停止单个引擎。在这个实施方案中,每个VM的全局上下文可被存储并恢复在片上或储存器中。这样的实施方案中的另一特征在于某些服务IP模块可维护多个全局同步上下文。例如,储存器控制器可同时服务异步运行不同的VF或PF的多个客户端。应理解,这样的实施方案可消除后来停止的IP模块的同步全局上下文切换开销。储存器控制器的客户端将在内部接口中向储存器控制器指示VF/PF索引,从而允许储存器控制器在服务于所述客户端时应用适当的全局上下文。
异步储存器访问可产生可由管理程序来管理的调度困难。在CPU的异步访问GPU储存器上下文中的管理程序的调度功能可能受下列因素限制:(1)GPU储存器被硬分区,使得每个VM被分配1N空间;(2)GPU主机数据路径是总是适用于所有VM的物理性质;且调酒孔(swizzle aperture)在VF之间被硬分区。然而,取代(1),另一实施方案将使用由管理程序管理的第二级储存器转换表来创建储存器软分区。第一级页表可能已被VM使用。管理程序可能能够在这个第二级上处理页面错误且也按需要映射物理页面。这可最小化储存器的限制,而具有一些额外的转换开销。
当GPU运行一个VM时,CPU可异步运行另一VM。CPU和GPU之间的这个异步模式允许更好的性能,而不需要CPU和GPU等待彼此以同时切换到同一VM。然而,这个模式暴露了一个问题:CPU可异步访问未被虚拟化的GPU寄存器,意味着可能不是每个VF/PF都有GPU寄存器的多个实例,这可导致区域(在芯片上占用更小的空间)保存在GPU上。这个异步储存器访问可产生可由管理程序来管理的调度困难。可提高性能的另一实施方案可涉及将MMIO寄存器移入储存器。
在这样的实施方案中,GPU可通过将环缓冲区指针寄存器移到储存器位置(或如果它们在每个VF/PF被实例化,则被移到门铃处)而将频繁的MMIO寄存器访问转为储存器访问。此外,这个实施方案可通过将基于级别的中断转换成基于脉冲的中断并将IH环指针移到储存器位置来消除中断相关的寄存器访问。这可能会减少CPU的MMIO寄存器访问并减少CPU页面错误。
在另一实施方案中,当GPU运行一个VM时,CPU可异步运行另一VM。CPU和GPU之间的这个异步模式允许更好的性能,而不需要CPU和GPU等待彼此以同时切换到同一VM。然而,这个模式公开了一个问题:CPU可异步访问未被虚拟化的GPU寄存器,意味着可能不是每个VF/PF都有GPU寄存器的多个实例,这可导致区域(在芯片上占用更小的空间)保存在GPU上。
在CPU的异步访问GPU寄存器上下文中的管理程序的调度功能可由下列因素来管理:(1)GPU寄存器由于较高的资源成本(芯片上占用的空间)而未被实例化;(2)CPU的储存器映射的寄存器访问受管理程序的限制,从而标志CPU的虚拟储存器页面无效;(3)当前不在GPU寄存器访问上运行的VM可导致CPU页面错误(确保CPU不访问不在GPU上运行的VM);(4)管理程序暂停在CPU核心上的产生故障的驱动程序线程,直到产生故障的VM被调度以在GPU上运行;(6)管理程序可将GPU切换成产生故障的VM以减少CPU对故障的等待;(7)管理程序可开始将VF中的所有虚拟寄存器BAR标记为无效且仅当允许CPU的寄存器访问时映射MMIO储存器,这减少了定期映射和取消映射CPU虚拟储存器页面的开销。
GPU寄存器可在物理和虚拟功能(PF和VF)之间进行分割,且寄存器请求可被转发到系统寄存器总线管理器(SRBM,即芯片中的另一IP模块)。SRBM从CPU接收请求,其指示请求是针对PF寄存器还是VF寄存器。SRBM可用以过程过滤对例如储存器控制器的物理功能的VF访问,以阻止(适当时)对如储存器控制器的共享资源的VM访问。这使得一个VM的活动与另一VM隔离。
对于GPU PF寄存器基本访问寄存器(BAR),所有MMIO寄存器可被访问。在非虚拟化环境中,仅可启用PF,但在虚拟化环境模式下,PF的MMIO寄存器BAR将完全由主机VM的GPU驱动程序来访问。类似地,对于PCI配置空间,在非虚拟化环境中,寄存器将由OS设置,但在虚拟模式下,管理程序控制对这个空间的访问,从而潜在地将寄存器仿效回VM。
在GPU VF寄存器BAR内,MMIO寄存器的子集可被访问。例如,VF可能不公开PHY寄存器,例如显示时间控制、PCIE、DDR储存器,且对剩余子集的访问完全由客户VM驱动程序来访问。对于PCI配置空间,虚拟寄存器BAR由VM OS公开并设置。
在另一实施方案中,在虚拟模式中可能也需要考虑中断,且所述中断将由中断处理程序(IH)IP模块来处理,所述中断处理程序(IH)IP模块从其客户端(如图形控制器、多媒体模块、显示控制器等)收集中断请求。当从在特定VF或PF下运行的客户端收集时,IH模块向软件发出以下信号:中断可从给定VF或PF获得。IH被设计成允许其多个客户端用内部接口从不同的VF或PF请求中断,以使中断请求标记有VF或PF的索引。如上所述,在VM模式下,IH将中断分派到系统构造,且基于其来源使中断标记有PF或VF标记。平台(管理程序或IOMMU)将中断转发到合适的VM。在一个实施方案中,GPU驱动一组本地显示设备,例如显示器。在这种情况下,GPU的显示控制器在PF中不断运行。显示控制器会经常产生中断,例如软件的垂直同步信号。来自PF的这些类型的中断(例如显示中断)会与来自另一VF的中断同时产生,其中图形功能导致产生其它类型的中断。
在另一实施方案中,在VM的数量大于VF的数量的实例中,管理程序可实施主动传呼系统。在这种情况下,管理程序可(1)在其时间片之后使用全局上下文换出顺序将现有VM切换出其VF;(2)在VF的全局切换顺序完成之后,收回现有VM的储存器,(3)将现有VM与其VF断开,在其时间片之前从系统储存器传呼传入VM的储存器,将传入VM连接到空出的VF,和在空出的VF上运行新的VM。这通过每个VF共享VM来允许更多VM在较少的VF上运行。
在软件中,管理程序可能没有特定于硬件的驱动程序。在这样的实施方案中,管理程序可具有经由PF对PCI配置寄存器的独占访问,这最小化管理程序中的特定于硬件的代码。管理程序的责任可包括:GPU初始化、物理资源分配、启用虚拟功能和将虚拟功能分配到相同的VM、上下文保存区域分配、调度全局上下文切换和CPU同步、GPU超时/重设管理,和储存器管理/传呼。
类似地,在软件中,主机VM的角色可具有可选的特定于硬件的驱动程序,且可通过例如显示控制器或DRAM接口的PF具有对特权和物理硬件功能的独占访问。主机VM的责任可包括:在VM的数量大于VF的数量的情况下,管理本地连接的显示器、桌面合成、储存器传呼。主机VM也可被授权有管理程序的GPU管理责任中的一些管理责任。当在例如桌面合成和储存器传呼的PF中实施一些特征时,主机VM可使用GPU来加速例如图形引擎或DMA引擎。在这种情况下,PF将创建与对应于正在运行的VF的全局上下文共存的全局上下文中的一个。在这个实施方案中,PF将以时间片的方式与VF一起参与全局上下文切换。
应理解,基于本文的公开内容,许多变化都是可能的。虽然特征和元素在上文中以特定的组合进行了描述,但是每个特征或元素可在没有其它特征和元素的情况下单独使用或者在有或没有其它特征和元素的情况下组合使用。
提供的方法可在通用计算机、处理器或处理器内核中实施。合适的处理器以举例的方式包括通用处理器、专用处理器、传统处理器、数字信号处理器(DSP)、多个微处理器、与DSP内核结合的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其它类型的集成电路(IC)和/或状态机。所述处理器可通过使用已处理的硬件描述语言(HDL)指令和包括网表(所述指令能够被存储在计算机可读介质上)的其它中间数据的结果配置制造过程来制造。所述处理的结果可能是掩膜作品,所述掩膜作品然后被用于半导体制造过程中以制造实施本发明的方面的处理器。
本文提供的方法或流程图可在并入非暂时性计算机可读存储介质以供通用计算机或处理器执行的计算机程序、软件或固件中实施。计算机可读存储介质的实例包括只读储存器(ROM)、随机存取储存器(RAM)、寄存器、高速缓存储存器、半导体储存设备、例如内部硬盘和可移动磁盘的磁介质、磁-光介质,以及例如CD-ROM碟片和数字多功能光盘(DVD)的光学介质。
Claims (20)
1.一种用于在图形处理单元(GPU)上虚拟机之间变化的方法,其包括:
请求从具有第一全局上下文的第一虚拟机(VM)切换到具有第二全局上下文的第二VM;
停止在所述第一VM中采取新的命令;
保存所述第一全局上下文;和
切换出所述第一VM。
2.如权利要求1所述的方法,其还包括:允许先前在所述第一VM中请求的命令完成处理。
3.如权利要求2所述的方法,其中所述命令在保存所述第一全局上下文之前完成处理。
4.如权利要求1所述的方法,其中所述第一全局上下文被保存到通过寄存器从总线接口(BIF)通信的储存器位置。
5.如权利要求1所述的方法,其还包括:发出准备切换出所述第一VM的指示信号。
6.如权利要求5所述的方法,其还包括:结束换出顺序。
7.如权利要求1所述的方法,其还包括:从储存器恢复所述第二VM的所述第二全局上下文。
8.如权利要求7所述的方法,其还包括:开始运行所述第二VM。
9.如权利要求8所述的方法,其还包括:发出已完成从所述第一VM切换到所述第二VM的信号。
10.如权利要求1所述的方法,其还包括:发出已完成从所述第一VM切换到所述第二VM的信号。
11.如权利要求1所述的方法,其中如果在时限内未收到已完成从所述第一VM切换到所述第二VM的信号,则重置所述GPU以在虚拟机之间进行变化。
12.一种能够在虚拟机之间进行切换的GPU,其包括:
管理程序,其管理第一虚拟机(VM)和第二虚拟机(VM)的资源,其中所述第一虚拟机和第二虚拟机具有第一和第二全局上下文;
总线接口(BIF),其发送指示从所述第一VM切换到所述第二VM的请求的全局上下文切换信号;和
IP模块,其接收所述全局上下文切换并响应于所述请求而停止采取进一步的命令且将所述第一全局上下文保存到储存器,其中所述IP模块将准备切换出所述VM信号的信号发送到所述BIF;
其中在从所述BIF接收到所述准备切换出所述VM信号之后,所述管理程序切换出所述第一VM。
13.如权利要求12所述的GPU,其中所述IP模块允许先前在所述第一VM中请求的命令完成处理。
14.如权利要求13所述的GPU,其中所述命令在保存所述第一全局上下文之前完成处理。
15.如权利要求12所述的GPU,其中所述第一全局上下文被保存到通过寄存器从所述BIF通信的储存器位置。
16.如权利要求12所述的GPU,其中所述管理程序结束换出顺序。
17.如权利要求12所述的GPU,其中所述IP模块从储存器恢复所述第二VM的所述第二全局上下文。
18.如权利要求17所述的GPU,其中所述GPU开始运行所述第二VM。
19.如权利要求18所述的GPU,其中所述IP模块发出已完成从所述第一VM切换到所述第二VM的信号。
20.如权利要求12所述的GPU,其中如果在时限内未收到已完成从所述第一VM切换到所述第二VM的信号,则重置所述GPU以在虚拟机之间进行变化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/338,915 | 2011-12-28 | ||
US13/338,915 US20130174144A1 (en) | 2011-12-28 | 2011-12-28 | Hardware based virtualization system |
PCT/CA2012/001199 WO2013097035A1 (en) | 2011-12-28 | 2012-12-28 | Changing between virtual machines on a graphics processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104025050A true CN104025050A (zh) | 2014-09-03 |
Family
ID=48696037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280065008.5A Pending CN104025050A (zh) | 2011-12-28 | 2012-12-28 | 在图形处理单元上虚拟机之间变化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130174144A1 (zh) |
EP (1) | EP2798490A4 (zh) |
JP (1) | JP2015503784A (zh) |
KR (1) | KR20140107408A (zh) |
CN (1) | CN104025050A (zh) |
WO (1) | WO2013097035A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598294A (zh) * | 2015-01-07 | 2015-05-06 | 杨学仕 | 用于移动设备的高效安全的虚拟化方法及其设备 |
WO2016078069A1 (en) * | 2014-11-21 | 2016-05-26 | Intel Corporation | Apparatus and method for efficient graphics processing in virtual execution environment |
CN107133051A (zh) * | 2017-05-27 | 2017-09-05 | 郑州云海信息技术有限公司 | 一种页面布局管理方法及管理器 |
WO2018119810A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机切换过程中的上下文处理方法、装置及电子设备 |
CN110832457A (zh) * | 2017-06-29 | 2020-02-21 | 超威半导体公司 | 用于虚拟化加速处理装置的提前虚拟化上下文切换 |
CN114008588A (zh) * | 2019-06-26 | 2022-02-01 | Ati科技无限责任公司 | 在处理单元的虚拟化环境中共享多媒体物理功能 |
CN114265775A (zh) * | 2021-12-21 | 2022-04-01 | 中国科学院信息工程研究所 | 一种硬件辅助虚拟化环境核心检测方法及系统 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8789047B2 (en) * | 2012-01-26 | 2014-07-22 | Empire Technology Development Llc | Allowing world switches between virtual machines via hypervisor world switch security setting |
US9081618B2 (en) * | 2012-03-19 | 2015-07-14 | Ati Technologies Ulc | Method and apparatus for the scheduling of computing tasks |
US8826305B2 (en) * | 2012-04-18 | 2014-09-02 | International Business Machines Corporation | Shared versioned workload partitions |
US9436493B1 (en) * | 2012-06-28 | 2016-09-06 | Amazon Technologies, Inc. | Distributed computing environment software configuration |
US9569223B2 (en) * | 2013-02-13 | 2017-02-14 | Red Hat Israel, Ltd. | Mixed shared/non-shared memory transport for virtual machines |
WO2015041636A1 (en) * | 2013-09-17 | 2015-03-26 | Empire Technology Development, Llc | Virtual machine switching based on processor power states |
US10191759B2 (en) | 2013-11-27 | 2019-01-29 | Intel Corporation | Apparatus and method for scheduling graphics processing unit workloads from virtual machines |
US9898795B2 (en) | 2014-06-19 | 2018-02-20 | Vmware, Inc. | Host-based heterogeneous multi-GPU assignment |
US9898794B2 (en) * | 2014-06-19 | 2018-02-20 | Vmware, Inc. | Host-based GPU resource scheduling |
US9672354B2 (en) | 2014-08-18 | 2017-06-06 | Bitdefender IPR Management Ltd. | Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine |
US9928094B2 (en) * | 2014-11-25 | 2018-03-27 | Microsoft Technology Licensing, Llc | Hardware accelerated virtual context switching |
US9766918B2 (en) * | 2015-02-23 | 2017-09-19 | Red Hat Israel, Ltd. | Virtual system device identification using GPU to host bridge mapping |
US10114675B2 (en) * | 2015-03-31 | 2018-10-30 | Toshiba Memory Corporation | Apparatus and method of managing shared resources in achieving IO virtualization in a storage device |
US9639395B2 (en) | 2015-04-16 | 2017-05-02 | Google Inc. | Byte application migration |
US9747122B2 (en) | 2015-04-16 | 2017-08-29 | Google Inc. | Virtual machine systems |
US9971708B2 (en) | 2015-12-02 | 2018-05-15 | Advanced Micro Devices, Inc. | System and method for application migration between docking station and dockable device |
CN107977251B (zh) * | 2016-10-21 | 2023-10-27 | 超威半导体(上海)有限公司 | 对在虚拟化系统中的共享寄存器的排他访问 |
CN107168667B (zh) * | 2017-04-28 | 2020-09-18 | 明基智能科技(上海)有限公司 | 具有显示子母画面能力的显示系统 |
US10459751B2 (en) * | 2017-06-30 | 2019-10-29 | ATI Technologies ULC. | Varying firmware for virtualized device |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10496437B2 (en) * | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
US10534730B1 (en) | 2018-12-20 | 2020-01-14 | Ati Technologies Ulc | Storing microcode for a virtual function in a trusted memory region |
US11295008B2 (en) * | 2019-02-13 | 2022-04-05 | Nec Corporation | Graphics processing unit accelerated trusted execution environment |
US11144329B2 (en) * | 2019-05-31 | 2021-10-12 | Advanced Micro Devices, Inc. | Processor microcode with embedded jump table |
GB2593730B (en) * | 2020-03-31 | 2022-03-30 | Imagination Tech Ltd | Hypervisor removal |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415708B2 (en) * | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
US20050132364A1 (en) * | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for optimizing context switching between virtual machines |
US20050132363A1 (en) * | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for optimizing context switching between virtual machines |
US8024730B2 (en) * | 2004-03-31 | 2011-09-20 | Intel Corporation | Switching between protected mode environments utilizing virtual machine functionality |
US20100141664A1 (en) * | 2008-12-08 | 2010-06-10 | Rawson Andrew R | Efficient GPU Context Save And Restore For Hosted Graphics |
US8405666B2 (en) * | 2009-10-08 | 2013-03-26 | Advanced Micro Devices, Inc. | Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine |
-
2011
- 2011-12-28 US US13/338,915 patent/US20130174144A1/en not_active Abandoned
-
2012
- 2012-12-28 EP EP12862934.2A patent/EP2798490A4/en not_active Withdrawn
- 2012-12-28 JP JP2014549281A patent/JP2015503784A/ja active Pending
- 2012-12-28 WO PCT/CA2012/001199 patent/WO2013097035A1/en active Application Filing
- 2012-12-28 KR KR1020147018955A patent/KR20140107408A/ko not_active Application Discontinuation
- 2012-12-28 CN CN201280065008.5A patent/CN104025050A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016078069A1 (en) * | 2014-11-21 | 2016-05-26 | Intel Corporation | Apparatus and method for efficient graphics processing in virtual execution environment |
GB2538119A (en) * | 2014-11-21 | 2016-11-09 | Intel Corp | Apparatus and method for efficient graphics processing in virtual execution environment |
US9996892B2 (en) | 2014-11-21 | 2018-06-12 | Intel Corporation | Apparatus and method for efficient graphics processing in a virtual execution environment |
GB2538119B (en) * | 2014-11-21 | 2020-05-20 | Intel Corp | Apparatus and method for efficient graphics processing in virtual execution environment |
CN104598294B (zh) * | 2015-01-07 | 2021-11-26 | 乾云数创(山东)信息技术研究院有限公司 | 用于移动设备的高效安全的虚拟化方法及其设备 |
CN104598294A (zh) * | 2015-01-07 | 2015-05-06 | 杨学仕 | 用于移动设备的高效安全的虚拟化方法及其设备 |
US10922126B2 (en) | 2016-12-29 | 2021-02-16 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Context processing method and apparatus in switching process of multiple virtual machines, and electronic device |
WO2018119810A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机切换过程中的上下文处理方法、装置及电子设备 |
CN107133051B (zh) * | 2017-05-27 | 2021-03-23 | 苏州浪潮智能科技有限公司 | 一种页面布局管理方法及管理器 |
CN107133051A (zh) * | 2017-05-27 | 2017-09-05 | 郑州云海信息技术有限公司 | 一种页面布局管理方法及管理器 |
CN110832457A (zh) * | 2017-06-29 | 2020-02-21 | 超威半导体公司 | 用于虚拟化加速处理装置的提前虚拟化上下文切换 |
CN110832457B (zh) * | 2017-06-29 | 2024-05-24 | 超威半导体公司 | 用于虚拟化加速处理装置的提前虚拟化上下文切换 |
CN114008588A (zh) * | 2019-06-26 | 2022-02-01 | Ati科技无限责任公司 | 在处理单元的虚拟化环境中共享多媒体物理功能 |
CN114265775A (zh) * | 2021-12-21 | 2022-04-01 | 中国科学院信息工程研究所 | 一种硬件辅助虚拟化环境核心检测方法及系统 |
CN114265775B (zh) * | 2021-12-21 | 2024-05-24 | 中国科学院信息工程研究所 | 一种硬件辅助虚拟化环境核心检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2015503784A (ja) | 2015-02-02 |
KR20140107408A (ko) | 2014-09-04 |
US20130174144A1 (en) | 2013-07-04 |
EP2798490A1 (en) | 2014-11-05 |
WO2013097035A1 (en) | 2013-07-04 |
EP2798490A4 (en) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025050A (zh) | 在图形处理单元上虚拟机之间变化 | |
EP3223151B1 (en) | Hot-switching method and device for operating systems, and mobile terminal | |
CN102105871B (zh) | 虚拟处理设备的中断控制 | |
US9798565B2 (en) | Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor | |
US9658675B1 (en) | Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores | |
US10242420B2 (en) | Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta | |
CN114816664A (zh) | Gpu虚拟化 | |
JP7053713B2 (ja) | 低電力コンピュータイメージング | |
CN104598294B (zh) | 用于移动设备的高效安全的虚拟化方法及其设备 | |
CN101859258A (zh) | 系统管理模式处理器间中断重定向 | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
US20230205713A1 (en) | Computer device, exception processing method, and interrupt processing method | |
CN104205050A (zh) | 访问远程机器上的设备 | |
US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
CN101154166A (zh) | 一种虚拟机系统及其显卡访问方法 | |
CN105450986B (zh) | 一种Linux下视频处理方法 | |
CN110008027A (zh) | 进程的运行方法、装置、终端及存储介质 | |
WO2017112126A1 (en) | Starting application processors of a virtual machine | |
US10042659B1 (en) | Caching virtual contexts for sharing of physical instances of a hardware resource | |
CN109542829B (zh) | 多系统中gpu设备的控制方法、装置及电子设备 | |
US9558133B2 (en) | Minimizing latency from peripheral devices to compute engines | |
US9569241B2 (en) | Sharing devices assigned to virtual machines using runtime exclusion | |
CN109154895A (zh) | 上下文数据控制 | |
CN109284178A (zh) | 一种基于kvm虚拟化的中断透传方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140903 |