A method and apparatus for increasing the performance of a computing system and
increasing the hit ratio in at least one non-L1 cache. A caching assistant and
a processor are embedded in a processing system. The caching assistant analyzes
system activity, monitors and coordinates data requests from the processor, processors
and other data accessing devices, and monitors and analyzes data accesses throughout
the cache hierarchy. The caching assistant is provided with a dedicated cache for
storing fetched and prefetched data. The caching assistant improves the performance
of the computing system by anticipating which data is likely to be requested for
processing next, accessing and storing that data in an appropriate non-L1 cache
prior to the data being requested by processors or data accessing devices. A method
for increasing the processor performance includes analyzing system activity and
optimizing a hit ratio in at least one non-L1 cache. The caching assistant performs
processor data requests by accessing caches and monitoring the data requests to
determine knowledge of the program code currently being processed and to determine
if patterns of data accession exist. Based upon the knowledge gained through monitoring
data accession, the caching assistant anticipates future data requests.