教育培训 > CPU的一二三级缓存有什么用处?

CPU的一二三级缓存有什么用处?

2020-09-19 15:34阅读(62)

CPU的一二三级缓存有什么用处?为什么都只有i9都只有27MB,而内存是G为单位?:先看看为什么CPU会有L1、L2、L3这样的缓存设计,正如下图所示,现在的处理器太快了

1

先看看为什么CPU会有L1、L2、L3这样的缓存设计,正如下图所示,现在的处理器太快了,而从内存中读取数据实在太慢(一个是因为内存本身速度不够,另一个是因为它离CPU太远了,总的来说需要让CPU等待几十甚至几百个时钟周期),这个时候为了保证CPU的速度,就需要延迟更小速度更快的内存提供帮助,而这就是缓存。

现在让我们看看多级缓存(L1,L2,L3)的好处,而不仅仅是单个缓存。

1、高速缓存越靠近ALU等核心单元,访问速度就越快,所以会有靠近核心的L1缓存,虽然它小,但它真的快啊;

2、高速缓存的容量越大,缓存命中(Cache hit)就越高,所以当L1没有命中时,需要一个容量更大的但速度也不慢的缓存来提供数据,这就是L2;

3、更大的缓存意味着更高的命中,同时也意味着更高的成本、更慢的速度、更多的晶体管,更大的面积,因此它不可能靠近所有核心单元,这就是L3;

这就是CPU缓存的层次结构,基于性能、成本、设计上的一个平衡,L1缓存可以最大化单个内核的位置和速度(甚至分离指令和数据)。L2高速缓存会更大些,命中更高,速度稍慢,一般还是位于每个核心内,而L3缓存通常在系统中的所有内核间共享,提供合理的速度和容量。比如英特尔Core i7-8700K它的L1大小只有64K,还分为32K数据和32K指令,L2大小为256K,L3达到12MB。

现代CPU的高速缓存体系结构是非常复杂的,其中包括硬件预取和数据转发,以便能提供最佳的高速缓存命中机会。有些CPU甚至还加入了L4缓存。

2

首先CPU缓存都不是很大27M已经算很大的了,关于这个MB和G只是单位,我个人是这样认为的,至于那些理论上的我们也理解不进去,不对之处大家见谅;


当内存达到1024MB那也就会一1G作为单位了,不要说内存没有MB作为单位的,以前的内存256MB 512MB不照样是MB只有容量达到1024MB才称为1G,你缓存才27MB离1G还很遥远,还有CPU缓存并不是越大越好,因为缓存采用的是速度快、非常贵的静态RAM(SRAM),由于每个SRAM内存单元都是由4到6个晶体管构成,缓存越大CPU集成晶体管个数会增大,制作工艺会更大,发热量也随之增大,这个功耗和成本大大增加,所以现在缓存基本上都不大;


CPU缓存估计很多人和内存混淆,CPU缓存分为一级,二级,三级,我们就详细谈谈,一级缓存,二级缓存,三级缓存但是这个缓存到底是什么,有什么作用,他与内存到底有什么关系,说的不好大家见谅;


缓存是购买CPU非常重要的一个参数,它的大小直接关系CPU的读取速度,缓存是介于内存与CPU之间的存储器,容量比内存小,但速度比内存快,他可以大大减少CPU访问内存的时间的部件,它是由若干缓存段组成,每个缓存段具有连续内存地址的若干个存储单元。

缓存的工作原理;CPU需要读取一个数据的时候,首先会从高速缓存中查找,如果找到就会立即读取并发送给CPU处理,如果没找到就以较慢的速度去内存中读取并发送给CPU,同时在把这个数据所需要的数据块调入高速缓存内,后面再读取数据的时候直接从缓存读取,不必再调用内存。


