计算Cache Hit和Miss的程序

时间:2014-08-06 18:27:19

标签: c++ caching computer-architecture hit

我的任务是编写一个软件工具来测量不同级别的缓存(L1,L2,L3)的命中和未命中。 程序应该用c / c ++编写,我觉得很舒服,但从来没有对硬件做过这么低级别的事情。 我不是在寻找解决方案,只是关于我可以使用哪些工具,库和函数的方向。

2 个答案:

答案 0 :(得分:1)

在假设的缓存配置上运行二进制文件时,您只是在寻找统计信息(缓存命中率)吗?如果是,请查看Cachegrind。该页面上有一个实施部分,链接到博士学位并附上一些细节。它可能很有用。

答案 1 :(得分:0)

有几个开源模拟器实现了一个合理细节的缓存层次结构(例如,MArss86,Simics,M5,实际上还有其他几个。请注意从您的问题中清楚地了解您的需求。请谷歌为他们 - 我相信你会找到很多。

并且,有一个众所周知的缓存访问建模模拟器 - CACTI。这些应该为您提供有关如何开始自己的实现的一些想法。

使用这些工具的优势在于它们还允许您执行一些建筑空间探索(改变参数/配置并查看其影响)