大家都知道cache在计算机系统中至关重要。但cache不是完美的,由于冲突,它有一定的限制。总共有4个限制也就是“4C”:
Compulsory
Capacity
Conflict
Coherence
“Compulsory”发生在系统启动期间。复位后,cache是空的,任何cache访问都将导致cache miss。
“Capacity ”的发生是因为cache的大小是有限的。理想情况下,如果cache无限大,所有内容都存储在cache中,并且不会cache miss。然而,在真实系统中,当cache已满时,对新数据块的访问将导致cache miss。
“Conflict ”是因为不同的数据块可能共享相同的cache位置。“稍后”数据可能会evict “更早”的缓存数据块。
“Coherence ”发生在cache一致性系统中。例如,CPU A和B位于cache coherence 系统中,数据块X存储在CPU A的cache中。如果CPU B需要写入X,数据块X将从CPU A的cache中驱逐出或者标记无效。一段时间后,如果CPU A需要再次访问X,将导致cache miss。
总结
通过增加cache大小,可以减少“Capacity ”和“Conflict ”,但“Compulsory ”和“Coherence”保持不变。
通过增加cache关联性,可以减少“Conflict ”,但其他“3C”将保持不变。