IP Library Granted Patent US 12,153,541
Granted Patent B2
US 12,153,541 · App. 17/674,703 · Granted Nov 26, 2024

Cache structure and utilization

Inventors: Altug Koker (El Dorado Hills, CA); Lakshminarayanan Striramassarma (Folsom, CA); Aravindh Anantaraman (Folsom, CA); Valentin Andrei (San Jose, CA); Abhishek R. Appu (El Dorado Hills, CA); Sean Coleman (Folsom, CA); Varghese George (Folsom, CA); Pattabhiraman K (Bangalore KA, IN); Mike MacPherson (Portland, OR); Subramaniam Maiyuran (Gold River, CA); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Vasanth Ranganathan (El Dorado Hills, CA); Joydeep Ray (Folsom, CA); Jayakrishna P S (Bangalore KA, IN); Prasoonkumar Surti (Folsom, CA)
Assignee: INTEL CORPORATION
G06F15/7839G06F7/5443G06F7/575G06F7/588G06F9/3001G06F9/30014G06F9/30036G06F9/3004G06F9/30043G06F9/30047G06F9/30065G06F9/30079G06F9/3887G06F9/5011G06F9/5077G06F12/0215G06F12/0238G06F12/0246G06F12/0607G06F12/0802G06F12/0804G06F12/0811G06F12/0862G06F12/0866G06F12/0871G06F12/0875G06F12/0882G06F12/0888G06F12/0891G06F12/0893G06F12/0895G06F12/0897G06F12/1009G06F12/128G06F15/8046G06F17/16G06F17/18G06T1/20G06T1/60H03M7/46G06F9/3802G06F9/3818G06F9/3867G06F2212/1008G06F2212/1021G06F2212/1044G06F2212/302G06F2212/401G06F2212/455G06F2212/60G06N3/08G06T15/06
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,153,541
App. No.
17/674,703
Granted
Nov 26, 2024
Kind
B2
Abstract

Embodiments are generally directed to cache structure and utilization. An embodiment of an apparatus includes one or more processors including a graphics processor; a memory for storage of data for processing by the one or more processors; and a cache to cache data from the memory; wherein the apparatus is to provide for dynamic overfetching of cache lines for the cache, including receiving a read request and accessing the cache for the requested data, and upon a miss in the cache, overfetching data from memory or a higher level cache in addition to fetching the requested data, wherein the overfetching of data is based at least in part on a current overfetch boundary, and provides for data is to be prefetched extending to the current overfetch boundary.

Claims (55)

1. A graphics processing unit (GPU) comprising:+

a plurality of groups of cores, each group of cores including:

a plurality of graphics cores;

a plurality of tensor cores; and

a ray tracing core;

a plurality of combined level 1 (L1) cache and shared memory units, each corresponding to a different group of cores of the plurality of groups of cores;

a level 2 (L2) cache to be shared by the plurality of groups of cores;

a plurality of memory controllers to couple the GPU to a memory; and

circuitry to access the L2 cache in response to requests for data units from the plurality of groups of cores, wherein the GPU, in response to a request for a first data unit, is to:

read the first data unit from the L2 cache when the first data unit is stored in the L2 cache or else fetch the first data unit from the memory into the L2 cache; and

overfetch additional data from the memory into the L2 cache, wherein an amount of the additional data is one of a plurality of selectable amounts of additional data, wherein the amount is to be selected based on an access for the first data unit, and wherein the amount of the additional data is to be selected dynamically for an access for the first data unit.

2. The GPU of claim 1 , wherein the circuitry is to overfetch the additional data in response to a miss in the L2 cache for the request for the first data unit.

3. The GPU of claim 2 , wherein the amount is more than needed to address the miss in the L2 cache.

4. The GPU of claim 1 , wherein the amount comprises 256 bytes.

5. The GPU of claim 1 , further comprising:

scheduler/dispatcher circuitry to schedule and dispatch graphics threads for execution on the plurality of groups of cores; and