这样我们举例说明,我们把CPU比喻成一个大型加工总部,内存为部件存储大仓库,而缓存就是总部与大仓库之间的小仓库,离CPU较近的小仓库是一级缓存,其次依次为二级缓存和三级缓存,当加工总部需要加工某个成品时候需要很多部件,这个时候缓存就是把所需要的部件提前从内存调出,存储在小仓库内,当总部加工需要某个部件时候就可以直接从最近的小仓库提取,就不必大费周章去内存大仓库调取,缓存的大小就相当于小仓库存储容量大小,他越大存储的东西就越多,比如这个成品需要900个部件,如果缓存仓库容量大就可以直接将900个部件全部提取放在缓存仓库,如果缓存较小那么所存储的部件只能一次提取三四百个,那剩余的六七百个就需要直接去内存调取,会影响整个加工时长,所以缓存大小直接关系读取速度。


另外说说一级,二级,三级缓存;

一缓,是CPU的第一层高速缓存,主要分为数据缓存和指令缓存,这是对CPU性能影响最大的一层;

二缓,是CPU的第二层高速缓存,分内部和外部两种芯片,内部芯片速度基本上与CPU主频相同,而外部芯片只有主频的一半

三缓,离CPU较远,读取速度没一级二级快,但一般三级缓存容量比前面两级大很多。

就说这么多了,毕竟是业余的有什么不对的地方,希望大家及时提出,我好改进,喜欢我的别忘关注我!谢谢。

3

打个比方,你在北京一环内开个淘宝店卖衣服(CPU)从广州每个月进货一次(硬盘)市中心房价太贵。你在6环外租了个仓库放货品(内存)但是北京堵车,从仓库到店铺一天都未必能到。没办法你又在三环租了一个廉价民房作为中转。(三级缓存)但是有些加急件需要一天上次发货,没办法,你又在2环租了一个写字间,转发负责每天发货(2级缓存)。但是还有一些小样,和退换货需要你这个老板随时查看。这样你就在你一环的办公室隔壁高价租了一个办公室专门放样品和临时退换货(一级缓存)。

4

CPU的缓存设计是为了更快的数据处理速度,因为电脑的硬盘尤其是机械硬盘速度非常慢,比起CPU动辄几Ghz的频率差太多了,这样如果CPU直接从硬盘调取数据就需要大量的时间等待,从而导致降低性能,无法充分发挥CPU的性能优势,在这种情况下就为CPU设计了专用缓存,过去缓存是和CPU本体分离的,随着半导体工艺的进步,CPU缓存就完全融为一体了,速度也比以前更快。

CPU为什么要设计一二三级缓存?因为一级缓存的速度是最快的,同时也是最复杂的,限于CPU核心面积,一级缓存不可能设计的很大,所以到现在的CPU的一级缓存也不过以KB来计算。

二级缓存主要就是用来弥补一级缓存容量的不足,因为缓存再快要是存储不了多少数据也会降低性能,这样二级缓存就使用了不同的结构以增大容量为主,目前主流CPU的二级缓存容量都是一级缓存的好几倍,但是在多核CPU中,每个核心的二级缓存都是独立的。

三级缓存出现的最晚,它是为了进一步增大CPU缓存容量以提高命中率来设计的,和二级缓存不同的是,三级缓存一般都是CPU所有核心共享的缓存,这样设计可以大大提高CPU利用缓存的效率和灵活度,也是目前CPU缓存最大的一类。

CPU缓存的结构设计和内存是不同的,内存DRAM芯片结构更适合做大容量,所以能轻易做到以G为单位的容量,但是速度比起CPU内部缓存就慢很多,内存是作为CPU与硬盘之间的数据存储功能,在速度上从快到慢是一级缓存>二级缓存>三级缓存>内存>硬盘,电脑正是通过这样的设计一方面尽可能提高了CPU的速度,另一方面把整体成本降低到合理区间。

5

首先我们要知道CPU缓存是什么,CPU缓存位于CPU与内存之间,起到临时存储器的作用。它的主要作用在于CPU的运行速度要远高于内存速度,这会导致正常的运算过程中,CPU往往会等到内存将数据传输过来或者通过内存传输至其他硬件。CPU缓存的出现就是为了应对这类情况的出现,通常而言,CPU缓存容量比内存小但交换速度比内存快,当CPU调用大量数据时,就可先在CPU缓存中调用,从而加快读取速度。

