A cache is configured to receive direct access transactions. Each direct
access transaction explicitly specifies a cache storage entry to be
accessed in response to the transaction. The cache may access the cache
storage entry (bypassing the normal tag comparisons and hit determination
used for memory transactions) and either read the data from the cache
storage entry (for read transactions) or write data from the transaction
to the cache storage entry (for write transactions). The direct access
transactions may, for example, be used to perform testing of the cache
memory. As another example, direct access transactions may be used to
perform a reset of the cache (by writing known data to each cache entry).
In embodiments employing error checking and correction (ECC) mechanisms,
direct access write transactions could also be used to recover from
uncorrectable ECC errors, by overwriting the failing data to eliminate
the errant data. In one embodiment, the cache may alter the state of its
replacement policy in response to a direct access transaction explicitly
specifying a particular way of the cache.