您现在的位置是:生活百科网 > 生活百科 >

cpu和内存的关系(Cpu和内存的关系图)

2022-04-24 12:10生活百科 人已围观

简介cpu和内存的关系提高软件性能一种简单方式,就是多写代码!意思就是事情不能交给一个人一直干!想方设法分多步一点点干,充分利用CPU与内存协调地工作!昨天改写了一个数据处理...

cpu和内存的关系

提高软件性能一种简单方式,就是多写代码!意思就是事情不能交给一个人一直干!想方设法分多步一点点干,充分利用CPU与内存协调地工作!昨天改写了一个数据处理功能,500行代码改成5000行来处理,性能暴涨20倍!所以现在软件代码越来越多是有依据的!捂脸

主存和缓存

1、概述

每一个现代处理器(CPU)都配置高速缓存(Cache)。
目前CPU高速缓存级别主要分为L1/L2/L3三个级别;三个级别的高速缓存,缓存大小逐级增加同时访问速度逐次降低。
高速缓存存在的主要原因是解决CPU寄存器与主存在处理速度上不匹配问题,从而极大提高CPU使用效率。

2、缓存和主存之间的区别

通常情况下,高速缓存均是依托于静态随机访问存储器(SRAM),而主存一般是依托于动态随机访问存储器(DRAM),即两个依赖的硬件不同。
那么SRAM和DRAM又有何不同呢?

(1)SRAM的访问速度要优于DRAM;

(2)SRAM由CMOS技术和晶体管制成,而DRAM则使用电容器和晶体管;

(3)SRAM不必刷新,效率更高,DRAM需要不断刷新(由于漏电);

3、三种级别缓存之间的区别

如上图所示,L1缓存分数据缓存和指令缓存,数据缓存用来存放CPU指令处理前后相关的数据;指令缓存主要用来存放处理数据的相关指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。

通常L1和L2缓存都是不同内核单独享有的,但是L3缓存是多个内核之间共享的。
较早的处理器只含有L1和L2,不包括L3。

4、存储设备层次结构

在处理器和一个较大较慢的设备(例如主存)之间插入一个更小更快的存储设备(例如高速缓存)的想法已经成为一个普遍的观念。
每个计算机系统中的存储设备都被组织成了一个存储器层次结构,在这个层次结构中,从上至下,设备的访问速度越来越慢、容最越来越大,并且每字节的造价也越来越便宜,寄存器文件在层次结构中位于最顶部,也就是第0 级或记为L0。
存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。

5、高速缓存相关概念

5.1、缓存读取顺序

CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。

正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。
这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。
总的来说,CPU读取数据的顺序是先Cache后内存。

5.2、缓存命中与缓存未命中

简单讲,当CPU需要数据时,它首先搜索关联内核的L1缓存。
如果找不到,则接下来搜索L2和L3缓存。
如果找到了必要的数据,则称为缓存命中。
另一方面,如果缓存中不存在数据,则CPU必须请求将其从主内存或存储设备加载到缓存中。
这需要时间,并且会对性能产生不利影响。
这称为缓存未命中。

为了保证CPU访问时有较高的命中率,Cache中的内容应该按一定的算法替换。
一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。
因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。
当需要替换时淘汰行计数器计数值最大的数据行出局。
这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache,提高Cache的利用率。

5.3、内存映射

系统内存如何与高速缓存进行通信,称为缓存或内存映射。
高速缓冲存储器分为块或组。
这些块又分为n个64字节行。
系统存储器被划分为与高速缓存相同数量的块(组),然后将两者连接在一起。

漫谈CPU缓存与主存,主存和缓存

过来人的建议,购买手机除了考虑处理器之外,内存也是一个重要因素。
之前为了剩几百块钱,买了128G的iPhone12 Pro Max,用了不到一年,没想到内存就只剩下10个G左右的容量了,如果奔着iPhone手机能用个五六年而去的话,显然这一点点内存是支撑不到那个时候了。
而且现在基本上隔一段时间就要清理下微信的缓存才可以。
尤其是像我这样家里养了宠物,总是喜欢拍拍拍的人,买手机至少需要256G,预算足够的话,直接冲512G吧,不要觉得这么大内存用不了,尤其是iPhone手机,一张照片就要10M,一个1-2分钟的视频就要1个G,肯定用得着!你买的多大内存的手机?够用吗?