Caching technology and techniques.
Direct Cache - specific 'lines' in memory mapped to one and only one line in cache. High competition for lines, especially lower indexed ones. More common in single task (RISC?) CPUs.
Associative cache - any 'line' in memory can be mapped to any line in cache. Requires search of all entries to find target line. Does not use line index. But requires longer tag field. More useful when working with a small number of large lines or blocks, such as hard drive track caching.
Set Associative cache - specific 'lines' in memory mapped to one line in cache. But cache has 2 or more instances of that line. Choice of fill or replacement determined by an algorithm. 2-way or 4-way common on CPUs with small number of tasks. 8-way for modern CISC CPUs. The more ways, the more complex the logic to quickly ID correct 'way'.
Skewed Associative - similar to set associative. But line index from different segments are hashed so they don't compete for the same line in cache. Competition for lines in a standard cache are not evenly distributed, but often favor lower line indexes. Having a way to predictably map a second line x to a different line in the cache can improve hit performance. 2-way skew may perform as well as a 4-way set associative. However, calculating hash on line may had some time. May not completely eliminate line competition. And replacement policies may be more complex. see : https://sites.google.com/site/paulclaytonplace/andy-glew-s-comparch-wiki/skewed-associativity Acts more like an associative cache but with the ability to predict where any line may land.
Review Fast index. Direct Cache Direct cache access Set associative Associative cache features Selecting slots When to refresh main memory