Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
235 words
1 . A method comprising: programming a plurality of entries of a cluster-to-caching agent (cluster-to-CA) map table in a data processing network having a plurality of caching agents, each entry identifying one or more caching agents in a caching agent cluster; storing, in a snoop filter cache of the data processing network, coherency information associated with data moved between one or more caches of the plurality of caching agents and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster in the cluster-to-CA map table; responsive to receiving a message from a caching agent of the plurality of caching agents, the message designating an address in the data storage device: accessing a presence vector in the snoop filter cache identified by a first address tag corresponding to the designated address in the data storage device; identifying, from the accessed presence vector, one or more caching agent clusters; determining, based on the cluster-to-CA map table, a set of target caching agents in the identified one or more caching agent clusters; and sending snoop messages to the set of target caching agents to maintain data coherency in the data processing network for data associated with the data storage device.
Claim 2
Dependent Claim
235 words
1 . A method comprising: programming a plurality of entries of a cluster-to-caching agent (cluster-to-CA) map table in a data processing network having a plurality of caching agents, each entry identifying one or more caching agents in a caching agent cluster; storing, in a snoop filter cache of the data processing network, coherency information associated with data moved between one or more caches of the plurality of caching agents and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster in the cluster-to-CA map table; responsive to receiving a message from a caching agent of the plurality of caching agents, the message designating an address in the data storage device: accessing a presence vector in the snoop filter cache identified by a first address tag corresponding to the designated address in the data storage device; identifying, from the accessed presence vector, one or more caching agent clusters; determining, based on the cluster-to-CA map table, a set of target caching agents in the identified one or more caching agent clusters; and sending snoop messages to the set of target caching agents to maintain data coherency in the data processing network for data associated with the data storage device.
Claim 3
Dependent Claim
48 words
2 . The method of claim 1 , where one or more of the caching agent clusters in the cluster-to-CA map table consists of a single caching agent and one or more of the caching agent clusters in the cluster-to-CA map table include more than one caching agent.
Claim 4
Dependent Claim
46 words
3 . The method of claim 1 , where a bit position in the presence vector is associated with a plurality of caching agent clusters and each of the plurality of caching agent clusters is associated with a designated storage region of the data storage device.
Claim 5
Dependent Claim
48 words
4 . The method of claim 1 , where said determining the set of target caching agents is further based on the address in the data storage device and the set of target caching agents includes only caching agents with access to the address in the data storage.
Claim 6
Dependent Claim
78 words
5 . The method of claim 1 , further comprising programming a cluster-to-CA map table for each of a plurality of storage regions of the data storage device, where said determining the set of target caching agents includes: determining a storage region of the data storage device that contains the designated address; and mapping the one or more caching agent clusters to the set of target caching agents using the cluster-to-CA map table for the determined storage region.
Claim 7
Dependent Claim
48 words
6 . The method of claim 5 , where a caching agent with access to a first storage region of the plurality of storage regions is contained in a caching agent cluster consisting of a single caching agent in a cluster-to-CA map table for the first storage region.
Claim 8
Dependent Claim
167 words
7 . A method comprising: storing, in a snoop filter cache of a data processing network, coherency information associated with data moved between one or more caches of a plurality of caching agents of the data processing network and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster containing one or more caching agents; responsive to a change in presence, at a first caching agent of the plurality of caching agents, of data associated with an address: identifying, based on the address, a line of the snoop filter cache; identifying a caching agent cluster that contains the first caching agent; and updating a bit in a presence vector of the line associated with the identified caching agent cluster in accordance with the change in presence of the data.
Claim 9
Dependent Claim
167 words
7 . A method comprising: storing, in a snoop filter cache of a data processing network, coherency information associated with data moved between one or more caches of a plurality of caching agents of the data processing network and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster containing one or more caching agents; responsive to a change in presence, at a first caching agent of the plurality of caching agents, of data associated with an address: identifying, based on the address, a line of the snoop filter cache; identifying a caching agent cluster that contains the first caching agent; and updating a bit in a presence vector of the line associated with the identified caching agent cluster in accordance with the change in presence of the data.
Claim 10
Dependent Claim
55 words
8 . The method of claim 7 , further comprising: programming an caching agent-to-cluster (CA-to-cluster) map table identifying, for each caching agent of the plurality of caching agents, a caching agent cluster containing that caching agent, where said identifying the caching agent cluster that contains the first caching agent includes accessing the CA-to-cluster map table.
Claim 11
Dependent Claim
291 words
9 . An apparatus comprising: a coherency controller configured to access a data storage device; a plurality of caching agents of a data processing network, each caching agent having at least one cache and configured to access the data storage device via the coherency controller; a snoop filter cache accessible by the coherency controller, the coherency controller configured to maintain coherency information in the snoop filter cache for data moved between one or more caches of a plurality of caching agents of data processing network and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster in a cluster-to-CA map table; a memory, accessible by the coherency controller and programmed to store the cluster-to-CA map table, an entry in the cluster-to-CA map table identifying one or more caching agents in a caching agent cluster; where the coherency controller is further configured to: receive a message from a caching agent of the plurality of caching agents, the message associated with an address in the data storage device; access a presence vector in the snoop filter cache identified by a first address tag corresponding to the designated address in the data storage device; identify, from the accessed presence vector, one or more caching agent clusters; determine, based on the cluster-to-CA map table, a set of target caching agents in the identified one or more caching agent clusters; and send snoop messages to the set of target caching agents to maintain data coherency in the data processing network for data associated with the data storage device.
Claim 12
Dependent Claim
291 words
9 . An apparatus comprising: a coherency controller configured to access a data storage device; a plurality of caching agents of a data processing network, each caching agent having at least one cache and configured to access the data storage device via the coherency controller; a snoop filter cache accessible by the coherency controller, the coherency controller configured to maintain coherency information in the snoop filter cache for data moved between one or more caches of a plurality of caching agents of data processing network and a data storage device shared by the plurality of caching agents, the coherency information for the data including coherency status information and a presence vector identified by an address tag of the data, where a bit position in the presence vector is associated with a caching agent cluster in a cluster-to-CA map table; a memory, accessible by the coherency controller and programmed to store the cluster-to-CA map table, an entry in the cluster-to-CA map table identifying one or more caching agents in a caching agent cluster; where the coherency controller is further configured to: receive a message from a caching agent of the plurality of caching agents, the message associated with an address in the data storage device; access a presence vector in the snoop filter cache identified by a first address tag corresponding to the designated address in the data storage device; identify, from the accessed presence vector, one or more caching agent clusters; determine, based on the cluster-to-CA map table, a set of target caching agents in the identified one or more caching agent clusters; and send snoop messages to the set of target caching agents to maintain data coherency in the data processing network for data associated with the data storage device.
Claim 13
Dependent Claim
14 words
10 . The apparatus of claim 9 , further comprising the data storage device.
Claim 14
Dependent Claim
27 words
11 . The apparatus of claim 9 , where the coherency controller and the plurality of caching agents are operatively coupled via a wired or wireless network.
Claim 15
Dependent Claim
46 words
12 . The apparatus of claim 9 , where a bit position in the presence vector is associated with a plurality of caching agent clusters and each of the plurality of caching agent clusters is associated with a designated storage region of the data storage device.
Claim 16
Dependent Claim
51 words
13 . The apparatus of claim 9 , where the coherency controller is configured to determine the set of target caching agents based on the address in the data storage device and the set of target caching agents includes only caching agents with access to the address in the data storage.
Claim 17
Dependent Claim
87 words
14 . The apparatus of claim 9 , where the memory is configured to store a cluster-to-CA map table for each of a plurality of storage regions of the data storage device, where the coherency controller is configured to determine the set of target caching agents by: determining a storage region of the data storage device that contains the designated address; and mapping the one or more caching agent clusters to the set of target caching agents using the cluster-to-CA map table for the determined storage region.
Claim 18
Dependent Claim
48 words
15 . The apparatus of claim 14 , where a caching agent with access to a first storage region of the plurality of storage regions is contained in a caching agent cluster consisting of a single caching agent in a cluster-to-CA map table for the first storage region.
Claim 19
Dependent Claim
89 words
16 . The apparatus of claim 9 , where the coherency controller is further configured to: detect a change in presence, at a first caching agent of the plurality of caching agents, of data associated with an address; identify, based on the address, a line of the snoop filter cache; identify a caching agent cluster that contains the first caching agent; and updating a bit in a presence vector of the line associated with the identified caching agent cluster in accordance with the change in presence of the data.
Claim 20
Dependent Claim
49 words
17 . The apparatus of claim 9 , where the memory comprises a content addressable memory, and where the coherency controller is configured to identify the caching agent cluster that contains the first caching agent by accessing the content addressable memory using an identifier of the first caching agent.