Claims
- 1. 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.
- 2. The node as recited in claim 1 further comprising a memory bridge, wherein the memory bridge is configured to transmit probes to each other node storing a copy of the second coherency block to invalidate the coherency block.
- 3. The node as recited in claim 2 wherein, if one of the other nodes has a modified copy of the second coherency block, the memory bridge is configured to generate a probe that causes the other node to return the modified copy to the node.
- 4. The node as recited in claim 2 further comprising a probe buffer configured to store the probes, wherein each probe remains in the probe buffer until responses to the probe have been received by the node.
- 5. The node as recited in claim 4 wherein the probe buffer is compared against transactions in the node.
- 6. The node as recited in claim 1 further comprising an interconnect to which the memory controller and the directory are coupled, wherein the directory is accessed responsive to an address of a transaction on the interconnect.
- 7. The node as recited in claim 6 further comprising a memory bridge coupled to receive coherency commands from the other nodes, wherein the memory bridge is coupled to the interconnect and is configured to initiate a transaction on the interconnect in response to at least some coherency commands, and wherein the memory bridge does not check the directory prior to transmitting the transaction on the interconnect.
- 8. The node as recited in claim 1 wherein the first number is less than a total number of entries in remote caches.
- 9. 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.
- 10. The method as recited in claim 9 further comprising, if a first node of the other nodes has a modified copy of the second coherency block, causing the first node to return the modified copy to the node.
- 11. 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.
- 12. The computer accessible medium as recited in claim 11 wherein the one or more data structures further represent a memory bridge, wherein the memory bridge is configured to transmit probes to each other node storing a copy of the second coherency block to invalidate the coherency block.
- 13. The computer accessible medium as recited in claim 12 wherein, if one of the other nodes has a modified copy of the second coherency block, the memory bridge is configured to generate a probe that causes the other node to return the modified copy to the node.
- 14. The computer accessible medium as recited in claim 12 wherein the one or more data structures further represent a probe buffer configured to store the probes, wherein each probe remains in the probe buffer until responses to the probe are received by the node.
- 15. The computer accessible medium as recited in claim 14 wherein the probe buffer is compared against transactions in the node.
- 16. The computer accessible medium as recited in claim 11 wherein the one or more data structures further represent an interconnect to which the memory controller and the directory are coupled, wherein the directory is accessed responsive to an address of a transaction on the interconnect.
- 17. The computer accessible medium as recited in claim 16 wherein the one or more data structures further represent a memory bridge coupled to receive coherency commands from the other nodes, wherein the memory bridge is coupled to the interconnect and is configured to initiate a transaction on the interconnect in response to at least some coherency commands, and wherein the memory bridge does not check the directory prior to transmitting the transaction on the interconnect.
- 18. 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.
- 19. The system as recited in claim 18 further comprising a memory bridge and a memory controller, wherein the memory bridge and the memory controller are coupled to an interconnect and the memory controller is coupled to the memory, wherein the memory bridge is configured to initiate a transaction on the interconnect responsive to the coherency command.
- 20. The system as recited in claim 19 wherein the directory is accessed responsive to a transmission of the address of the transaction on the interconnect.
- 21. The system as recited in claim 18 wherein, in one of the plurality of nodes is storing a modified copy of the coherency block, the first node generates a coherency command to cause the one of the plurality of nodes to return the modified copy to the first node.
Parent Case Info
[0001] This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/380,740, filed May 15, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60380740 |
May 2002 |
US |