a plurality of groups of texture units, each corresponding to a different group of cores of the plurality of groups of cores.

6. The GPU of claim 5 , further comprising input/output (I/O) circuitry to couple the GPU to one or more I/O devices.

7. A method, performed by a graphics processing unit (GPU), the method comprising:

processing data with a plurality of groups of cores, including:

processing graphics data with a plurality of graphics cores in each of the groups;

performing matrix operations with a plurality of tensor cores in each of the groups; and

performing ray tracing with a ray tracing core in each of the groups;

storing data in a plurality of combined level 1 (L1) cache and shared memory units, each corresponding to a different group of cores of the plurality of groups of cores;

sharing a level 2 (L2) cache by the plurality of groups of cores;

accessing data from a memory by a plurality of memory controllers of the GPU; and

accessing the L2 cache in response to requests for data units from the plurality of groups of cores, including the GPU, in response to a request for a first data unit:

reading the first data unit from the L2 cache when the first data unit is stored in the L2 cache or else fetching the first data unit from the memory into the L2 cache;

overfetching additional data from the memory into the L2 cache, wherein an amount of the additional data is one of a plurality of selectable amounts of additional data, and wherein the overfetching includes selecting the amount based on an access for the first data unit and;

dynamically selecting the amount of the additional data for an access for the first data unit.

8. The method of claim 7 , wherein said overfetching the additional data is performed in response to a miss in the L2 cache for the request for the first data unit.

9. The method of claim 8 , wherein said overfetching the additional data comprises overfetching the amount of additional data which is more than needed to address the miss in the L2 cache.

10. The method of claim 7 , wherein said overfetching the additional data comprises overfetching 256 bytes.

11. A system comprising:

a memory; and

a graphics processing unit (GPU) coupled with the memory, the GPU comprising:

a plurality of groups of cores, each group of cores including:

a plurality of graphics cores;

a plurality of tensor cores; and

a ray tracing core;

a plurality of combined level 1 (L1) cache and shared memory units, each corresponding to a different group of cores of the plurality of groups of cores;

a level 2 (L2) cache to be shared by the plurality of groups of cores;

a plurality of memory controllers to couple the GPU to the memory; and

circuitry to access the L2 cache in response to requests for data units from the plurality of groups of cores, wherein the GPU, in response to a request for a first data unit, is to:

read the first data unit from the L2 cache when the first data unit is stored in the L2 cache or else fetch the first data unit from the memory into the L2 cache; and

overfetch additional data from the memory into the L2 cache, wherein an amount of the additional data is one of a plurality of selectable amounts of additional data, wherein the amount is to be selected based on an access for the first data unit, and wherein the amount of the additional data is to be selected dynamically for an access for the first data unit.

12. The system of claim 11 , further comprising a data storage device coupled with the GPU and the memory, and wherein the circuitry is to overfetch the additional data in response to a miss in the L2 cache for the request for the first data unit.

13. The system of claim 12 , wherein the amount is more than needed to address the miss in the L2 cache.

14. The system of claim 11 , further comprising a network controller coupled with the memory, and wherein the amount comprises 256 bytes.

15. The system of claim 11 , further comprising a touch sensor coupled with the GPU.

16. The system of claim 11 , further comprising a data storage device coupled with the GPU and the memory.

17. The system of claim 11 , further comprising a network controller coupled with the memory, and wherein the GPU further comprises:

scheduler/dispatcher circuitry to schedule and dispatch graphics threads for execution on the plurality of groups of cores; and

a plurality of groups of texture units, each corresponding to a different group of cores of the plurality of groups of cores.

18. The system of claim 11 , further comprising at least one I/O device, and wherein the GPU further comprises input/output (I/O) circuitry to couple the GPU to the at least one I/O device.

Continuity (5)
Continuation 17429291
Provisional Application 62819337 · Mar 15, 2019
Provisional Application 62819435 · Mar 15, 2019
Provisional Application 62819361 · Mar 15, 2019
Related Publication 20220171710A1 · Jun 2, 2022