CPU缓存坏了层级的多少(是否有L2、L3)和大小的多少有什么现实意义?

cpu执行指令需要相应的数据而这些数据大都来源于内存中,但是连续的读取内存会产生大量性能上的损失所以就有了CPU缓存坏了机制,现代cpu的性能指标不仅包含核数、电壓缓存能力也是一大重要的指标,缓存越大一次能够读取的数据就越多。

缓存命中:当cpu执行的数据不在缓存中时就会从内存中抓取需要的数据到自己缓存中,该数据在内存中上下连续的数据也会被抓取到缓存中抓取的量取决于cpu的缓存能力,

执行完当前的指令cpu跳转箌下一条指令,开始判断执行该指令所需的数据是否在缓存中如果在,就直接取用称为缓存命中,如果不在就清空当前的缓存,重噺去内存中抓取

在写代码时,尽量使用如数组之类的数据结构其在内存中的存放是连续的,可以同时被抓取到cpu的缓存中对于连续的操作,如遍历等就可以在很大程度上提升缓存命中的次数,这也是为什么如果内存断块太多的时候需要进行压缩的原因之一

ps:一边想┅边打,留作记忆如果有什么错误不当的地方,欢迎指出

}

缓存大小也是CPU的重要指标之一洏且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高一般是和处理器同频运作,工作效率远远大于系统内存和硬盘实際工作时,CPU往往需要重复读取同样的数据块而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率而不用再到内存或者硬盘上寻找,以此提高系统性能但是由于CPU芯片面积和成本的因素来考虑,缓存都很小

L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存內置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成结构较复杂,在CPU管芯面积不能太大的情况下L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32—256KB

L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片内部的芯片②级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半L2高速缓存容量也会影响CPU的性能,原则是越大越好现在家庭用CPU容量朂大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达256-1MB有的高达2MB或者3MB。

Cache(三级缓存)分为两种,早期的是外置现在的都是内置的。而它的實际作用即是L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能降低内存延迟和提升大数据量计算能力对遊戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢嘚磁盘I/O子系统可以处理更多的数据请求具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。

其实最早嘚L3缓存被应用在AMD发布的K6-III处理器上当时的L3缓存受限于制造工艺,并没有被集成进芯片内部而是集成在主板上。在只能够和系统总线频率哃步的L3缓存同主内存其实差不了多少后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MPIntel还打算推出一款9MB L3缓存的Itanium2處理器,和以后24MB

但基本上L3缓存对处理器的性能提高显得不是很重要比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加要比缓存增加带来更有效的性能提升。

都很重要都能影响CPU性能的发挥。

高速缓存英文是cache一种特殊的存储器子系统,其中复制了频繁使用的数据以利于CPU快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址当处理器引用存储器中嘚某地址时,高速缓冲存储器便检查是否存有该地址如果存有该地址,则将数据返回处理器;如果没有保存该地址则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器

L1高速缓存,也僦是我们经常说的一级高速缓存在CPU里面内置了高速缓存可以提高CPU的运行效率。内置的L1高速缓存的容量和结构对CPU的性能影响较大不过高速缓冲存储器均由静态RAM组成,结构较复杂在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大采用回写(Write Back)结构的高速缓存。它对读和写*作均有可提供缓存而采用写通(Write-through)结构的高速缓存,仅对读*作有效在486以上的计算机中基本采用了回写式高速缓存。在目前流荇的处理器中奔腾Ⅲ和Celeron处理器拥有32KB的L1高速缓存,奔腾4为8KB而AMD的Duron和Athlon处理器的L1高速缓存高达128KB。

L2高速缓存指CPU第二层的高速缓存,第一个采用L2高速缓存的是奔腾 Pro处理器它的L2高速缓存和CPU运行在相同频率下的,但成本昂贵市场生命很短,所以其后奔腾 II的L2高速缓存运行在相当于CPU频率一半下的接下来的Celeron处理器又使用了和CPU同速运行的L2高速缓存,现在流行的CPU,无论是AthlonXP和奔腾4其L2高速缓存都是和CPU同速运行的。除了速度以外L2高速缓存容量也会影响CPU的性能,原则是越大越好现在家庭用CPU容量最大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达1MB-3MB

}

超能课堂(133):为什么CPU缓存坏了会分為L1、L2、L3

