由于Cache的内容只是主存内容的一个子集,应当与主存内容保持一致,而CPU对Cache的写入更改了Cache的内容。为此,可选用写操作策略使Cache内容与主存内容保持一致。
1、写回法(Write-Back)
当CPU写Cache命中时,只修改Cache的内容,而不是立即写入主存;只有当此块被换出时才写回主存。
使用这种方法写Cache和写主存异步进行,显著减少了访问主存的次数,但是存在数据不一致的隐患。实现这种方法时,每个Cache块必须配置一个修改位,以反映此块是否被CPU修改过。
2、全写法(Write-Through)
当写 Cache命中时,Cache与主存同时发生写修改。
使用这种方法写Cache和写主存同步进行,因而较好地维护了Cache与主存的内容一致性。实现这种方法时,Cache中的每个块无需设置修改位以及相应的判断逻辑,但由于Cache对CPU向主存的写操作没有高速缓冲功能,从而降低了Cache的功效。
3、写一次法(Write-Once)
写一次法是基于写回法并结合全写法的写操作策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存,以便于维护系统全部Cache的一致性。