Graphics display system for multiple remote terminals
First Claim
1. A multi-user host computer system for supporting multiple active remote terminals each having their own physical input controls, comprising:
- a hardware graphics and display subsystem (GPU) havingdisplay memory which can store display frames or subframes for multiple active remote terminals and which is accessible to the GPU without the need to perform a GPU context switch;
one or more drawing engines for generating display frames which may each correspond to a display frame at one of said remote terminals;
tracking means for tracking modified display subframes and for performing selective updates of subframes from said display memory based on this tracking; and
means for isolating virtual machines from each other;
a host CPUfor running more than one CPU virtual machine each of whichcorresponds to a virtual desktop for a different user,includes a virtual graphics machine having virtual GPU status registers, virtual controls and virtual display memory, andasynchronously generates virtual GPU operations for execution by the physical GPU hardware as if the virtual machine had an exclusive machine view of the hardware GPU;
for running a Virtual Machine Monitor which tracks context and state information for each of said virtual graphics machines and their asynchronous operations and achieves proper ordering and interleaving of said virtual GPU operations to the physical GPU hardware; and
for controlling access by said remote terminals to said CPU virtual machines;
means for connecting said graphics and display subsystem to said host CPU;
means for connecting said multiple active remote terminals via a network to said host CPU;
means for more than one of said virtual machines to asynchronously access said hardware graphics and display subsystem whereby address translation is performed between the CPU virtual machines and GPU display memory, between the GPU subsystem and the GPU display memory, and between the CPU virtual machines and GPU control registers; and
means for managing the selective updates from said GPU display memory by the host CPU so that only the selective updates of said subframes will be transferred via a network subsystem to corresponding ones of said remote terminals.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient architecture for a virtual desktop system in a Virtual Machine Monitor (VMM) operating environment. In one embodiment, initially, a virtual desktop computer system utilizing one or more host computer systems provides one or more remote display systems with interactive graphics and video capabilities. The host computer system generally manages windows and frames that correspond to remote display systems and manages updating the remote display systems over a network connection. Preferred embodiments include a multi-display processor that is enhanced for VMM operating environments.
VMM operating environments typically consist of different Virtual Machines (VMs) and a control layer known as the Virtual Machine Monitor (VMM) that manages the different VMs. Each VM is typically designed to be unaware of the existence of other VMs and the VMM is designed to provide the necessary abstraction, isolation and coordination between the different VMs to the physical platform hardware.
225 Citations
20 Claims
-
1. A multi-user host computer system for supporting multiple active remote terminals each having their own physical input controls, comprising:
-
a hardware graphics and display subsystem (GPU) having display memory which can store display frames or subframes for multiple active remote terminals and which is accessible to the GPU without the need to perform a GPU context switch; one or more drawing engines for generating display frames which may each correspond to a display frame at one of said remote terminals; tracking means for tracking modified display subframes and for performing selective updates of subframes from said display memory based on this tracking; and means for isolating virtual machines from each other; a host CPU for running more than one CPU virtual machine each of which corresponds to a virtual desktop for a different user, includes a virtual graphics machine having virtual GPU status registers, virtual controls and virtual display memory, and asynchronously generates virtual GPU operations for execution by the physical GPU hardware as if the virtual machine had an exclusive machine view of the hardware GPU; for running a Virtual Machine Monitor which tracks context and state information for each of said virtual graphics machines and their asynchronous operations and achieves proper ordering and interleaving of said virtual GPU operations to the physical GPU hardware; and for controlling access by said remote terminals to said CPU virtual machines; means for connecting said graphics and display subsystem to said host CPU; means for connecting said multiple active remote terminals via a network to said host CPU; means for more than one of said virtual machines to asynchronously access said hardware graphics and display subsystem whereby address translation is performed between the CPU virtual machines and GPU display memory, between the GPU subsystem and the GPU display memory, and between the CPU virtual machines and GPU control registers; and means for managing the selective updates from said GPU display memory by the host CPU so that only the selective updates of said subframes will be transferred via a network subsystem to corresponding ones of said remote terminals. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A graphics and display controller for supporting multiple virtual machines, multiple active remote terminals and multiple user inputs, comprising:
-
physical display memory which can store display frames or subframes for said multiple active remote terminals and which includes means of isolating the physical display memory between different virtual machines; one or more hardware drawing engines for concurrently generating display frames or subframes which may each correspond to a display frame or subframe at one of said remote terminals; one or more compression engines for performing lossy or lossless encoding and compression of said frames or subframes; tracking means for tracking modified display subframes and for performing selective updates of subframes from said display memory based on this tracking; means for connecting said controller to a host CPU that runs more than one CPU virtual machine each of which corresponds to a virtual desktop for a different user, includes a virtual graphics machine having virtual GPU status registers, virtual controls and virtual display memory, and asynchronously generates virtual GPU operations for execution by the physical GPU hardware as if the virtual machine had an exclusive machine view of the hardware GPU; runs a Virtual Machine Monitor which tracks context and state information for each of said virtual graphics machines and their asynchronous operations and achieves proper ordering and interleaving of said virtual GPU operations to the physical GPU hardware; and controls access by said remote terminals to said CPU virtual machines; and for translating memory and control accesses from the CPU into context specific operations for virtual machine displays without requiring said graphics and display controller to perform a context switch; virtual machine monitor means for allowing more than one of said virtual machines to asynchronously access said graphics and display controller without said virtual machines performing software address or control translations to support said graphics and display controller and without the controller having to switch contexts between accesses by said multiple virtual machines; and means for managing the selective updates from said display memory so that only the selective updates will be transferred via a network subsystem to corresponding ones of said remote terminals. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for operating a multi-user host system having multiple virtual machines, networked multiple remote terminals and multiple input controls, comprising the steps of:
-
using a host computer that includes software, a main CPU and a hardware graphics and display controller, runs more than one CPU virtual machine each of which corresponds to a virtual desktop for a different user, includes a virtual graphics machine having virtual GPU status registers, virtual controls and virtual display memory, and asynchronously generates virtual GPU operations for execution by the physical GPU hardware as if the virtual machine had an exclusive machine view of the hardware GPU; runs a Virtual Machine Monitor which tracks context and state information for each of said virtual graphics machines and their asynchronous operations and achieves proper ordering and interleaving of said virtual GPU operations to the physical GPU hardware; and controls access by said remote terminals to said CPU virtual machines; processing said virtual machines independently so that each has access to I/O devices including the graphics and display controller and associated memory subsystems; processing graphics and display controller commands asynchronously and directly from said virtual machines and translating said commands into context specific commands, without performing a context switch of the graphics and display controller, for said graphics and display controller including managing display frames and subframes for each virtual machine; determining which of said networked multiple remote terminals is the destination for different ones of said display frames and subframes; and propagating said display frames and subframes utilizing said main CPU according to network protocol techniques through a network interface to one or more of said networked multiple remote terminals. - View Dependent Claims (17, 18, 19, 20)
-
Specification