cache 失效产生原因,可分为以下三类:
(1)强制性失效
当第一次访问一个块时,该块不在cache中,需从下一级存储器中调入cache,这种失效称为强制性失效(Compulsory Miss),也称为冷启动失效或首次访问失效。
(2)容量失效
即使采用全相联映像,但cache容量有限,也会使得程序执行时所需的块不能全部调用cache中,则当某些块被替换后,若重新被访问,就会发生失效。这种失效称为容量失效(Capacity Miss)。
(3)冲突失效
在组相联或直接映像cache中,多个块映像到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就发生了冲突失效(conflict miss),这种失效也称为碰撞时效(collision)或干扰失效(interfere)。