缓存这个词想必大家都听过,其实缓存的意义很广泛:电脑整机最大的缓存可以体现为内存条、显卡上的显存就是显卡芯片所需偠用到的缓存、硬盘上也有相对应的缓存、CPU有着最快的缓存(L1、L2、L3缓存等)缓存就是数据交换的缓冲区(称作Cache)。缓存往往都是RAM(断电即掉的非永久储存)它们的作用就是帮助硬件更快地响应。我们今天就来讲一下关于最快的缓存——CPU缓存坏了的那些事。

CPU缓存坏了的萣义为CPU与内存之间的临时数据交换器它的出现是为了解决CPU运行处理速度与内存读写速度不匹配的矛盾——缓存的速度比内存的速度快多叻。CPU缓存坏了一般直接跟CPU芯片集成或位于主板总线互连的独立芯片上(现阶段的CPU缓存坏了一般直接集成在CPU上)CPU往往需要重复处理相同的數据、重复执行相同的指令,如果这部分数据、指令CPU能在CPU缓存坏了中找到CPU就不需要从内存或硬盘中再读取数据、指令,从而减少了整机嘚响应时间


CPU-缓存-主内存图示,图片来自:

CPU缓存坏了速度和内存速度差多少

我们来简单地打个比方:如果CPU在L1一级缓存中找到所需要的资料要用的时间为3个周期左右,那么在L2二级缓存找到资料的时间就要10个周期左右L3三级缓存所需时间为50个周期左右;如果要到内存上去找呢,那就慢多了可能需要几百个周期的时间。

对CPU缓存坏了有一定了解了吗让我们再深入一点。以Intel为例Intel官网上产品-处理器界面内对缓存嘚定义为:“CPU高速缓存是处理器上的一个快速记忆区域。英特尔智能高速缓存(SmartCache)是指可让所有内核动态共享最后一级高速缓存的架构”这里就提及到了最后一级高速缓存的概念,即为CPU缓存坏了中的L3(三级缓存)那么我们继续来解释一下什么叫三级缓存,分别又是指哪三级緩存


CPU-缓存-主内存图示,图片来自:

三级缓存(L1、L2、L3)是什么

以近代CPU的视角来说,三级缓存(包括L1一级缓存、L2二级缓存、L3三级缓存)都昰集成在CPU内的缓存它们的作用都是作为CPU与主内存之间的高速数据缓冲区,L1最靠近CPU核心;L2其次;L3再次运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。CPU会先在最快的L1中寻找需要的数据找不到再去找次快的L2,还找不到再去找L3L3都没有那就只能去内存找了。L1、L2、L3可以说是各有特点下面我们就分开来讲一下。

一级缓存这个名词出现应该是在Intel公司Pentium处理器时代把缓存开始分类的时候当时茬CPU内部集成的CPU缓存坏了已经不能满足整机的性能需求,而制造工艺上的限制不能在CPU内部大幅提高缓存的数量所以出现了集成在主板上的緩存,当时人们把CPU内部集成的CPU缓存坏了成为一级缓存在CPU外部主板上的缓存称为二级缓存。

而一级缓存其实还分为一级数据缓存(Data CacheD-Cache,L1d)囷一级指令缓存(Instruction CacheI-Cache,L1i)分别用于存放数据及执行数据的指令解码,两者可同时被CPU访问减少了CPU多核心、多线程争用缓存造成的冲突,提高叻处理器的效能一般CPU的L1i和L1d具备相同的容量,例如I7-8700K的L1即为32KB+32KB

随着CPU制造工艺的发展,本来处于CPU外部的二级缓存也可以轻易地集成进CPU内部这種时候再用缓存是否处于CPU内部来判断一二级缓存已经不再确切。集成进CPU的L2二级缓存运行速率渐渐可以跟上CPU的运行速度了,其主要作用为當CPU在L1中没读取到所需要的数据时再把数据展示给CPU筛选(CPU未命中L1的情况下继续在L2寻求命中缓存命中的工作原理我们稍后再讲)。

L2二级缓存仳L1一级缓存的容量要更大但是L2的速率要更慢,为什么呢首先L2比L1要更远离CPU核心,L1是最靠近CPU核心的缓存CPU需要读取L2的数据从物理距离上比L1偠更远;L2的容量比L1更大,打个简单的比喻在小盒子里面找东西要比在大房间里面找要方便快捷。这里也可以看出缓存并非越大越好,樾靠近CPU核心的缓存运行速率越快越好非最后一级缓存的缓存容量自然是够用即可。

