0


计算机组成原理 —— Cache的写策略

计算机组成原理 —— Cache的写策略

我们上一节课介绍了Cache的调入问题,现在我们有一个新的问题,如果我们CPU对我们的Cache块进行了修改,我们用什么样的方式保证Cache和主存当中数据的一致性呢?,这个是我们这节讨论的问题:

在这里插入图片描述
我们整体上分为两大类,命中或未命中
在这里插入图片描述
我们先来看写命中的情况:

写命中

Write Back(回写模式)

  1. 只有当数据写入Cache时进行操作,主存的更新延迟到Cache行被替换出去时才进行
  2. Cache行可能有一个“脏位”(Dirty Bit),用来标记该行数据是否已经被修改过
  3. 当该行被替换时,如果脏位被设置,则数据会被写回到主存,以保持数据的一致性。
  4. 这种策略提高了写入性能,但是增加了缓存一致性管理的复杂度。

在这里插入图片描述

Write Through(直写模式)

  1. 当CPU写入数据到Cache时,同样的数据也会被写入主存
  2. 这种策略确保了Cache和主存的数据始终保持一致,简化了多处理器环境下的缓存一致性问题
  3. 缺点是每次写入都会访问主存,降低了写入性能,因为主存访问速度远慢于Cache

在这里插入图片描述

写缓冲(Write Buffer)

写缓冲(Write Buffer)是计算机系统中用于暂时存储写操作数据的一种机制,主要用于提高系统的写入性能和效率。在处理写入操作时,写缓冲可以起到以下几个关键作用:

  • 写缓冲可以收集多个写入操作,然后一次性地将它们写入到较慢的存储设备,如主存或磁盘,这样可以减少对这些设备的访问次数,从而提高整体的写入速度。
  • 由于写缓冲通常位于高速的存储器上,如CPU寄存器或高速缓存,所以它可以快速地接收来自CPU的写入数据,而不会使CPU等待慢速存储设备的响应。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

写未命中

Cache的写策略是决定当处理器写入数据时,数据如何在Cache和主存之间同步的规则。主要的写策略有以下几种:

写分配(Write Allocate)

  • 当写入未命中的数据时,Cache将从主存中读取整个Cache行,并将其放入Cache中,然后进行写入操作
  • 这种策略适用于数据存在空间局部性的场景,因为读入整个行可以利用后续的读操作。

在这里插入图片描述

不写分配(No Write Allocate)

  1. 当写入未命中的数据时,数据直接写入主存,而不将该数据放入Cache
  2. 这种策略减少了Cache的写入流量,但是可能会导致读操作的性能下降,因为读操作不能从Cache中受益。

在这里插入图片描述

多级Cache

现在的电脑一般会设置多个Cache,越靠近CPU的Cache,速度越快:
在这里插入图片描述大家可以去搜自己的任务管理器,看看自己有多少个Cache:
在这里插入图片描述


本文转载自: https://blog.csdn.net/qq_67693066/article/details/140497837
版权归原作者 落水 zh 所有, 如有侵权,请联系我们删除。

“计算机组成原理 —— Cache的写策略”的评论:

还没有评论