IP Library Granted Patent US 11,586,548
Granted Patent B2
US 11,586,548 · App. 17/191,473 · Granted Feb 21, 2023

Sector cache for compression

Inventors: Abhishek R. Appu (El Dorado Hills, CA); Altug Koker (El Dorado Hills, CA); Joydeep Ray (Folsom, CA); David Puffer (Tempe, AZ); Prasoonkumar Surti (Folsom, CA); Lakshminarayanan Striramassarma (El Dorado Hills, CA); Vasanth Ranganathan (El Dorado Hills, CA); Kiran C. Veernapu (Bangalore, IN); Balaji Vembu (Folsom, CA); Pattabhiraman K (Bangalore, IN)
Assignee: Intel Corporation
G06F12/0877G06F12/0802G06F12/0806G06F12/0848G06F12/0855G06F12/0868G06F12/126G06T1/60G06F12/0893
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,586,548
App. No.
17/191,473
Granted
Feb 21, 2023
Kind
B2
Abstract

In an example, an apparatus comprises a plurality of execution units, and a cache memory communicatively coupled to the plurality of execution units, wherein the cache memory is structured into a plurality of sectors, wherein each sector in the plurality of sectors comprises at least two cache lines. Other embodiments are also disclosed and claimed.

Claims (51)

1. A general-purpose graphics processor comprising:

a memory interface coupled with a memory bus;

a cache memory within the general-purpose graphics processor and coupled with the memory interface;

circuitry coupled with the cache memory and the memory interface, the circuitry to losslessly compress data at cache sector granularity, wherein the cache sector granularity is a sub-page granularity, and the circuitry is configured to compress multiple consecutive cache lines of the cache memory; and

a processing resource coupled with the memory interface and the cache memory, the processing resource to perform a general-purpose compute operation;

wherein the circuitry is to:

determine whether data associated with a sector of the cache memory is to be losslessly compressed,

after the determination that the data associated with the sector is to be losslessly compressed, losslessly compress the multiple consecutive cache lines associated with the sector before a write of compressed data associated with the sector via the memory interface to the memory bus,

in association with a read of the compressed data associated with the sector via the memory interface, decompress the compressed data to generate decompressed data, and

provide the decompressed data to the processing resource.

2. The general-purpose graphics processor as in claim 1 , wherein the circuitry is further configured to write the compressed data to a memory address associated with a memory allocation having a size of an uncompressed version of the data.

3. The general-purpose graphics processor as in claim 1 , wherein the circuitry is additionally configured to decompress data associated with the cache memory at multiple cache line granularity.

4. The general-purpose graphics processor as in claim 3 , wherein the processing resource is configured to perform the general-purpose compute operation on the decompressed data.

5. The general-purpose graphics processor as in claim 4 , wherein the circuitry is additionally configured to decompress a partial cache line in association with a read of data associated with the partial cache line.

6. The general-purpose graphics processor as in claim 4 , wherein the processing resource is to configured to update data associated with the multiple cache lines via the general-purpose compute operation and the circuitry, after the update, is to write an uncompressed version of updated data to the memory bus via the memory interface in response to a determination that the updated data associated with the multiple cache lines is not losslessly compressible to a threshold compression ratio.

7. The general-purpose graphics processor as in claim 6 , wherein the data associated with the multiple cache lines is associated with a tile of data in a memory accessible via the memory bus.

8. A method comprising:

on a general-purpose graphics processor having a cache memory coupled with a memory interface:

performing a general-purpose compute operation via a processing resource coupled with the memory interface and the cache memory;

during the general-purpose compute operation, determining whether data associated with a sector of the cache memory is to be losslessly compressed via circuitry coupled with the cache memory and the memory interface;

after the determination that the data is to be losslessly compressed, losslessly compressing the data at cache sector granularity via the circuitry before a write of compressed data to a memory bus via the memory interface, wherein the cache sector granularity is a sub-page granularity and the circuitry is configured to compress multiple consecutive cache lines of the cache memory;

in association with a read of the compressed data associated with the sector via the memory interface, decompressing the compressed data via the circuitry, to generate decompressed data; and

providing the decompressed data to the processing resource.

9. The method as in claim 8 , further comprising writing, via the circuitry, the compressed data to a memory address associated with a memory allocation having a size of an uncompressed version of the data.

10. The method as in claim 8 , further comprising decompressing the data at multiple cache line granularity.

11. The method as in claim 10 , further comprising:

performing the general-purpose compute operation on the decompressed data.

12. The method as in claim 11 , further comprising decompressing a partial cache line in association with a read of data associated with the partial cache line.

13. The method as in claim 11 , further comprising:

updating data associated with the multiple cache lines via the general-purpose compute operation; and

after updating the data, writing an uncompressed version of the updated data to the memory bus via the memory interface in response a determination that the updated data associated with the multiple cache lines is not losslessly compressible to a threshold compression ratio.

14. A data processing system comprising:

a memory device; and

a general-purpose graphics processor including:

a memory interface coupled with the memory device;

a cache memory within the general-purpose graphics processor and coupled with the memory interface;

circuitry coupled with the cache memory and the memory interface, the circuitry to losslessly compress data at cache sector granularity, wherein the cache sector granularity is a sub-page granularity, and the circuitry is configured to compress multiple consecutive cache lines of the cache memory; and

a processing resource coupled with the memory interface and the cache memory, the processing resource to perform a general-purpose compute operation;

wherein the circuitry is to:

determine whether data associated with a sector of the cache memory is to be losslessly compressed,

after the determination that the data associated with the sector is to be losslessly compressed, losslessly compress the multiple consecutive cache lines associated with the sector before a write of compressed data associated with the sector via the memory interface to the memory device,

in association with a read of the compressed data associated with the sector via the memory interface, decompress the compressed data to generate decompressed data, and

provide the decompressed data to the processing resource.

15. The data processing system as in claim 14 , wherein the circuitry is further configured to write the compressed data to a memory address associated with a memory allocation having a size of an uncompressed version of the data.

16. The data processing system as in claim 14 , wherein the circuitry is additionally configured to decompress data associated with the cache memory at multiple cache line granularity.

17. The data processing system as in claim 16 , wherein the circuitry is configured to:

in association with a read of the data associated with the multiple cache lines via the memory interface, decompress the data; and

provide the decompressed data to the processing resource.

18. The data processing system as in claim 17 , wherein the circuitry is additionally configured to decompress a partial cache line in association with a read of data associated with the partial cache line.

19. The data processing system as in claim 17 , wherein the processing resource is to configured to update data associated with the multiple cache lines via the general-purpose compute operation and the circuitry, after the update, is to write an uncompressed version of updated data to the memory device via the memory interface in response to a determination that the updated data associated with the multiple cache lines is not losslessly compressible to a threshold compression ratio.

20. The data processing system as in claim 19 , wherein the data associated with the multiple cache lines is associated with a tile of data in a memory accessible via the memory device.

Continuity (4)
Continuation 17026264 · Sep 20, 2020
Continuation 16702073 · Dec 3, 2019
Continuation 15477058 · Apr 1, 2017
Related Publication 20210191872A1 · Jun 24, 2021