Claims
- 1. A method for managing a cache memory for a multi-threaded processor, comprising the steps of:partitioning the cache memory into a set of separate partitions and allocating a separate subset of the partitions to each of a set of threads of the multi-threaded processor; performing a cache lookup operation to the cache memory in response to an access to a data line by the multi-threaded processor; if a cache miss occurs, then selecting a replacement line in one of the partitions of the cache memory which is allocated to a particular one of the threads from which the access originated wherein the partitioning of the cache memory is dynamic.
- 2. The method of claim 1, further comprising the step of obtaining the data line and storing the data line into the replacement line selected in the partition.
- 3. The method of claim 1, wherein the step of partitioning the cache memory includes the step of allocating a subset of a set of ways of the cache memory to each of the threads.
- 4. The method of claim 3, wherein the step of selecting a replacement line in a partition of the cache memory which is allocated to the particular thread includes the step of selecting the replacement line in one of the subsets of the ways which is allocated to the particular thread.
- 5. The method of claim 1, wherein the step of partitioning the cache memory includes the step of allocating a subset of a set of rows of the cache memory to each of the threads.
- 6. The method of claim 5, wherein the step of selecting a replacement line in a partition of the cache memory which is allocated to the particular thread includes the step of selecting the replacement line in one of the rows which is allocated to the particular thread.
- 7. A computer system comprising:processor that executes a set of threads; cache memory including means for dynamically partitioning the cache memory into a set of separate partitions wherein a separate subset of the partitions is allocated to each of the threads such that a cache miss to a data line which is associated with a particular thread causes a replacement line in the cache memory to be selected from one of the partitions of the cache memory that is allocated to the particular thread.
- 8. The computer system of claim 7, wherein the cache memory is an instruction cache.
- 9. The computer system of claim 7, wherein the cache memory is a data cache.
- 10. The computer system of claim 7, wherein the cache memory is a combined instruction and data cache.
- 11. The computer system of claim 7, wherein the cache memory is an n-way cache memory.
- 12. The computer system of claim 11, wherein the means for dynamically partitioning the cache memory includes a set of partition mask registers which specify an allocation of the n-ways among the threads.
- 13. The computer system of claim 12, wherein the partition mask registers are written by the processor to dynamically partition the cache memory.
Parent Case Info
This application is a division of Ser. No. 09/085,644 filed May 27, 1998 U.S. Pat. No. 6,205,519.
US Referenced Citations (8)
Non-Patent Literature Citations (2)
| Entry |
| Wu et al., “A loop partition technique for reducing cache bank conflict in multithreaded architecture”, (c) IEE 1996. pp. 30-36.* |
| Inohara et al., “Unstable Threads' Kernal Interface for Minimizing the Overhead of thread Switching”, (c) IEEE 1993. pp. 149-155. |