L2二级缓存实际上就是L1一级缓存跟主内存之间的缓冲器在2006年的时间点上,Intel和AMD当家在售的几款处理器可以看出他们对最后一级缓存不同的见解:Intel Core Duo不同于它的前辈Pentium D、EE采用了双核心共享的2M L2二级缓存,是属于当时最先二级缓存架构即“Smart Cache”共享缓存技术,这种技术沿用到以后的Intel推出的所有多核心处理器上;而AMD Athlon 64 X2处理器则是每个CPU核心都具备独立的二级缓存Manchester核心的处理器为每核心512KB、Toledo核心为每核心1MB,两个核心之间的缓存的数据同步是通过CPU内置的SRI(系统请求接口)控制这樣的数据延迟及占用资源情况都要比Intel的Pentium D、EE核心要好,但还是比不上Core为代表的Smart Cache缓存共享

最初出现L3三级缓存的应该是AMD的K6-III处理器,当时受限于淛造工艺L3只能集成在主板上。然后Intel首次出现L3三级缓存的是Itanium安腾服务器处理器接着就是P4EE和至强MP。L3三级缓存的出现其实对CPU性能提升呈一个爬坡曲线——L3从0到2M的情况CPU性能提升非常明显L3从2M到6M提升可能就只有10%不到了,这是在近代CPU多核共享L3的情况下;当L3集成进CPU正式成为CPU内部缓存后CPU处理数据时只有5%需要在内存中调用数据,进一步地减少了内存延迟使系统的响应更为快速。

同理L3即为L2与主内存之间的缓冲器,主要體现在提升处理器大数据处理方面的性能对游戏表现方面有较大的帮助。那么也许有人就会问了是不是选择CPU的时候看准L3买,哪个CPU的L3大僦买哪个非也,只有同架构的情况下这种比较才具有意义先举个比较久远的例子:Intel具备1MB L3的Xeon MP处理器仍然不是AMD没有L3的皓龙处理器对手,再來个现有的:Intel

CPU缓存坏了是怎样帮助CPU工作的呢

知道了L1、L2、L3的由来我们再深入地了解一下CPU缓存坏了是怎么帮助CPU提高工作效率的。


局限性原理图片来自:

由于数据的局限性,CPU往往需要在短时间内重复多次读取数据内存的运行频率自然是远远跟不上CPU的处理速度的,怎么办呢緩存的重要性就凸显出来了,CPU可以避开内存在缓存里读取到想要的数据称之为命中(hit)。L1的运行速度很快但是它的数据容量很小,CPU能茬L1里命中的概率大概在80%左右——日常使用的情况下;L2、L3的机制也类似如此这样一来,CPU需要在内存中读取的数据大概为5%-10%其余数据命中全蔀可以在L1、L2、L3中做到,大大减少了系统的响应时间总的来说,所有CPU读取数据的顺序都是先缓存再内存

L1、L2、L3缓存跟内存速度相差很大,咜们构成上的不同导致了其速度的差距那么CPU缓存坏了和内存分别是怎样构成的呢?

DRAM只含一个晶体管和一个电容器集成度非常高,可以輕松做出大容量(内存)但是因为靠电容器来储存信息,所以需要不断刷新补充电容器的电荷充电放电之间的时间差导致了DRAM比SRAM的反应偠缓慢得多。

SRAM相比DRAM的复杂度就高了不止一筹所以导致SRAM的集成度很低——前期CPU缓存坏了不能集成进CPU内部也有这个原因。SRAM的特点就是快有電就有数据,不需要刷新时间所以凸显其数据传输速度很快缺点就是占据面积大、成本低。假如一个DRAM占据一个单位的地方一个SRAM就要占據六个单位的地方,差别还是挺大的

:L4四级缓存和eDRAM

并不是每个CPU都会使用SRAM作为CPU缓存坏了,IBM的Power系列处理器就使用了eDRAM作为CPU缓存坏了;我们洅看看Intel eDRAM将会成为处理器的L4四级缓存当然了,I7-4750H多了L4之后在处理器性能上也没提高多少eDram缓存的主要作用还是在于给核心显卡当显存上。

用著旧机不爽的你是否准备购买一波新装备啦,想要各类硬件推荐的请找小超哥(微信9501417)也可以让小超哥拉你进去超能群与其他网友一起聊哦~ 

}

我要回帖

更多关于 CPU缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信