In a computer or microprocessor system having a plurality of resources making
memory requests, a caching system includes a source tag generator which, depending
on the embodiment, could reside in the requesting system resource, in a bus arbiter,
or in a combination of a bus arbiter and a switch arbiter, or elsewhere. The system
also includes cache control circuitry capable of using the source tag to make cacheability
decisions. The cache control circuitry, and therefore the cacheability decisions,
could be fixed-e.g., by a user-or could be alterable based on a suitable algorithm-similar,
e.g., to a least-recently-used algorithm-that monitors cache usage and memory requests.
The caching system is particularly useful where the cache being controlled is large
enough to cache the results of I/O and similar requests and the requesting resources
are I/O or similar resources outside the core logic chipset of the computer system.