为什么要cache替换策略
我们随着摩尔定律,process和memory的性能差距越来越大,我们要加一个cache中间层来减少这个差距,同时程序的运行具有空间局部性和时间局部性的特点。
怎么设计替换策略
下面主要介绍的是一组就一行的策略。
通过后面三位来确定哪个位于block ,同时因为地址和block位置之间还缺少了不少bit,为了唯一确定存储的是memory的哪个位置,我们要添加一个tag,同时是否有元素,是不是被就改过,我们要加个valid bit和dirty bit。
block_size大有上面弊端
越少的block slot,少的话,就越多的竞争,可能引起抖动现象。同时块大的话,tranmit时间也要发的长,cache miss的话,cpu pipeline就要stall下来等待。
写回和直写
如果是写回的话,就是依赖于替换策略,如果是直写的话,就是直接立即写入内存。