【问题标题】:Accessing elements within the same set in an n-way set associative cache在 n 路集合关联缓存中访问同一集合中的元素
【发布时间】:2012-11-25 05:42:55
【问题描述】:

如果您不知道关联级别或缓存本身的大小,是否有任何方法可以保证您只访问映射到 n 路集合关联缓存中相同集合的块?我知道给定关联性级别或缓存大小都可以做到这一点,但在这种特殊情况下,我所得到的只是对缓存大小的低调估计。我已经考虑了一段时间,我开始相信这是不可能的,但我不确定。

为了这个问题,请假设不可能通过任何方式获得关联级别或缓存大小。

这样做的原因是我试图定量确定关联级别,但我用来定量确定缓存大小的算法仅给出了缓存大小为 2 的幂的准确结果,它给出了最接近的幂两个估计,否则。不幸的是,我目前正在运行的机器有 3MB L2 缓存。

【问题讨论】:

    标签: caching set cpu-cache


    【解决方案1】:

    在做了更多研究并询问了计算机架构教授之后,似乎没有万无一失的方法来保证如果您不知道缓存大小或缓存的关联性,您只会访问映射到同一组的块.

    给定缓存大小 N,您可以访问由 N 字节或 N 字节的任意倍数分隔的数组元素,随后拉入的每个块都将映射到同一个集合。这是保证您只访问映射到同一集合的块的最简单方法。

    如果你不知道缓存大小,你能做的最好的就是估计。例如,如果您访问以 32MB 分隔的数组元素,那么您可以保证仅访问映射到相同集合的任何缓存大小的块,该缓存大小是 2 的幂,最大为 32MB。奇数大小的缓存不会有同样的保证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-24
      • 2014-01-04
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多