此文为转载 ,如需原始作者要求删除请私信我

计算机的存储系统采用Register,Cache,Memory和I/O的方式来构成存储系统,无疑是一个性能和经济性的妥协的产物。Cache和Memory机制是计算机硬件的基础内容,这里就不再啰嗦。下面重点说明Write-back,Write-through及write allocate这三种操作的区别。

一、CPU读Cache

1. Read through,即直接从内存中读取数据;

2. Read allocate,先把数据读取到Cache中,再从Cache中读数据。

二、CPU写Cache

1. 若hit命中,有两种处理方式:

Write-through: write is done synchronously both to the cache and to the backing store。Write-through(直写模式)在数据更新时,把数据同时写入Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。

         Write-back (also called write-behind): initially, writing is done only to the cache. The write to the backing store is postponed until the cache blocks containing the data are about to be modified/replaced by new content。Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储(即先把数据写到Cache中,再通过flush方式写入到内存中)。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。

2. 若miss,有两种处理方式:

Write allocate (also called fetch on write): data at the missed-write location is loaded to cache, followed by a write-hit operation. In this approach, write misses are similar to read misses.。Write allocate:先把要写的数据载入到Cache中,写Cache,然后再通过flush方式写入到内存中;  写缺失操作与读缺失操作类似。

No-write allocate (also called write-no-allocate or write around): data at the missed-write location is not loaded to cache, and is written directly to the backing store. In this approach, only the reads are being cached。No write allocate:并不将写入位置读入缓存,直接把要写的数据写入到内存中。这种方式下,只有读操作会被缓存。

Write-back,Write-through及write allocate相关推荐

  1. Error: cannot allocate vector of size XX Gb

    Error: cannot allocate vector of size XX Gb 目录 Error: cannot allocate vector of size XX Gb #问题 #解决 # ...

  2. 【Linux】 -bash-4.2#问题和Cannot allocate memory

    1,最近在实际使用linux的过程中中,遇到了一个小问题 在之前,看到根目录"/"下多了一个"~"目录,看到别的服务器都没有,于是忍不住rm -rf ~了.运行 ...

  3. oracle数据库enq: TX - allocate ITL entry性能诊断

    朋友公司的某铁路集团医保系统出现性能问题业务不能正常办理,下面是出现性能问题时的awr报告 从等待事件来看主要是出现了多处锁竞争.其中enq: TX - allocate ITL entry等待事件是 ...

  4. STL二级配置器allocate的解析

    union obj{union obj * free_list_link;char client_data[1]; };static void * allocate(size_t n) {obj * ...

  5. mount cifs出现cannot allocate memory解决方法

    今天囧了啊,在ubuntu挂载的文件夹里面解压数据库,结果linux嫌太大挂掉了直接mount error(12): Cannot allocate memory折腾了好久,终于发现解决办法: 方法一 ...

  6. ORA-04031: Unable To Allocate 32 Bytes Of Shared Memory

    记录一次生产库遇到的4031错误,后来通过调整sga大小将问题解决了 报错信息: ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","s ...

  7. CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 10.76 GiB total capacity; 652.77 MiB alread

    在使用Pytorch中,出现CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 10.76 GiB total capacity; 652 ...

  8. memoryerror: Unable to allocate array with shape (60000, 28, 28) and data ty

    使用tf缩放图片遇到 (train_images, train_labels), (test_images,test_labels) = keras.datasets.fashion_mnist.lo ...

  9. PaddleOCR——申请显存不足【Allocate too much memory for the GPU memory pool, assigned 8000 MB】解决方案

    问题描述 E0724 02:41:05.436789 3160 analysis_predictor.cc:515] Allocate too much memory for the GPU memo ...

  10. sgi allocate

    这几天在研究stl的内存配置器,作用是防止零散的申请内存块导致过多的内存碎片. 大体思路是: 维护一个freelist, 一个内存块链表,就是一个链表,链表上的每一个节点都一个指针指向一块内存块,如果 ...

最新文章

  1. Segment Routing — SRv6 — SRv6 协议解析
  2. 数据中心“泡澡”散热,阿里云启用全球最大液冷数据中心支撑双11
  3. struts2教程(2)--配置
  4. 使用 [funcref boost::pfr::get] 按索引访问结构体字段的测试程序
  5. Spring Cloud Spring Boot mybatis分布式微服务云架构(一)快速入门
  6. 递归法:实现指数型枚举(二叉树递归)
  7. 各种不同服务器301重定向设置代码大全
  8. Java高级工程师必备技能
  9. 编译原理(第3版)——引论
  10. 久其报表节点汇总_久其通用数据管理平台常见公式
  11. 基于品类关系,虚拟类目如何建设? 1
  12. 利用Echarts+阿里云地图选择器绘制可交互的行政区划地图
  13. test1asfd 按时收费的水电费阿萨德阿斯蒂芬啊
  14. unity3d-学习笔记8-卡牌游戏制作(实现动态读取卡片信息并且在游戏界面展现)
  15. 四巫日来临本周硅铁、铁矿石领跌,铁矿石认沽最高31倍,钢厂利润回升2022.6.17
  16. 【愚公系列】2023年01月 .NET CORE工具案例-CS-Script脚本执行引擎
  17. 如何在注册表里面删除所有qq相关文件
  18. wordpress中如何禁止或者屏蔽更新提示
  19. android 跳棋 蓝牙,国民游戏 80后的美好回忆-飞行棋,跳棋,80后,国民,安卓,Android,游戏,手机游戏 ——快科技(驱动之家旗下媒体)--科技改变未来...
  20. Toronto Research Chemicals丨艾美捷 ACP-5197

热门文章

  1. Android 关于网络图片加载不出来的问题
  2. 锐捷(七)设备软件版本升级更新
  3. Compose Modifier.swipeable() 写个侧拉组件
  4. 厦门大学马来西亚分校打造更美好的智慧校园
  5. database rough 1
  6. 电子签名法学习-(1)电子认证服务机构
  7. linux脚本自动验证,一个无需交互,批量自动连接ssh执行命令的工具(免rsa密钥指纹验证)...
  8. F280049C 输出三相互补对称SPWM波
  9. VR/AR/MR/CR/XR概念及应用
  10. 基于眨眼状态的在线疲劳检测系统(Matlab-GUI设计)