以编程方式确定L1缓存的关联性

时间:2014-08-10 16:22:34

标签: c algorithm caching cpu-cache

我搜索了类似的问题;一个是相似的,但没有明确的答案。

我可以编写一个C程序来确定缓存的行长度和大小,但我想不出确定其关联性的方法。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

k-way关联缓存的可观察伪像是对同一组的k + 1访问将导致驱逐。因此,您会看到在紧密循环中锤击k个高速缓存行和在紧密循环中敲击k + 1个高速缓存行之间每秒访问量的显着差异。在紧密循环中对一组中的k + 1个高速缓存行进行锤击并且在紧密循环中敲击k + 1个高速缓存行(而不是整个集合中)之间也存在性能差异。

您将我链接到Varadharajan Chandran's Master's thesis,它会执行类似的操作(以及更多内容),以便推断处理器缓存和TLB的许多特性。