电脑的cpu一级缓存达到2MB,是什么程度?为什么?
一级缓存有两大作用:存储CPU直接读取的数据;存储CPU的指令集。一般多核CPU,每个内核分到的一级缓存容量为64K,其中32K存储数据,另32K存储指令集。英特尔刚推出的至强铂金9282处理器有56核,所以一级缓存至少3.5MB,轻松超越题主说的2MB的小目标。唯一的问题是价格,一颗要接近30万元人民币,土豪可以买来做挂串,或者DIY一台电脑玩扫雷。
至强铂金9282号称英特尔史上最大的处理器,有多大?和人的一只手掌差不多,长度接近一张信用卡(见下图),重量差不多半斤,和一部iPhone 11 Pro Max差不多,还不算太沉。
硬件指标是巨无霸级别的,因为有56核心,所以线程达到112个,支持12通道内存,400W热设计功耗,能跑又能吃。考虑到核心只有至强铂金9282一半的同系列8082L卖1.8万美元,所以个人猜测,4万美元售价中,很大一部分是给一级缓存巨大的容量,以及将56个核心连接在一起消耗的设计人员的脑细胞埋单了。
一句话,SRAM做的一级缓存还是太贵了。
CPU缓存是什么?
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。
缓存大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是从CPU芯片面积和成本的因素来考虑,缓存都很小。
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,如今主流CPU还有三级缓存,甚至有些CPU还有四级缓存。每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。
为什么CPU会有L1、L2、L3这样的缓存设计?主要是因为现在的处理器太快了,而从内存中读取数据实在太慢(一个是因为内存本身速度不够,另一个是因为它离CPU太远了,总的来说需要让CPU等待几十甚至几百个时钟周期),这个时候为了保证CPU的速度,就需要延迟更小速度更快的内存提供帮助,而这就是缓存,如下图所示。
当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
CPU的一二三级缓存哪个最重要?
一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
但是,现在CPU的一级缓存几乎都一样,容量都比较小,多为64K,因此如今的CPU基本很少提一级缓存,主要是大家都一样,虽然最重要,但却不值得一提。
二级缓存,对CPU是很重要的,不过很多朋友会发现,如今很多Intel的CPU也都不怎么提二级缓存,只标注三级缓存。而AMD的不少新CPU也多为标注三级缓存为主,二级缓存只有部分型号会标注,比如AMD锐龙5 2600X提供3M三级缓存和16M三级缓存,R7 2700X则也只有16M三级缓存。而Intel酷睿i3 8100则只有6M三级缓存,高端的i7 8700K则只标注12MB。
因此,在目前的新款CPU中,二级缓存的重要性在减弱,三级缓存则成为重点。
现代CPU的高速缓存体系结构是非常复杂的,其中包括硬件预取和数据转发,以便能提供最佳的高速缓存命中机会,有些CPU甚至还加入了L4缓存。
以上内容是万老网对cpu二级缓存速度的问题就介绍到这了,希望介绍关于cpu二级缓存速度的1点解答对大家有用。