fully associative cache

fully associative cache

A cache where data from any address can be stored in any cache location. The whole address must be used as the tag. All tags must be compared simultaneously (associatively) with the requested address and if one matches then its associated data is accessed. This requires an associative memory to hold the tags which makes this form of cache more expensive. It does however solve the problem of contention for cache locations (cache conflict) since a block need only be flushed when the whole cache is full and then the block to flush can be selected in a more efficient way.

See also direct mapped cache, set associative cache.
References in periodicals archive ?
Capacity miss is a miss that is not a compulsory miss but which misses in a fully associative cache. That is due to the limited size of the cache.
Like Hill, we measure conflict and capacity misses with respect to a fully associative cache using an LRU replacement policy; we did not use the more accurate but more time-consuming metric of Sugumar and Abraham [1993].
We found that a 32KB fully associative cache would remove almost all conflict misses for these codes, hence the significant decrease.
show, for example, that an n-entry, fully associative cache that implements a least recently used (LRU) replacement policy includes all the contents of a similar cache with only (n - 1) entries.
As a consequence of the inclusion property, the number of hits in a fully associative cache of size n ([hits.sub.n]) can be computed from this array by adding all the hit counts up to a stack depth of (n - 1) as follows:
Since this requires an expensive search through all cache lines for every instruction fetch, fully associative caches are used only when the number of cache lines is small, such as in translation lookaside buffers (TLBs).

Full browser ?