US2008215816A1PendingUtilityA1

Apparatus and method for filtering unused sub-blocks in cache memories

Assignee: EMMA PHILIP GEORGEPriority: Sep 30, 2004Filed: May 7, 2008Published: Sep 4, 2008
Est. expirySep 30, 2024(expired)· nominal 20-yr term from priority
G06F 12/0886G06F 12/0848G06F 12/0897G06F 12/127
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A memory system and method includes a cache having a filtered portion and an unfiltered portion. The unfiltered portion is divided into block sized components, and the filtered portion is divided into sub-block sized components. Blocks evicted from the unfiltered portion have selected sub-blocks thereof cached in the filtered portion for servicing requests.

Claims

exact text as granted — not AI-modified
1 . A memory system, comprising:
 a cache comprising:
 a filtered portion and an unfiltered portion, both of which are simultaneously accessed during a service request, 
 the unfiltered portion configured for storing block sized components, each block being comprised of a plurality of sub-blocks; 
 the filtered portion configured for storing sub-block sized components such that blocks evicted from the unfiltered portion have selected sub-blocks from the evicted blocks thereof cached in the filtered portion for servicing requests, such that, for any access, a block or sub-block can only reside in one of the unfiltered portion or the filtered portion. 
   
   
   
       2 . The system as recited in  claim 1 , wherein the selected sub-blocks include used sub-blocks. 
   
   
       3 . The system as recited in  claim 1 , wherein the unfiltered portion and the filtered portion have different numbers of rows, and the system further comprises an index identifier to map blocks in the unfiltered portion and sub-blocks in the filtered portion. 
   
   
       4 . The system as recited in  claim 3 , wherein the index is generated for both the unfiltered and filtered portions simultaneously. 
   
   
       5 . The system as recited in  claim 1 , further comprising compare and select logic configured to compare information about blocks or sub-blocks from a main memory with information about blocks or sub-blocks of the cache. 
   
   
       6 . The system as recited in  claim 5 , wherein the compare and select logic provides a hit signal if a match exists between the information about blocks or sub-blocks from the main memory with the information about blocks or sub-blocks of the cache. 
   
   
       7 . The system as recited in  claim 1 , further comprising transfer logic configured to transfer sub-blocks to the filtered portion from the unfiltered portion. 
   
   
       8 . The system as recited in  claim 7 , wherein the transfer logic examines sub-block usage bits in a directory to determine which sub-blocks were referenced while the sub-blocks resided in the unfiltered portion. 
   
   
       9 . The system as recited in  claim 8 , wherein the transfer logic transfers used sub-blocks, of the block just replaced, to the filtered portion; otherwise if unused, the sub-block is discarded. 
   
   
       10 . The system as recited in  claim 1 , further comprising a threshold used to compare to a number of used sub-blocks in a block such that if the number of used sub-blocks is less than the threshold then used sub-blocks are transferred to the filtered portion. 
   
   
       11 . The system as recited in  claim 10 , wherein the threshold is dynamically adapted based upon used blocks and sub-blocks. 
   
   
       12 . A method for caching information, comprising the steps of:
 dividing a cache into a filtered portion and an unfiltered portion, the unfiltered portion storing block sized components, each block comprising a plurality of sub-blocks and the filtered portion storing sub-block sized components;   simultaneously accessing both the filtered portion and the unfiltered portion during a service request;   evicting a block from the unfiltered portion in accordance with a policy such that blocks evicted from the unfiltered portion have selected used sub-blocks thereof cached in the filtered portion; and   maintaining the selected used sub-blocks in the filtered portion in accordance with the policy such that, for any access, a block or sub-block can only reside in one of the unfiltered portion or the filtered portion.   
   
   
       13 . The method as recited in  claim 12 , further comprising the step of indexing blocks in the unfiltered portion with sub-blocks in the filtered portion simultaneously when the unfiltered portion and the filtered portion have different numbers of rows. 
   
   
       14 . The method as recited in  claim 13 , further comprising the step of comparing information about blocks or sub-blocks from a main memory with information about blocks or sub-blocks of the cache to determine a hit if a match exists between the information about blocks or sub-blocks from the main memory with the information about blocks or sub-blocks of the cache. 
   
   
       15 . The method as recited in  claim 12 , further comprising the step of transferring sub-blocks to the filtered portion from the unfiltered portion employing transfer logic. 
   
   
       16 . The method as recited in  claim 15 , wherein the step of transferring includes examining sub-block usage bits in a directory to determine which sub-blocks were referenced while the sub-blocks resided in the unfiltered portion. 
   
   
       17 . The method as recited in  claim 16 , wherein the transfer logic transfers used sub-blocks, of the block just replaced, to the filtered portion; otherwise, if unused, the sub-block is discarded. 
   
   
       18 . The method as recited in  claim 12 , further comprising the step of comparing a number of used sub-blocks in a block to a threshold such that if the number of used sub-blocks is less than the threshold then used sub-blocks are transferred to the filtered portion. 
   
   
       19 . The method as recited in  claim 18 , wherein the threshold is dynamically adapted based upon used blocks and sub-blocks. 
   
   
       20 . A hierarchical cache memory system, comprising:
 a first level cache comprising:
 a filtered portion and an unfiltered portion, both of which are simultaneously accessed during a service request, 
 the unfiltered portion configured to store block sized components, each block being comprised of a plurality of sub-blocks, and including a usage bit to indicate that selected blocks evicted from the filtered portion have been previously used; and 
 the filtered portion configured to store sub-block sized components such that blocks evicted from the unfiltered portion have selected sub-blocks thereof cached in the filtered portion for servicing requests such that, for any access, a block or sub-block can only reside in one of the unfiltered portion or the filtered portion; 
   a second level cache comprising a directory for storing a usage pattern based upon usage bits such that if a miss occurs in the level one cache, blocks indicated as used by the usage bits are provided to the level one cache.   
   
   
       21 . The system as recited in  claim 20 , wherein the selected sub-blocks include used sub-blocks. 
   
   
       22 . The system as recited in  claim 20 , wherein the sub-blocks provide valid bits to indicate usage in addition to the usage bits such that sub-blocks retrieved by the level two cache to the level one cache include appropriate usage and valid bits to reduce bus bandwidth. 
   
   
       23 . The system as recited in  claim 20 , wherein a most recently used (MRU) sub-block is stored with the usage bits and if the MRU sub-block is referenced from the unfiltered portion of the level one cache, a prefetch is triggered for other sub-blocks of the reference block from the level two cache into the unfiltered portion of the level one cache.

Join the waitlist — get patent alerts

Track US2008215816A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.