Claims
- 1. A circuit that selects a candidate to mark as overwritable in the event of a cache miss, comprising:logic that receives a cache access request, wherein said cache access request is associated with a main memory address; logic that determines whether the contents of said main memory address are present in a data cache; logic that associates, when the contents of said main memory address are not present in said data cache, said main memory address with a set within said data cache, wherein said set includes a plurality of ways; logic that determines whether any of said plurality of ways is an invalid way; logic that selects, if said invalid way exists, said invalid way as the candidate; cache replacement logic that selects, where no said invalid way exists among said set, a way among said set as a preliminary candidate, wherein said cache replacement logic is based on the state of at least one affected resource.
- 2. A computer system for selecting a candidate to mark as overwritable in the event of a cache miss comprising:a main memory; a data cache that is shared by a plurality of processing units; means for receiving a main memory address in said main memory; means for determining whether the contents of said main memory address are present in said data cache; means for associating said main memory address with a set within said data cache when the contents of said main memory address are not present in said data cache, wherein said set includes a plurality of ways; means for determining whether any of said plurality of ways is an invalid way and that selects said invalid way as the candidate; means for applying, where no invalid ways exist among said set, a cache replacement policy to select a way among said set as a preliminary candidate, wherein said cache replacement policy is based on the state of at least one affected resource.
- 3. The computer system of claim 2 wherein said at least one affected resource comprises a cross bar switch.
- 4. The computer system of claim 2 wherein said at least one affected resource comprises a memory controller.
- 5. The computer system of claim 2 wherein said at least one affected resource comprises a memory controller buffer.
- 6. The computer system of claim 2 wherein said at least one affected resource comprises a write back buffer.
- 7. The computer system of claim 6 wherein said means for applying a cache replacement policy further comprises:means for determining whether said write back buffer is crowded; means for determining, when said write back buffer is crowded, whether said preliminary candidate is dirty; means for selecting said preliminary candidate as the candidate when (said write back buffer is not crowded) OR (said write back buffer is crowded AND said preliminary candidate is not dirty); and means for storing the contents of said preliminary candidate in said write back buffer and selects said preliminary candidate as the candidate, when said write back buffer is crowded and said preliminary candidate is dirty.
- 8. A circuit that selects a candidate to mark as overwritable in the event of a cache miss, comprising:means for receiving a cache access request, wherein said cache access request is associated with a main memory address; means for determining whether the contents of said main memory address are present in a data cache; means for associating, when the contents of said main memory address are not present in said data cache, said main memory address with a set within said data cache, wherein said set includes a plurality of ways; means for determining whether any of said plurality of ways is an invalid way; means for selecting, if said invalid way exists, said invalid way as the candidate; means for selecting, when no said invalid way exists among said set, a way among said set as a preliminary candidate, wherein said selecting a way is based on the state of at least one affected resource.
- 9. The circuit of claim 8 wherein said at least one affected resource comprises a cross bar switch.
- 10. The circuit of claim 8 wherein said at least one affected resource comprises a memory controller.
- 11. The circuit of claim 8 wherein said at least one affected resource comprises a memory controller buffer.
- 12. The circuit of claim 8 wherein said at least one affected resource comprises a write back buffer.
- 13. The circuit of claim 8 wherein said means for selecting a way comprises:means for determining whether said write back buffer is crowded; means for determining, when said write back buffer is crowded, whether said preliminary candidate is dirty; means for selecting, where (said write back buffer is not crowded) OR (said write back buffer is crowded AND said preliminary candidate is not dirty), said preliminary candidate as the candidate; and means for storing, where said write back buffer is crowded and said preliminary candidate is dirty, the contents of said preliminary candidate in said write back buffer and that selects said preliminary candidate as the candidate.
CROSS-REFERENCE TO RELATED APPLICATION
This application is a Continuation of U.S. patent application Ser. No. 09/411,468, filed Oct. 1, 1999 now U.S. Pat. No. 6,282,617 and entitled “Multiple Variable Cache Replacement Policy,” and naming Anup S. Tirumala and Marc Tremblay as inventors issued as U.S. Pat. No. 6,282,617 on Aug. 21, 2001. This application relates to U.S. patent application Ser. No. 09/204,480, filed Dec. 12, 1998, and entitled, “A Multiple-Thread Processor for Threaded Software Applications,” and naming Marc Tremblay and William Joy as inventors. These applications are assigned to Sun Microsystems, Inc., the assignee of the present invention, and are hereby incorporated by reference, in their entirety and for all purposes.
US Referenced Citations (17)
Foreign Referenced Citations (2)
Number |
Date |
Country |
2345987 |
Jul 2000 |
GB |
07175724 |
Jul 1995 |
JP |
Non-Patent Literature Citations (1)
Entry |
“Deferring Castouts In Store-In Caches,” Research Disclosure No. 288, Apr. 1988 (1988-04), p. 246, XP000211639 (1 page). |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/411468 |
Oct 1999 |
US |
Child |
09/931115 |
|
US |