US2017109286A1PendingUtilityA1

High performance interconnect coherence protocol

Assignee: INTEL CORPPriority: Oct 22, 2012Filed: Dec 29, 2016Published: Apr 20, 2017
Est. expiryOct 22, 2032(~6.2 yrs left)· nominal 20-yr term from priority
H04L 49/15G06F 2212/2542G06F 12/0833G06F 13/4022G06F 13/22H04L 9/0662G06F 2212/622G06F 12/0806H04L 12/4641G06F 12/0813H04L 45/74G06F 13/4273G06F 8/71G06F 13/4068G06F 13/4221G06F 8/73G06F 12/0808G06F 13/4291G06F 12/0831G06F 9/30145G06F 12/0815G06F 9/466G06F 9/44505G06F 2212/1016G06F 13/4286G06F 1/3287G06F 13/4282G06F 8/77G06F 11/1004G06F 13/1689G06F 2212/621H04L 12/56Y02D30/00Y02D10/00G06F 13/1657
63
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A request is received that is to reference a first agent and to request a particular line of memory to be cached in an exclusive state. A snoop request is sent intended for one or more other agents. A snoop response is received that is to reference a second agent, the snoop response to include a writeback to memory of a modified cache line that is to correspond to the particular line of memory. A complete is sent to be addressed to the first agent, wherein the complete is to include data of the particular line of memory based on the writeback.

Claims

