我在SimpleScalar仿真工具中模拟了4个不同的二进制文件,对于每个二进制文件,L2统一缺失率大于L1数据未命中率。
在我的任务中,我想做一些分析。我首先想到的是L2未命中率应该更小,因为它具有更高级别的层次和更大的大小而不是L1缓存。
此外,据我所知,仅当L1缓存中出现未命中时才会引用L2。从我的观点来看,L2应该拥有L1大部分时间都没有的数据,因此它的未命中率应该更低。
然而,结果并不接近我的预期。
例如,
未命中率被确定为缓存的misses / references
。
我的做法有什么问题?为什么L2未命中率大于L1?
答案 0 :(得分:0)
命中/未命中率仅考虑尝试使用特定缓存的数据访问。因此,如果您使用的数据已经在寄存器中,则无需检查L1缓存,因此L1不会注册命中也不会注册。类似地,如果在L1中找到数据,则L2不会记录命中或未命中。 L2的未命中率基本上是(#次数不在L2中)除以(访问L2的次数),或等效地(#次数不在L2中)除以(数据不在L1中的次数)