我在互联网上找到的资源都没有解释区分不同类型的缓存未命中。有人可以帮助我更改配置或代码中的哪些内容以仅测量冲突未命中?
答案 0 :(得分:0)
BaseTags有一个名为tagsInUse的成员变量。每次以前无效的标签条目变为有效时,它都会增加。
考虑到当仍有空闲(无效)缓存行时会产生冲突未命中,但是放置策略决定选择逐出有效块,您只需要创建一个递增的miss stats变量(可以使用每当发生写入未命中时,在 src / mem / cache / base.hh 内的incMissCount(PacketPtr pkt)内的if if(检查 src / mem / packet.hh 以获取MemCmd类型我会说WritebackDirty,WritebackClean,WriteClean,CleanEvict是你应该查找的,但你应该仔细检查一下)并且你还没有使用所有缓存条目(tagsInUse< size)。