A compromise between a direct mapped cache and a fully associative cache where each address is mapped to a certain SET of cache locations. The address space is divided into blocks of 2^m bytes (the cache line size), discarding the bottom m address bits. An "n-way SET associative" cache with S SETs has n cache locations in each SET. Block b is mapped to SET "b mod S" and may be stored in any of the n locations in that SET with its upper address bits as a tag. To determine whether block b is in the cache, SET "b mod S" is searched associatively for the tag. A direct mapped cache could be described as "one-way SET associative", i.e. one location in each SET whereas a fully associative cache is N-way associative (where N is the total number of blocks in the cache). Performance studies have shown that it is generally more effective to increase the number of entries rather than associativity and that 2- to 16-way SET associative caches perform almost as well as fully associative caches at little extra cost over direct mapping. (2004-10-18)