CPU缓存L1 L2 L3的工作原理(三级缓存).docx

上传人:王** 文档编号:1091836 上传时间:2024-03-25 格式:DOCX 页数:5 大小:91.96KB
下载 相关 举报
CPU缓存L1 L2 L3的工作原理(三级缓存).docx_第1页
第1页 / 共5页
CPU缓存L1 L2 L3的工作原理(三级缓存).docx_第2页
第2页 / 共5页
CPU缓存L1 L2 L3的工作原理(三级缓存).docx_第3页
第3页 / 共5页
CPU缓存L1 L2 L3的工作原理(三级缓存).docx_第4页
第4页 / 共5页
CPU缓存L1 L2 L3的工作原理(三级缓存).docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《CPU缓存L1 L2 L3的工作原理(三级缓存).docx》由会员分享,可在线阅读,更多相关《CPU缓存L1 L2 L3的工作原理(三级缓存).docx(5页珍藏版)》请在优知文库上搜索。

1、SRAMDRAM一、前言在过去的几年中,计算机处理器取得了相当大的进步,晶体管的尺寸每年都在变小,而且这种进步达到了摩尔定律迅速变得多余的地步。当涉及到处理器时,不仅晶体管和频率很重要,高速缓存也很重要。在讨论CPU(CentralProCeSSingUnitS)时,您可能听说过高速缓存。但是,我们并没有过多地关注这些数字,它们也不是这些CPU广告的主要亮点。那么,CPU缓存到底有多重要,它又是如何工作的?二、什么是CPU缓存?首先,缓存只是一种非常快速的内存类型。您可能知道,计算机内部有多种内存类型。有一个主存储(如硬盘或SSD),用于存储大量数据(操作系统和所有程序)。接下来,我们有随机存

2、取存储器,通常称为RAM。这比主存储要快得多。最后,CPU自身具有更快的存储单元,我们称之为缓存。计算机的内存具有基于速度的层次结构,而缓存位于该层次结构的顶部,是最快的。它也是最靠近中央处理的地方,它是CPU本身的一部分。高速缓存是静态RAM(SRAM),而系统RAM是动态RAM(DRAM)。静态RAM是一种可以保存数据但是不要用一直刷新的存储器,与DRAM不同,SRAM更加适合用于高速缓存。DRAMvs.SRAMasaCache”4-C5740F00三、CPU缓存如何工作?我们己经知道,程序被设计为一组指令,最终由CPU运行。当我们运行程序的时候,这些指令必须从主存储器取指令到CPUo这是

3、内存层次结构起作用的地方。数据首先被加载到RAM中,然后被发送到CPU。因为CPU每秒都能够执行大量指令。为了充分利用其功能,CPU需要访问超高速内存,这是缓存的来源。内存控制器执行从RAM中获取数据并将其发送到缓存的工作。根据系统中使用的CPU,此控制器可以位于主板的北桥芯片组上,也可以位于CPU本身内部。然后,高速缓存在CPU内执行数据的来回传输。内存的层次结构也存在于缓存中。四、缓存级别:LI,L2和L3CPU缓存分为三个主要的*“级别”*,即L】,L2和L3。这里的层次结构是根据缓存速度来划分的。1.ld级)高速缓存是计算机系统中存在的最快的内存。就访问优先级而言,Ll缓存具有CPU在

4、完成特定任务时最可能需要的数据。就其大小而言,Ll高速缓存通常最多可达256KB。但是,一些真正功能强大的CPU现在将其占用近IMBo现在,某些服务器芯片组(如Intel的高端XeonCPU)具有1-2MB的一级缓存。1.I缓存通常也分为两种方式,分为指令缓存和数据缓存。指令高速缓存处理有关CPU必须执行的操作的信息,而数据高速缓存则保留要在其上执行操作的数据。1.2(2级)缓存比Ll缓存慢,但大小更大。它的吴小通常在256KB到8MB之间,尽管更新,功能强大的CPU往往会超过此大小.L2高速缓存保存下一步可能由CPU访问的数据。在大多数现代CPU中,Ll和L2高速缓存位于CPU内核本身,每个

