首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写回和写缓存?

写回和写缓存?
EN

Stack Overflow用户
提问于 2014-11-23 10:25:28
回答 5查看 254.3K关注 0票数 158

我的理解是,这两种方法的主要区别在于,在“写通”方法中,数据立即通过缓存写入主内存,而在“写回”中,数据是在“稍后时间”中写入的。

我们还需要在“以后的时间”中等待记忆,那么“写通”的好处是什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-11-27 01:54:52

主存写入的好处是它简化了计算机系统的设计。有了写通,主内存总是有一个最新的复制行.因此,当读取完成时,主内存总是可以用请求的数据进行回复。

如果使用写回,有时最新的数据在处理器缓存中,有时在主内存中。如果数据位于处理器缓存中,则该处理器必须停止主内存对读取请求的答复,因为主内存可能有数据的陈旧副本。这比直接写要复杂得多。

此外,写入可以简化缓存一致性协议,因为它不需要修改状态。修改状态记录了缓存必须在使该行无效或取消之前必须写回缓存行的状态。在写通缓存中,由于内存已经有了行的最新副本,所以在不写回的情况下,缓存行总是无效的。

还有一件事--在写到内存映射的I/O寄存器的反写体系结构软件上,必须采取额外的步骤,以确保立即将写入从缓存中发送出去。否则,在该行被另一个处理器读取或该行被逐出之前,在核心之外无法看到写入。

票数 163
EN

Stack Overflow用户

发布于 2019-08-06 01:28:01

希望本文能对您的磁盘缓存写和写的区别有所帮助。

写:写是同步完成的缓存和备份存储。

写回(或写后):只对缓存进行写入。修改后的缓存块会在被替换之前写回存储区。

写通:当数据被更新时,它被写入缓存和后端存储.这种模式操作简单,但数据写入速度慢,因为数据必须同时写入缓存和存储。

回写:当数据被更新时,它只写到缓存中.只有当数据从缓存中删除时,才会将修改后的数据写入后端存储。此模式具有快速的数据写入速度,但如果在更新的数据写入存储之前发生电源故障,则数据将丢失。

票数 53
EN

Stack Overflow用户

发布于 2018-06-17 19:27:10

让我们用一个例子来看这个。假设我们有一个直接映射的缓存,并且使用了写策略。因此,我们在缓存行中有一个有效位、一个脏位、一个标记和一个数据字段。假设我们有一个操作:写A(其中A映射到缓存的第一行)。

所发生的情况是,来自处理器的数据(A)被写入缓存的第一行。设置有效位和标记位。脏位设置为1。

脏位只是表示自上次进入缓存以来所写的缓存行!

现在假设执行了另一项操作: read E(其中E也映射到第一个缓存行)

由于我们有直接映射的缓存,第一行可以简单地被E块替换,E块将从内存中取出。但是,由于上次写入行(块A)的块尚未写入内存(由脏位指示),因此缓存控制器将首先向内存发出写回,以将块A传输到内存,然后通过向存储器发出读操作来用块E替换行。脏位现在设置为0。

因此,回写策略不能保证块在内存及其相关的缓存行中是相同的。但是,每当要替换行时,首先执行写回操作。

通过写的策略正好相反。根据这一点,内存将始终具有最新的数据。也就是说,如果写了缓存块,那么内存也会相应地被写入。(不使用脏位)

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27087912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档