Claims
- 1. A cache comprising:
a memory including a plurality of entries, wherein each entry of the plurality of entries is configured to store a cache block; and a circuit configured to select a first entry of the plurality of entries to store a first cache block corresponding to a first transaction initiated by a first agent, wherein the first entry is selected from a first subset of the plurality of entries indicated as selectable for the first agent.
- 2. The cache as recited in claim 1 wherein the circuit is configured to select a second entry of the plurality of entries to store a second cache block corresponding to a second transaction initiated by a second agent, wherein the second entry is selected from a second subset of the plurality of entries indicated as selectable for the second agent.
- 3. The cache as recited in claim 2 wherein the first subset and the second subset overlap.
- 4. The cache as recited in claim 1 wherein the circuit comprises one or more registers programmable with a first indication identifying the first subset.
- 5. The cache as recited in claim 4 wherein the one or more registers are included in a first plurality of registers, wherein the first plurality of registers are programmable to identify subsets of the plurality of entries for each of a plurality of agents that are configured to initiate transactions.
- 6. The cache as recited in claim 4 wherein the circuit further comprises a second one or more registers programmable to indicate a third subset of the plurality of entries selectable to store local cache blocks and a fourth subset of the plurality of entries selectable to store remote cache blocks, wherein a local cache block has a first home node that includes the cache, and wherein a remote cache block has a second home node other than the first home node.
- 7. The cache as recited in claim 6 wherein the circuit is configured to combine indications of the third subset and the first subset to select the first entry for the first transaction if the first transaction is to a local cache block, and wherein the circuit is configured to combine indications of the fourth subset and the first subset to select the first entry for the first transaction if the first transaction is to a remote cache block.
- 8. The cache as recited in claim 7 wherein, if a combination of the indications results in no entries of the plurality of entries being identified, the circuit is configured to use a default selection.
- 9. The cache as recited in claim 8 wherein the default selection includes prioritizing the third subset over the first subset.
- 10. The cache as recited in claim 9 further comprising a third one or more registers programmable to indicate a fifth subset of the plurality of entries that are enabled for use, wherein the circuit is configured to combine indications of the fifth subset, the third subset, and the first subset to select the first entry, and wherein the default selection includes prioritizing the fifth subset over the third subset.
- 11. A cache comprising:
a memory including a plurality of entries, wherein each entry of the plurality of entries is configured to store a cache block; and a circuit configured to select a first entry of the plurality of entries to store a first cache block, wherein the first entry is selected in response to whether the first cache block is a remote cache block or a local cache block, wherein a local cache block has a first home node that includes the cache, and wherein a remote cache block has a second home node other than the first home node.
- 12. The cache as recited in claim 11 wherein the circuit comprises one or more registers programmable to indicate a first subset of the plurality of entries selectable to store local cache blocks and a second subset of the plurality of entries selectable to store remote cache blocks.
- 13. A method comprising:
receiving a first transaction in a cache; and selecting a first entry of a plurality of entries in the cache to store a first cache block corresponding to the first transaction, wherein the first entry is selected from a first subset of the plurality of entries indicated as selectable for a first agent that initiated the transaction.
- 14. The method as recited in claim 13 further comprising selecting a second entry of the plurality of entries to store a second cache block corresponding to a second transaction initiated by a second agent, wherein the second entry is selected from a second subset of the plurality of entries indicated as selectable for the second agent.
- 15. The method as recited in claim 14 wherein the first subset and the second subset overlap.
- 16. The method as recited in claim 13 further comprising combining a first indication of the first subset and a second indication of a third subset of the plurality of entries, the third subset useable to store local cache blocks, wherein the first entry is in both the first subset and the third subset if the first cache block is a local cache block.
- 17. The method as recited in claim 13 further comprising combining a first indication of the first subset and a third indication of a fourth subset of the plurality of entries, the fourth subset useable to store remote cache blocks, wherein the first entry is in both the first subset and the fourth subset if the first cache block is a remote cache block.
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. This application is a continuation in part of U.S. patent application Ser. No. 10/270,028, filed on Oct. 11, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60380740 |
May 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10270028 |
Oct 2002 |
US |
Child |
10413917 |
Apr 2003 |
US |