Claims
- 1. A method, comprising:
selecting, by using at least a portion of an address, one cache of a plurality of caches to which the address is to be routed; and outputting a signal corresponding to the selected cache.
- 2. The method of claim 1, wherein the signal comprises a value corresponding to the selected cache.
- 3. The method of claim 1, further comprising the step of routing the address to the selected cache.
- 4. The method of claim 1, wherein the address is an effective address computed by a processor.
- 5. The method of claim 4, further comprising the step of mapping the effective address to the plurality of caches, thereby determining the plurality of caches.
- 6. The method of claim 4, wherein the effective address comprises an interest group and an associated address.
- 7. The method of claim 6, wherein the interest group identifies the plurality of caches, which is a subset of a total number of caches.
- 8. The method of claim 7, wherein the step of selecting further comprises the step of selecting one of the plurality of caches by using the associated address.
- 9. The method of claim 1, wherein the plurality of caches is defined through a vector, wherein a plurality of vectors are stored in a cache vector table, and wherein the method further comprises the step of using an interest group portion of the address as an index into the cache vector table to select a vector in the cache vector table, thereby identifying the plurality of caches.
- 10. The method of claim 9, wherein the step of selecting one of the plurality of caches by using the associated address further comprises the steps of:
using a number of caches identified by a vector and an associated address in a portion of the address to determine an integer; and using the integer to select a bit having a first predetermined value from the vector, wherein each bit in the vector corresponds to a cache in a system and wherein each cache of the plurality of caches has the first predetermined value and each cache not associated with the plurality of caches has a second predetermined value.
- 11. The method of claim 10, wherein the first predetermined value is a one and the second predetermined value is a zero, whereby the step of using the integer selects a bit having a value of one.
- 12. The method of claim 9, wherein there are multiple copies of the cache vector table, each cache vector table comprising a predetermined number of vectors, and wherein each vector at a single entry of the cache vector tables is the same as the vector at the single entry of another of the cache vector tables, wherein all cache vector tables are the same, whereby cache coherence is ensured.
- 13. The method of claim 9, wherein there are multiple copies of the cache vector table, each cache vector table comprising a predetermined number of vectors, and wherein one or more vectors in one of the cache vector tables is different from the vectors at corresponding entries in another of the cache vector tables, whereby cache coherence is not ensured.
- 14. The method of claim 1, wherein the plurality of caches is represented as an encoded value in a portion of the address, wherein a part of the encoded value identifies a size of subsets of the plurality of caches and zero or more bits represent a particular subset of the size.
- 15. The method of claim 14, wherein the part of the encoded value is a number of trailing bits having a predetermined value.
The method of claim 15, wherein the predetermined value is zero, whereby the number of trailing bits having a zero value identifies the size of the subsets.
- 16. An apparatus comprising:
a cache selection module adapted to determine a cache number from a vector and an address, the cache number indicating which of a plurality of caches is selected, the vector indicating to which of one or more of the caches an address may be routed.
- 17. The apparatus of claim 16, wherein the cache selection module further comprises:
a first module adapted to scramble the associated address to determine an integer; and a second module, coupled to the first module, that uses the integer to select one of the caches indicated by the vector.
- 18. The apparatus of claim 16, wherein the address is an effective address computed by a processor, and wherein the apparatus further comprises a cache association map, the cache association map comprising the cache selection module, the cache association map further comprising a map mapping ranges of effective addresses to vectors, the cache association map adapted to select a vector for an effective address and couple the vector to the cache selection module.
- 19. The apparatus of claim 17, wherein each vector comprises a plurality of bits, each bit corresponding to one of the plurality of caches, wherein the cache selection module further comprises a third module, coupled to the first module, adapted to count how many bits in the vector are a first value, and wherein the first module is adapted to ensure that the integer is zero or larger and smaller than the count, and wherein the second module is further adapted to select, by using the integer, a single bit of the bits having the first value in the vector.
- 20. The apparatus of claim 17, wherein the cache selection module further comprises a cache vector table comprising a plurality of entries, each entry comprising a vector.
- 21. The apparatus of claim 16, further comprising a cache vector table coupled to the cache selection module and comprising a plurality of vectors.
- 22. The apparatus of claim 16, wherein the cache selection module is part of a map capable of associating a cache with an effective address, and wherein the apparatus further comprises:
a plurality of caches interconnected through a network; a plurality of processors, wherein the caches are between the processors and the network, but wherein a number of caches does not have to equal a number of processors; and a plurality of the maps, each of the plurality of maps coupled to one of the processors.
- 23. A system comprising:
a first plurality of processors, each of the processors adapted to compute an effective address; a second plurality of caches coupled to the processors through a network; one or more cache association maps coupled to the processors and the caches, each cache association map adapted to select, from an effective address computed by one of the processors, one cache of the plurality of caches and to output a signal corresponding to the selected cache; the network, wherein the network is adapted to route at least a portion of the effective address to the selected cache when a cache association map couples the portion of the effective address to the network; and a main memory coupled to the caches.
- 24. The apparatus of claim 23, wherein a number of the plurality of caches and a number of the plurality of processors are the same.
- 25. The apparatus of claim 23, wherein a number of the plurality of caches and a number of the plurality of processors are not the same.
- 26. The apparatus of claim 23, wherein there are a plurality of cache association maps, wherein each cache association map comprises a cache vector table comprising a plurality of entries, each entry having a vector.
- 27. The apparatus of claim 26, wherein each of the cache vector tables is the same, whereby cache coherence is ensured.
- 28. The apparatus of claim 26, wherein one or more vectors in one of the cache vector tables is different from the vectors at the corresponding entries in another of the cache vector tables, whereby cache coherence is not ensured.
- 29. The apparatus of claim 23, wherein the main memory is coupled to the processors.
- 30. The apparatus of claim 23, wherein the main memory comprises a plurality of memory banks.
- 31. The apparatus of claim 30, further comprising a plurality of memory bank association maps between the caches and the main memory, each memory bank association map selecting one or more of the banks of memory when a respective cache addresses main memory.
CROSS REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims the benefit of United States Provisional Application No. 60/306,953, filed Jul. 20, 2001, the disclosure of which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60306953 |
Jul 2001 |
US |