Cache写策略
这一小节我们讲一下cache的写策略,有写命中和写不命中的两种情况,写命中分为全写法和写回法,写不命中分为写分配法和非写分配法。全写法+非写分配法常用于各级cache,写回法+写分配法常用于cache-主存。
1.写命中
写命中分为全写法和写回法两种
写回法——当CPU对cache命中的时候,只修改cache的内容,而不立即写入主存,只有当此块换出才写主存。注意:写回法有脏位,专门用来表示cache是否被修改过,减少了访存次数,但存在数据不一致的隐患
全写法——当CPU对cache命中时,必须把数据同时写入cache和主存,一般使用写缓冲,若写操作不频繁,则效果好,若写操作很频繁,可能会因为写缓冲饱和而发生堵塞
2.写不命中
写不命中分为写分配法和非写分配法
写分配法——当CPU对cache写不命中时,把主存中的块调入cache,在cache中修改,通常搭配写回法使用
非写分配法——当CPU对cache写不命中时,只写入主存,不调入cache,搭配全写法使用,只有“读”操作未命中时才调入cache
3.多级Cache
各级cache之间常采用“全写法+非写分配法”,cache-主存之间常采用“写回法+非写分配法”