Cache失配原因可分成以下三类: (3C模型)
1、被迫(compulsory)失配:( 冷启动失配): 第一次访问存储块时,由于该块不在cache中,所以必须首先将引块从主存取入cache.
绝对次数与程序有关,随着容量增加成比例增加。可以适当增大快
2、容量(Capacity)失配:因cache不能容纳所有存储块,当程序再次访问到曾装入cache又已被替换出去的某块时,出现容量失配。
与关联度无关,容量增大,容量失配率减少。
3、冲突(conflict)失配:在采用组关联和直接映象方式的cache中,主存的很多块都将对应cache的同一块。因这一原因,当程序再次访问到曾装入cache又已被替换出去的某块时,出现冲突失配。
容量一定时,关联度越高,冲突失配越小。
通常情况下,失配率和访问时间是相互制约的,最好的就是选取折中的方式。