Patent US20220164288A1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US20220164288A1 Active / In Force US ⏱️ 14.0 years remaining

Configurable Cache Coherency Controller

Assignee: ARM Ltd
•
Filing: 2020-11-24
•
Granted: —
•
Expires: 2040-11-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Entries in a cluster-to-caching agent map table of a data processing network identify one or more caching agents in a caching agent cluster. A snoop filter cache stores coherency information that includes coherency status information and a presence vector, where a bit position in the presence vector is associated with a caching agent cluster in the cluster-to-caching agent map table. In response to a data request, a presence vector in the snoop filter cache is accessed to identify a caching agent cluster and the map table is accessed to identify target caching agents for snoop messages. In order to reduce message traffic, snoop message are sent only to the identified targets.

Inventors

  • 👤 Gurunath RAMAGIRI
  • 👤 Jamshed Jalal
  • 👤 Mark David Werkheiser
  • 👤 Tushar P. Ringe
  • 👤 Mukesh Patel
  • 👤 Sakshi Verma

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 07:42
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831; G06F12/0833; G06F2212/00; G06F2212/10; G06F2212/1048; G06F2212/62; G06F2212/621

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.

References Cited (Backward Citations)

US20090157962A1 Cited

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag