关于Memory,Cache,Buffer的区别

无论是内存,缓存,缓冲本质上都是为解决不同设备读写速度不匹配的问题。而CPU读取数据的顺序是先缓存Cache后内存Memory。

一、内存 Memory
Memory,内存处理器,作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换数据的临时存储器。

二、缓存 Cache
缓存 Cache,即数据交换的缓存区,是位于CPU与主内存间的一种容量较小,速度较快的临时存储器。因为CPU处理速度远高于主内存,CPU直接从内存中读存数据需要等待一定周期,因此将待使用数据存放在Cache中可限制减少CPU的等待时间,提高了系统的效率,帮助硬件更好的运行。

Cache的工作原理是当CPU要读取一个数据时,首先从缓存中查询,如果没找到,就从较慢的内存中读取,同时把数据所在的数据块调入缓存,使得CPU之后对该数据块的读取从缓存中进行,提高了CPU读取缓存的命中率(80%),大大的提升了CPU读取数据的时间。

为了保证CPU的命中率,缓存中的内容按照一定的算法予以更换,常用的是 “最近最少使用算法,LRU算法”,将最近一段时间内最少访问的数据行淘汰出局,核心:为每行设置一个计数器,每次CPU命中某行数据,则该行数据计数器清零,其他行计数器+1,最后将计数器最大的数据行淘汰出Cache中,因此,read cache的数据随机的。

Cache分为L1 Cache,L2 Cache,L3 Cache三种,早期以是否集成在CPU内核为判断标准,但随着技术的发展,L2也可以集成在CPU内核中,所以定义的概念已经不准确了。理论上,读取Cache命中的概率为80%,那么在缓存中命中数据的概率为:P(L1)+P(非L1)*P(L2) = 0.96,极大的提高了命中数据的概率。

三 、缓冲 Buffer
Buffer,缓冲区,用于存储速度不同步的设备或优先级不同的设备之间的数据传输。通过Buffer可以减少进程间通信需要的等待时间,当存储速度慢的设备和存储速度快的设备进行通信时,存储速度慢的设备先将数据存放到Buffer中,每当Buffer满或者主动flush buffer时主动触发数据读取,对于少量数据,当Buffer满时才read一次;当数据量大时,可控制每次read的数据量,因此,无论数据量的大小每次read buffer的数据量都是按照buffer尺寸的数据量,因此,read buffer的数据是顺序访问的。

write buffer如同 read buffer一样,无论数据量的大小按照buffer尺寸写入,而write cache则是cache中保存需要多次写入的数据,两者没有明显的区别,本质上都减少了write的次数,因此在实际生产中,两者常共同使用。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值