IP Library Granted Patent US 12,028,094
Granted Patent B2
US 12,028,094 · App. 17/133,622 · Granted Jul 2, 2024

Application programming interface for fine grained low latency decompression within processor core

Inventors: Jayesh Gaur (Bangalore, IN); Adarsh Chauhan (Bangalore, IN); Vinodh Gopal (Westborough, MA); Vedvyas Shanbhogue (Austin, TX); Sreenivas Subramoney (Bangalore, IN); Wajdi Feghali (Boston, MA)
H03M7/6029G06F9/3877G06F9/541
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 12,028,094
App. No.
17/133,622
Granted
Jul 2, 2024
Kind
B2
Abstract

Methods and apparatus relating to an Application Programming Interface (API) for fine grained low latency decompression within a processor core are described. In an embodiment, a decompression Application Programming Interface (API) receives an input handle to a data object. The data object includes compressed data and metadata. Decompression Engine (DE) circuitry decompresses the compressed data to generate uncompressed data. The DE circuitry decompress the compressed data in response to invocation of a decompression instruction by the decompression API. The metadata comprises a first operand to indicate a location of the compressed data, a second operand to indicate a size of the compressed data, a third operand to indicate a location to which decompressed data by the DE circuitry is to be stored, and a fourth operand to indicate a size of the decompressed data. Other embodiments are also disclosed and claimed.

Claims (30)

1. An apparatus comprising:

memory to store a decompression Application Programming Interface (API), the decompression API to receive an input handle to a data object, wherein the data object includes compressed data and metadata; and

Decompression Engine (DE) circuitry to decompress the compressed data to generate uncompressed data, the DE circuitry to decompress the compressed data in response to invocation of a decompression instruction by the decompression API,

wherein the metadata comprises a first operand to indicate a location of the compressed data, a second operand to indicate a size of the compressed data, a third operand to indicate a location to which decompressed data by the DE circuitry is to be stored, and a fourth operand to indicate a size of the decompressed data.

2. The apparatus of claim 1 , wherein a compression API is to provide the second operand.

3. The apparatus of claim 2 , wherein the memory is to store the compression API.

4. The apparatus of claim 1 , wherein a compression API is to compress input data to generate the compressed data.

5. The apparatus of claim 4 , wherein the compression API is to compress the input data in accordance with a deflate function.

6. The apparatus of claim 4 , wherein the compression API is to insert the compressed data and the metadata into the data object.

7. The apparatus of claim 1 , wherein the DE circuitry is to decompress the compressed data in accordance with the metadata.

8. The apparatus of claim 1 , wherein the decompression instruction is to cause the DE circuitry to perform an out-of-order decompression of the plurality of cachelines.

9. The apparatus of claim 1 , wherein the DE circuitry is to inform a processor core after decompression of each one of one or more cachelines, wherein the one or more cachelines are to store the compressed data and/or the decompressed data.

10. The apparatus of claim 9 , wherein the DE circuitry is to inform the processor core via a dedicated signal, modification to a status bit in a register, or modification of a status bit in a cache coupled to the processor core.

11. The apparatus of claim 1 , wherein one or more of the first operand and the third operand comprise a virtual memory address.

12. The apparatus of claim 1 , wherein a processor core, the DE circuitry, and the memory are on a single integrated circuit die.

13. The apparatus of claim 12 , wherein the processor core comprises a Graphics Processing Unit (GPU) core.

14. One or more non-transitory computer-readable media comprising one or more instructions that when executed on at least one processor configure the at least one processor to perform one or more operations to:

cause a decompression Application Programming Interface (API) to receive an input handle to a data object, wherein the data object includes compressed data and metadata; and

cause Decompression Engine (DE) circuitry to decompress the compressed data to generate uncompressed data, the DE circuitry to decompress the compressed data in response to invocation of a decompression instruction by the decompression API,

wherein the metadata comprises a first operand to indicate a location of the compressed data, a second operand to indicate a size of the compressed data, a third operand to indicate a location to which decompressed data by the DE circuitry is to be stored, and a fourth operand to indicate a size of the decompressed data.

15. The one or more computer-readable media of claim 14 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause a compression API to provide the second operand.

16. The one or more computer-readable media of claim 15 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause storage of the compression API in memory.

17. The one or more computer-readable media of claim 14 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause a compression API to compress input data to generate the compressed data.

18. The one or more computer-readable media of claim 17 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the compression API to compress the input data in accordance with a deflate function.

19. The one or more computer-readable media of claim 17 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the compression API to insert the compressed data and the metadata into the data object.

20. The one or more computer-readable media of claim 14 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the DE circuitry to decompress the compressed data in accordance with the metadata.

21. The one or more computer-readable media of claim 14 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the DE circuitry to perform an out-of-order decompression of the plurality of cachelines.

22. The one or more computer-readable media of claim 14 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the DE circuitry to inform a processor core after decompression of each one of one or more cachelines, wherein the one or more cachelines are to store the compressed data and/or the decompressed data.

23. The one or more computer-readable media of claim 22 , further comprising one or more instructions that when executed on the at least one processor configure the at least one processor to perform one or more operations to cause the DE circuitry to inform the processor core via a dedicated signal, modification to a status bit in a register, or modification of a status bit in a cache coupled to the processor core.

24. The one or more computer-readable media of claim 14 , wherein one or more of the first operand and the third operand comprise a virtual memory address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2021
From: GAUR, JAYESH; CHAUHAN, ADARSH; GOPAL, VINODH; SHANBHOGUE, VEDVYAS; SUBRAMONEY, SREENIVAS; FEGHALI, WAJDI
To: INTEL CORPORATION
Reel/Frame 057348/0044 →
Continuity (1)
Related Publication 20220197659A1 · Jun 23, 2022
Cited By (3)
US 12,242,851 US 12,360,768 US 12,417,182