我们常听说CPU里有缓存、硬盘里面有缓存、光驱里有缓存……
其实,在电脑的很多部件中,缓存常常作为一个配角存在,但它在计算机中的地位,绝对是举足轻重的。
缓存是什么意思呢?随小编一起来看看什么是缓存,缓存,从字面意思来看,有个“缓”字,但并不代表缓存它的行动很缓慢。相反,它甚至可以说是电脑中,除了CPU以外,最“勤快”的部件了。“缓”在这里更多代表的是一种“缓冲,缓解矛盾”的含义。
我们再来看看缓存的作用。
平时知道缓存的存在,最多的还是从CPU上面,其次是硬盘以及光驱。缓存存在的地方,必然是数据交换频繁的地方。作为核心的CPU处理数据的速度极快,内存跟不上,怎么办?缓存来帮忙。硬盘磁头频繁读写忙不过来,怎么办?缓存来帮忙。刻录机在等待从硬盘上读取数据,一时没找到,眼看就要刻录失败,怎么办?还是缓存来帮忙。CPU的缓存能提升CPU的性能,硬盘的缓存能提升硬盘的读写速度,刻录机中的缓存能让刻录稳定。
总的来说,缓存的三大作用,就是预读取(预先读取将要载入的数据)、存储临时访问过的数据和对写入的数据进行暂时存放。有点耳熟?不错,这些听起来有点像内存的用途。不过缓存的工作地点,总是先于内存。它是一个缓冲区,是一个让内存不与那些“核心”直接打交道,避免“引发冲突”的重要部件。
举个例子,在CPU里面,缓存是高速的,老鸟们一般喜欢称它为cache,普通的家用CPU一般都有一级缓存和二级缓存(也称为L1、L2缓存),有的甚至还有L3缓存。让缓存夹在CPU与内存之间,CPU缓存的存在,主要是为了解决内存的“慢速”与CPU的"快速"之间的矛盾。当年Intel曾经推出过一些由奔腾阉割而来的无缓存赛扬,但无缓存的CPU性能实在不怎么样,近来也就再没有类似产品问世。
有人说,缓存都很小?
一般来说,我们看到的缓存容量都不大。比如目前热门的Pentium E5200/E5300,它的L1缓存为64KB×2,L2缓存(二级缓存)也仅为2MB,而AthlonⅡ ×2 240的L1缓存为128KB×2,L2也不大,为2MB。就算是目前售价为999美元的顶级桌面处理器酷睿i7 975 EE,其L2缓存不过8192KB,而历史上L2缓存最大的酷睿2 QX9650,也不过才12MB。
对于目前市场上销售的传统家用硬盘,缓存也不过在8MB---32MB(少数企业级会达到64MB),而光驱的缓存也是512KB---2MB不等。
如果仅从缓存容量的大小来看,显然无法与当前电脑内部动辄上4GB的内存与上TB的硬盘容量相提并论。
还有人说,缓存都很贵?
或许你会问,“为什么那些硬件厂商如此抠门,不把缓存做的大一些?”要解答这个问题,还得从两方面入手。第一,因为缓存对性能影响很大,所以它就成了当厂商划分市场的绝好方式。比如:Pentium E5300的主频为,L2为2MB,现在售价为470元;同是45纳米制程,架构基本相同的酷睿2 E7300的主频为2.66GHz,但L2为3MB,售价达到了630元。在制程、主频、核心架构、核心数量都相差无几的情况下,那1MB的L2缓存就带来了160元的差距。而恰恰是这1MB的差距,在实际测试中,让E7300在某些情况下,最高能领先E5300近20%。第二,从理论上说,把缓存加大,虽然对性能的提升有帮助,但在成本方面投入却是不能成正比的。举一个不太规范的例子,对于CPU来说,将L2缓存从1MB提升为2MB,性能可能会有50%的提升,如果将2MB提升为4MB,可能会有20%的提升,从8MB提升到12MB,可能这个提升幅度也仅有5%。当缓存大到一定程度的时候,提升幅度就越小,而成本却是成倍增加。这也是处理器、硬盘、光驱厂商不会贸然大幅度提升缓存的原因。
除了“性价比”的限制让厂商不会拼命提升缓存容量外,缓存越大,相应地也会让产品的功耗和发热量增加。在成本和带来的收益不成正比的情况下,现在的硬件缓存在容量方面的发展也就比较慢。
为什么Intel处理器和AMD处理器的缓存差异很大?
如果综观市面上所有的CPU缓存,细心的朋友或许会发现,Intel和AMD的处理器在缓存方面有个特征---Intel处理器的L1缓存往往比较小(一个核心为32KB的居多),而L2缓存则相对较大;AMD则是L1较大(一个核心有64KB及以上的居多),L2则以2MB、4MB居多,没有Intel那么夸张。
这是因为Intel和AMD处理器在对处理数据的算法上有所不同。Intel处理器中的L1缓存并不存放实际的数据,而仅仅是存放实际数据的地址,实际的数据存放在L2缓存中。而AMD在L1缓存中就会存放那些最常用的数据,在L2中存放比较常用的数据。从他们的不同结构中,我们能得出结论就是Intel处理器因为自身的算法原因,对L2缓存的需求比AMD大,因此,L2缓存的大小会直接影响到Intel处理器的性能,对AMD处理器的影响就没那么大。
缓存关联阅读:《CPU缓存、硬盘缓存、IE缓存的设置和清理》