US2017109286A1PendingUtilityA1
High performance interconnect coherence protocol
Est. expiryOct 22, 2032(~6.2 yrs left)· nominal 20-yr term from priority
Inventors:Robert G. BlankenshipBahaa FahimRobert BeersYen-Cheng LiuVedaraman GeethaHerbert HumJeff Willey
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-modified1 - 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.