如果某个线程修改了 cache的数据,那么要不要同步到主存呢? 这一块又有几个策略
- 写回法(write-back)(不立即写入主存,当这一块被换出时才写回主存)
- 全写法
- 写分配法(缓存没命中时)
write-back: 当CPU对 cache 写命中时,只修改 cache 的内容,而不立即写入 主存,只有当此块 被换出时,才写回主存
write-cache: 直写法(立即修改和不立即修改的策略)
如果没有命中,有写分配法
写策略保证了 内存 和 cache 的数据一致性
cache 离 cpu 越远,速度越慢,容量约大
图中
l1 对 l2 使用 全写法, l2 对主存使用写回法
这样避免了经常频发写的导致同步到主存导致效率低的问题(写饱和)