您当前的位置:首页 > 精选知识 > 正文

二级缓存是什么意思(为什么要分一二三级缓存)

二级缓存是什么意思(为什么要分一二三级缓存)

我们知道CPU性能主要由CPU架构、核心线程数、主频、缓存等诸多因素决定,“缓存”是很多网友容易忽略的地方。你知道CPU缓存是什么意思吗?什么是二极管缓存?一级、二级、三级缓存分别是什么?本文主要介绍二极管缓存以及一、二、三级缓存的区别。

二极管缓存CPU缓存是位于CPU和内存之间的临时内存。它的容量比内存小,但交换速度更快。缓存中的数据是内存的一小部分,但这一小部分会在短时间内被CPU访问。当CPU调用大量数据时,可以直接从缓存中调用,无需内存,从而加快读取速度。起初,只有一级缓存,L2缓存似乎可以协调一级缓存和内存之间的速度。二级缓存比一级缓存更慢更大,主要用于一级缓存和内存之间的临时数据交换。其实Intel和AMD处理器在一级缓存的逻辑结构设计上是不一样的,所以二级缓存对CPU性能的影响也是不一样的。

缓存的工作原理是,当CPU要读取一个数据时,先从缓存中查找,如果找到,就立即读取并发送给CPU处理。如果没有找到,会以相对较慢的速度从内存中读取,并发送给CPU进行处理。同时,这个数据所在的数据块会被转移到缓存中,这样以后就可以从缓存中读取整个数据,而不需要调用内存。

正是这种读取机制,使得CPU读取缓存的命中率非常高(大部分CPU可以达到90%左右),也就是说,CPU下次读取的数据90%都在缓存中,只有10%左右需要从内存中读取。这大大节省了CPU直接读取内存的时间,也使得CPU在读取数据时基本上不需要等待。一般来说,CPU读取数据的顺序是先缓存再内存。最早的CPU缓存是一个整体,容量很低。英特尔从奔腾时代就开始对高速缓存进行分类。当时集成在CPU核中的缓存还不足以满足CPU的需求,制造工艺的限制也无法大幅提升缓存容量。因此,有一个缓存与CPU集成在同一个电路板或主板上。此时,与CPU内核集成的缓存称为一级缓存,而外部缓存称为二级缓存。一级缓存又分为数据缓存(D-Cache)和指令缓存(I-Cache)。它们分别用于存储数据和执行这些数据的指令,并且可以同时被CPU访问,减少了因争用缓存而产生的冲突,提高了处理器效率。

二级缓存是什么意思?二级缓存是一级缓存的缓冲区:一级缓存制造成本高,所以容量有限。二级缓存的作用是存储CPU处理需要的数据,而一级缓存无法存储。同样,三级缓存和内存可以看作二级缓存的缓冲区,它们的容量增加了,但单位制造成本降低了。需要注意的是,无论是二级缓存、三级缓存还是存储器都不能存储处理器操作的原始指令。这些指令只能存储在CPU的一级指令缓存中,剩下的二级缓存、三级缓存和内存只用来存储CPU需要的数据。

为什么要把缓存分成两三级?

内存层次结构

一般来说,每一级缓存的命中率都在80%左右,也就是说所有数据的80%都可以在一级缓存中找到,只需要从二级缓存、三级缓存或内存中读取总数据的20%,可见一级缓存是整个CPU缓存架构中最重要的部分。

但目前CPU的一级缓存都差不多,容量都比较小,大多是64K。所以现在的CPU很少提到一级缓存,主要是大家都一样。虽然最重要,但也不值一提。

二级缓存对于CPU来说很重要,但是很多朋友会发现,很多Intel CPUs都不怎么提二级缓存,只标注三级缓存。AMD的很多新CPU主要是标注L3缓存,只有部分型号的L2缓存会被标注。比如AMD锐龙5 2600X提供3M三级缓存和16M三级缓存,而R7 2700X只有16M三级缓存。英特尔酷睿i3 8100只有6M三级缓存,而高端i7 8700K只标有12MB。

所以在目前的新CPU中,二级缓存的重要性在减弱,三级缓存成为了重点。

现代CPU的缓存架构非常复杂,包括硬件预取和数据转发,为了提供缓存命中的最佳机会,有些CPU甚至还增加了L4缓存。

一级缓存和二级缓存的区别:

主要区别在于它们的作用范围不同。

第一级高速缓存是会话层。

也就是说,缓存只在同一个会话中起作用,当会话关闭时,缓存就不存在了。

二级缓存是sessionFactory级别的。

其缓存对同一sessionFactory生成的会话有效。对于二级缓存,我们通常使用其他开源组件,比如hibernate经常使用的ECache,这个缓存在整个应用服务器中都会有效。

