CPU,缓存,内存,外存全解析
CPU,缓存,内存,外存结构图如下:
一:缓存
定义:凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache
被扩充概念:如今缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹或网络内容缓存等。
存放的数据:内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存
作用:
用于协调两者数据传输速度差异的结构
实际例子:
二:CPU
(1)组成
一般由逻辑运算单元、控制单元和存储单元(寄存器)组成
(2)为什么需要缓存
事例:
1.因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。 2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的
(3)作用
缩短延迟
访问缓存的时间应该尽可能缩短,可以通过多种的方式缩短这个时间,比如能够通过减小缓存的大小或关联性来降低缓存的延迟,还有方式预测、增加带宽等方法。
提升命中率
所谓的命中率是在高速缓存中找到内存引用的速率,我们希望能够首先通过缓存中获得信息,以得到速度优势,所以缓存需要最大限度地实现这一目标。对于单个高速缓存,大小、关联性和块大小决定命中率。
降低更低级别内存下的开销
高速缓存是内存层次结构的一部分,其性能会影响其它性能,处理其它内存花费的时间越长,意味着系统性能越低,也就是说尽可能让处理在缓存中完成。
减少错失惩罚
缓存中不能命中是无法避免的事情,但是我们可以减少处理未命中所需的时间以获得更好的处理器性能,通过提升命中率并通过应用不同的优化,能够降低错失惩罚。
高速缓存是CPU中十分重要的部分,占据了大量的资源开销和成本,如果您看过CPU架构图的话,您就会发现缓存占据了至少50%的面积,绝对至关重要。
(4)CPU的多级缓存
一级缓存(L1 Cache)
CPU一级缓存,就是指CPU的第一层级的高速缓存,主要当担的工作是缓存指令和缓存数据。一级缓存的容量与结构对CPU性能影响十分大,但是由于它的结构比较复杂,又考虑到成本等因素,一般来说,CPU的一级缓存较小,通常CPU的一级缓存也就能做到256KB左右的水平。
二级缓存(L2 Cache66)
CPU二级缓存,就是指CPU的第二层级的高速缓存,而二级缓存的容量会直接影响到CPU的性能,二级缓存的容量越大越好。例如intel的第八代i7-8700处理器,共有六个核心数量,而每个核心都拥有256KB的二级缓存,属于各核心独享,这样二级缓存总数就达到了1.5MB。
三级缓存(L3 Cache)
CPU三级缓存,就是指CPU的第三层级的高速缓存,其作用是进一步降低内存的延迟,同时提升海量数据量计算时的性能。和一级缓存、二级缓存不同的是,三级缓存是核心共享的,能够将容量做的很大。
CPU的核心数量、高频高低都会影响性能,但如果让CPU更聪明、更有效率的执行计算任务,那么缓存的作用就至关重要了。
三:运行内存 与 物理内存 与虚拟内存 的区别
运行内存就是指的物理内存
事例:
正在运行的一个进程,他所需的内存是有可能大于内存条容量之和的:比如你的内存条是256M,你的程序却要创建一个2G的数据区。
那么不是所有数据都能一起加载到内存(物理内存)中,势必有一部分数据要放到其他介质中(比如硬盘)。
待进程需要访问那部分数据时,在通过调度进入物理内存。
虚拟内存是进程运行时所有内存空间的总和,并且可能有一部分不在物理内存中(也叫这个虚拟内存为内存交换区)
物理内存就是我们平时所了解的内存条
四:内存与外存的区别
外存储器:磁性介质或光盘,像硬盘,软盘,磁带,CD
内存储器(内存):物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路
CPU,缓存,内存,外存全解析相关推荐
- [搬运工]移动游戏加载性能和内存管理全解析
UWA 六月直播季 | 6.8 移动游戏加载性能和内存管理全解析 https://blog.uwa4d.com/archives/livebroadcast6-8.html 因为这篇文章没有提供PPT ...
- 移动游戏加载性能和内存管理全解析 学习
https://v.qq.com/iframe/player.html?vid=o0512etq2vm&tiny=0&auto=0= 转载于:https://www.cnblogs.c ...
- 6.15 Unity引擎渲染效率全解析
UWA新晋主播赵福恺从Unity渲染模块中的各种渲染效果性能.PBR渲染性能以及阴影的渲染性能三个角度分别进行了详细的分析总结.为响应各大听众的需求,小编奉上完整视频回顾,同时也向看完直播才下班的五好 ...
- cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
1.CPU即中央处理器,是英语"Central Processing Unit"的缩写.CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种 ...
- Android异步加载全解析之引入二级缓存
Android异步加载全解析之引入二级缓存 为啥要二级缓存 前面我们有了一级缓存,为啥还要二级缓存呢?说白了,这就和电脑是一样的,我们电脑有内存和硬盘,内存读取速度快,所以CPU直接读取内存中的数据, ...
- CPU 与 内存之间的三级缓存的实现原理
一. CPU 与 Memory 内存之间的三级缓存的实现原理 1.1 cache 存在的原理 引入 Cache 的理论基础是程序局部性原理,包括时间局部性和空间局部性.时间局部性原理即最近被CPU ...
- 系统缓存全解析 [转]
有时候总听到网友说网站运行好慢,不知如何是好:有时候也总见到一些朋友写的网站功能看起来非常好,但访问性能却极其的差.没有"勤俭节约"的意识,势必会造成"铺张浪费" ...
- CPU与内存的中转站 ——了解CPU缓存的秘密
转载自 青原的日记 Cache,在现在对大多数DIYer来说都是再熟悉不过的词了,特别是谈论到CPU的时候,不得不提的就是Cache,并且Cache已经与频率一样,成为衡量CPU性能最重要的参数之一了 ...
- Android图片加载框架最全解析(三),深入探究Glide的缓存机制
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/54895665 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
最新文章
- MySQL安装时MySQL server一直安装失败日志显示This application requires Visual Studio 2013 Redistributable...
- 关于vs2010编译程序一闪就没的解决办法
- SQL语言之用户(Oracle)
- java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
- c++学习笔记之运算符的重载
- python cgi库_《Python 数据库 GUI CGI编程》
- SecureCRT日志上添加时间戳
- 项目周期一般多久_收藏!布袋除尘器清灰周期一般多久合适?
- android 通过浏览器下的apk无法安装_安卓手机必备,文件管理利器!ES文件浏览器特别版安卓软件...
- 【Codeforces Round #516_div2】Labyrinth【迷宫搜索】
- PX4开发环境搭建--模拟器编译及QGroundControl RC遥控模拟配置
- linux安装weget命令,linux安装wget命令
- c语言yuv图片cb,YUV格式图像基础
- PFC 3D 中存在的一个问题?
- 缅甸投资环境及法律政策简介
- Android:使用Jetpack Compose画渐变背景
- 使用 Nginx 搭建多平台直播
- JDBC Statements, PreparedStatement和CallableStatement语句
- 小程序地图定位,打开地图导航,选择位置
- springboot集成xxl-job