Claims
- 1. A computer system, comprising a plurality of processing nodes each having a cache memory associated therewith, a main memory shared by the processing nodes, and a serialization point operable to order memory transactions involving the processing nodes and the main memory, the computer system further comprising a cache coherence directory operable to store entries corresponding to memory lines stored in selected ones of the cache memories, and an eviction manager operable to designate one of the entries to be evicted and maintain the designated entry in the cache coherence directory at least until the serialization point allows an eviction transaction corresponding to the designated entry to proceed.
- 2. The computer system of claim 1 wherein the plurality of processing nodes are organized into a plurality of processing clusters, each cluster including more than one of the processing nodes and corresponding to a contiguous portion of a global memory space corresponding to the main memory, the serialization point, the cache coherence directory, and the eviction manager all being associated with a first one of the clusters, the entries in the cache coherence directory corresponding to memory lines within the contiguous portion of the global memory space associated with the first cluster.
- 3. The computer system of claim 2 wherein the serialization point is a memory controller associated with one of the processing nodes in the first cluster.
- 4. The computer system of claim 2 wherein the first cluster further comprises a cache coherence controller operable to enable interaction by the processing nodes in the first cluster with processing nodes in others of the clusters in accordance with the cache coherence directory.
- 5. The computer system of claim 4 wherein the cache coherence controller includes the cache coherence directory and the eviction manager.
- 6. The computer system of claim 2 wherein the eviction transaction comprises a request to the serialization point to merge an empty data field with the memory line corresponding to the designated entry.
- 7. The computer system of claim 6 wherein the eviction transaction further comprises a plurality of invalidating probes generated by the serialization point in response to which a modified copy of the memory line corresponding to the designated entry is returned to the serialization point from one of the cache memories, and in response to which all copies of the memory line corresponding to the designated entry in the cache memories are invalidated.
- 8. The computer system of claim 2 wherein the eviction transaction comprises a request to the serialization point to write to the memory line corresponding to the designated entry.
- 9. The computer system of claim 8 wherein the eviction transaction further comprises a plurality of invalidating probes generated by the serialization point in response to which all copies of the memory line corresponding to the designated entry in the cache memories are invalidated.
- 10. The computer system of claim 1 wherein the eviction manager is operable to maintain the designated entry in the cache coherence directory until the serialization point transmits a communication corresponding to the designated entry.
- 11. The computer system of claim 1 wherein the cache coherence directory includes an eviction buffer, the eviction manager being operable to designate the designated entry by placing the designated entry in the eviction buffer.
- 12. The computer system of claim 11 wherein the eviction manager is further operable to invalidate the designated entry in the eviction buffer in response to a communication from the serialization point corresponding to the eviction transaction.
- 13. The computer system of claim 1 wherein each of the entries in the cache coherence directory comprises an address associated with the corresponding memory line, state information indicating whether the corresponding memory line has been modified, and location information indicating in which of the cache memories the corresponding memory line has been cached.
- 14. A cache coherence controller for use in a computer system comprising a plurality of processing nodes each having a cache memory associated therewith, a main memory shared by the processing nodes, and a serialization point operable to order memory transactions involving the processing nodes and the main memory, the cache coherence controller comprising a cache coherence directory operable to store entries corresponding to memory lines stored in selected ones of the cache memories, and an eviction manager operable to designate one of the entries to be evicted and maintain the designated entry in the cache coherence directory at least until the serialization point allows an eviction transaction corresponding to the designated entry to proceed.
- 15. An integrated circuit comprising the cache coherence controller of claim 14.
- 16. The integrated circuit of claim 15 wherein the integrated circuit comprises an application-specific integrated circuit.
- 17. At least one computer-readable medium having data structures stored therein representative of the cache coherence controller of claim 14.
- 18. The at least one computer-readable medium of claim 17 wherein the data structures comprise a simulatable representation of the cache coherence controller.
- 19. The at least one computer-readable medium of claim 18 wherein the simulatable representation comprises a netlist.
- 20. The at least one computer-readable medium of claim 17 wherein the data structures comprise a code description of the cache coherence controller.
- 21. The at least one computer-readable medium of claim 20 wherein the code description corresponds to a hardware description language.
- 22. A set of semiconductor processing masks representative of at least a portion of the cache coherence controller of claim 14.
- 23. A computer system, comprising a plurality of processor clusters, each cluster including a plurality of local nodes and a cache coherence controller interconnected by a local point-to-point architecture, the computer system further comprising memory corresponding to a global memory space, each cluster corresponding to a contiguous portion of the global memory space, selected ones of the plurality of local nodes in each cluster having a memory controller associated therewith, each memory controller in each cluster being responsible for a memory range within the corresponding contiguous portion of the global memory space, the cache coherence controller in each cluster having a cache coherence directory associated therewith, entries in the cache coherence directory in each cluster corresponding to memory lines within the corresponding contiguous portion of the global memory space which are cached in remote clusters, the cache coherence directory further comprising an eviction manager which is operable to designate one of the entries to be evicted, and maintain the designated entry in the cache coherence directory until an acknowledgement of an eviction transaction corresponding to the designated entry is received.
- 24. A computer implemented method for evicting entries in a cache coherence directory, the cache coherence directory being associated with a computer system comprising a plurality of processing nodes each having a cache memory associated therewith, a main memory shared by the processing nodes, and a serialization point operable to order memory transactions involving the processing nodes and the main memory, entries in the cache coherence directory corresponding to memory lines stored in selected ones of the cache memories, the method comprising:
determining that a first one of the entries in the cache coherence directory should be evicted; designating the first entry for eviction and maintaining the first entry in the cache coherence directory; and invalidating the first entry in the cache coherency directory after the serialization point allows an eviction transaction corresponding to the designated entry to proceed.
- 25. The method of claim 24 wherein determining that the first entry should be evicted comprises:
receiving a request corresponding to a first one of the memory lines for which there is no corresponding entry in the cache coherence directory; selecting the first entry for eviction from among a subset of the entries.
- 26. The method of claim 25 wherein selection of the first entry is accomplished with reference to memory line state information included in each of the subset of entries.
- 27. The method of claim 26 wherein selection of the first entry is further accomplished using a random selection mechanism among the entries in the subset of entries having the same memory line state information.
- 28. The method of claim 24 wherein designating the first entry for eviction comprises moving the first entry into an eviction buffer associated with the cache coherence directory, the first entry continuing to be available as a cache coherence directory entry after being moved to the eviction buffer.
- 29. The method of claim 24 wherein invalidation of the first entry occurs in response to a communication from the serialization point corresponding to the eviction transaction.
- 30. The method of claim 24 further comprising transmitting a request corresponding to the eviction transaction to the serialization point.
- 31. The method of claim 30 wherein the eviction transaction comprises a request to the serialization point to merge an empty data field with the memory line corresponding to the first entry.
- 32. The method of claim 31 wherein the eviction transaction further comprises a plurality of invalidating probes generated by the serialization point in response to which a modified copy of the memory line corresponding to the first entry is returned to the serialization point from one of the cache memories, and in response to which all copies of the memory line corresponding to the first entry in the cache memories are invalidated.
- 33. The method of claim 30 wherein the eviction transaction comprises a request to the serialization point to write to the memory line corresponding to the first entry.
- 34. The method of claim 33 wherein the eviction transaction further comprises a plurality of invalidating probes generated by the serialization point in response to which all copies of the memory line corresponding to the first entry in the cache memories are invalidated.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The subject matter described in the present application is related to U.S. patent application Ser. No. ______, for METHODS AND APPARATUS FOR MANAGING PROBE REQUESTS filed on ______, 2002 (Attorney Docket No. NWISP024), the entire disclosure of which is incorporated herein by reference for all purposes.