写分配法:当CPU对cache写不命中时,先把主存块调入cache,然后在cache中修改。
写回法:写命中时只写入cache而不写入主存,关键是只有等到cache被替换后才写回主存。
很明显因为写回法是 cache 命中时先只更新 cache,所以当第一次发生未命中时,搭配写回法最好是先调入 cache 中再更新,这样的话只要以后再更新这个地址,只要更新 cache 里的内容就好了,效率更高,等到它要被替换了才写回主存。
非写分配法:直接往主存写数据,不调入cache。
全写法:CPU把数据同时写入cache和主存中,使用写缓存缓解速度不匹配问题,若是写太频繁了易发生饱和导致阻塞。关键是cache被替换时不需要写回主存。
由于非写分配法在写未命中时直接写入主存,且不调入cache,所以下次再写依旧是往主存中写,直到到读未命中时才会调入cache,但此时已经是同步的了,所以当cache被替换时是不需要再写回主存中,与全写法搭配。