CPU缓存(Cache Memory)是固化在CPU内是CPU与
内存之间的临时
存储器(CPU二级缓存也不例外),它的容量比内存小但交换速度快。在
缓存中的数据是内存中的一小部分,但这一小部分是短时间内
CPU即将访问的,当CPU调用大量数据时,就可避开
内存直接从缓存中调用,从而加快读取速度。
- CPU二级缓存是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。现在(2006/08/11)二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB等。L2高速缓存容量也会影响CPU的性能,原则是越大越好。
CPU二级缓存的作用
- L2Cache(CPU二级缓存的简写)主要用来存放电脑运行时操作系统的指令、程序数据以及地址指针等数据, 二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。
- 二级缓存的作用到底多大:CPU处理的数据中大多数都是0KB~128KB 大小的数据,128KB~256KB的数据约有10%,256KB~512KB的数据有5%,512KB~1MB的数据仅有3%左右。所以对于这种CPU来说,用户就很难体会到CPU性能有提高了。正因为如此,大家能感受到 Pentium 4 C(512KB二级缓存)与Celeron(128KB二级缓存)的性能差异,却很难感受到Pentium 4 C(512KB二级缓存)与Pentium 4 E(1MB二级缓存)的性能差异了。
- 例如:同为2.8GHz主频的Celeron D(256KB二级缓存)和Pentium 4 E(1MB二级缓存)运算super π 104万位的耗时分别为56秒和48秒,除去外频(前者为133MHz,后者为200MHz)的差异和超线程技术的影响,两者的性能差距只有10%左右。
- 由此看出:在CPU性能方面,并非只从二级缓存容量上作对比就可以得到准确的答案,实际上还要考虑到缓存的总体设计结构、一级数据缓存容量等因素。虽然从总体上来讲,二级缓存容量越大越好,但是并不是二级缓存容量提高一倍就能使CPU性能提升一倍。
- 选购方面:一般家庭用户,电脑主要是用来上网、欣赏音乐和电影以及文字处理,二级缓存为256KB的Celeron D或Sempron已经足够了。只有对3D游戏、办公软件和多媒体编辑性能要求较高的用户才需要更大二级缓存的CPU.
缓存工作原理
- 缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。 - 算法:为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。
双核心CPU的二级缓存
- 目前Intel的双核心CPU主要有Pentium D、Pentium EE、Core Duo三种,其中Pentium D、Pentium EE的二级缓存方式完全相同。Pentium D和Pentium EE的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,8xx系列的Smithfield核心CPU为每核心1MB,而9xx系列的Presler核心CPU为每核心2MB。这种CPU内部的两个内核之间的缓存数据同步是依靠位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的,所以其数据延迟问题比较严重,性能并不尽如人意。
- Core Duo使用的核心为Yonah,它的二级缓存则是两个核心共享2MB的二级缓存,共享式的二级缓存配合Intel的“Smart cache”共享缓存技术,实现了真正意义上的缓存数据同步,大幅度降低了数据延迟,减少了对前端总线的占用,性能表现不错,是目前双核心处理器上最先进的二级缓存架构。今后Intel的双核心处理器的二级缓存都会采用这种两个内核共享二级缓存的“Smart cache”共享缓存技术。
AMD双核心处理器的二级缓存Athlon 64 X2 CPU的核心主要有Manchester和Toledo两种,他们的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,Manchester核心为每核心512KB,而Toledo核心为每核心1MB。处理器内部的两个内核之间的缓存数据同步是依靠CPU内置的System Request Interface(系统请求接口,SRI)控制,传输在CPU内部即可实现。这样一来,不但CPU资源占用很小,而且不必占用内存总线资源,数据延迟也比Intel的Smithfield核心和Presler核心大为减少,协作效率明显胜过这两种核心。不过,由于这种方式仍然是两个内核的缓存相互独立,从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术Smart Cache。