CPU缓存作用知识科普
说到CPU的规格参数,相信很多小伙伴都看到过电商、评测、官方的各种表格,大家觉着最重要的是什么?第几代核心?频率?还是制造工艺?从这些参数在表格里的位置就知道,它们确实很重要,不过和它们一起挤在表格最前面的,常常还有“缓存”这个参数,下面就让小编带你去看看CPU缓存作用知识科普,希望能帮助到大家!
CPU缓存的作用
CPU缓存(CPU Cache)是位于CPU与内存之间的静态随机存取存储器(StaticRandom Access Memory,SRAM)。所谓“静态”指的是这种存储器只要保持通电,里面存储的数据就可以恒常保持。相比之下,电脑的内存——动态随机存取存储器(DRAM)里面所存储的数据则需要周期性地刷新。
内存简介
电脑存储器
SRAM的优势在于它不需要像DRAM一样刷新(每隔一段时间充电一次)电路就能保存它内部存储的数据。因此缓存(SRAM)具有比内存(DRAM)更高的性能。SRAM的缺点是SRAM集成度较低,功耗较DRAM大,相同容量的DRAM内存可以设计得更小,但SRAM却需要保持很大的体积,因此SRAM更加昂贵。
2.CPU缓存的工作原理
电脑在运行程序时,当CPU要读取一个数据,首先将从缓存中查找,如果找到就立即送给CPU处理。缓存与CPU之间的数据交换速度要比CPU和内存之间快得多。
如果CPU没有在缓存中找到需要的数据。
就用相对慢的速度从内存中读取并送给CPU处理。
同时把这个数据所在的数据块调入缓存中。
这样,可以使得下次再使用同样的数据时,可以通过缓存快速读取,而不必再调用内存。而CPU在需要访问特定的数据时,也会先检查一下缓存,看看其中是不是有自己需要的数据。
这样的数据读取机制使CPU读取缓存数据的命中率(hit)非常高(90%左右),也就是说经过上面所示的数据读取与调用后,CPU经常要用的数据很大可能被保存在了缓存中,当它下一次要读取相同的数据时,90%的数据都在缓存中了,无需再从较远的内存中调用。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需访问内存。
一台电脑如果没有CPU缓存,它虽然仍可以工作,但是相比拥有CPU缓存的电脑,它的运行速度会慢很多。
3.CPU缓存解决的问题
由于CPU核心的发展速度远远超过了内存技术的发展速度,导致CPU处理数据的速度太快,快到内存提供的数据跟不上CPU处理数据的速度。缓存没有出现之前,在处理器时钟周期内,CPU常常需要等待内存供应数据,这不仅浪费资源,还降低了CPU的工作效率。
因此缓存便应运而生,它的出现是为了缓解CPU和内存之间速度的不匹配问题。
缓存的出现解决了CPU运行速度提升的瓶颈问题。
4.CPU的三级缓存
CPU缓存有三种不同的等级,包括L1一级缓存、L2二级缓存、L3三级缓存。
L1一级缓存
L1一级缓存也被称为“主缓存”,这个名词出现应该是在Intel公司奔腾(Pentium)处理器时代把缓存开始分类的时候,当时在CPU内部集成的CPU缓存已经不能满足整机的性能需求,而制造工艺上的限制不能在CPU内部大幅提高缓存的数量,所以出现了集成在主板上的缓存,当时人们把CPU内部集成的CPU缓存成为一级缓存,而把CPU外部主板上的缓存称为二级缓存。
一级缓存位于CPU的内部,CPU访问它速度与CPU自身的速度相当,因此一级缓存速度非常快。它是电脑中速度最快的缓存。
一级缓存其实还分为一级数据缓存(Data Cache,D-Cache,L1d)和一级指令缓存(Instruction Cache,I-Cache,L1i),分别用于存放数据及执行数据的指令解码,两者可同时被CPU访问,减少了CPU多核心、多线程争用缓存造成的冲突,提高了处理器的效能。一般CPU的L1i和L1d具备相同的容量,例如i7-8700K的L1即为32KB+32KB。
L2二级缓存
L2二级缓存也被称为“外部缓存”。它被用于存储最近被处理器访问但还没有被一级缓存存储的数据。二级缓存的容量要比一级缓存大,但速度却没有一级缓存那么快。
概括地说CPU在寻找需要的数据时,没有在一级缓存中找到自己需要的数据,它便会搜索二级缓存。
随着CPU制造工艺的发展,本来处于CPU外部的二级缓存也可以轻易地集成进CPU内部。
在这种情况下再用缓存是否处于CPU内部来判断一、二级缓存已经不再确切。集成进CPU的二级缓存运行速率渐渐可以跟上CPU的运行速度了。
L3三级缓存
早期,出现L3三级缓存的CPU是AMD的K6-III处理器,当时受限于制造工艺,L3只能集成在主板上。随后Intel首次推出L3三级缓存的CPU是Itanium安腾服务器处理器,接着就是P4EE和至强MP。
三级缓存的出现其实对CPU性能提升呈一个爬坡曲线——三级缓存在0到2M的情况下CPU性能提升非常明显,但三级缓存在2M到6M下,对CPU性能的提升可能就只有10%不到了,这是在近代CPU多核共享L3的情况下;当L3集成进CPU正式成为CPU内部缓存后,CPU处理数据时只有5%需要在内存中调用数据,进一步地减少了内存延迟,使系统的响应更为快速。
同理,三级缓存是二级缓存与主内存之间的缓冲器,主要体现在提升CPU对大数据处理方面的性能,对游戏表现方面有较大的帮助。
三级缓存的容量比二级缓存要大,但速度却比二级缓存要慢。三级缓存也被称为共享缓存。因为它的存储空间是被CPU之间的所有内核共享的。
而一级和二级缓存则是专用的,CPU中每个核心都有自己的一级和二级核心。
总结
由于数据的局限性,CPU往往需要在短时间内重复多次读取数据,内存的运行频率自然是远远跟不上CPU的处理速度的。此时,缓存的重要性就凸显出来了,CPU可以避开内存在缓存里读取到想要的数据,称之为命中(hit)。一级的运行速度很快,但是它的数据容量很小,CPU能在一级缓存里命中的概率大概在80%左右;二级、三级缓存的机制也类似如此。这样一来,电脑在运行程序时,CPU需要在内存中读取的数据大概为其所需数据的5%-10%,其余数据命中全部可以在L1、L2、L3中做到,这大大减少了系统的响应时间,总的来说,所有CPU读取数据的顺序都是先缓存再内存。
为了加深读者对CPU缓存和三级缓存的了解,这里用一个比喻来总结以上内容。
如果我们把CPU中的一个核心可以看成是一个只会算加减乘除以及与或非之类的简单逻辑运算的小学生,它的任务也就是不停地算一个个的加减乘除与或非这样的计算题。
CPU缓存有什么用?来,科普一下!
CPU没有存储功能,那么缓存到底是干什么的?CPU缓存是用于减少处理器访问内存所需平均时间的部件,作用类似于CPU内部的内存。
更详细来讲,在计算机系统中,CPU高速缓存在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率,比内存快得多。
缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存。
之所以CPU需要采用这种层级结构,主要就是是从成本、性能、容量还有面积上来平衡的。
提升命中率:所谓的命中率是在高速缓存中找到内存引用的速率,我们希望能够首先通过缓存中获得信息,以得到速度优势,所以缓存需要最大限度地实现这一目标。对于单个高速缓存,大小、关联性和块大小决定命中率。
降低更低级别内存下的开销:高速缓存是内存层次结构的一部分,其性能会影响其它性能,处理其它内存花费的时间越长,意味着系统性能越低,也就是说尽可能让处理在缓存中完成。
减少错失惩罚:缓存中不能命中是无法避免的事情,但是我们可以减少处理未命中所需的时间以获得更好的处理器性能,通过提升命中率并通过应用不同的优化,能够降低错失惩罚。
高速缓存是CPU中十分重要的部分,占据了大量的资源开销和成本,如果您看过CPU架构图的话,您就会发现缓存占据了至少50%的面积,绝对至关重要。
CPU缓存是什么 知道它挑选更明智
现在大家看到的CPU缓存一般分三级,就是一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache),它们的位置、大小、作用差别都很大,咱们分别说说。
CPU的一级缓存一般做在CPU的每个核心内部,因为空间受限,不会很大,都是几十kB。它们的任务是存储核心计算时候的暂时性数据,可以说是每个核心自用的小内存,更形象地说就是给每个核心童鞋计算时配的草稿纸。
二级缓存同样是跟着每个核心的,一般有几百kB,它也只存储每个核心自己的数据,这点类似更大但更慢的一级缓存。此外它存储的是比较“成型”的数据结果,这些数据要和三级缓存做交流的。形象地说,就是除了草稿之外,也存了不少核心童鞋需要处理和已经做完,要上交的作业、试卷。
三级缓存可就大了,现在主流CPU的配备都是成MB的,一般是整个CPU或者其中的某几个核心共用。它首先是多个核心的“会议桌”,相互间的数据交换都在这里进行,当然内置显示核心也要使用。另外它也和硬盘等配件的缓存一样,负责和内存交换数据。
一般来说,英特尔和AMD的一、二级缓存容量差不多,但三级差别很大,比如同样是中端CPU,锐龙5就有十几、几十MB的三级缓存,酷睿i5只有几MB,高端就差更多了。这样锐龙就可以靠大缓存把尽量多数据放在身边,减少对内存的依赖,提升性能,从现在对锐龙大量的“真香”评论可以看出,这招真的很管用。
虽然用第三代锐龙的超大缓存举例有点极端,不过挺能说明问题,就是“核心效率不够高,缓存帮你性能提一提”。所以在选择CPU的时候,如果感觉核心有点过时,或者频率有点低的话,不妨看一看缓存,如果缓存比对手大不少,那么还是可以考虑的,其实低频率的笔记本CPU常常也是这样做的哦。
CPU缓存作用知识科普相关文章:
★ CPU的基础知识
★ 内存基础知识干货
★ 内存条的基础知识