计算机中CPU、内存、缓存的关系

news2024/9/29 11:23:17

CPU(Central Processing Unit,中央处理器)

内存(Random Access Memory,随机存取存储器)

缓存(Cache)

CPU、内存和缓存之间有着密切的关系,它们共同构成了计算机系统的核心部分,CPU和内存都具有相应的速率和带宽。在配置电脑过程中,根据CPU的速率和带宽,来搭配相应速率和带宽的内存会直接影响整机的性能。如果搭配不当往往会浪费CPU或内存的性能。

 

一、CPU是计算机的主要处理器,它执行指令并进行算术、逻辑和控制操作。它是计算机的"大脑",负责处理数据和执行各种任务。

二、内存是计算机中的一种存储设备,用于临时存储和读取数据。CPU从内存中读取指令和数据,并将计算结果写回内存。内存的大小决定了计算机可以同时处理的数据量。

(1)内存用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,内存的运行决定计算机整体运行快慢。


(2)缓冲区(Buffer)是内存空间的一部分,在内存中预留了一定的存储空间,用来暂时保存输入和输出等I/O操作的数据,这部分预留的空间就叫做缓冲区,且缓冲区是有大小的。 为了达到最佳的磁盘操作效率,可以把需要写入到磁盘的数据先在缓冲区中缓存起来,在缓冲区满了的时候才真正写入到磁盘中,这样就可以减少磁盘IO次数。

三、缓存是位于CPU和内存之间的一种高速存储器。它的目的是加快CPU对数据的访问速度。由于内存的访问速度比CPU慢得多,缓存的存在可以减少CPU等待数据的时间。缓存分为多级,通常包括一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。它们按照容量和访问速度递减的方式排列,以提供更快的数据访问。

(1)内存缓存(from memory cache):将编译解析后的文件,直接存入该进程的内存中,占据该进程一定的内存资源,以方便下次运行使用时的快速读取,一旦该进程关闭,则该进程的内存则会清空。

