IP Library › Granted Patent US 11,899,614
Granted Patent B2
US 11,899,614 · App. 17/849,201 · Granted Feb 13, 2024

Instruction based control of memory attributes

Inventors: Joydeep Ray (Folsom, CA); Altug Koker (El Dorado Hills, CA); Varghese George (Folsom, CA); Mike Macpherson (Portland, OR); Aravindh Anantaraman (Folsom, CA); Abhishek R. Appu (El Dorado Hills, CA); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Nicolas Galoppo von Borries (Portland, OR); Ben J. Ashbaugh (Folsom, CA)
Assignee: Intel Corporation
G06F15/7839G06F7/5443G06F7/575G06F7/588G06F9/3001G06F9/3004G06F9/30014G06F9/30036G06F9/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 11,899,614
App. No.
17/849,201
Granted
Feb 13, 2024
Kind
B2
Abstract

Embodiments described herein provide techniques to facilitate instruction-based control of memory attributes. One embodiment provides a graphics processor comprising a processing resource, a memory device, a cache coupled with the processing resources and the memory, and circuitry to process a memory access message received from the processing resource. The memory access message enables access to data of the memory device. To process the memory access message, the circuitry is configured to determine one or more cache attributes that indicate whether the data should be read from or stored the cache. The cache attributes may be provided by the memory access message or stored in state data associated with the data to be accessed by the access message.

Claims (37)

1. A graphics processor comprising:

a processing resource including a graphics engine;

a memory device;

a first cache coupled with the processing resource and the memory device; and

circuitry to process a memory access message received from the processing resource, the memory access message to access data of the memory device on behalf of the graphics engine, wherein to process the memory access message, the circuitry is configured to:

determine whether the memory access message includes a first cache attribute, the first cache attribute to indicate whether the data is cacheable within the first cache;

determine whether state information associated with the data includes a second cache attribute, the second cache attribute to indicate whether the data is cacheable within the first cache;

arbitrate between the first cache attribute and the second cache attribute according to presence or absence of the first cache attribute and the second cache attribute and respective priorities associated with the first cache attribute and the second cache attribute; and

transmit a memory access request to the first cache, the memory access request including arbitrated cache attributes.

2. The graphics processor as in claim 1 , wherein the state information associated with the data includes a surface state for a stateful memory allocation associated with the data.

3. The graphics processor as in claim 1 , wherein the state information associated with the data includes a non-pipelined state for a stateless memory allocation associated with the data.

4. The graphics processor as in claim 1 , wherein each of the first cache attribute and the second cache attribute encode a load message behavior and a store message behavior.

5. The graphics processor as in claim 1 , wherein the second cache attribute is to specify a default cache attribute.

6. The graphics processor as in claim 5 , wherein the first cache attribute is to specify an override of the default cache attribute.

7. The graphics processor as in claim 1 , wherein the memory access message is to cause a write of the data to the memory device.

8. The graphics processor as in claim 7 , wherein the circuitry to process the memory access message includes a fence unit to synchronize memory operations according to a memory fence operation.

9. The graphics processor as in claim 8 , wherein the fence unit is to perform the memory fence operation after the write of the data to the memory device in response to a bit set within a message descriptor of the memory access message.

10. The graphics processor as in claim 1 , wherein the first cache is to submit a fill request to a memory fabric of the graphics processor in response to a cache miss for data that is cacheable in the first cache.

11. The graphics processor as in claim 10 , wherein the first cache is to determine a value of a third cache attribute, the third cache attribute to indicate whether the data is cacheable within a third cache.

12. The graphics processor as in claim 11 , wherein the first cache is to submit the fill request to the third cache via the memory fabric in response to a determination that the data is cacheable within the third cache.

13. The graphics processor as in claim 11 , wherein the first cache is to submit the fill request to the memory device via the memory fabric in response to a determination that the data is uncacheable within the third cache.

14. The graphics processor as in claim 13 , wherein a second cache associated with the memory fabric is configured to respond to the fill request in response to determination of a cache hit on the second cache.

15. The graphics processor as in claim 14 , wherein the first cache is a virtually indexed cache and the third cache is a physically indexed cache.

16. The graphics processor as in claim 15 , wherein the third cache attribute is to be read from a page table entry for a page associated with the data.

17. The graphics processor as in claim 16 , wherein the third cache attribute is to be read from a table within the third cache based on an index included within in the fill request.

18. A method comprising:

determining whether a memory access message processed by circuitry of a graphics processor includes a first cache attribute, the memory access message to access data of a memory device of the graphics processor on behalf of a graphics engine of the graphics processor and the first cache attribute to indicate whether the data is cacheable within a first cache of the graphics processor;

determining whether state information associated with the data includes a second cache attribute that indicates whether the data is cacheable within the first cache;

arbitrating between the first cache attribute and the second cache attribute according to presence or absence of the first cache attribute and the second cache attribute and respective priorities associated with the first cache attribute and the second cache attribute; and

transmitting a memory access request to the first cache, the memory access request including arbitrated cache attributes.

19. The method of claim 18 , further comprising:

determining a value of a third cache attribute, the third cache attribute to indicate whether the data is cacheable within a third cache; and

submitting, via the first cache, a fill request to a memory fabric of the graphics processor in response to a cache miss for data that is cacheable in the first cache, wherein submitting the fill request to the memory fabric includes:

submitting the fill request to a third cache via the memory fabric in response to a determination, via the third cache attribute, that the data is cacheable within the third cache; and

submitting the fill request to the memory device via the memory fabric in response to a determination that the data is uncacheable within the third cache.

20. The method of claim 19 , further comprising:

in response to submitting a fill request to the memory fabric, responding to the fill request via a second cache associated with the memory fabric in response to determination of a cache hit on the second cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2022
From: RAY, JOYDEEP; KOKER, ALTUG; GEORGE, VARGHESE; MACPHERSON, MIKE; ANANTARAMAN, ARAVINDH; APPU, ABHISHEK R.; OULD-AHMED-VALL, ELMOUSTAPHA; GALOPPO VON BORRIES, NICOLAS; ASHBAUGH, BEN
To: INTEL CORPORATION
Reel/Frame 061288/0285 →
Continuity (5)
Continuation 17428530 · Aug 4, 2021
Provisional Application 62819361 · Mar 15, 2019
Provisional Application 62819337 · Mar 15, 2019
Provisional Application 62819435 · Mar 15, 2019
Related Publication 20230014565A1 · Jan 19, 2023
Cited By (4)
US 12,554,674 US 12,561,277 US 12,699,899 US 12,737,317