Patent ID: 11947457
Assignee: APPLE INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 8:
9. A method comprising:
tracking, in directory in a memory controller coupled to one or more memory devices, which of a plurality of coherent agents are caching copies of a plurality of cache blocks stored in the one or more memory devices and states of the cached copies in the plurality of coherent agents, wherein a given agent of the plurality of coherent agents comprises one or more caches to cache memory data and wherein the directory supports at least the following states: owned, primary shared, and secondary shared;
receiving a first request for a first cache block in the memory controller from a first agent of the plurality of coherent agents; and
based on the first request:
reading, by the memory controller, an entry corresponding to the first cache block from the directory, and
in response to a second coherent agent of the plurality of coherent agents having a cached copy of the first cache block in a primary shared state, issuing a first snoop to the second agent of the plurality of coherent agents, wherein
the first snoop indicates that the second agent is to transmit the first cache block to the first agent;

receiving a second request for a second cache block in the memory controller from the first agent; and
based on the second request:
reading, by the memory controller, an entry corresponding to the second cache block from the directory, and
in response to none of the plurality of coherent agents having a cached copy of the first cache block in the primary shared state, issuing a second snoop to a coherent agent of the plurality of coherent agents that has a cached copy of the second cache block in a secondary shared state, wherein the second snoop indicates to transmit the second cache block to the first agent.