Performance of applications that use enough memory are highly dependent on cache behavior. By understanding how a cache works, we can predict a program’s cache performance and sometimes change the program to obtain substantially better performance.
- Cache 1: Overview 3:51An introduction to caching and the cache hierarchy on modern machines.
- Measuring the effect of access order on a benchmark program’s performance.
- A simple example that demonstrates temporal locality and how the cache hierarchy provides better performance for programs with more temporal locality.
- A simple example that demonstrates spatial locality and how blocking in a cache provides better performance for programs with more spatial locality.
- A summary of locality effects and an explanation of the picture that is on the front of the textbook.
- More details on how an address and its value is found in a cache, which has implications for predicting cache performance.
- Examples to demonstrate the cache-lookup process.
- Brief considerations of how a cache should deal with replacing entries and writing values to memory (since we otherwise mostly concentrate on reading values from memory).
- Using what we’ve learned about cache implementations to predict a program’s performance in a given cache configuration.
- How changes to the previous example program or the cache configuration have different cache performance.
- An extended example of predicting cache performance and investigating alternative implementations to improve cache performance.
- Cache 12: Blocking 6:09Obtaining even better performance through a more complex traversal of an array, including an analysis of why it can perform better.