A system and method of managing cache hierarchies with adaptive
mechanisms. A preferred embodiment of the present invention includes, in
response to selecting a data block for eviction from a memory cache (the
source cache) out of a collection of memory caches, examining a data
structure to determine whether an entry exists that indicates that the
data block has been evicted from the source memory cache, or another peer
cache, to a slower cache or memory and subsequently retrieved from the
slower cache or memory into the source memory cache or other peer cache.
Also, a preferred embodiment of the present invention includes, in
response to determining the entry exists in the data structure, selecting
a peer memory cache out of the collection of memory caches at the same
level in the hierarchy to receive the data block from the source memory
cache upon eviction.