C/C++教程

Cache写策略:Cache和内存的友好沟通

本文主要是介绍Cache写策略:Cache和内存的友好沟通,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

出现背景

本质上是上级存储器对下级存储器的写操作,没别的

 

算法

当Cache命中时(要写的块正好在Cache里)

1、全写法

Cache来全写了,CPU在尽力写了,内存在干啥?#内存状态

就是说CPU写的时候同时把内容写道Cache和主存,缺点是增加了访存次数,降低了Cache效率

一般不直接写内存,CPU同时写Cache和写缓存(一个FIFO队列),写缓存再写道内存中

 

2、回写法

CPU只把数据写入Cache,而不立即写入主存,只有当此块被换出时才写回主存。这种方法减少了访存次数,但是也有隐患,可能出现不一致。

同时为了减少写回主存的开销,每个Cache行设置一个修改位(脏位),若修改位为1替换时写回主存,修改为0直接替换。

 

当Cache未命中时

1、写分配法

加载主存中的块到Cache中,然后更新这个Cache块。

2、非写分配法,只写入主存,不调块

 

非写分配法通常与全写法合用,写分配法通常和回写法合用。

 

 

当Cache未命中时(要写的块不在在Cache里)

这篇关于Cache写策略:Cache和内存的友好沟通的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!