exact text as granted — not AI-modified
1 - 73 . (canceled) 
     
     
         74 . An apparatus comprising:
 a node comprising at least one processor, a cache, and a first coherence agent to:
 receive a snoop request, wherein the snoop request is to be received from a home agent, the snoop request comprises a snoop invalidate request, the snoop request is to correspond to a request sent to the home agent by a second coherence agent, and the snoop request comprises an address field encoded with a node identifier (NID) of the home agent; 
 generate a snoop response, wherein the snoop response comprises a command field, a destination NID field, a home transaction identifier (TID) field, and data, wherein the command field is to be encoded to indicate that the snoop response comprises an implicit writeback, the destination NID field is encoded with the NID of the home agent, the home TID field is encoded to identify a resource allocated by the home agent to process the snoop request, and the data is to be written back to memory; 
 send the snoop response to the home agent; and 
 change a state of the cache based on the snoop response. 
   
     
     
         75 . The apparatus of  claim 74 , wherein the state of the cache is one of a set of defined states. 
     
     
         76 . The apparatus of  claim 75 , wherein the set of defined states comprise a modified state, an exclusive state, a shared state, and an invalid state. 
     
     
         77 . The apparatus of  claim 74 , wherein the state of cache is changed to an invalid state. 
     
     
         78 . The apparatus of  claim 77 , wherein the state of the cache is changed from a modified state to the invalid state. 
     
     
         79 . The apparatus of  claim 78 , wherein the snoop response is to comprise the implicit writeback based on the modified state. 
     
     
         80 . The apparatus of  claim 74 , wherein the snoop invalidate request is based on an exclusive directory state associated with the home agent. 
     
     
         81 . The apparatus of  claim 74 , wherein the data is written back to memory based on the implicit writeback. 
     
     
         82 . The apparatus of  claim 81 , wherein the data is flushed from the cache concurrently with the writing back of the data to memory. 
     
     
         83 . A method comprising:
 receiving at a home agent of a memory, a read request from a first caching agent, wherein the read request corresponds to a particular line of the memory;   sending a snoop request to a second caching agent responsive to the read request, wherein the snoop request comprises a command field, an address field, a destination node identifier (NID) field, a requesting (NID) field, a requesting transaction identifier (TID) field, and a home TID field, wherein the command field of the snoop request is encoded to indicate that the snoop request comprises a snoop invalidate and the home TID field of the snoop request identifies a resource allocated by the home agent to process the snoop request;   receiving a snoop response from the second caching agent responsive to the snoop request, wherein the snoop response comprises a command field, a destination NID field, a home TID field, and data from a cache corresponding to the second caching agent, wherein the command field of the snoop response is encoded to indicate that the snoop response comprises an implicit writeback;   writing the data to the particular line of the memory;   changing a state of the particular line of the memory to an invalid state based on writing the data to the particular line;   sending a completion to the first caching agent responsive to the read request; and   changing the state of the particular line of the memory to an exclusive state based on the completion.   
     
     
         84 . The method of  claim 83 , wherein the state of the particular line of memory is changed from an exclusive state to the invalid state. 
     
     
         85 . The method of  claim 83 , wherein the read request comprises a request to cause the first caching agent to obtain ownership of the particular line of the memory in an exclusive state. 
     
     
         86 . The method of  claim 85 , wherein the completion comprises no data. 
     
     
         87 . The method of  claim 83 , wherein the completion comprises the data. 
     
     
         88 . The method of  claim 83 , wherein the read request comprises a read invalidate (RdInv) request. 
     
     
         89 . The method of  claim 88 , wherein the read invalidate request corresponds to an unknown directory state corresponding to the particular line of the memory. 
     
     
         90 . The method of  claim 88 , wherein the read invalidate request indicates that an exclusive copy of the particular line is requested. 
     
     
         91 . At least one non-transitory machine accessible storage medium having instructions stored thereon, the instructions when executed on a machine, cause the machine to:
 receive a snoop request, wherein the snoop request is to be received from a home agent, the snoop request comprises a snoop invalidate request, the snoop request is to correspond to a request sent to the home agent by a second coherence agent, and the snoop request comprises an address field encoded with a node identifier (NID) of the home agent;   generate a snoop response, wherein the snoop response comprises a command field, a destination NID field, a home transaction identifier (TID) field, and data, wherein the command field is to be encoded to indicate that the snoop response comprises an implicit writeback, the destination NID field is encoded with the NID of the home agent, the home TID field is encoded to identify a resource allocated by the home agent to process the snoop request, and the data is to be written back to memory;   send the snoop response to the home agent; and   change a state of the cache based on the snoop response.   
     
     
         92 . At least one non-transitory machine accessible storage medium having instructions stored thereon, the instructions when executed on a machine, cause the machine to:
 send a snoop request to a second caching agent responsive to the read request, wherein the snoop request comprises a command field, an address field, a destination node identifier (NID) field, a requesting (NID) field, a requesting transaction identifier (TID) field, and a home TID field, wherein the command field of the snoop request is encoded to indicate that the snoop request comprises a snoop invalidate and the home TID field of the snoop request identifies a resource allocated by the home agent to process the snoop request;   receive a snoop response from the second caching agent responsive to the snoop request, wherein the snoop response comprises a command field, a destination NID field, a home TID field, and data from a cache corresponding to the second caching agent, wherein the command field of the snoop response is encoded to indicate that the snoop response comprises an implicit writeback;   write the data to the particular line of the memory;   change a state of the particular line of the memory to an invalid state based on writing the data to the particular line;   send a completion to the first caching agent responsive to the read request; and   change the state of the particular line of the memory to an exclusive state based on the completion.   
     
     
         93 . A system comprising:
 a first node comprising a first processor, a first cache, and a first caching agent;   a second node comprising a second processor, a second cache, and a second caching agent; and   a third node comprising a third processor, a memory, and a third caching agent, wherein the third caching agent comprises protocol logic to:
 receive a read request from the first caching agent for data from a particular line of the memory; 
 send a snoop request to the second caching agent responsive to the read request, wherein the snoop request comprises a command field encoded to indicate that the snoop request comprises a snoop invalidate; 
 receive a snoop response from the second caching agent responsive to the snoop request, wherein the snoop response comprises data from the second cache and a command field encoded to indicate that the snoop response comprises an implicit writeback; 
 write the data to the particular line of the memory responsive to the snoop response; 
 change a directory state of the particular line to an invalid state based on the implicit writeback; 
 send a completion to the first caching agent responsive to the read request, wherein the completion comprises the data; and 
 change the directory state of the particular line to an exclusive state based on sending the completion. 
   
     
     
         94 . The system of  claim 93 , wherein the third caching agent comprises a home agent. 
     
     
         95 . The system of  claim 93 , wherein the first, second, and third nodes are interconnected by a plurality of links in the system. 
     
     
         96 . The system of  claim 95 , wherein the plurality of links are according to a cache coherent multilayer interconnect protocol. 
     
     
         97 . A system comprising:
 means to receive a snoop request, wherein the snoop request is to be received from a home agent, the snoop request comprises a snoop invalidate request, the snoop request is to correspond to a request sent to the home agent by a second coherence agent, and the snoop request comprises an address field encoded with a node identifier (NID) of the home agent;   means to generate a snoop response, wherein the snoop response comprises a command field, a destination NID field, a home transaction identifier (TID) field, and data, wherein the command field is to be encoded to indicate that the snoop response comprises an implicit writeback, the destination NID field is encoded with the NID of the home agent, the home TID field is encoded to identify a resource allocated by the home agent to process the snoop request, and the data is to be written back to memory;   means to send the snoop response to the home agent; and   means to change a state of the cache based on the snoop response.

Join the waitlist — get patent alerts

Track US2017109286A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.