5、内核都有自己的高速缓存。1.3(3级)高速缓存是最大的高速缓存存储单元,也是最慢的一个。它的范围从4MB到50MB以上。现代CPU在CPU裸片上具有用于L3高速缓存的专用空间,并且占用了很大一部分空间。五、缓存命中或未命中以及延迟数据会从RAM依次流到L3高速缓存,然后是L2,最后是Ll。当处理器正在寻找要执行操作的数据时,它首先尝试在IJ高速缓存中找到它。如果CPU能够找到它,则该情况称为高速缓存命中。然后,它继续在L2和L3中找到它。如果找不到数据,它将尝试从主内存访问数据。这称为高速缓存未命中。现在,众所周知,高速缓存旨在加快主内存和CPU之间的数据传输。从内存访问数据所需的时间称为延迟

6、,Ll具有最低的延迟,是最快的,并且最接近核心,而L3具有最高的延迟。缓存未命中时,延迟会增加很多。这是因为CPU必须从主存储器中获取数据。随着计算机变得越来越快和越来越好,我们看到延迟减少了。现在,我们拥有低延迟的DDR4RAM,以及具有低访问时间的超高速SSD作为主要存储,这两项都大大降低了整体延迟.以前,缓存设计曾经使L2和L3缓存位于CPU外部,这对延迟产生了负面影响。然而,CPU制造工艺的进步使得在比以前更小的空间中安装数十亿个晶体管。因此,为缓存留出了更多空间,这使缓存尽可能地靠近核心,从而大大减少了延迟。六、缓存的未来缓存设计一直在发展,尤其是随着内存变得更便宜,更快和更密集。英

7、特尔和AMD在缓存设计方面进行了相当多的试验,英特尔甚至还在试验L4缓存。CPU市场正在以前所未有的速度向前发展。这样,我们必定会看到缓存设计跟上CPU不断增长的能力。缓存设计方面进行了相当多的试验,英特尔甚至还在试验L4缓存。CPU市场正在以前所未有的速度向前发展。这样,我们必定会看到缓存设计跟上CPU不断增长的能力。此外,还有很多工作可以减少现代计算机的瓶颈。减少内存延迟可能是其中最大的一部分。业界正在为相同的解决方案而努力,并且未来看起来确实充满希望。CUP三级缓存LlL2L3cahe详解缓存(L1、L2、L3)是什么?以近代CPU的视角来说,三级缓存(包括Ll一级缓存、L2二级缓存、L

8、3三级缓存)都是集成在CPU内的缓存,它们的作用都是作为CPU与主内存之间的高速数据缓冲区,Ll最靠近CPU核心;L2其次;L3再次。运行速度方面:Ll最快、L2次快、L3最慢;容量大小方面:Ll最小、L2较大、L3最大。CPU会先在最快的Ll中寻找需要的数据,找不到再去找次快的L2,还找不到再去找L3,L3都没有那就只能去内存找了。1.l和L2cache是每个CPU核独享的,L3cache是多个cpu核共享。LICaChe中又分为L1D(LIDataCahce)L1I(L1InstructionCache)一级缓存(LlCache)一级缓存这个名词出现应该是在Jntel公司Pentium处理

9、器时代把缓存开始分类的时候,当时在CPU内部集成的CPU缓存已经不能满足整机的性能需求,而制造工艺上的限制不能在CPU内部大幅提高缓存的数量,所以出现了集成在主板上的缓存,当时人们把CPU内部集成的CPU缓存成为一级缓存,在CPU外部主板上的缓存称为二级缓存。而一级缓存其实还分为一级数据缓存(DataCache,D-Cache,Lld)和一级指令缓存(InstructionCache,1-Cache,Lli),分别用于存放数据及执行数据的指令解码,两者可同时被CPU访问,减少了CPU多核心、多线程争用缓存造成的冲突,提高了处理器的效能。一般CPU的Lli和LId具备相同的容量,例如17-870

10、OK的IJ即为32KB+32KB。二级缓存(L2Cache)随着CPU制造工艺的发展,本来处于CPU外部的二级缓存也可以轻易地集成进CPU内部,这种时候再用缓存是否处于CPU内部来判断一二级缓存已经不再确切。集成进CPU的L2二级缓存运行速率渐渐可以跟上CPU的运行速度了,其主要作用为当CPU在LI中没读取到所需要的数据时再把数据展示给CPU筛选(CPU未命中Ll的情况下继续在L2寻求命中,缓存命中的工作原理我们稍后再讲)。1.2二级缓存比Ll一级缓存的容量要更大,但是L2的速率要更慢,为什么呢?首先L2比Ll要更远离CPU核心,Ll是最靠近CPU核心的缓存,CPU需要读取L2的数据从物理距离

