Multi-user display proxy server
First Claim
1. A display proxy server system configured to support multiple remote terminals, comprising:
- a graphics and display subsystem having a display memory which can store display frames for multiple terminals, the graphics and display subsystem being configured to;
generate display frames corresponding to display frames at one or more remote terminals, the display frames comprising sub frames wherein a size for each sub frame is dynamically configurable during run-time by the display proxy server system as a multiple of a minimum pixel block size of an algorithm selected to encode the sub frames, the algorithm selected during runtime based on characteristic indicators of content within the sub frames;
track modified sub frames of the display frames and perform selective updates from the display memory based on the tracking, the tracking comprising generating signatures corresponding to the modified sub frames, performing signature checks for the modified sub frames, updating status bits to indicate that a sub frame requires selective updating, determining a type of data contained in the modified sub frames, and selecting an encoding algorithm based on the type; and
respond to commands and requests from virtual machines via a virtualization abstraction layer including graphics drivers corresponding to operating systems executing on the virtual machines;
the display proxy server system being configured to;
communicatively couple said display proxy server system to one or more host CPUs;
communicate with one or more host CPUs running one or more virtual machines configured to request graphics operations, locally manage the multiple virtual machine graphics requests, utilize the virtual machine graphics requests to produce virtual displays for requesting virtual machines, and transmit encoded updates of said virtual displays over a network to corresponding ones of said remote terminals;
communicate with said one or more host CPUs in one of;
an operating system virtual machine mode to perform operating system functions of said graphics processing operations, anda protected management virtual machine mode which is isolated from said operating system virtual machine mode, said protected management virtual machine mode being configured to manage some of the update functions for the remote terminals; and
manage the selective updates from the display memory so that only the selective updates will be transferred via a network subsystem to corresponding ones of said remote terminals.
5 Assignments
0 Petitions
Accused Products
Abstract
A multi-user host computer system comprises processor blades combined with terminal services blades to provide acceleration and proxy server functions for supporting a variety of remote terminals. For each remote terminal, the terminal services blade and proxy server functions may improve the video and graphics performance. This allows the multi-user host computer system to more efficiently support multiple users. The terminal services blade may include a graphics processor that manages a virtual display for each remote terminal and provides selective updates of sub frame data. Where appropriate, the sub frame data is encoded and transmitted over the network to the remote terminals. The terminal services processor also offloads and optimizes video data streams for the intended remote terminals and their respective network connections. Processor blades may include a baseboard management controller that utilizes advanced features for supporting remote KVM administration.
-
Citations
16 Claims
-
1. A display proxy server system configured to support multiple remote terminals, comprising:
-
a graphics and display subsystem having a display memory which can store display frames for multiple terminals, the graphics and display subsystem being configured to; generate display frames corresponding to display frames at one or more remote terminals, the display frames comprising sub frames wherein a size for each sub frame is dynamically configurable during run-time by the display proxy server system as a multiple of a minimum pixel block size of an algorithm selected to encode the sub frames, the algorithm selected during runtime based on characteristic indicators of content within the sub frames; track modified sub frames of the display frames and perform selective updates from the display memory based on the tracking, the tracking comprising generating signatures corresponding to the modified sub frames, performing signature checks for the modified sub frames, updating status bits to indicate that a sub frame requires selective updating, determining a type of data contained in the modified sub frames, and selecting an encoding algorithm based on the type; and respond to commands and requests from virtual machines via a virtualization abstraction layer including graphics drivers corresponding to operating systems executing on the virtual machines; the display proxy server system being configured to; communicatively couple said display proxy server system to one or more host CPUs; communicate with one or more host CPUs running one or more virtual machines configured to request graphics operations, locally manage the multiple virtual machine graphics requests, utilize the virtual machine graphics requests to produce virtual displays for requesting virtual machines, and transmit encoded updates of said virtual displays over a network to corresponding ones of said remote terminals; communicate with said one or more host CPUs in one of; an operating system virtual machine mode to perform operating system functions of said graphics processing operations, and a protected management virtual machine mode which is isolated from said operating system virtual machine mode, said protected management virtual machine mode being configured to manage some of the update functions for the remote terminals; and manage the selective updates from the 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 (2, 3, 4, 5, 6, 7)
-
-
8. A display management system configured to support one or more remote terminals, comprising:
-
a graphics controller and display subsystem configured to; perform graphics processor operations in a display memory, at the request of a host CPU, to generate display frame data; track modified sub frames of display frames, perform selective updates based on the modified sub frames, generate signatures corresponding to the modified sub frames, perform signature checks for the modified sub frames, updating status bits to indicate that a sub frame requires selective updating, determining a type of data contained in the modified sub frames, and selecting an encoding algorithm based on the type, the size for the sub frames being dynamically configurable during run-time by the display management as a multiple of a minimum pixel block size of an algorithm selected to encode the sub frames, the algorithm selected during runtime based on characteristic indicators of content within the sub frames; encode said selective updates such that extraneous video artifacts due to alignment of a display window and surrounding pixels are substantially minimized; and manage 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 one or more remote terminals; the display management system being further configured to; communicate with one or more host CPUs running one or more virtual machines each requesting graphics operations, locally manage the multiple virtual machine graphics requests and utilize the virtual machine graphics requests to produce virtual displays for requesting virtual machines, and transmit encoded updates of said virtual displays over a network to corresponding ones of said remote terminals; and communicate with said one or more host CPUs in one of; an operating system virtual machine mode to perform operating system functions of said graphics operations, and in a protected management virtual machine mode which is isolated from said operating system virtual machine mode, said protected management virtual machine mode being configured to manage some of the update functions for the remote terminals. - View Dependent Claims (9, 10)
-
-
11. A blade based multi-user system configured to support multiple remote terminals, comprising:
-
one or more processor blades connected to a backplane; one or more terminal services accelerator blades including a graphics and display subsystem having a display memory which can store display frames for multiple terminals, the graphics and display subsystem being configured to; generate display frames corresponding to display frames at a remote terminal, the display frames comprising sub frames, the size for the sub frames being dynamically configurable during run-time by the graphics and display subsystem as a multiple of a minimum pixel block size of an algorithm selected to encode the sub frames; track modified sub frames; perform selective updates from the display memory based on the tracking, wherein the tracking comprises generating signatures corresponding to the modified sub frames, performing signature checks for the modified sub frames, and updating status bits to indicate that a sub frame requires selective updating; identify a type of data contained in the modified sub frames and determine an encoding technique as a function of characteristic indicators for said type; and respond to commands and requests from one or more virtual machines using a virtualization abstraction layer including graphics drivers corresponding to operating systems executing on the one or more virtual machines; and an offload subsystem configured to; to intercept graphics commands or video data prior to being processed by said one or more processor blades and prior to sending graphics commands or video data to the remote terminals such that the one or more processor blades do not process the graphics commands or video data; and process said intercepted graphics commands or video data, said processing process performed as a function of network conditions, display characteristics, and video decoding capabilities at said multiple remote terminals, said comprising at least one of transcoding from one encoded format to another encoded format, transrating from one bit rate to another bit rate, changing a frame rate, changing a display format, and changing a resolution; communicatively couple said processor blades to one or more terminal services accelerator blades; the blade based multi-user system being configured to; manage the selective updates from the display memory so that only the selective updates will be transferred via a network subsystem to corresponding ones of said remote terminals; and communicate with one or more host CPUs running one or more virtual machines each requesting graphics operations, locally manage the multiple virtual machine graphics requests and utilize the virtual machine graphics requests to produce virtual displays for requesting virtual machines, and transmit encoded updates of said virtual displays over a network to corresponding ones of the remote terminals; and communicate with said one or more host CPUs in one of; an operating system virtual machine mode to perform operating system functions of said graphics operations, and in a protected management virtual machine mode which is isolated from said operating system virtual machine mode, said protected management virtual machine mode being configured to manage some of the update functions for the remote terminals. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification