Systems and methods for virtualizing graphics subsystems
First Claim
1. A method for processing graphics data in a computing system having a first operating system hosted in a first virtual machine and a second operating system hosted in a second virtual machine, comprising:
- receiving one or more work items to be performed by a graphics processing unit (GPU) of a graphics subsystem of the computing system wherein the one or more work items are originated by said first virtual machine or said second virtual machine; and
processing the one or more work items with the GPU irrespective of whether the one or more work items are based on an interface from said first operating system or based on an interface from said second operating system.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for applying virtual machines to graphics hardware are provided. In various embodiments of the invention, while supervisory code runs on the CPU, the actual graphics work items are run directly on the graphics hardware and the supervisory code is structured as a graphics virtual machine monitor. Application compatibility is retained using virtual machine monitor (VMM) technology to run a first operating system (OS), such as an original OS version, simultaneously with a second OS, such as a new version OS, in separate virtual machines (VMs). VMM technology applied to host processors is extended to graphics processing units (GPUs) to allow hardware access to graphics accelerators, ensuring that legacy applications operate at full performance. The invention also provides methods to make the user experience cosmetically seamless while running multiple applications in different VMs. In other aspects of the invention, by employing VMM technology, the virtualized graphics architecture of the invention is extended to provide trusted services and content protection.
-
Citations
20 Claims
-
1. A method for processing graphics data in a computing system having a first operating system hosted in a first virtual machine and a second operating system hosted in a second virtual machine, comprising:
-
receiving one or more work items to be performed by a graphics processing unit (GPU) of a graphics subsystem of the computing system wherein the one or more work items are originated by said first virtual machine or said second virtual machine; and
processing the one or more work items with the GPU irrespective of whether the one or more work items are based on an interface from said first operating system or based on an interface from said second operating system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for processing graphics data in a computing system having a first version of an operating system hosted in a first virtual machine by a virtual machine monitor component and a second version of the operating system hosted in a second virtual machine by the virtual machine monitor component, comprising:
-
receiving one or more work items from the first virtual machine or second virtual machine to be performed by a graphics processing unit (GPU) of a graphics subsystem of the computing system, wherein at least one of the work items includes a privileged command;
discovering the privileged command by the virtual machine monitor component; and
emulating the privileged command of the at least one of the work items based on at least one pre-defined policy. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computing device comprising:
-
a first application and a second application executing on one or more virtual machines of the computing device;
a virtual machine monitor component that, unless authorized, does not allow graphics interface calls from the first application to interact with any physical resource that are not authorized for the first application. - View Dependent Claims (17, 18, 19, 20)
-
Specification