首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现缓存建模框架

实现缓存建模框架
EN

Stack Overflow用户
提问于 2013-12-07 13:01:30
回答 1查看 943关注 0票数 2

我想对Intel体系结构中缓存的行为进行建模(LRU、包容性、K-Way关联等等)。我阅读过wikipedia、Ulrich Drepper关于内存的伟大论文和Intel手册第3A卷:系统编程指南(第11章,但这并不是很有帮助,因为它们只解释了在软件级别上可以操作的内容)。我也读过一堆学术论文,但和往常一样,他们没有把代码用于复制.即使是在要求之后。我的问题是,是否已经有一个公共可用的框架来建模缓存行为?如果没有,是否有一份文件详细描述了英特尔在最深层次上的缓存行为?我找不到一个。

EN

回答 1

Stack Overflow用户

发布于 2013-12-07 13:20:41

这里有大量的缓存模拟器,例如,用于迪涅罗 (双关语显然是有意的)应该相当简单,并且经常用于教育目的。

请注意,这个模拟器是跟踪驱动的,这意味着它提供了一个内存访问地址列表,它不知道如何运行二进制文件。您可以通过使用二进制工具来模拟这些跟踪。

  • http://software.intel.com/en-us/articles/pintool
  • http://wiki.qemu.org/Main_Page
  • http://bochs.sourceforge.net/

等等。请注意,其中一些已经提供了内部缓存模拟器,可能还可以使用。

其他模拟器可以模拟完整的CPU/系统行为,而不仅仅是缓存,因此可以支持运行二进制文件。其中大多数都包括一个模拟的缓存系统。例如:

  • http://gem5.org/Main_Page
  • http://www.simplescalar.com/
  • http://www.multi2sim.org/
  • http://marss86.org/~marss86/index.php/Home

和其他许多人

另一方面,编写自己的缓存模拟器相当简单--如果您可以处理内存跟踪(编写实际的前端要复杂得多)。您将无法获得关于Intel/AMD产品中实际缓存的过于详细的规范,但是基本功能在任何计算机体系结构教科书甚至wikipedia中都有详细说明,参数(大小、相关性、一致性策略)主要记录在已出版的指南中,并且可能在产品代际之间经常发生变化。如果遇到任何特定的问题,您总是可以在这里问:)

编辑:

关于问题的第二部分--没有关于英特尔CPU的确切缓存实现的公开文档,但是“规范”(大小、关联性、策略)在优化指南中:

现在,对这些缓存进行建模应该是简单的,但是可能会有一些隐藏的警告,比如关机特性或专门的LRU行为。在这里可以找到这样一个报告的例子- http://blog.stuffedcow.net/2013/01/ivb-cache-replacement/ (如果是这样的话,它可能是值得实现的准确性),但除此之外,我认为总体行为不应该受到这些细节的太大影响,为任何实际用途。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20441667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档