A form of hardware
cache in which each cache location may contain any block from the main
memory. In other forms of cache (
Direct-Mapped Cache and
Set-associative cache) any particular cache location may contain only certain main-memory blocks). Some of the cache must
therefore be set aside for recording the full address of each main memory block that is cached, since no part of the main memory address can be inferred from the cache location. A comparator is required for every
block so that these tags can be checked against the desired main-store block address.
A fully-associative cache can be seen as a set-associative cache where each set contains only one block.