Interleaved set-associative memory
First Claim
1. An associative memory comprising:
- a plurality of memory parts each including a plurality of memory locations each for storing a word of information, the locations of the plurality of memory parts being grouped into a plurality of levels and each level having a location from each of the memory parts, each location of a level for storing any word of a plurality of words associated with that level, the plurality of parts defining a plurality of frames, each frame defined by a plurality of locations each from a different level, a frame for storing any block of words of a plurality of blocks, each block having a plurality of words each associated with a different level;
means for storing a plurality of words simultaneously, each word into a location of the associated level and of a different memory part; and
means for checking for presence of a desired word simultaneously in all locations of the level associated with the desired word.
1 Assignment
0 Petitions
Accused Products
Abstract
In a processing system (10) comprising a main memory (102) for storing blocks (150) of four contiguous words (160) of information, a cache memory (101) for storing selected ones of the blocks, and a two-word wide bus (110) for transferring words from the main memory to the cache, the cache memory is implemented in two memory parts (301, 302) as a two-way interleaved two-way set-associative memory. One memory part implements odd words of one cache set (0), and even words of the other cache set (1), while the other memory part implements even words of the one cache set and odd words of the other cache set. Storage locations (303) of the memory parts are grouped into at least four levels (204) with each level having a location from each of the memory parts and each of the cache sets. The cache receives a block over the bus in two pairs of contiguous words. The cache memory is updated with both words of a word pair simultaneously. The pairs of words are each stored simultaneously into locations of one of either of the cache sets, each word into a location of a different memory part and of a different level. Cache hit check is performed on all locations of a level simultaneously. Simultaneously with the hit check, all locations of the checked level are accessed simultaneously.
-
Citations
24 Claims
-
1. An associative memory comprising:
-
a plurality of memory parts each including a plurality of memory locations each for storing a word of information, the locations of the plurality of memory parts being grouped into a plurality of levels and each level having a location from each of the memory parts, each location of a level for storing any word of a plurality of words associated with that level, the plurality of parts defining a plurality of frames, each frame defined by a plurality of locations each from a different level, a frame for storing any block of words of a plurality of blocks, each block having a plurality of words each associated with a different level; means for storing a plurality of words simultaneously, each word into a location of the associated level and of a different memory part; and means for checking for presence of a desired word simultaneously in all locations of the level associated with the desired word. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A set-associative cache memory comprising:
-
a plurality of memory parts each including a plurality of memory locations each for storing a word of information, the locations of the plurality of memory parts being grouped into a plurality of levels and each level having a location from each of the memory parts, each location of a level for storing any word of a plurality of words associated with that level, the plurality of parts defining a plurality of sets of frames, each frame defined by a plurality of locations each from a different level, a frame of each set for storing any block of words of a plurality of blocks, each block having a plurality of words each associated with a different level; means for storing a plurality of words of a block simultaneously into one of the associated frames, each word in a location of the associated level and of a different memory part; and means for checking for presence of a desired word simultaneously in all locations of the level associated with the desired word. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A two-way set-associative two-way interleaved cache memory comprising:
-
a pair of memory parts each comprising a plurality of storage locations each for storing a word of information, the locations of one memory part defining even locations of a first cache set of a plurality of locations and odd locations of a second cache set of a plurality of locations and the other memory part defining odd locations of the first cache set and even locations of the second cache set, the locations of the pair of memory parts being grouped into at least four levels and each level having a location from each of the memory parts and each of the cache sets; means for receiving simultaneously a first pair of contiguous words of a block of four contiguous words, and for receiving simultaneously a second pair of contiguous words of the block; means for storing one pair of the received words simultaneously into locations of one cache set, each word into a location of a different memory part and of a different level of first and second levels, and for storing the other pair of received words simultaneously in locations of the one cache set, each word into a location of a different memory part and of a different level of third and fourth levels; and means for simultaneously checking all locations of a level for presence therein of a desired word. - View Dependent Claims (12, 13)
-
-
14. A processing system comprising
a main memory for storing a plurality of words of information, a cache memory for storing selected ones of the main memory words, and a communication bus for transferring simultaneously a plurality of words from the main memory to the cache memory, the cache memory comprising: -
a plurality of memory parts each including a plurality of memory locations each for storing a word, the locations of the plurality of memory parts being grouped into a plurality of levels and each level having a location from each of the memory parts, each location of a level for storing any word of a plurality of words associated with that level, the plurality of parts defining a plurality of frames, each frame defined by a plurality of locations each from a different level, a frame for storing any block of words of a plurality of blocks, each block having a plurality of words each associated with a different level; means for receiving from the bus a plurality of words simultaneously; means for storing the received words simultaneously, each word into a location of the associated level and of a different memory part; and means for checking for presence of a desired word simultaneously in all locations of the level associated with the desired word. - View Dependent Claims (15, 16, 17)
-
-
18. A processing system comprising
a main memory for storing a plurality of words of information, a set-associative cache memory for storing selected ones of the main memory words, and a communication bus for transferring simultaneously a plurality of words from the main memory to the cache memory, the cache memory comprising: -
a plurality of memory parts each including a plurality of memory locations each for storing a word, the locations of the plurality of memory parts being grouped into a plurality of levels and each level having a location from each of the memory parts, each location of a level for storing any word of a plurality of words associated with that level, the plurality of parts defining a plurality of sets of frames, each frame defined by a plurality of locations each from a different level, a frame of each set for storing any block of a plurality of blocks associated with those frames, each block having a plurality of words; means for receiving from the bus a plurality of words of a block simultaneously; means for storing the received words simultaneously into one of the associated frames, each word into a location of the associated level and of a different memory part; and means for checking for presence of a desired word in all locations of the level associated with the desired word simultaneously. - View Dependent Claims (19, 20, 21)
-
-
22. A processing system comprising
a main memory for storing a plurality of blocks of four contiguous words of information, a two-way set-associative two-way interleaved cache memory for storing selected ones of the main memory blocks, and a communication bus for transferring in parallel a pair of words of a block from the main memory to the cache memory, the cache memory comprising: -
a pair of memory parts each comprising a plurality of memory locations each for storing a word, the locations of one memory part defining even locations of a first cache set of a plurality of locations and odd locations of a second cache set of a plurality of locations and the other memory part defining odd locations of the first cache set and even locations of the second cache set, the locations of the pair of memory parts being grouped into at least four levels and each level having a location from each of the memory parts and each of the cache sets; means for receiving simultaneously from the bus a first pair of contiguous words of a block, and for receiving simultaneously a second pair of contiguous words of the block; means for storing one pair of the received words simultaneously into locations of one cache set, each word into a location of a different memory part and of a different level of first and second levels, and for storing the other pair of received words simultaneously in locations of the one cache set, each word into a location of a different memory part and of a different level of third and fourth levels; and means for simultaneously checking all locations of a level for presence therein of a desired word. - View Dependent Claims (23, 24)
-
Specification