;-*- Text -*- ; 3-Jun-98 ; ; RCS: $Id$ ; notes for Wednesday, 3-Jun-98 1. cache associativity 2. virtual memory (in 5 minutes) 3. show & tell ---------------- Cache associativity. 1. We talked about adding rows to the cache & indexing using part of the address (each row has a tag, but the tag is smaller); we talked about adding blocking to the cache (multiple data with the same tag). The third dimension in which to expand a cache is to duplicate the whole schmoodle. This dimension is called "associativity". A "direct-mapped" cache (what we've been building (with or without blocking)) has associativity = 1. An n-way "set-associative cache" duplicates the direct-mapped hardware n times. Conventionally this is drawn as n caches side by side, and you can say that an n-way associative cache has "n columns". Also, in a set-associative cache, the rows are sometimes called "sets". 4-way set-associative w/128 sets, 8 bytes/block = 128 rows, 4 columns, 8 data bytes/block or 32 data bytes/row = 4KBytes total cache size. A "fully-associative cache" has 1 row and a column for every block in the cache. Small, fully-associative caches are often used for special-purpose cache applications, but it's too expensive to make them very big (all those comparators & distributed mux circuitry). 2. Associativity adds a new ambiguity