我们日常购买CPU的时候,会在参数表中看到有一级缓存、二级缓存、三级缓存指标,三种缓存的容量各不相同,他们之间的关系可以理解为每一级缓存中存储的全部数据为下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增。

CPU缓存

一级缓存

一级缓存就在CPU的内核边上,是与CPU连接最紧密的缓存,也是最早出现在CPU中缓解CPU与内存之间数据的缓存,

二级缓存

二级缓存是CPU的第二层高速缓存,L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家用CPU容量最大是4MB。

三级缓存

三级缓存是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

CPU缓存作用

作用之一就是我们之前提到的减少延迟,减少CPU与内存之间数据传输过程中的延迟时间。

作用之二则是提高命中率,CPU在Cache中找到有用的数据被称为命中。未找到则访问内存,对于用户而言,当然更希望通过访问CPU缓存中的信息已得到速度上的优势。而CPU缓存的作用就是为了最大限度提升这一目标。

作用三是降低装机成本。缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存,进而降低装机成本。

CPU缓存的作用其实就是提高命中率、降低延迟、降低内存开销,其作用是为了提升CPU的工作效率。CPU缓存越大越好,尤其是一些专业设计、视频渲染,由于CPU运算数据量大,对大缓存依赖较高。目前,随着游戏画质的越来越优化,对于CPU缓存的需求也越来越高。

6

如题所述

抛开你所讲的i9处理器,我们就说说,CPU缓存的重要性,话题再扯远一点,CPU缓存究竟是怎样发展而来的?

简单直白的来讲,CPU的缓存是用来调用数据,最早的CPU是通过内存数据完成,由于内存条的工作频率要大大低于CPU的工作频率,所以CPU要等待内存条,导致整体运算速度,比较慢,后来因为制作工艺的提升主板集成了缓存,这样一来CPU调用数据的速度有了质的提升,但数据调用速度依然低于CPU自身的工作频率,后来CPU集成了一级二级缓存,那么当CPU发出命令是直接一级缓存中调用数据,这样就大大提升了,CPU运算速度

其实你可以用使用CPU z,去观察CPU的一级二级缓存,包括三级缓存容量,究竟有多大的区别?

无论CPU发展到现在,由于制作成本太高的原因,CPU的一级缓存一直没有质的提升,因为生产成本太高,都是用来增加二级缓存和三级缓存,其实在正常的使用情况下,CPU对大型数据处理才会运用到三级缓存,因为二级缓存数据已经没办法进行处理

再用一个例子来举,CPU相当一个点菜的人,一级缓存,相当于菜单,二级缓存,相当于菜,CPU是那一个点菜的人,都是先通过二级缓存,再来访问一级缓存,这样大大减少一级缓存数据的占用,由于整体运算速度的提升

等未来不久,如果能够降低生产成本,直接将cpu1级缓存进行质的提升,那么CPU的运算,速度将会突破瓶颈

一级缓存,速度最快,但是容量小,二级缓存相比较三级缓存,数据处理,速度更快

7

cpu缓存的意义,另外几个答主已经说得比较清楚了。至于缓存都是MB为单位,内存都上G了,这是因为这两个东西的结构和采用的技术并不一样。缓存使用的是SRAM工艺,基本单元是锁存器,占用晶体管多,而内存基于DRAM技术,利用的是晶体管结电容,单元电路简单。SRAM的好处是访问延时小且固定,而DRAM容量大,但读写时序复杂,读写带宽和延时不固定,因此需要搭配SRAM缓存一起使用,希望对各位有帮助!

8

所谓的CPU缓存就是CPU内部的缓存运行频率,缓存的大小与结构对CPU速度的影响较大,因此缓存大小也是CPU重要的性能指标之一。而CPU的缓存的工作效率能够远超内存、硬盘速度。


什么是CPU缓存,CPU缓存有什么用?

CPU缓存,英文叫Cache Memory,它是位于CPU和内存之间的临时存储器。CPU缓存的作用主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,而缓存的容量要比内存要小的太多,但是其速度要比内存快的多,因此这样会让CPU使用很长的时间等待数据到来或把数据写入内存中。搜索在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就能够避开内存直接从缓存中调用,从而加快读取速度。

