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.