cache写策略
2015-10-22 19:51
176 查看
cache写策略
Write Through (完全写入)CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。
Write Back (回写)
CPU更新cache时,只是把更新的cache区标记一下,并不同步更新memory。只是在cache区要被新进入的数据取代时,才更新
memory。这样做的原因是考虑到很多时候cache存入的是中间结果,没有必要同步更新memory。优点是CPU执行的效率提高,缺点是实现起来技
术比较复杂。
区别
完全写入(Write through)是一种实时同步的缓存机制,即每当缓存中的数据被更新后,这次改动会立即更新到计算机内存中。
而回写(Write
Back)的机制则是一种非实时同步的缓存机制,也就是说,当CPU存取的数据在缓存中进行修改时,并不会马上将缓存中改变的数据实时同步到内存。回写相
对于完全写入来说,是一个更为复杂的缓存使用策略。这种策略常被称作“延时写入”。使用该回写策略时,CPU每次对缓存中的数据做出修改,都会对修改的数
据块做上一个“记号”,表示该数据被修改过。这些数据被称作“脏”数据,每当有CPU要求缓存中不存在的数据时,这些脏数据就会写入到内存中。所以,一旦
CPU请求一个缓存中不存在的数据时,就需要两次访问内存的操作,第一次是在内存中检索该数据,第二次则是将脏数据写入到内存中,为新数据让位。
Write allocate policy
在有cache的单机系统中,通常有两种写策略:write through和write back。这两种写策略都是针对写命中(write
hit)情况而言的:write through是既写cache也写main memory;write
back是只写cache,并使用dirty标志位记录cache的修改,直到被修改的cache 块被替换时,才把修改的内容写回main
memory。
那么在写失效(write miss)时,即所要写的地址不在cache中,该怎么办呢?一种办法就是把要写的内容直接写回main
memory,这种办法叫做no write allocate policy;另一种办法就是把要写的地址所在的块先从main
memory调入cache中,然后写cache,这种办法叫做write allocate policy。
相关文章推荐
- hdu 4781 Assignment For Princess(构造)
- iOS开发拓展篇—封装音频文件播放工具类
- 前端见微知著流程篇:前端开发流程总结
- VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
- 使用PHP发送邮件的两种方法
- 词法分析编译感想
- [POJ2456]Aggressive cows(贪心,二分查找)
- iOS开发拓展篇—音乐的播放
- iOS开发7-KVO(Key-Value Observer)键值观察
- Java并发之Lock的实现原理
- 盒子放球
- hihocoder1033交错和
- LeetCode题解——Ugly Number II
- IOS网络笔记--多线程编程2(线程安全--同步锁)
- Java设计模式2:简单工厂模式
- 关于微软必应词典客户端的案例分析
- 我现在大二,我找到我的方向了
- UVALive-3211 Now or later (2-SAT+二分)
- hihocoder1033交错和
- hdu 4782 Beautiful Soup(模拟)