3520|3

6423

帖子

16

TA的资源

版主

楼主
 

Buffer和Cache的区别 [复制链接]


1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
    Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。
2. Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。
Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。

简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
此帖出自FPGA/CPLD论坛

最新回复

这两东西机制、原理、作用看起来差不多,导致很多时候名字用的也比较乱。准确的解释太书面,我也记不住,大概意思是: 那么为什么要有这两个不同的概念,区别在: cache不能跳过,上一级操作的定义域只能是cache那部分。比如cpu ABI只能操作寄存器而不能看到下一级mmu里的cache line(如果有mmu的话),那么寄存器就是cpu ABI的cache,带mmu的cpu再往外只能看到mmu里的cache line,而不能看到再下一级的memory; buffer可以跳过,上一级操作的定义域可以是buffer也可以是buffer的下一级。比如操作系统需要某块磁盘数据,既可以用memory里的buffer io也可以用disk里的raw io,这里操作系统既能看到memory也能看到disk。   详情 回复 发表于 2015-4-16 23:00
点赞 关注
个人签名training
 

回复
举报

7462

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 
fpga里不知道是不是有它自己的解释,操作系统和计算机体系里好像不是这样解释呢
此帖出自FPGA/CPLD论坛

点评

这段是从别处拿来的,给讲讲是怎么解释的吧  详情 回复 发表于 2015-4-16 22:23
 
 

回复

6423

帖子

16

TA的资源

版主

板凳
 
freebsder 发表于 2015-4-16 22:12
fpga里不知道是不是有它自己的解释,操作系统和计算机体系里好像不是这样解释呢

这段是从别处拿来的,给讲讲是怎么解释的吧
此帖出自FPGA/CPLD论坛

点评

这两东西机制、原理、作用看起来差不多,导致很多时候名字用的也比较乱。准确的解释太书面,我也记不住,大概意思是: 那么为什么要有这两个不同的概念,区别在: cache不能跳过,上一级操作的定义域只能是cache  详情 回复 发表于 2015-4-16 23:00
个人签名training
 
 
 

回复

7462

帖子

2

TA的资源

五彩晶圆(高级)

4
 
白丁 发表于 2015-4-16 22:23
这段是从别处拿来的,给讲讲是怎么解释的吧

这两东西机制、原理、作用看起来差不多,导致很多时候名字用的也比较乱。准确的解释太书面,我也记不住,大概意思是:
那么为什么要有这两个不同的概念,区别在:

cache不能跳过,上一级操作的定义域只能是cache那部分。比如cpu ABI只能操作寄存器而不能看到下一级mmu里的cache line(如果有mmu的话),那么寄存器就是cpu ABI的cache,带mmu的cpu再往外只能看到mmu里的cache line,而不能看到再下一级的memory;

buffer可以跳过,上一级操作的定义域可以是buffer也可以是buffer的下一级。比如操作系统需要某块磁盘数据,既可以用memory里的buffer io也可以用disk里的raw io,这里操作系统既能看到memory也能看到disk。

此帖出自FPGA/CPLD论坛
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表