菜鸟成长手册:缓存对CPU性能影响四大误区

互联网   发布时间:2009-04-21 01:31:06   作者:佚名   我要评论
  处理器要想发挥出优异的性能,除了与核心架构有关之外,缓存的作用也是功不可没。那什么是CPU的缓存呢?其实很好解释,CPU缓存(Cache Memoney)就是位于CPU与内存之间的临时存储器,它的容量比内存小但数据交换速率却快很多。

  处理器缓存的传输速率确实很高,然而还不足以取代内存的地位,这主要是由于缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据。与此同时系统的速度就慢了下来,不过CPU会把这些数据复制到缓存中去,以便下一次不用再到内存中去取。就目前缓存容量、成本以及功耗表现来看,还远远无法与内存抗衡,另外从某种意义上来说,内存也是处理器缓存的一种表现形式,只不过在速率上慢很多,然而却在容量、功耗以及成本方面拥有巨大优势。如果内存在将来可以做到足够强的话,反而很有取代处理器缓存的可能。
  错误观点二:处理器缓存是一个整体

菜鸟成长手册:缓存对CPU性能影响四大误区(2)
【图】生产技术对缓存容量大小的影响

菜鸟成长手册:缓存对CPU性能影响四大误区(2)
【图】PCB上带缓存的PentiumIII处理器
  事实上最早先的CPU缓存确实是个整体,而且容量也很低。英特尔公司从Pentium时代开始后就把缓存进行了分类,当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存;后来随着生产技术的不断提高,最终二级缓存也被挪进了处理器当中。通常一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,还新增了一种一级追踪缓存,容量为12KB。
  错误观点三:L1级缓存和L2级缓存只有容量上的差别
  用于存储数据的缓存部分通常被称为RAM,掉电以后其中的信息就会消失。RAM又分两种,其中一种是静态RAM(SRAM);另外一种是动态RAM(DRAM)。前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM。处理器的L1级缓存通常都是静态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的效率,从某种意义上说,预取效率的提高,大大降低了生产成本却提供了非常接近理想状态的性能。除非某天生产技术变得非常强,否则内存仍会存在,缓存的性能递增特性也仍会保留。
  错误观点四:缓存只是随意调取数据并无选择
  即便处理器内部集成的缓存数据交换能力非常强,也仍需要对调取数据做一定的筛选。这是因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据经常是被访问最频繁的。命中率算法中较常用的“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。


菜鸟成长手册:缓存对CPU性能影响四大误区(3)
【图】拥有144MB缓存的八路IBM POWER5处理器
  总结:
  高速缓存做为处理器不可分割的一部分,已经融入到性能提升的考虑因素当中,伴随生产技术的进一步发展,缓存的级数还将增加,容量也会进一步提高。作为处理器性能助推器的高速缓存,仍会在成本和功耗控制发挥巨大的优势,而性能方面也会有长足的发展。可以毫不夸张的说:缓存技术带领处理器走进了多彩的天堂。


相关文章

  • CPU型号、主频、缓存、插槽接口类型等参数怎么查看?

    CPU型号、主频、缓存、插槽接口类型等参数怎么查看?对于购买电脑的朋友,这些都要查看,那么怎么查看呢?下面小编就为大家详细介绍一下,一起来看看吧
    2015-11-05
  • cpu中一级缓存是什么及数据缓存设计介绍

    一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率,下面为大家介绍下一级缓存的分类及数据缓存设计,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-05-08
  • CPU中三级缓存是什么及其性能介绍

    三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率,下面为大家介绍下其分类及性
    2013-05-08
  • CPU三级缓存的作用 二级缓存和三级缓存有什么区别

    最近有网友询问CPU的三级缓存是什么意思,有什么用呢?针对此类细节问题,下面小编与大家做个简单介绍,感兴趣的你可不要错过了哈,希望本文知识点可以帮助到你
    2013-02-22
  • CPU缓存是什么意思 二级缓存简介

    CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当C
    2012-12-27
  • CPU的三级缓存的作用介绍

    本文详细的介绍了CPU三级缓存的作用
    2012-11-17
  • CPU一级缓存损坏引起的故障

    一客户送修一台电脑,配置如下:赛扬800MHz的CPU,QDI693A主板,HY128MB内存,迈拓20GB硬盘。故障现象表现为开机自检完成后无法进入操作系统,即电脑显示“Verifying 
    2010-09-08
  • Athlon X2 BE-2300是什么新型号

      在电脑城看到了一颗叫BE 2300的AMD X2 CPU,问老板他也说不出什么所以然来,请问这块CPU的型号是怎么回事,有什么特别的地方吗?   【答】:BE-2300是Athlon X2
    2009-04-21
  • 浅析CPU二级缓存容量对CPU性能的影响

      现代桌面级PC的CPU二级缓存容量大多数在64KB到2MB之间。因为CPU二级缓存容量对CPU性能有不小的影响,所以低端CPU和中高端CPU在物理结构上的差异主要就是二级缓存容量的
    2009-04-21
  • 并非越大越好-漫谈CPU与缓存

    说到CPU,不得不说的就是CPU缓存,目前CPU的缓存已经成了衡量CPU性能的一个必要指标,那么CPU缓存到底对CPU性能的影响有多大呢? 我们知道,CPU执行指令时,会将执行结果
    2009-04-21

最新评论