US2008215816A1PendingUtilityA1
Apparatus and method for filtering unused sub-blocks in cache memories
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-modified1 . 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.