当CPU需要读取数据并进行计算时,首先需要将CPU缓存中查到所需的数据,并在最短的时间下交付给CPU。如果没有查到所需的数据,CPU就会提出“要求”经过缓存从内存中读取,再原路返回至CPU进行计算。而同时,把这个数据所在的数据也调入缓存,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

CPU—CPU缓存—内存,大概就是这个工作状态。但是考虑到进一步优化数据的“调度”,而CPU的缓存也分为几个层级,例如一级缓存、二级缓存、三级缓存等,主要用于优化数据的吞吐和暂存,大大提高执行效率。

CPU一级缓存、二级缓存、三级缓存是什么意思?

一级缓存(L1 Cache

CPU一级缓存,就是指CPU的第一层级的高速缓存,主要当担的工作是缓存指令和缓存数据。一级缓存的容量与结构对CPU性能影响十分大,但是由于它的结构比较复杂,又考虑到成本等因素,一般来说,CPU的一级缓存较小,通常CPU的一级缓存也就能做到256KB左右的水平。

二级缓存(L2 Cache66

CPU二级缓存,就是指CPU的第二层级的高速缓存,而二级缓存的容量会直接影响到CPU的性能,二级缓存的容量越大越好。例如intel的第八代i7-8700处理器,共有六个核心数量,而每个核心都拥有256KB的二级缓存,属于各核心独享,这样二级缓存总数就达到了1.5MB。

三级缓存(L3 Cache

CPU三级缓存,就是指CPU的第三层级的高速缓存,其作用是进一步降低内存的延迟,同时提升海量数据量计算时的性能。和一级缓存、二级缓存不同的是,三级缓存是核心共享的,能够将容量做的很大。


CPU的核心数量、高频高低都会影响性能,但如果让CPU更聪明、更有效率的执行计算任务,那么缓存的作用就至关重要了。

如果觉得对你有帮助,可以,多多评论,多多点赞哦,也可以到我的主页看看,说不定有你喜欢的讯息,可以随手点个关注哦,谢谢

9

本人简单的来说下,也能让大家都看的懂!

CPU有一级缓存,二级缓存,三级缓存(有些型号的CPU不带)。

当我对电脑进操作,办公,看视频,玩游戏,需要大量的指令和数据调换和传输,而重要的指令和数据会优先存放到CPU缓存中,一级缓存满了就放到二级缓存,二级缓存满了就到三级缓存,当三级缓存满了(或者没三级缓存)的时候就存放到内存里面。而内存的传输速度没有CPU中的缓存传输速度快!

性能越好的CPU除了主频高,核心多,CPU缓存,一二三级缓存都大。

这样说不知道大家看的懂吗?

10

一切为了速度!

因为硬盘尤其是传统嗯机械硬盘速度相对于CPU来说是非常慢的!所以电脑在运行时,会首先把所需要的文件调去到内存中,然后再执行,这样速度就会比从硬盘直接读取要快很多!!内存就是CPU和硬盘之间的临时仓库(开机状态下)!

CPU的缓存也叫高速缓存,他的速度比内存更快!同时价格也更贵,现在都是集成在CPU内部的,在CPU面积不变的情况下,高速缓存的容量也不能做的很大,现在的一级高速缓存也是以KB计算元比内存小多了!

高速缓存存在的意义就是增加CPU的命中率!命中率就是指某一时刻CPU需要的数据是不是存在于高速缓存里!由于一级高速缓存其实只有几K最高几十K,所以命中率其实也不是特别高,这样就需要频繁的去内存取数据!尤其在现在的多任务环境下,这样就有了二级缓存。它比一级速度慢一点,但是容量更大一点这样的命中率就提高了很多,CPU去内存读取数据的次数就少了!

Intel的大部分CPU还有三级缓存,比二级缓存的速度更慢一些,但是还是比内存的速度更快,并且三级缓存可以做到MB级别的容量,进一步的提高了命中率,大大降低了CPU等待数据的时间!更提高了计算机的运行速度!