CSAPP Cache Lab 笔记
现代计算机通过每一层都是下一层的缓存的抽象构建出存储器的层次结构, 依据程序的局部性原理巧妙解决了存取信息的速度远小于 CPU 处理速度的问题.
前置知识可看: CSAPP3e第六章(存储器层次结构) | Amiriox’s Storage
Cache lab 分为两个部分:
- 第一部分写一个模拟程序, 模拟缓存的行为;
如果对缓存的原理和行为理解透了难度不高,
主要难点是必须用 C 写 - 第二部分是优化一个矩阵转置的函数, 转置有着鲜明的”两个数组访问模式相反”的特点, 导致必然有一个数组的访问模式缓存不友好. 要理解分块技术和缓存冲突不命中的常见情况及调整措施. 这个 lab 要求比较极端, 给定的缓存组关联度是 \(1\), 也就是说只要是同一组的就会冲突不命中抢夺缓存行.
这是我做起来体感最痛苦的一个, 很多人也有相同的感受. 不过 lab
本身是没什么问题的, CMU 是一款我的问题