首先要明白缓存是干什么用的。缓存就是将一些经常使用的数据缓存到内存或者各种存储介质中。再次使用时,不必再去数据库查询,减少了与数据库的交互,提高了性能。

解释一下一级缓存和二级缓存的作用:一级缓存是会话级的,也就是只会在一个事务中被激活。例如,如果同时查询事务中的同一个对象,就不会查询数据库两次。

二级缓存是sessionFactory级,不同的事务可以共享。有些权限是在用户第一次登录时放入二级缓存的,不需要每次需要权限时都查询数据库。

最后解释一下为什么要做这样的设计:一般情况下,我们查询的数据是实时的,用二级缓存肯定不行。使用一级缓存,既利用了缓存,又不影响实时性。

二级缓存用于存储一些稳定的数据,比如权限,只有用户修改权限并重新登录后才会生效。

cpu中的一级缓存、二级缓存和三级缓存

什么是一级缓存:

一级缓存内置在CPU中,与CPU同速运行,可以有效提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受限于CPU内部结构,一级缓存的容量很小。

CPU缓存是位于CPU和内存之间的临时内存。它的容量比内存小很多,但交换速度比内存快很多。cache的出现主要是为了解决CPU运行速度和内存读写速度的矛盾,因为CPU运行速度比内存读写速度快很多,会让CPU花费很长时间等待数据到达或者将数据写入内存。缓存中的数据是内存的一小部分,但这一小部分会在短时间内被CPU访问。当CPU调用大量数据时,可以直接从缓存中调用,无需内存,从而加快读取速度。可以看出,给CPU增加缓存是一种高效的解决方案,这样整个内存(cache memory)就变成了一个高速存储系统,既有缓存又有内存。缓存对CPU的性能影响很大,主要是CPU的数据交换顺序和CPU与缓存之间的带宽造成的。

分类

一级缓存可分为数据缓存(D-Cache)和指令缓存(I-Cache)。它们用于存储数据和实时解码执行这些数据的指令,同时可以被CPU访问,减少了争用缓存带来的冲突,提高了处理器效率。目前大多数CPU的一级数据缓存和一级指令缓存的容量是一样的。比如AMD的Athlon XP有64 KB的一级数据缓存和64KB的一级指令缓存,其一级缓存用64KB表示,其他CPU的一级缓存以此类推表示。

什么是二级缓存:

CPU缓存是介于CPU和内存之间的临时内存,容量比内存小,但交换速度更快。缓存中的数据是内存的一小部分,但这一小部分会在短时间内被CPU访问。当CPU调用大量数据时,可以直接从缓存中调用,无需内存,从而加快读取速度。起初,只有一级缓存,L2缓存似乎可以协调一级缓存和内存之间的速度。二级缓存比一级缓存更慢更大,主要用于一级缓存和内存之间的临时数据交换。其实Intel和AMD处理器在一级缓存的逻辑结构设计上是不一样的,所以二级缓存对CPU性能的影响也是不一样的。

操作原理

缓存的工作原理是,当CPU要读取一个数据时,先从缓存中查找,如果找到,就立即读取并发送给CPU处理。如果没有找到,会以相对较慢的速度从内存中读取,并发送给CPU进行处理。同时,这个数据所在的数据块会被转移到缓存中,这样以后就可以从缓存中读取整个数据,而不需要调用内存。

什么是L3缓存?

三级缓存是为读取二级缓存后未命中的数据而设计的缓存。在三级缓存的CPU中,只需要从内存中调用5%左右的数据,进一步提高了CPU的效率。它的工作原理是使用速度较快的存储设备保存从速度较慢的存储设备读取的数据的副本,并进行复制。当需要从速度较慢的存储中读写数据时,缓存可以让读写动作先在速度较快的设备上完成,这样会让系统响应更快。

注意:CPU中只有一级缓存,一级缓存的读取需要2-4个时钟周期;读取二级高速缓存需要大约10个时钟周期;三级缓存需要30-40个时钟周期,但容量一次性增加。

结论以上是对二极缓存和一二三级缓存区别的介绍。关于两极缓存还有很多需要进一步研究的地方,本文不再赘述。希望这篇文章能让你对两极缓存有更深入的了解。

标签:CPU数据二级缓存


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 向下的箭头怎么打出来,word中向下的箭头怎么打出来(Alt键的快捷方式)

下一篇: 摩托罗拉XT883拍照效果怎么样?xt883做为电信定制机,可以使用移动或者联通卡么,信号稳定么,可以收发彩信么,移动卡上网信号怎么样



推荐阅读