首页 > 系统相关 >Cache写策略:Cache和内存的友好沟通

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

时间:2022-08-16 19:22:18浏览次数:75  
标签:主存 Cache 写入 内存 写法 CPU 友好

出现背景

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

 

算法

当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,写入,内存,写法,CPU,友好
From: https://www.cnblogs.com/EeiKo/p/16592689.html

相关文章

  • linux 命令查看内存和cpu信息
    linux命令查看内存和cpu信息1、查看CPU信息命令cat/proc/cpuinfo2、使用top命令查看CPU的使用情况top3、free命令查看内存free4、df(diskfree):显示磁盘分区上......
  • 内存管理
    内存管理不同语言的内存管理不同语言的内存管理方式:C/C++这种内存堆空间的申请和释放完全靠自己管理Java依赖JVM来做内存管理,不了解jvm内存管理的机制,很可能会因......
  • PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏
    一:背景前几篇我们聊的都是非托管内存泄漏,这一篇我们再看下如何用PerfView来排查托管内存泄漏,其实托管内存泄漏比较好排查,尤其是用WinDbg,毕竟C#是带有丰富的元数据......
  • JVM查看内存使用状况
    1、jps:查看本地正在运行的java进程和进程ID(pid)2、jinfopid,查看指定pid的所有JVM信息1)jinfo-flagspid查询虚拟机运行参数信息。2)jinfo-flagnamepid,查询......
  • C++ Linux下使用共享内存
    在Linux下可以使用SystemV共享内存段实现共享内存,一共有4个API:创建共享内存段或使用已经创建的共享内存段-shmget()将进程附加到已经创建的共享内存段-shmat()从已......
  • 如何在Linux中按内存和CPU使用率查找运行次数最多的进程
    如何在Linux中按内存和CPU使用率查找运行次数最多的进程入门小站 入门小站 2022-07-1222:23 发表于湖北收录于合集#Linux478个#内存2个大多数Linux用......
  • 极狐gitlab runner 使用 cache 实例
    极狐gitlabrunner使用cache实例参考官方文档:DockerMachineExecutorautoscaleconfiguration|GitLabCachinginGitLabCI/CD|GitLabSpeedupjobexecutio......
  • Java学习笔记之—java内存结构
    java内存结构之前一直是在学习c++,所以对c++的内存结构比较了解。但是目前由于工作需要从事Java开发,而自己对这方面的知识比较欠缺,所以从网络上阅读查看别人的学习总结,希望......
  • PerfView专题 (第三篇):如何寻找 C# 中的 VirtualAlloc 内存泄漏
    一:背景上一篇我们聊到了如何用PerfView去侦察NTHeap的内存泄漏,这种内存泄漏往往是用C的malloc或者C++的new分配而不释放所造成的,这一篇我们来聊一下由Virtua......
  • 图片系列(6)不同版本上 Bitmap 内存分配与回收原理对比
    请点赞关注,你的支持对我意义重大。......