【问题标题】:L1 and L2 Miss Rates in SimpleScalar SimulationSimpleScalar 仿真中的 L1 和 L2 未命中率
【发布时间】:2012-04-03 01:06:54
【问题描述】:

我在 SimpleScalar 模拟工具中模拟了 4 个不同的二进制文件,对于每个二进制文件,L2 统一未命中率都大于 L1 数据未命中率。

在我的任务中,我想进行一些分析。我想到的第一件事是 L2 未命中率应该更小,因为它比 L1 缓存具有更高的层次结构和更大的大小。

此外,据我所知,只有在 L1 缓存中未命中时才会引用 L2。在我看来,L2应该有L1大部分时间没有的数据,所以它的丢失率应该更低。

但是,结果并不接近我的预期。

例如,

  • L1 数据丢失率:0.0269
  • L2 统一未命中率:0.0566

未命中率确定为misses / references缓存。

我的方法有什么问题?为什么 L2 未命中率大于 L1?

【问题讨论】:

  • 与缓存相关的问题(代码 + 数据)有多大?它们都更大,都更小,还是覆盖一个范围?两个缓存的典型引用计数是多少(即上面的绝对数字是多少,而不是比率)?
  • 例如,如果问题是大小 n 并且所有内容都适合 L1,那么您将在 L1 和 L2 中有 n 个未命中,但在 L1 中有 kn 个引用,在 L2 中有 n 个引用。所以 L1 比率会很小,L2 比率会统一。绝对数量和大小至关重要。
  • 我的输入文件如下所示:'25000 e 2231'。我不知道这意味着什么。感谢您的帮助。

标签: performance caching simulation


【解决方案1】:

命中/未命中率仅考虑试图使用特定缓存的数据访问。因此,如果您正在使用的数据已经在寄存器中,则甚至不需要检查 L1 缓存,因此 L1 不会记录命中或未命中。类似地,如果在 L1 中找到数据,则 L2 不会记录命中或未命中。 L2 的未命中率基本上是(# 次数据不在 L2 中)除以(# 次 L2 被访问),或者等效地(# 次数据不在 L2 中)除以(# 次数据不在 L1 中) .

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2013-01-20
    • 2013-04-23
    • 2017-09-26
    相关资源
    最近更新 更多