IP Library Granted Patent US 10,783,084
Granted Patent B2
US 10,783,084 · App. 16/702,073 · Granted Sep 22, 2020

Sector cache for compression

Inventors: Abhishek R. Appu (El Dorado Hills, CA); Atlug 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 10,783,084
App. No.
16/702,073
Granted
Sep 22, 2020
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 (41)

1. An apparatus comprising:

a general-purpose graphics processing compute block comprising a plurality of execution units;

a shared cache memory communicatively coupled to the plurality of execution units; and

a processing unit to:

structure the shared cache memory into a plurality of sectors, each sector in the plurality of sectors comprising at least a first cache line and a second cache line, wherein the first cache line and the second cache line in each of the plurality of sectors are indicated by a pairing bit field that associates the first cache line and the second cache line with a sector in the plurality of sectors and which is included with cache access operations and in a cache tag field;

receive a cache access request to the shared cache memory, the cache access request comprising the pairing bit field; and

use the pairing bit field to locate the at least a first cache line and a second cache line associated with the cache access request to the shared cache memory.

2. The apparatus of claim 1 , further comprising:

a data compression unit communicatively coupled to the cache memory, wherein the data compression unit operates at a sector-level granularity.

3. The apparatus of claim 1 , wherein the general-purpose graphics processing compute block includes multiple compute clusters, each compute cluster including multiple graphics multiprocessors.

4. The apparatus of claim 1 , further comprising a processor to implement a victim selection algorithm during a cache eviction.

5. The apparatus of claim 4 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are invalid.

6. The apparatus of claim 5 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are valid and include at least one invalid cacheline.

7. The apparatus of claim 5 , wherein the victim selection algorithm is to assign a low priority to cache sectors which are valid and include at least all invalid cachelines.

8. A method comprising:

structuring a shared cache memory communicatively coupled to the plurality of execution units of a general purpose graphics compute block into a plurality of sectors, each sector in the plurality of sectors comprising at least a first cache line and a second cache line, wherein the first cache line and the second cache line in each of the plurality of sectors are indicated by a pairing bit field that associates the first cache line and the second cache line with a sector in the plurality of sectors and which is included with cache access operations and in a cache tag field;

receiving, in a processing unit, a cache access request to the shared cache memory, the cache access request comprising the pairing bit field; and

using, in the processing unit, the pairing bit field to locate the at least a first cache line and a second cache line associated with the cache access request to the shared cache memory.

9. The method of claim 8 , further comprising:

compressing the data in the shared cache memory at a sector-level granularity.

10. The method of claim 9 , further comprising implementing a process to assign the one or more extra threads to one or more streaming multiprocessors which are assigned to a different context.

11. The method of claim 10 , wherein the general-purpose graphics processing compute block includes multiple compute clusters, each compute cluster including multiple graphics multiprocessors.

12. The method of claim 11 , further comprising:

implementing a victim selection algorithm during a cache eviction.

13. The method of claim 12 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are invalid.

14. The method of claim 12 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are valid and include at least one invalid cacheline.

15. The method of claim 12 , wherein the victim selection algorithm is to assign a low priority to cache sectors which are valid and include at least all invalid cachelines.

16. One or more non-transitory computer-readable medium comprising one or more instructions that when executed on a processing unit of a general purpose graphics processing, configure the processing unit to perform one or more operations to:

structure a shared cache memory communicatively coupled to a plurality of execution units of a general purpose graphics compute block into a plurality of sectors, each sector in the plurality of sectors comprising at least a first cache line and a second cache line, wherein the first cache line and the second cache line in each of the plurality of sectors are indicated by a pairing bit field that associates the first cache line and the second cache line with a sector in the plurality of sectors and which is included with cache access operations and in a cache tag field;

receive, in a processing unit, a cache access request to the shared cache memory, the cache access request comprising the pairing bit field; and

use, in the processing unit, the pairing bit field to locate the at least a first cache line and a second cache line associated with the cache access request to the shared cache memory.

17. The one or more non-transitory computer-readable medium of claim 16 , comprising one or more instructions that when executed on the at least one processor configure the at least one processor to:

compress the data in the shared cache memory at a sector-level granularity.

18. The one or more non-transitory computer-readable medium of claim 16 , comprising one or more instructions that when executed on the at least one processor configure the at least one processor to:

implement a process to assign the one or more extra threads to one or more streaming multiprocessors which are assigned to a different context.

19. The one or more non-transitory computer-readable medium of claim 16 , wherein the general-purpose graphics processing compute block includes multiple compute clusters, each compute cluster including multiple graphics multiprocessors.

20. The one or more non-transitory computer-readable medium of claim 19 , further comprising:

implementing a victim selection algorithm during a cache eviction.

21. The one or more non-transitory computer-readable medium of claim 20 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are invalid.

22. The one or more non-transitory computer-readable medium of claim 20 , wherein the victim selection algorithm is to assign a high priority to cache sectors which are valid and include at least one invalid cacheline.

23. The one or more non-transitory computer-readable medium of claim 20 , wherein the victim selection algorithm is to assign a low priority to cache sectors which are valid and include at least all invalid cachelines.

Continuity (2)
Continuation 15477058 · Apr 1, 2017
Related Publication 20200183849A1 · Jun 11, 2020