IP Library Granted Patent US 9,525,586
Granted Patent B2
US 9,525,586 · App. 13/844,086 · Granted Dec 20, 2016

QoS based binary translation and application streaming

Inventors: Bharath Muthiah (Santa Clara, CA); William Bill Rash (Saratoga, CA); Glenn Hinton (Portland, OR); Martin G. Dixon (Portland, OR); Scott Hayn (Portland, OR); David Papworth (Cornelius, OR)
Assignee: Intel Corporation
H04L29/0651H04L65/4084H04L65/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,525,586
App. No.
13/844,086
Granted
Dec 20, 2016
Kind
B2
Abstract

In one embodiment, Quality of Service (QoS) criteria based server side binary translation and execution of applications is performed on multiple servers utilizing distributed translation and execution in either a virtualized or native execution environment. The translated applications are executed to generate output display data, the output display data is encoded in a media format suitable for video streaming, and the video stream is delivered over a network to a client device. In one embodiment, one or more graphics processors assist the central processors of the servers by accelerating the rendering of the application output, and a media encoder encodes the application output into a media format.

Claims (28)

1. A server comprising:

a non-transitory machine-readable storage medium storing instructions;

a processor, to execute the instructions, the instructions to perform operations to:

translate a binary having a second instruction set, into a translated binary having a first instruction set, the translation governed by Quality of Service (QoS) criteria, wherein the instructions to translate the binary have priority in a cache of the processor, wherein the operations to translate the binary execute within a virtual machine, and the QoS criteria include priority based acceleration and multiple client parameters, wherein the multiple client parameters include a client device resolution, a client device location, a client application type, and a set of client decode capabilities, and

execute the translated binary to render an output frame;

a media encoder coupled with the processor, to encode the output frame into a media format; and

a network device coupled with the media encoder and the processor, the network device to transmit the encoded output frame to a client device.

2. The server of claim 1 , further comprising a scheduler, to set an execution priority of a virtual machine based on the QoS criteria.

3. The server of claim 2 , further comprising a graphics accelerator coupled to the processor, to assist the processor to render the output frame.

4. The server of claim 3 , wherein the graphics accelerator assists the media encoder to encode the output frame into a media format.

5. A binary translation system comprising:

a server having a central processor and a network interface, the central processor having a first instruction set, the server to translate a binary having a second instruction set into a translated executable having the first instruction set, the translation performed using Quality of Service (QoS) criteria including priority based acceleration that factors a network latency between the server and the client device to set binary translation priority, and multiple client parameters, wherein the multiple client parameters include a client device resolution, a client device location, a client application type, and a set of client decode capabilities, wherein the server executes the translated binary to generate a frame of rendered output, and transmits the frame of rendered output via the network interface, wherein the server executes the binary translation within a virtual machine, the virtual machine is tuned for the client device, and virtual machine execution resources are tuned via the QoS criteria; and

a client device having a display, a client processor and a client network interface, the client device to receive the frame of rendered output from the server via the client network interface, and to display the frame of rendered output on the display using the client processor.

6. The binary translation system of claim 5 , wherein the frame of rendered output is encoded into a media format before the server transmits the frame of rendered output.

7. The binary translation system of claim 6 , wherein the server further includes a graphics processor, to generate the frame of rendered output.

8. The binary translation system of claim 7 , wherein the graphics processor encodes the frame of rendered output into the media format.

9. The binary translation system of claim 5 , wherein the client processor of the client device has the first instruction set.

10. The binary translation system of claim 5 , wherein the client processor of the client device has the second instruction set.

11. The binary translation system of claim 5 , wherein the first instruction set is an x86 instruction set, and the second instruction set is an ARM instruction set.

12. A non-transitory computer readable medium storing instructions for execution by a processor, the instructions, when executed, cause the processor to perform operations, the operations comprising:

translating a binary having a second instruction set into a translated binary having a first instruction set, the translating governed by Quality of Service (QoS) criteria, wherein the translating occurs within a virtual machine, the virtual machine execution resources are tuned for a client device via the QoS criteria, the QoS criteria including priority based acceleration that factors a network latency between the server and the client device to set binary translation priority, and multiple client parameters, wherein the multiple client parameters include a client device resolution, a client device location, a client application type, and a set of client decode capabilities;

executing the translated binary to render an output frame, wherein the executing is assisted by a graphics processor if graphics acceleration is indicated by the QoS criteria;

encoding the output frame into a media format, the media format selected by the set of client decode capabilities; and

transmitting the output frame over a network device to a client device.

13. The non-transitory computer-readable medium of claim 12 , the operations further comprising:

translating a first binary in a first virtual machine on a first server;

translating a second binary in a second virtual machine on a second server; and

executing a third binary on the first server, wherein the first server previously translated the third binary, and the third binary is re-translated before the executing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2013
From: MUTHIAH, BHARATH; RASH, WILLIAM BILL; HINTON, GLENN; DIXON, MARTIN G.; HAHN, SCOTT; PAPWORTH, DAVID
To: INTEL CORPORATION
Reel/Frame 030772/0256 →
Continuity (1)
Related Publication 20140281008A1 · Sep 18, 2014