IP Library Granted Patent US 11,113,783
Granted Patent B2
US 11,113,783 · App. 16/683,024 · Granted Sep 7, 2021

Programmable re-order buffer for decompression

Inventors: Abhishek R. Appu (El Dorado Hills, CA); Eric G. Liskay (Folsom, CA); Prasoonkumar Surti (Folsom, CA); Sudhakar Kamma (El Dorado Hills, CA); Karthik Vaidyanathan (San Francisco, CA); Rajasekhar Pantangi (Fremont, CA); Altug Koker (El Dorado Hills, CA); Abhishek Rhisheekesan (Vaikom, IN); Shashank Lakshminarayana (Bengaluru, IN); Priyanka Ladda (Shevgaon, IN); Karol A. Szerszen (Hillsboro, OR)
Assignee: Intel Corporation
G06T1/20G06F9/3818G06F9/3855G06F9/5016
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 11,113,783
App. No.
16/683,024
Granted
Sep 7, 2021
Kind
B2
Abstract

Examples described herein relate to a decompression engine that can request compressed data to be transferred over a memory bus. In some cases, the memory bus is a width that requires multiple data transfers to transfer the requested data. In a case that requested data is to be presented in-order to the decompression engine, a re-order buffer can be used to store entries of data. When a head-of-line entry is received, the entry can be provided to the decompression engine. When a last entry in a group of one or more entries is received, all entries in the group are presented in-order to the decompression engine. In some examples, a decompression engine can borrow memory resources allocated for use by another memory client to expand a size of re-order buffer available for use. For example, a memory client with excess capacity and a slowest growth rate can be chosen to borrow memory resources from.

Claims (50)

1. A graphics processing apparatus comprising:

an interface to a memory device;

a reorder buffer system coupled to the interface to the memory device, the reorder buffer system comprising a random access memory and a tracker; and

an interface to couple the reorder buffer system to a decompressor, wherein:

the random access memory is to store data prior to output to the interface coupled to the decompressor,

the tracker is to cause data to be provided to the interface to the decompressor in order of allocation,

an amount of memory resources in the random access memory allocated for a reorder buffer (ROB) to reorder received data is dynamically reconfigured based on a mode of operation,

the mode of operation is based on a profile of an application associated with use of the ROB, and

the profile of the application is to identify a percentage of compressed data transferrable over a memory bus using more than one clock cycle.

2. The graphics processing apparatus of claim 1 , wherein the reorder buffer system comprises a control buffer to indicate compression characteristics of data stored in the reorder buffer.

3. The graphics processing apparatus of claim 2 , wherein the compression characteristics comprise one or more of: compression state, surface format, compression format, or other metadata.

4. The graphics processing apparatus of claim 1 , wherein the mode of operation is based on a type of application requesting use of decompression.

5. The graphics processing apparatus of claim 4 , wherein the type of application comprises a game, presentation software, spreadsheet, or video player.

6. The graphics processing apparatus of claim 1 , wherein the mode of operation is based on hiding latency from use of the ROB to store data to reorder data.

7. The graphics processing apparatus of claim 1 , wherein the random access memory is to include allocated memory resources for a first client and memory resources for a second client.

8. The graphics processing apparatus of claim 7 , comprising a controller that is to permit the first client to borrow memory resources from the second client to provide for the ROB.

9. The graphics processing apparatus of claim 8 , wherein the second client has available memory resources and an associated slowest growth rate for memory allocation.

10. The graphics processing apparatus of claim 8 , wherein the random access memory is to include allocated memory resources for a third client and wherein the controller is to allocate memory resources for the second client by a borrow of memory resources from the third client and the controller is to allocate memory resources for the first client by a borrow of memory resources from the second client.

11. The graphics processing apparatus of claim 1 , wherein the amount of memory resources in the random access memory allocated for the ROB to reorder received data is dynamically reconfigured based on a mode of operation and per read request or group of read requests.

12. A method performed by a reorder buffer used by a decompressor to reorder compressed data entries, the method comprising:

