admin管理员组

文章数量:1611903

在Hennessy和Patterson的经典教材《软硬件接口》《量化研究方法》中,介绍了3C模型。但对冲突缺失的定义,却含混不清;从网上搜到的答案也是各执一词。

终于在1990年DEC公司实验室的一篇论文中找到了较为权威的说法:


冲突缺失,只在直接映射和组相连的cache中存在(在全相联cache中不存在),指的是cache中其他的set中还有空行,但某一set的全部way已经占满,不得不置换掉一个缓存行,而再次访问这个被淘汰掉的行时导致的缺失。(如果当前cache是全相联,则这次缺失不会发生,因为还有空行,没有必要淘汰掉一个缓存行)

总结一下:

在全相联cache(单CPU)情况下,除了compulsory miss(首次缺失、冷缺失)外的全部缺失都是容量缺失。(多CPU因为写无效协议,可能造成一致性缺失)

在直接映射、组相联cach(单CPU)情况下,一个缺失必定发生在某个set中,该缺失计入冲突缺失还是容量缺失取决于这个缓存行在被淘汰时,其他set中是否还存在空闲行。

如果该行被淘汰时,其他的set中还有空闲行,那么下次访问该行时发生miss,要计入冲突缺失;(含义是整个cache没有用完,是某个set中的局部冲突造成的行淘汰、缺失)

如果该行被淘汰时,其他的set也被占满了,没有多余的容量,那么下次访问该行时发生miss,要计入容量缺失。(含义是因为cache容量小,造成的淘汰和缺失)


本文标签: conflictCapacity