跳转至

测试 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) 函数,完成模拟器缓存相连度的测量。


最后更新: 2024年5月20日
作者:cuibst