当前位置: 代码网 > 服务器>服务器>缓存 > CPU、内存、缓存的关系

CPU、内存、缓存的关系

2024年08月06日 缓存 我要评论
RAM又分两种, 一种是静态RAM,SRAM;缓存通常都是静态RAM,速度是非常的快, 但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍), 价格高(同容量的静态RAM是动态RAM的四倍), 但是为了提高系统的性能和速度,我们必须要扩大缓存, 这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做为缓存, 这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢, 我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。

术语解释

在这里插入图片描述

(1)cpu(central processing unit)
中央处理器
(2)内存

  • 内存用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与cpu进行沟通的桥梁,内存的运行决定计算机整体运行快慢。
  • 缓冲区(buffer)是内存空间的一部分,在内存中预留了一定的存储空间,用来暂时保存输入和输出等i/o操作的数据,这部分预留的空间就叫做缓冲区,且缓冲区是有大小的。 为了达到最佳的磁盘操作效率,可以把需要写入到磁盘的数据先在缓冲区中缓存起来,在缓冲区满了的时候才真正写入到磁盘中,这样就可以减少磁盘io次数。

(3)缓存(cache)

  • 内存缓存(from memory cache):将编译解析后的文件,直接存入该进程的内存中,占据该进程一定的内存资源,以方便下次运行使用时的快速读取,一旦该进程关闭,则该进程的内存则会清空。
  • 硬盘缓存(from disk cache):将缓存写入硬盘文件中,读取缓存需要对该缓存存放的硬盘文件进行i/o操作,然后重新解析该缓存内容,读取复杂,速度比内存缓存慢。

q:为什么要引入缓冲区?
高速设备与低速设备的不匹配,势必会让高速设备花时间等待低速设备,因此需要在这两者之间设立一个缓冲区。
q:缓存(cache)与缓冲(buffer)的主要区别?
buffer的核心作用是用来缓冲,缓和冲击。cache的核心作用是加快取用的速度。简单来说就是buffer偏重于写,而cache偏重于读。

关系

在这里插入图片描述
1.容量与速度
容量:网络存储(云存储)>硬盘>内存>缓存>寄存器
速度:寄存器>缓存>内存>硬盘>网络存储(云存储)
在理论上,物理内存太大反而会减慢速度,因为它增加了寻址的时间。
2.缓存是为了解决cpu速度和内存速度的速度差异问题
在这里插入图片描述
cpu存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:cpu主频1g),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大 。
内存中被cpu访问最频繁的数据和指令被复制入cpu中的缓存,这样cpu只要到缓存中去取就行了,而缓存的速度要比内存快很多 。
这里要特别指出的是:
1.因为缓存只是内存中少部分数据的复制品,所以cpu到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时cpu还是会到内存中去找数据,这样系统的速度就慢下来了,不过cpu会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。
2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的

3.关于一级缓存和二级缓存
在这里插入图片描述
ram和rom相对的,ram是带电存储,即断电信息就消失,rom则不受影响。
ram又分两种, 一种是静态ram,sram;一种是动态ram,dram。前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态ram。 缓存通常都是静态ram,速度是非常的快, 但是静态ram集成度低(存储相同的数据,静态ram的体积是动态ram的6倍), 价格高(同容量的静态ram是动态ram的四倍), 但是为了提高系统的性能和速度,我们必须要扩大缓存, 这样就有了一个折中的方法,不扩大原来的静态ram缓存,而是增加一些高速动态ram做为缓存, 这些高速动态ram速度要比常规动态ram快,但比原来的静态ram缓存慢, 我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态ram叫二级缓存。
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速cpu对慢速内存的访问。
通常cpu找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了。随着单个cpu中核数的增加,未来甚至可能会出现更多层级的缓存。

(0)

相关文章:

  • Nginx的HA高可用的搭建的实现

    1.什么是高可用高可用(high availability, ha)是一种系统设计策略,旨在确保服务或应用在面对硬件故障、软件缺陷或任何其他异常情况时,仍能持续稳定地运行。它通过实…

    2024年08月08日 服务器
  • Apache中mod_proxy模块的使用问题及解决方案

    Apache中mod_proxy模块的使用问题及解决方案

    nc中间件应用场景:配置了apache的情况,包括uap集群,配置https等场景下均适用;如果是单机(nc单结点情况不存在问题,则不用配置这项; was环境也... [阅读全文]
  • 【论文阅读】Cache locality is not enough

    需要大量的高速缓存访问无法利用现代CPU上可用的SIMD指令由此设计了算法PQ Fast Scan:将驻留在cache中的距离表转换成大小适合SIMD寄存器的small table…

    2024年08月03日 服务器
  • 行列视(RCV)的数据处理能力强吗?

    行列视(RCV)的数据处理能力强吗?

    而专业缓存技术则通过算法使缓存数据存入本地硬盘,保证了常用数据的高效读取,并防止了由于数据存放在关系数据库中导致的系统性能下降和维护量增大的问题。这样的性能表现... [阅读全文]
  • 大数据之Flink优化

    以计算每个 mid 出现的次数为例,keyby 之前,使用 flatMap 实现 LocalKeyby 功能//Checkpoint 时为了保证 Exactly Once,将 bu…

    2024年08月02日 服务器
  • 【图解大数据技术】Hive、HBase

    HBase是一个用于存储海量非结构化或半结构化数据的列示存储数据库,支持高性能写入,准实时查询。HBase底层基于HDFS实现了PB级别的海量数据存储。通过缓存和预写日志技术实现了…

    2024年08月02日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com