11、上比Ll要更远;L2的容量比Ll更大,打个简单的比喻,在小盒子里面找东西要比在大房间里面找要方便快捷。这里也可以看出,缓存并非越大越好,越靠近CPU核心的缓存运行速率越快越好,非最后一级缓存的缓存容量自然是够用即可。1.2二级缓存实际上就是LI一级缓存跟主内存之间的缓冲器,在2006年的时间点上,Intel和AMD当家在售的几款处理器可以看出他们对最后一级缓存不同的见解:IntelCoreDUo不同于它的前辈PentiUmD、EE,采用了双核心共享的2ML2二级缓存,是属于当时最先二级缓存架构,即“SmartCache”共享缓存技术,这种技术沿用到以后的Intel推出的所有多核心处理器上;而A

12、MDAthlon64X2处理器则是每个CPU核心都具备独立的二级缓存,ManCheSter核心的处理器为每核心512KB、TOIedo核心为每核心IMB,两个核心之间的缓存的数据同步是通过CPU内置的SRI(系统请求接口)控制,这样的数据延迟及占用资源情况都要比Intel的PentiumD、EE核心要好,但还是比不上Core为代表的SmartCache缓存共享。三级缓存(L3Cache)最初出现L3三级缓存的应该是AMD的K6-11I处理器,当时受限于制造工艺,L3只能集成在主板上。然后Intel首次出现L3三级缓存的是ItaniUm安腾服务器处理器,接着就是P4EE和至强MP.L3三级缓存的

13、出现其实对CPU性能提升呈一个爬坡曲线L3从0到2M的情况CPU性能提升非常明显,L3从2M到6M提升可能就只有10%不到了,这是在近代CPU多核共享L3的情况下;当L3集成进CPU正式成为CPU内部缓存后,CPU处理数据时只有5%需要在内存中调用数据,进一步地减少了内存延迟,使系统的响应更为快速。Core256kBL2 Cache32kBLi32kBLlDataCacheInst.CacheIntelNehalemL3SmartCache示意图同理,L3即为L2与主内存之间的缓冲器,主要体现在提升处理器大数据处理方面的性能,对游戏表现方面有较大的帮助。那么也许有人就会问了,是不是选择CPU的

14、时候看准L3买,哪个CPU的L3大就买哪个?非也,只有同架构的情况下这种比较才具有意义,先举个比较久远的例子:Intel具备IMBL3的XeonMP处理器仍然不是AMD没有L3的皓龙处理器对手,再来个现有的:Intel7-87OOK12MBL3和AMDThreadripper1950X32MBL3相比,自然是32MB比12MB大,但是平均下来也是一个核心2MBL3,性能就见仁见智了。由于数据的局限性,CPU往往需要在短时间内重复多次读取数据,内存的运行频率自然是远远跟不上CPU的处理速度的,怎么办呢?缓存的重要性就凸显出来了,CPU可以避开内存在缓存里读取到想要的数据,称之为命中(hit)。L

15、l的运行速度很快,但是它的数据容量很小,CPU能在Ll里命中的概率大概在80%左右一日常使用的情况下;L2、L3的机制也类似如此,这样一来,CPU需要在内存中读取的数据大概为5%-10%,其余数据命中全部可以在Ll、L2、L3中做到,大大减少了系统的响应时间,总的来说,所有CPU读取数据的顺序都是先缓存再内存。MESl缓存一致性cpu中的高速缓存分成四种状态分别是:M(Modified):已修改-数据被修改了E(Exclusive):独占的-数据是此CPU核独占的S(Shared):共享的-此数据是多个cpu核所共享的1(Invalid):失效的-此数据被其他CPU核所修改了,失效上图中,假使

16、有一个数据inta=1,这个数据被两个线程读取到了,线程1在叩U核心I上面执行,线程2在CPU核心2上面执行,此时数据a的状态在cup核心1和cpu核心2上面就是S(Shared)共享的,线程1执行指“a=a+l”,此时数据a在cpu核心1中的状态就是M(Modified)修改的,数据a在CPU核心2上面的状态就变成了I(InVaIid)失效的,此时如果CPU核心2再去读取a的数据,会发现a数据的状态是Invalid,那么就会直接去内存读取。如果数据a,只在CPU核心1的高速缓存里面,而在CPU核心2的高速缓存里面没有,此时数据a在cpu核心1中就是E(EXClUSiVe)独占的。每个CPU核心与其他CPU核心交互,还要与一些内存等等数据通信,这样复杂度会很高。如果有一根

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件与维护

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!