dynamically allocating an amount of memory for the reorder buffer (ROB) based on a mode of operation, the ROB for use in re-ordering received entries associated with a read request of compressed data, wherein

the mode of operation is based on a profile of an application associated with use of the ROB, and

the profile of the application is to identify a percentage of compressed data transferrable over a memory bus using more than one clock cycle;

storing received compressed data associated with the read request into the ROB as one or more entries;

based on receipt of an entry that has not been provided to the decompressor and is a front of line, providing the entry in-order to the decompressor; and

based on identification of receipt of a last entry of all of one or more entries associated with the read request, providing one or more entries, including the last entry, not previously provided to the decompressor, in-order, to the decompressor.

13. The method of claim 12 , further comprising:

providing compression information for one or more entries to the decompressor.

14. The method of claim 13 , wherein the compression information comprises one or more of: compression state, surface format, compression format, or other metadata.

15. The method of claim 12 , wherein the type of application comprises a game, presentation software, spreadsheet, or video player.

16. The method of claim 12 , comprising:

allocating memory resources for the ROB and memory resources for another memory client.

17. The method of claim 16 , comprising:

borrowing memory resources from the another memory client for allocation to the ROB.

18. The method of claim 17 , wherein the another memory client has available memory resources and an associated slowest growth rate for memory allocation.

19. A non-transitory computer-readable medium comprising instructions stored thereon, that if executed by a processor, causes the processor to:

cause a random access memory to store data prior to output to an interface coupled to a decompressor,

cause received data to be provided to the interface to the decompressor in order of allocation, and

dynamically modify an amount of memory resources in the random access memory allocated to a reorder buffer (ROB) to reorder received data, wherein

the amount of memory resources in the random access memory allocated to the ROB is based on a mode of operation,

the mode of operation is based on a profile of an application associated with use of the ROB, and

the profile of the application is to identify a percentage of compressed data transferrable over a memory bus using more than one clock cycle.

20. The computer-readable medium of claim 19 , wherein the mode of operation is based on a type of application requesting use of decompression.

21. The computer-readable medium of claim 20 , wherein the type of application comprises a game, presentation software, spreadsheet, or video player.

22. The computer-readable medium of claim 19 , comprising instructions stored thereon, that if executed by a processor, causes the processor to:

allocate memory resources for the ROB and memory resources for another memory client.

23. The computer-readable medium of claim 22 , comprising instructions stored thereon, that if executed by a processor, causes the processor to:

allocate memory resources to the ROB from memory resources allocated to the another memory client.

24. The computer-readable medium of claim 19 , comprising instructions stored thereon, that if executed by a processor, causes the processor to:

provide compression information for one or more entries to the decompressor, wherein the compression information comprises one or more of: compression state, surface format, compression format, or other metadata.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDITION OF INVENTOR KAROL A. SZERSZEN PREVIOUSLY RECORDED ON REEL 051970 FRAME 0364. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 18, 2020
From: APPU, ABHISHEK R.; LISKAY, ERIC G.; SURTI, PRASOONKUMAR; KAMMA, SUDHAKAR; VAIDYANATHAN, KARTHIK; PANTANGI, RAJASEKHAR; KOKER, ALTUG; RHISHEEKESAN, ABHISHEK; LAKSHMINARAYANA, SHASHANK; LADDA, PRIYANKA; SZERSZEN, KAROL A.
To: INTEL CORPORATION
Reel/Frame 053530/0275 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2020
From: APPU, ABHISHEK R.; LISKAY, ERIC G.; SURTI, PRASOONKUMAR; KAMMA, SUDHAKAR; VAIDYANATHAN, KARTHIK; PANTANGI, RAJASEKHAR; KOKER, ALTUG; RHISHEEKESAN, ABHISHEK; LAKSHMINARAYANA, SHASHANK; LADDA, PRIYANKA
To: INTEL CORPORATION
Reel/Frame 051970/0364 →
Continuity (1)
Related Publication 20210142438A1 · May 13, 2021
Cited By (1)
US 12,379,841