The modern middle ground. The cache is divided into Sets. A block of RAM maps directly to a specific set, but once inside that set, it can be placed in any available line within it (for example, a 4-way set-associative cache allows 4 choices per set).