(2)硬盘缓存(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中核数的增加,未来甚至可能会出现更多层级的缓存。

当CPU需要读取数据时,首先会检查缓存中是否有所需的数据。如果数据位于缓存中(命中缓存),CPU可以立即访问它,这样可以极大地提高数据的读取速度。如果数据不在缓存中(未命中缓存),CPU必须从内存中读取数据,这会导致较长的延迟。

缓存的存在使得CPU能够更有效地利用内存的数据,并减少对内存的频繁访问。较大的缓存可以容纳更多的数据,提高命中率,从而进一步提高计算机的性能。

总结起来,CPU、内存和缓存之间的关系可以概括为:CPU是计算机的处理器,内存是用于存储数据的设备,缓存则是位于CPU和内存之间的高速存储器,用于提高数据的读取速度。它们共同协作,以提供高效的计算机性能。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考高级系统架构设计师(八) 基于中间件的开发实际项目

目录 中间件的用途 中间件技术 中间件的特点 中间件的十大优越性 企业应用集成 轻量级架构 Struts框架 spring Hibernate 实际项目举例 产品逻辑大图 gRPC的接口规范 关键中间件交互 整体架构设计 大数据素材底层处理 业务交互大图 底层数据素材加工大图 中间…

这些年你走了多少弯路?接口性能测试你真的懂了?进阶测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试关注 响…

java + opencv对比图片不同

1,去官网下载opencv,下载的时候需要注册一个 Oracle 账户,分分钟就能注册。然后安装。我下的是4.7的。 2,找到jar包放进项目里 3,项目结构,比较简单 4,把下载的文件放进C盘 5,主类代…

未来独角兽!安全狗入选2023年福建省数字经济核心产业领域创新企业名单

近日,福建省数字福建建设领导小组办公室公布了入选2023年全省数字经济核心产业领域创新企业名单。 作为国内云原生安全领导厂商,安全狗凭借综合安全能力入选名单,荣膺“未来独角兽”称号。 厦门服云信息科技有限公司(品牌名&#…

7DGroup性能实施项目日记4

经过了一个十一假期,我们的日记虽然没有更新,但我们的项目并没有停止。 虽然这个项目是一个依托性能培训的项目,但对我来说,这和真实的项目并无二致。我们花了几万(根据一期的培训,估计在3万-4万左右&…

高速电路设计系列分享-基本概念

目录 概要 整体架构流程 技术名词解释 1.带宽的理解 2.了解转换器的精度 技术细节 小结 概要 提示:这里可以添加技术概要 本文主要熟悉一些基本概念。随笔,加一些网上用语,只做学习之用,不用深入分析。 整体架构流程 提…

最佳的SCADA软件推荐

前言 发现优化工业运营效率并最大化投资回报率的最佳“监控和数据采集 (SCADA)、工业物联网 (IIoT)、人工智能 (AI) 等”数字化转型技术,使商业组织能够提高运营效率并促进公用事业管理。当配备…

浏览器插件开发(一)入门之自制屏蔽某度广告的插件

一:浏览器扩展介绍: 浏览器扩展是一个小软件定义模块的网页浏览器,通常称为浏览器插件,大部分浏览器允许安装拓展,其作用有用户界面修改,广告拦截和Cookie管理等 包含基本平台信息的应用程序清单JSON文件 …

第十章 总结【编译原理】

第十章 总结【编译原理】 前言推荐第十章 总结10.1 概述10.2 局部优化10.2.1基本块及流图10.2.2基本块的DAG表示及其应用 10.3 循环优化*10.4数据流分析 最后 前言 2023-6-26 18:54:31 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第九章 总结及作业(4…

态路小课堂丨三种实现光模块更高传输速率的技术你知道吗?

TARLUZ态路 随着云计算、大数据的快速兴起,数据中心以及电信运营商对光模块的传输速率要求越来越高。从1998年发展至今,光模块一直朝着更高的速率、更小的封装不断升级。光模块一般采用增加波长数、增加信号传输通道数量和提高单通道速率技术方案实现光模…

公众号内添加投票链接制作投票的软件网络投票器

手机互联网给所有人都带来不同程度的便利,而微信已经成为国民的系统级别的应用。 现在很多人都会在微信群或朋友圈里转发投票,对于运营及推广来说找一个合适的投票小程序能够提高工作效率,提高活动的影响力。 那么微信做投票的小程序哪个比较…

.vm文件发邮件时js未生效,无法控制显示隐藏

需求起因 最近在做一个发邮件的功能,是后端发邮件,不过邮件内容是由前端来写。 邮件内容包括姓名、手机号、邮箱,这三个参数都是不一定有的,如果没有某个参数时,那一行内容就不显示。 写法没错,但就是js…

npm详解

1.npm支持多个源(没列全,有兴趣的可以自己去了解一下其他源) (1)官方源:https://registry.npmjs.org (2)淘宝源:https://registry.npm.taobao.org (3&#x…

《Java核心卷1》慢慢啃!读第3,4章 | 第12版

提醒:全文约6000字,是一份比较单纯的学习笔记,知识点基本采用条目的形式列出,起到查漏补缺和备忘录的作用,而对内容之间的逻辑结构并未进行仔细梳理。本文内容包括: Java的基本程序设计结构面向对象程序设计…

jmeter压力测试实战分析详解,一定要看完哦

目录 1.从压力测试说起 2.压力测试到底要关注什么 3.你想要的到底是个什么东西 4.面试总问的jvm调优到底是要干什么 5.常用的压力测试工具及命令 6.性能诊断到底难在哪里? 7.到底是加机器还是优化服务? 总结: 1.从压力测试说起 压力测…

59 KVM Skylark虚拟机混部-概述、架构及特性

文章目录 59 KVM Skylark虚拟机混部-概述、架构及特性59.1 Skylark概述59.1.1 问题背景59.1.2 总体介绍 59.2 架构及特性59.2.1 总体实现框架59.2.2 功耗干扰控制59.2.3 LLC/MB干扰控制59.2.4 CPU干扰控制 59 KVM Skylark虚拟机混部-概述、架构及特性 59.1 Skylark概述 59.1.…

Android SPI

1.SPI SPI全称Service Provider Interface,服务提供方接口,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。服务通常指一个接口或者一个抽象类,服务提供方是对这个接口或者抽象类的具体实现&…

kafka常见问题

1.为什么要用mq(mq的作用)? 2.引入mq会多哪些问题? 3. 如何解决这些问题? 1.1实现异步发送 有些复杂的业务系统,一次用户请求可能会同步调用N个系统的接口,需要等待所有的接口都返回了&#…

虹科分享 | 高考大数据可视化志愿填报分析-基于虹科Domo BI工具

高考是中国教育系统中一项极为重要的考试,它不仅是学生完成高中学业的重要标志,也是进入大学的门槛。每年高考都会吸引数百万学生参加,同时也吸引了各地高校和招生部门的关注。高考招生数据是教育研究和政策制定的重要依据,通过对…

技术管理第二板斧建团队-知人善用

1、什么是知人善用 知人善用就是指技术 Leader 怎么用对人?用好人?核心在于怎么给事情安排对的人?怎么给人安排合适的事情?其中,“人”与“事”相辅相成,如果把事情安排给对的人,不光会取得好结…