Remote line directory which covers subset of shareable CC-NUMA memory space
AssigneeBroadcom Corporation
InventorsJoseph B. Rowlands, James B. Keller
Life of this patent
Estimating the term…
Abstract
A node is coupled to receive a coherency command and coupled to a memory, wherein the node includes a directory configured to track a state of a first number of coherency blocks less than a total number of the coherency blocks in the memory. The directory is configured to allocate a first entry to track the state of the first coherency block responsive to the coherency command. If the first entry is currently tracking the state of a second coherency block, the second node is configured to generate one or more coherency commands to invalidate the second coherency block in a plurality of nodes.
Claims21
A node comprising:
- a memory controller configured to couple to a memory comprising a plurality of coherency blocks, wherein the node permits coherent access to the plurality of coherency blocks by other nodes;
- a directory configured to track a state, in the other nodes, of at most a first number of the plurality of coherency blocks, the first number less than a total number of the plurality of coherency blocks, wherein the directory includes a plurality of entries, each entry configured to track the state of one coherency block;
- and
- a control circuit coupled to the directory, wherein, in response to an access by one of the other nodes to a first coherency block that is a miss in the directory, and wherein the control circuit is configured to select a first entry of the plurality of entries to track the state of the first coherency block, and wherein, if the first entry is currently tracking the state of a second coherency block, the node is configured to cause the second coherency block to be invalidated in the other nodes.
A method comprising:
- tracking a state, in other nodes, of at most a first number of coherency blocks from a memory to which a node is coupled, wherein the first number is less than a total number of the coherency blocks, and wherein the tracking is performed in a directory;
- detecting an access by one of the other nodes to a first coherency block that is a miss in the directory;
- selecting a first entry of the plurality of entries to track the state of the first coherency block;
- and
- if the first entry is currently tracking the state of a second coherency block, causing the other nodes to invalidate the second coherency block.
A computer accessible medium comprising one or more data structures representing:
- a memory controller configured to couple to a memory comprising a plurality of coherency blocks, wherein the node permits coherent access to the plurality of coherency blocks by other nodes;
- a directory configured to track a state, in the other nodes, of at most a first number of the plurality of coherency blocks, the first number less than a total number of the plurality of coherency blocks, wherein the directory includes a plurality of entries, each entry configured to track the state of one coherency block;
- and
- a control circuit coupled to the directory, wherein, in response to an access by one of the other nodes to a first coherency block that is a miss in the directory, and wherein the control circuit is configured to select a first entry of the plurality of entries to track the state of the first coherency block, and wherein, if the first entry is currently tracking the state of a second coherency block, the node is configured to cause the second coherency block to be invalidated in the other nodes.
A system comprising a plurality of nodes, the plurality of nodes including:
- a first node configured to generate a coherency command to access a first coherency block in a memory coupled to a second node;
- and
- the second node coupled to receive the coherency command and coupled to the memory, wherein the second node includes a directory configured to track a state of a first number of coherency blocks less than a total number of the coherency blocks in the memory, and wherein the directory is configured to allocate a first entry to track the state of the first coherency block responsive to the coherency command, and wherein, if the first entry is currently tracking the state of the second coherency block, the second node is configured to generate one or more coherency commands to invalidate the second coherency block in the plurality of nodes.
Dependencies are inferred from the claim text.