在x86体系结构中查看cpu缓存内容

时间:2013-10-16 18:04:21

标签: caching cpu

如何查看或转储基于x86的体系结构的cpu缓存内容?每次有缓存刷新时,我怎样才能看到刷新了什么/哪里?

2 个答案:

答案 0 :(得分:1)

你不能,真的。 CPU缓存旨在对CPU上运行的代码透明。它具有加速代码执行的效果,但CPU管理缓存的所有内容:要保留的内容,从中删除的内容,何时从中读取内容,以及所有内容。它不是为程序员设计的(尽管英特尔/ AMD可能会提供调试工具,可以检查特殊的调试寄存器以查询此类信息)。

答案 1 :(得分:1)

options,但实施起来非常重要。

这个想法是你需要转储缓存而不破坏它的状态。说起来容易做起来难,但原则上它很简单:写出触发最后三次缓存更改的地址中的所有内容,然后移动整个L3缓存宽度,直到读完所有值,触摸外面的价值观然后,您可以从那里开始向更高级别的缓存工作。我在这篇论文中并没有真正提到他们如何做到这一点,但似乎有一种暗示他们通过缓存自上而下而不是自下而上,正如我所建议的那样。同样,所有这些的关键部分不是破坏任何缓存。

尽管如此,它大大降低了应用程序性能,降低了100-1000倍。由于数据量的原因,本文涉及的一个方面是硬件压缩。