IP Library › Granted Patent US 11,314,654
Granted Patent B2
US 11,314,654 · App. 16/952,817 · Granted Apr 26, 2022

Cache optimization for graphics systems

Inventors: Altug Koker (El Dorado Hills, CA); Balaji Vembu (Folsom, CA); Joydeep Ray (Folsom, CA); Abhishek R. Appu (El Dorado Hills, CA)
Assignee: Intel Corporation
G06F12/0895G06F12/023G06F12/126G06T1/60G06F2212/1044G06F2212/1048G06F2212/455G06F2212/604G06F2212/608
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,314,654
App. No.
16/952,817
Granted
Apr 26, 2022
Kind
B2
Abstract

A mechanism is described for facilitating optimization of cache associated with graphics processors at computing devices. A method of embodiments, as described herein, includes introducing coloring bits to contents of a cache associated with a processor including a graphics processor, wherein the coloring bits to represent a signal identifying one or more caches available for use, while avoiding explicit invalidations and flushes.

Claims (36)

1. An apparatus comprising:

one or more processors including a graphics processor; and

one or more caches associated with the graphics processor;

wherein the one or more processors are to:

define cache coloring bits to color contents of each cache of the one or more caches, the cache coloring bits for a cache to provide a signal whether the cache is available for use;

determine that data in a first cache of the one or more caches is not valid; and

in response to the determination, increment one or more cache coloring bits of the first cache, wherein older cache coloring bits provide a signal that there is invalid data or a miss in the first cache.

2. The apparatus of claim 1 , wherein the one or more cache coloring bits for a cache are attached as a part of a tag of the cache.

3. The apparatus of claim 1 , wherein the one or more processors are further to facilitate replacement or reallocation of cache locations in the first cache based at least in part on the one or more cache coloring bits, the one or more cache coloring bits for a cache representing a signal whether cache locations are available for use.

4. The apparatus of claim 1 , wherein the first cache is a read-only cache, and wherein the older cache coloring bits are deemed to indicate invalid data for the first cache.

5. The apparatus of claim 4 , wherein the one or more processors are to utilize a first set of one or more counters to track a presence of allocations of cache coloring bits.

6. The apparatus of claim 5 , wherein the one or more processors are further to ensure that entries of a cache related to a set of cache coloring bits are reallocated before the set of cache coloring bits are reallocated based at least in part on the first set of one or more counters.

7. The apparatus of claim 1 , wherein the first cache is a read-write cache, and wherein the older cache coloring bits are deemed to be misses and to be victimized first for reallocation for the first cache.

8. The apparatus of claim 7 , wherein the one or more processors are to utilize a second set of one or more counters to track a number of entries of the first cache, and wherein the one or more processors are further to allocate priority for contents waiting to be written to the first cache based at least in part on the second set of one or more counters.

9. The apparatus of claim 1 , wherein the graphics processor is co-located with an application processor on a common semiconductor package.

10. A method comprising:

defining cache coloring bits to color contents of one or more caches associated with a graphics processor, the cache coloring bits for a cache to provide a signal whether the cache is available for use;

determining that data in a first cache of the one or more caches is not valid; and

in response to the determination, incrementing one or more cache coloring bits of the first cache, wherein older cache coloring bits provide a signal that there is invalid data or a miss in the first cache.

11. The method of claim 10 , wherein the one or more cache coloring bits for a cache are attached as a part of a tag of the cache.

12. The method of claim 10 , further comprising replacing or reallocating cache locations in the first cache based at least in part on the one or more cache coloring bits, the one or more cache coloring bits for a cache representing a signal whether cache locations are available for use.

13. The method of claim 10 , wherein the first cache is a read-only cache, and wherein the older cache coloring bits are deemed to indicate invalid data for the first cache.

14. The method of claim 13 , further comprising:

tracking a presence of allocations of cache coloring bits utilizing a first set of one or more counters; and

ensuring that related entries are reallocated before cache coloring bits are reallocated based at least in part on the first set of one or more counters.

15. The method of claim 10 , wherein the first cache is a read-write cache, and the older cache coloring bits are deemed to be misses and are to be victimized first for reallocation for the first cache.

16. The method of claim 15 , further comprising:

tracking a number of entries of the first cache utilizing a second set of one or more counters; and

allocating priority for contents waiting to be written to the first cache based at least in part on the second set of one or more counters.

17. At least one non-transitory machine-readable medium comprising instructions that when executed by a computing device, cause the computing device to perform operations comprising:

defining cache coloring bits to color contents of one or more caches associated with a graphics processor, the cache coloring bits for a cache to provide a signal whether the cache is available for use, wherein the one or more cache coloring bits for a cache are attached as a part of a tag of the cache;

determining that data in a first cache of the one or more caches is not valid;

in response to the determination, incrementing one or more cache coloring bits of the first cache, wherein older cache coloring bits provide a signal that there is invalid data or a miss in the first cache; and

replacing or reallocating cache locations in the first cache based at least in part on the one or more cache coloring bits, the one or more cache coloring bits for a cache representing a signal whether cache locations are available for use.

18. The machine-readable medium of claim 17 , wherein the first cache is a read-only cache, and wherein the older cache coloring bits are deemed to indicate invalid data for the first cache.

19. The machine-readable medium of claim 17 , wherein the first cache is a read-write cache, and the older cache coloring bits are deemed to be misses and are to be victimized first for reallocation for the first cache.

Continuity (3)
Continuation 16681600 · Nov 12, 2019
Continuation 15493757 · Apr 21, 2017
Related Publication 20210216467A1 · Jul 15, 2021