【问题标题】:L1 Data Cache ConfigurationL1 数据缓存配置
【发布时间】:2014-01-17 16:41:22
【问题描述】:

我们目前正在处理 1 级缓存未命中问题,根据我们在 PAPI 帮助下收集的结果,我开始认为我们可能做错了什么。

我目前正在使用 Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz 的笔记本电脑上运行测试。 根据规范,L1 数据缓存大小为 32 KB,具有 8 路组关联性,每行有 64 个字节。因此我们得出结论,它有 64 套,每套有 8 行。

给定一个 32 位的内存地址,我们认为它在 L1 缓存中的放置结构如下:

TAG |  line id  |   set id   |  line offset
     ----------  ------------  -------------
       3 bits       6 bits       6 bits

这个假设是真的吗?

【问题讨论】:

    标签: linux caching memory


    【解决方案1】:

    不完全是。 “8 路”的意思是特定的内存行可能位于 8 个不同的高速缓存行中的任何一个中。因此,您的缓存实际上确实包含 8 组不同的 64 行,但您的标签(假设这里是 64 位系统)实际上是 52 位(理论上,假设所有 64 位都已实现,这并不完全正确),与6 位标识行 id,然后是 6 位偏移量。高速缓存电路将在所有 8 个不同的集合中查找该 52 位标记(通常并行或尽可能接近)。没有从地址分配位来指定“方式”-ness...

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2021-09-30
      • 2017-08-12
      • 1970-01-01
      • 2010-10-27
      • 2015-02-07
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多