【发布时间】: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