0. 写策略种类

  • 写直通
  • 写回
  • 非缓存

下面主要讨论写直通写回两种策略。

1. 两种策略的相同点:

  • 读操作: 两种策略在读操作上完全相同。当处理器需要读取数据时,首先会检查缓存中是否已经存在该数据。如果数据存在于缓存中(缓存命中),则直接从缓存中读取数据,无需访问主内存。如果数据不存在于缓存中(缓存未命中),则从主内存中读取数据,并将数据加载到缓存中,然后返回给处理器。

2. 两种策略的不同点:

  • 写操作: 两种策略在写操作上有所不同。
    • 写穿透: 写入数据时,无论数据是否在缓存中,都直接写入主内存,不加载到缓存中。
    • 写回: 写入数据时,如果数据不在缓存中,则先将数据从主内存加载到缓存中,然后再写入缓存。
  • 缓存管理: 两种策略在缓存管理上也有所不同。
    • 写穿透: 不进行缓存管理,直接写入主内存。
    • 写回: 进行缓存管理,将数据加载到缓存中,并进行后续的缓存管理操作。

即对写时和写后是否进行缓存管理。

3. 两种策略的选择:

  • 写穿透: 更适合于对数据一致性要求较高的场景,例如实时系统、数据库系统。
  • 写回: 更适合于对性能要求较高的场景,例如图像处理、视频编码。

4. 缓存行被替换:

  • 当缓存满了,需要腾出空间来存储新的数据时,就会将旧的数据从缓存中移除,这个过程就叫做缓存行被替换。
  • 在写回策略中,当一个缓存行被替换时,如果该缓存行中的数据已经被修改过,那么处理器会将修改后的数据写回主内存。

5. 写回策略被称为“写回”的原因:

  • 写回策略将数据写入缓存后,并不立即将修改后的数据写回主内存,而是延迟到缓存行被替换或数据被显式写回时才进行写回操作。