下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

理解CPU缓存,带你分析CPU一级缓存和二级缓存

作者:小K     来源: http://www.kokojia.com点击数:1898发布时间: 2018-05-07 08:00:21

标签: CPU缓存RAM内存

  CPU性能是由CPU核心数量、主频、CPU构架以及CPU缓存共同决定的。CPU性能在一定程度上会影响系统的运行速度。对于CPU缓存不少人还是充满疑问的,什么是CPU缓存,有什么用?CPU一级缓存和二级缓存有什么呢?今天课课家小编就来为大家解答。
  CPU缓存(Cache memory)位于CPU与内存之间的临时存储器,它的容量比聂村小但交换速度快。在缓存中的数据是内存中的一小部分,但这一笑部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

理解CPU缓存,带你分析CPU一级缓存和二级缓存_CPU缓存_RAM _内存_课课家教育
  缓存的大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统聂村和硬盘。缓存的出现主要是为解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度要快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
  CPU缓存通过优化的读取机制,可以是CPU读取缓存的命中率非常高(大多数CPU可以达到90%左右),也就是说CPU下一次读取的数据90%都在缓存中,只有10%需要从内存读取。这大大节省了CPU直接读取的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
  CPU内核集成的缓存称为一级缓存(L1 Cache),而外部的称为二级缓存(L2 Cache);后来随着生产技术的不断提高,最终二级缓存也被挪进了CPU中,通常一级缓存还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高CPU效能。
  CPU的以及缓存通常都是静态RAM,速度非常的快,但是静态RAM集成 度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),而且价格也相对昂贵(同容量的静态RAM是动态RAM的四倍)。
  扩大静态RAM作为缓存是一个不太合算的做法,但是为了提高系统的性能和速度又必须要扩大缓存,这就有了一个折中的方法:在不断扩大原来的静态RAM缓存容量的情况下,仅仅增加一些高速动态RAM作为L2级缓存。高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,而且成本也较为适中。一级缓存和二级缓存的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为为减少高速CPU对慢缓存内存访问。
  二级缓存是CPU性能表现的关键之一,在CPU核心不变的情况下增加二级缓存熔炼能使性能大幅度提高而同一核心的CPU高低端之分往往也是在二级缓存上存在差异,由此可见二级缓存对CPU的重要性。
  CPU缓存中找到有用的数据被称为命中,当缓存中没有没有CPU所需的数据时(这是称为未命中),CPU才访问内存。从理论上讲,在应该一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是CPU一级缓存中找到的有用数据占数据总量的80%。剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。
  目前的较高端CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率,从某种意义上说,预取效率的提高,大大降低了生产成本却提供了非常接近理想状态的性能。除非某天生产技术变得非常强,否则内存仍会存在,缓存的性能递增性也仍会保留。
  CPU缓存与内存的关系既然CPU缓存能够在很大程度上提高CPU的性能,那么有些朋友会问,是不是将来有可能,目前的系统内存会被CPU取代呢?
  答案应该是否定的,首先,尽管缓存的传输速率确实很高,但要完全取代内存的地位仍不可行,主要是因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中找数据。与此同时系统的速度慢了下来,不顾CPU会把这些数据复制到缓存中去,以便下一次不用再到内存中去取。也即是说,随着缓存增大到一定程度,其对CPU性能的影响将越来越小,在性能比上来说,越来越不合算。就目前缓存容量、成本以及功耗表现来看,还远远无法与内存抗衡,另外从某种意义上来说,内存也是CPU缓存的一种表现形式,只不过在速率上慢很多,然而却在容量、功耗以及成本方面拥有巨大优势。如果内存在将来可以做到足够强的话,反而很有取代CPU缓存的可能。
  以上就是CPU缓存是什么,有什么用,以及对一级缓存和二级缓存的讲解啦。更多精彩的内容,可以关注课课家了解哦!

赞(15)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程