测试 Cache 的相联度
实验过程
实验思路 1
- 使用一个 2 倍 Cache Size 大小的数组
- 将数组分为 2^{n} 块,只访问其中的奇数块
- 逐渐增大 n 的取值,当某一次访问变慢的时候,2^{n-2} 就是相联度
实验思路 2
- 计算总共的 Cache Line 数量,记为 X
- 使用一个 2 倍 Cache Size 大小的数组
- 每次使用 X/n 个缓存行的步长,多次访问这个数组
- 当从某一次测试开始,访问时间显著增加,则该次对应的 n 就是相联度
注意:
- 控制访存次数
- 可以使用其他的方法进行测试
- 在报告中给出你所使用的方法以及对应的理论分析
实验步骤
参考第一节的步骤,编写负载,并在 cache-exp/associativity.cpp
编写 unsigned MeasureCacheAssociativity(ProcessorAbstract *p, unsigned cacheSize, unsigned cacheBlockSize)
函数,完成模拟器缓存相连度的测量。
最后更新:
2025年3月11日
作者: