我们不但可以亡羊补牢
更擅长未雨绸缪

关注我们

您的位置: 主页 > 支持与下载 > IT知识库 >
IT知识库

什么是CPU缓存?
时间:2018-06-14 作者:xnit 点击:

虽然内存看起来速度要比硬盘快得多,但是相对CPU来说仍然是极慢的。

 

在CPU和内存交换数据的时候,CPU内部的缓存才是关键的关键,今天小诺就和亲们分享一下关于CPU缓存的那些事儿。

 

 

首先,什么是CPU缓存?

现在电脑上的存储器,即便是Intel的傲腾内存,也比不上CPU内的缓存速度快。而且,缓存的大小、设计方式,也是CPU重要的性能指标之一。

 

CPU的运行速度是远远大于内存的,通常CPU都是先从cache(高速缓存)拿数据,如果没有找到要的数据才会从慢的内存中找。

 

而这时候就要等很久才拿到想要的数据,会严重拖累CPU工作的速度。

null

 

什么是三级缓存?

CPU—CPU缓存—内存,大致上工作状态就是这样。但是为了进一步优化数据的“调度”,CPU的缓存也分成几个层级,用于优化数据的吞吐和暂存,提高执行效率。

null

 

L1 Cache一级缓存

一级缓存是CPU第一层级的高速缓存,主要承担的工作是缓存数据和缓存指令。L1告诉缓存的容量和结构对CPU性能影响很大,但是由于它的结构很复杂,考虑到成本等方面的因素,一般CPU的一级缓存也就能做到256KB左右的水平。

 

L2 Cache二级缓存

二级缓存是CPU的第二层级高速缓存,二级缓存的容量会直接影响CPU性能,原则是越大越好。而且它是跟着核心走的,比如8代酷睿的i7 8700,6个核心每个都拥有256KB的二级缓存,属于各核心独享,这样总数就达到了1.5MB。

 

L3 Cache三级缓存

三级缓存其实原本是服务器级别CPU才有的,后来逐步下放到家用级CPU上。三级缓存的作用是进一步降低内存延迟,同时提升海量数据量计算时的性能,对游戏有直接的影响哦!

 

和一、二级缓存不同的是,三级缓存是核心共享的,而且容量可以做的很大。

 

 

每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的哦。

 

当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。

 

那么一般来说,若每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。

 

 

那么为什么只有三级缓存呢?

下图这张结构图亲们就很能看得懂,三级缓存差不多占据了两个核心的面积,如果加上四级呢?五级呢?

 

要知道缓存容量都是急速递增的,亲们看图里都看不到L1和L2 Cache哦,如果有四级缓存,单独的缓存面积就比整个现有的CPU大了哦╭( ̄m ̄*)╮

null

 

那么可能出现什么问题呢? 

 

1. 核心面积变大,功耗增大,发热量增大,对散热设备要求高,与未来发展趋势(减负)对着干哦√(─皿─)√

 

2. 对于整体性能的作用,L1 cache最大,L2次之, L3甚至不到L1 cache的十分之一。

 

若是不计成本的话,加到L4还有情可原,加到L5其实已经和系统内存差不多了。