CPU的缓存是什么,有哪些作用?

影子书屋

咱们先来形象地理解下:

能看明白吗?还没有,哦,那咱们再举个例子,比如你每天要上班或外出,通常会背个包,包里的东西是从家里清理出来外出可能需要用到的,比如钱包、钥匙、书箱等,还有些更常用的就直接放在口袋,比如手机啊,能随手所得。好啦,那口袋就是你的缓存,首先从口袋找你要用的,如果没有,就从你的背包里找(相当于内存),如果还没有,可能需要回家拿了(相当于你的硬盘),是不是一个比一个慢?

下面是技术上的讲解。

CPU执行一个运算:1-5周期

内存访问时间:300周期

随着CPU的性能越来越快,而内存访问时间的进步要小得多,而且差距越来越明显,在这样的情况下,就出现了缓存。

发明缓存就是为了解决CPU与内存间访问时间太久的问题,本质上说,CPU缓存也是一小块内存,它用于存储CPU接下来最可能需要的信息,至于哪些信息加载到缓存中取决于复杂的算法和预测,缓存系统的目标就是确保CPU在下一次能直接命中需要的信息。

一旦L1高速缓存未能命中就意味着CPU不得不在从其他地方来找数据 ,这就是L2缓存的用武之地,它更大,速度肯定比L1缓存要慢,但是比内存还是快的多。如果在L2缓存中也找不到数据,则CPU继续向L3缓存要数据 ,然后是L4(如果有),最后实在不行就找内存了。

现在的CPU都有一个与自身紧密集成的L1缓存,L1通常是分为指令和数据缓存,基本上建立在每个CPU内核内部,所以CPU可以非常快地达到1级缓存,典型的i7有32K的数据和32K的指令缓存。

L2缓存离CPU核心稍远,一些较老CPU的L2缓存为2MB,也有4MB的,但英特尔i7上的L2缓存仅为256K。为什么?因为这样可以使延迟更低,速度更快。现在L2缓存基本上也是每个Core都有的。

当然了,L2这么小,是因为现在很多CPU还有L3缓存,i7上的L3缓存达到8MB甚至12MB,AMD的Threadripper其L3更是高达32MB,L3是多个Core共享的,容量大,命中率高,就是速度慢,便宜啊。

总而言之,缓存就是为了降低延迟,提高性能。


超能网

关于CPU缓存估计很多人和内存混淆,CPU缓存分为一级,二级,三级,下面我们就详细谈谈;

一级缓存,二级缓存,三级缓存但是这个缓存到底是什么,有什么作用,他与内存到底有什么关系,我们今天就来探讨一下,我主要目的是学习,写回答也是让学习更深入,说的不好大家见谅;


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

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


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

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

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

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


高全玩电脑

娱乐

\n

{!-- PGC_VIDEO:{"status": 0, "thumb_height": 360, "neardup_id": 8404751674747943558, "vname": "\\u4e24\\u5206\\u949f\\u5e26\\u4f60\\u4e86\\u89e3\\u4ec0\\u4e48\\u53eb CPU\