0

我的任务是编写一个软件工具来测量不同级别的高速缓存(L1、L2、L3)的命中和未命中。该程序应该用我熟悉的 c/c++ 编写,但从未对硬件做过如此低级的事情。我不是在寻找解决方案,只是在寻找我可以使用哪些工具、库和函数的方向。

4

2 回答 2

1

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

于 2014-08-25T09:57:44.957 回答
0

有几个开源模拟器可以将缓存层次结构实现到合理的细节(例如,MArss86、 Simics 、M5,实际上还有其他几个)。从您的问题中清楚地注意到您的需求是什么。请用谷歌搜索它们——我相信你会找到很多。

而且,还有一个著名的缓存访问建模模拟器——CACTI。这些应该会给你一些关于如何开始你自己的实现的想法。

使用这些工具的优点是它们还允许您执行一些架构空间探索(改变参数/配置并查看它们的影响)

于 2014-08-18T21:25:02.673 回答