caches are a compromise between fully associative caches and direct-mapped caches. In a set-associative cache, there are a fixed number of locations (called a set) that a given address may be stored in. The number of locations in each set is the associativity of the cache.