IP Library Granted Patent US 9,640,150
Granted Patent B2
US 9,640,150 · App. 15/159,000 · Granted May 2, 2017

Selecting data of a server system for transmission

Inventors: Satyaki Koneru (Folsom, CA); Ke Yin (El Dorado Hills, CA); Dinakar C. Munagala (El Dorado Hills, CA)
Assignee: ThinCI, Inc.
G09G5/395G06F3/14G06T1/20G06T15/005G09G5/363H04N21/23614H04N21/42653H04N21/4348H04N21/8146G09G2360/127G09G2360/18G09G2370/022G09G2370/10H04N19/42
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,640,150
App. No.
15/159,000
Granted
May 2, 2017
Kind
B2
Abstract

Methods, systems and apparatuses for selecting graphics data of a server system for transmission are disclosed. One method includes reading data from memory of the server system, checking if the data is being read for the first time, checking if the data was written by a processor of the server system during processing, comprising checking if the data is available on a client system or present in a transmit buffer, placing the data in the transmit buffer if the data is being read for the first time and was not written by the processor during the processing as determined by the checking if the data was written by the processor of the server system during processing, wherein if the data is being read for the first time and was written by the processor of the server system during processing the data is not placed in the transmit buffer.

Claims (30)

1. A method of selecting data of a server system for transmission, comprising:

reading data from memory of the server system;

checking if the data is being read for the first time;

checking if the data was written by a processor of the server system during processing, comprising checking if the data is available on a client system or present in a transmit buffer;

placing the data in the transmit buffer if the data is being read for the first time as determined by the checking if the data is being read for the first time, and was not written by the processor of the server system during the processing as determined by the checking if the data was written by the processor of the server system during the processing, wherein if the data is being read for the first time and was written by the processor of the server system during processing the data is not placed in the transmit buffer; and

transmitting the data of the transmit buffer to the client system.

2. The method of claim 1 , wherein the processor includes at least one of a central processing unit (CPU) and a graphics processing unit (GPU), the method further comprising the GPU controlling compression and placement of data of a frame buffer into a compressed frame buffer, and the GPU controlling a selection of either compressed graphics data of the compressed frame buffer or data of the transmit buffer for transmission to the client system.

3. The method of claim 1 , wherein determining whether the data is being read for the first time comprises checking at least a first status-bit.

4. The method of claim 1 , wherein determining whether the data was not written by the processor comprises checking at least a second status-bit.

5. The method of claim 3 , wherein the at least first status-bit is set when data is placed in the transmit buffer.

6. The method of claim 4 , wherein the at least second status-bit is set when the processor writes to the memory.

7. The method of claim 5 , wherein the at least first status-bit is reset upon detecting at least one of a direct memory access (DMA) of the memory or reallocation of the memory.

8. The method of claim 6 , wherein the second status-bit is reset upon detecting at least one of a direct memory access (DMA) of the memory or reallocation of the memory.

9. The method of claim 1 , wherein the data comprises a plurality of blocks, and wherein determining if the data is being read for the first time comprises checking at least one status-bit corresponding to at least one block.

10. The method of claim 1 , further comprising compressing data of a frame buffer of the memory.

11. The method of claim 10 , further comprising checking at least one of a bandwidth of a link between the server system and the client system, and capabilities of the client system, and the server system transmitting at least one of the compressed frame buffer data or the data of the transmit buffer based at least in part on the at least one of the bandwidth of the links and the capabilities of the client system.

12. The method of claim 11 , wherein checking the bandwidth and the capabilities is performed on a frame-by-frame basis.

13. The method of claim 11 , further comprising determining whether to compress data of the frame buffer on a frame-by-frame basis, and placing at least a percentage of the data in the transmit buffer for every frame.

14. A system for selecting data for transmission, comprising:

a server system comprising a processor and memory, wherein the memory comprises a frame buffer and a transmit buffer, the server system operable to:

read data from the memory;

check if the data is being read for the first time;

check if the data was written by the processor of the server system during processing, comprising checking if the data is available on a client system or present in the transmit buffer;

place the data in the transmit buffer if the data is being read for the first time as determined by the checking if the data is being read for the first time, and was not written by the processor of the server system during the processing as determined by the checking if the data was written by a processor of the server system during the processing, wherein if the data is being read for the first time and was written by the processor of the server system during the processing the data is not placed in the transmit buffer.

15. The system of claim 14 , wherein the processor comprises at least a central processing unit (CPU) and a graphics processing unit (GPU), and wherein the GPU controls compression and placement of data of the frame buffer into a compressed frame buffer, and the GPU controls a selection of either compressed graphics data of the compressed frame buffer or data of the transmit buffer for transmission to the client system.

16. The system of claim 14 , wherein the server system is operable to compress data of the frame buffer.

17. The system of claim 16 , further comprising the server system operable to select between transmitting the data of the transmit buffer or the compressed data of the frame buffer depending on a data bandwidth of a link between the server system and a client system.

18. The system of claim 17 , further comprising the server system operable to select between transmitting the data of the transmit buffer or the compressed data of the frame buffer depending on capabilities of a client system, wherein the server system is linked to a client system.

19. The system of claim 15 , further comprising a client system that is linked to the server system, the client system comprising at least a processor, and a client memory, and wherein the GPU determines to decompress the data or render the data to place the data in a frame buffer of the client memory based on the information in a data header of the data.

20. The system of claim 14 , wherein an allocated size of the transmit buffer is adaptively determined based on at least a bandwidth of a link between the server system and the client system.

Assignments (5)
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY COLLATERAL AT REEL/FRAME NO. 064274/0743 Recorded Aug 16, 2024
From: BESS VENTURES AND ADVISORY, LLC
To: BLAIZE, INC.
Reel/Frame 068672/0220 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 23, 2023
From: BLAIZE, INC.
To: BESS VENTURES AND ADVISORY, LLC; BURTECH LP LLC; FRANKLIN TEMPLETON VARIABLE INSURANCE PRODUCTS TRUST - FRANKLIN SMALL-MID CAP GROWTH VIP FUND; FRANKLIN STRATEGIC SERIES - FRANKLIN SMALL-MID CAP GROWTH FUND
Reel/Frame 065317/0902 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 14, 2023
From: BLAIZE, INC.
To: BESS VENTURES AND ADVISORY, LLC
Reel/Frame 064274/0743 →
CHANGE OF NAME Recorded Feb 14, 2022
From: THINCI, INC.
To: BLAIZE, INC.
Reel/Frame 059108/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: KONERU, SATYAKI; YIN, KE; MUNAGALA, DINAKAR C.
To: THINCI, INC.
Reel/Frame 038646/0479 →
Continuity (4)
Continuation 14287036 · May 25, 2014
Continuation In Part 13161547 · Jun 16, 2011
Provisional Application 61355768 · Jun 17, 2010
Related Publication 20160267889A1 · Sep 15, 2016