Claims
- 1. A computer system, comprising:
a request cluster including a first plurality of nodes and a request cache coherence controller, the first plurality of nodes having a first plurality of processors and a first plurality of caches associated with the first plurality of processors, the request cache coherence controller associated with a remote data cache, wherein the remote data cache holds data in memory lines of nonrequest clusters; a home cluster including a second plurality of processors and a request cache coherence controller, the second plurality of processors interconnected in a point-to-point architecture.
- 2. The computer system of claim 1, wherein nonrequest clusters comprise the home cluster and one or more remote clusters.
- 3. The computer system of claim 1, wherein the remote data cache is used to cache memory lines associated with nonrequest clusters when memory lines holding data and are evicted from the first plurality of caches.
- 4. The computer system of claim 1, wherein a writeback is generated when cache lines holding dirty data and are evicted from the first plurality of caches.
- 5. The computer system of claim 4, wherein data is dirty when the line is held in a modified or owned state.
- 6. The computer system of claim 4, wherein evicting a memory line comprises writing data back to memory.
- 7. The computer system of claim 1, wherein a plurality of remote data caches are associated with a plurality of cache coherence controllers in the computer system.
- 8. The computer system of claim 1, wherein data can be held in the remote data cache in the states of modified, exclusive, owned, shared, and invalid.
- 9. The computer system of claim 8, wherein data can further be held in the state of pending.
- 10. The computer system of claim 9, wherein data is written to the remote data cache in the pending state after the cache coherence controller receives a write back from one of the first plurality of processors.
- 11. The computer system of claim 9, wherein data is written to the remote data cache in the invalid state after a source done is received from one of the first plurality of processors if the source done indicates that the line was invalidated.
- 12. The computer system of claim 9, wherein data is written to the remote data cache in the modified, exclusive, owned, or shared state after a source done is received from one of the first plurality of processors if the source done indicates that the line was not invalidated.
- 13. The computer system of claim 1, wherein the request cache coherence controller receives information indicating whether the memory line was held in the shared or owned state from the home cluster.
- 14. The computer system of claim 1, wherein data is written to the remote data cache in the shared state after the home cluster responds to a read block request.
- 15. A method for maintaining coherency, the method comprising:
receiving a write back at a request cache coherence controller from a request cluster processor, the write back associated with a memory line evicted from a cache corresponding to the request cluster processor; writing data associated with the memory line into a remote data cache, wherein the remote data cache holds data in memory lines in the address space of non-request clusters; receiving information indicating whether the memory line was held in the modified or owned state.
- 16. The method of claim 15, wherein information indicating whether the memory line was held in the modified or owned state is received from a home cluster cache coherence controller having a coherence directory.
- 17. The method of claim 15, wherein information indicating whether the memory line was held in the modified or owned state is received from the request cluster processor.
- 18. The method of claim 15, wherein information indicating whether the memory line was held in the modified or owned state is received from the request cluster processor in a source done message.
- 19. The method of claim 15, further comprising receiving information indicating whether the memory line was invalidated by an intervening request.
- 20. The method of claim 19, wherein if the memory line was invalidated by an intervening request, the state of the memory line in the remote data cache is set to invalid.
- 21. The method of claim 20, wherein if the memory line was not invalidated, the state of the memory line in the remote data cache is set to shared or exclusive.
- 22. The method of claim 21, wherein the state of the memory line in the remote data cache is set to shared if the memory line was held in the owned state prior to receipt of the write back.
- 23. The method of claim 21, wherein the state of the memory line in the remote data cache is set to exclusive if the memory line was held in the modified state prior to receipt of the write back.
- 24. A method for maintaining coherency, the method comprising:
receiving a read block response at a request cache coherence controller from a home cluster, the read block response associated with a memory line; and writing data associated with the read block response into a remote data cache, wherein the remote data cache holds data in memory lines in the address space of non-request clusters.
- 25. The method of claim 24, wherein data associated with the read block response is written into the remote data cache in the shared state.
- 26. The method of claim 24, wherein data associated with the read block response is written into the remote data cache in the exclusive state.
- 27. A computer system, comprising:
a request cluster including a first plurality of nodes and a request cache coherence controller, the first plurality of nodes having a first plurality of processors and a first plurality of caches associated with the first plurality of processors, the request cache coherence controller associated with a remote data cache, wherein the remote data cache holds data in memory lines of nonrequest clusters; a home cluster including a second plurality of processors and a request cache coherence controller, the second plurality of processors interconnected in a point-to-point architecture; wherein the first plurality of processors are operable to send information to the request cache coherence controller indicating whether a cache line is owned or modified in order to modify an entry in the remote data cache.
- 28. The computer system of claim 27, wherein the first plurality of processors are further operable to send information to the request cache coherence controller indicating whether the cache line is invalid.
- 29. The computer system of claim 27, wherein nonrequest clusters comprise the home cluster and one or more remote clusters.
- 30. The computer system of claim 27, wherein the remote data cache is used to cache memory lines associated with nonrequest clusters when memory lines holding data and are evicted from the first plurality of caches.
- 31. The computer system of claim 27, wherein information indicating whether a cache line is owned or modified is sent when a cache line is evicted.
- 32. The computer system of claim 31, wherein evicting a cache line comprises writing data back to memory.
- 33. The computer system of claim 27, wherein a plurality of remote data caches are associated with a plurality of cache coherence controllers in the computer system.
- 34. The computer system of claim 27, wherein data can be held in the remote data cache in the states of modified, exclusive, owned, shared, and invalid.
- 35. The computer system of claim 34, wherein data can further be held in the state of pending.
- 36. The computer system of claim 35, wherein data is written to the remote data cache in the pending state after the cache coherence controller receives a write back from one of the first plurality of processors.
- 37. A computer system, comprising:
means for receiving a write back at a request cache coherence controller from a request cluster processor, the write back associated with a memory line evicted from a cache corresponding to the request cluster processor; means for writing data associated with the memory line into a remote data cache, wherein the remote data cache holds data in memory lines in the address space of non-request clusters; means for receiving information indicating whether the memory line was held in the modified or owned state.
- 38. The computer system of claim 37, wherein information indicating whether the memory line was held in the modified or owned state is received from a home cluster cache coherence controller having a coherence directory.
- 39. The computer system of claim 37, wherein information indicating whether the memory line was held in the modified or owned state is received from the request cluster processor.
- 40. The computer system of claim 37, wherein information indicating whether the memory line was held in the modified or owned state is received from the request cluster processor in a source done message.
- 41. The computer system of claim 37, further comprising receiving information indicating whether the memory line was invalidated by an intervening request.
- 42. The computer system of claim 41, wherein if the memory line was invalidated by an intervening request, the state of the memory line in the remote data cache is set to invalid.
- 43. A computer system, comprising:
means for receiving a read block response at a request cache coherence controller from a home cluster, the read block response associated with a memory line; and means for writing data associated with the read block response into a remote data cache, wherein the remote data cache holds data in memory lines in the address space of non-request clusters.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to filed U.S. patent application Ser. Nos. 10/288,347 and 10/288,399, both titled Methods And Apparatus For Managing Probe Requests by David B. Glasco and filed on Nov. 4, 2002, the entireties of which are incorporated by reference herein for all purposes.