探寻缓存的秘密(处理器缓存篇)
新手学堂
中央处理器(CPU)是电脑中最重要的部分,也是电脑性能发挥的源泉。如果说电脑推动了人类社会的发展,那么处理器就有一份功劳。而在处理器内部,还有一位“助手”一直默默地为处理器提供着帮助和保障,它就是处理器缓存。


处理器缓存分等级
处理器缓存集成在处理器内部,因为有着非常快的速度,所以它也是电脑中最为昂贵的缓存。虽然价格不菲,但是处理器缓存却是不可缺少的,它能够缓解高速工作的处理器与速度较慢的内存之间数据传输紧张的问题,不但能够帮助处理器进行快速运算,还能保障处理器的执行效率。
处理器缓存一般分为三类,分别是L1 Cache(一级缓存)、L2 Cache(二级缓存)和L3 Cache(三级缓存)。其中L1缓存的工作频率最快,一般与处理器的频率一样。而L2 Cache的频率虽然较L1 Cache与处理器的频率慢了不少,不过速度仍然高于内存等其他设备。而以前只在少数极高端处理器中能够看到L3,现在为了提高处理器的性能,现在很多中高端处理器也融入了L3 Cache设计。L3 Cache速度适当低于L2 Cache,但比内存要快,由于速度较低,因此L3 Cache的制造成本也相对低廉,因此能够从容量上为L2 Cache进行补充,共同达到保障处理器性能的作用。下面让我们进入电脑所扮演的数据工厂,看看L1、L2、L3 Cache在处理器中分别扮演了什么角色。
L1 Cache:原料的数据库
工厂中的各种货物往来是非常频繁的,大量的货物都处于从一个部门运往下一个部门的过程中,或者处于暂时等待处理的过程中。而生产线为了生产产品,就需要及时找到各种各样的原料,不过生产线本身是并不知道这些所需的原料存放在工厂的什么位置的。L1 Cache就好比工厂中的原料数据库,实时跟踪记录着所需原料的目前位置。此时生产线只需通过L1 Cache就能快速查找到所需原材料的具体位置,快速开始工作了。

L2 Cache:生产线的厂房空间
核心生产线加工原料生产产品的速度非常快,不过生产一个“成品”往往需要各种各样的原材料,并且还要按照一定顺序进行。如果当其中的一个原材料不能及时赶到生产线的话,生产线也无法再加工其他已经准备好的原料。此时,由于生产线内空间有限,需要这批已经快生产好的半成品重新拆解成原料,并退出厂房,待所缺原料补齐后,再依次进入厂房进行加工。这样不但让生产线效率低下,也容易让厂房的大门形成拥堵。
此时,L2 Cache就相当于在厂房中添设了一块能够让货物暂存的空地,当出现上述情况时,半成品和剩余的所有原料,全部就近存放在生产线旁的空地上,不再需要拆解成原料和退出厂房,只需标记出自己所缺原料的位置,待所缺原材赶到后,及时插入该位置,生产就可以立刻恢复。而当这个半成品等待所缺原料时,生产线又可以为新来的原料进行加工,让生产不会间断。而厂房内空间越大,就能够避免更多半成品被送出厂房,节约了原料和半成品被加工的时间,提高了生产线的工作效率,也提升了整个工厂的产能。此外,当某些原料单独达到生产线时,由于绝大多数原料并未同时到达,此时厂房中的这些空地,也将暂时存放这些预先到达的原料。

L3 Cache:离生产线最近的原料库房
生产线附近都是工厂的核心位置,因为管网复杂,因此修建各种设施都需要付出较大的成本。不过,很多大型的工厂(部分中高端电脑),会在核心生产线所在厂房的外边,又搭建一个临时堆放原料的仓库,也就是我们所说的L3 Cache。由于距离很近,当生产线中某种原料不足时,这个离生产线最近的仓库能够第一时间将所需原料补齐,保障生产线更有效率地运行。

写在最后>>
除了处理器的架构和频率外,处理器内部缓存是另一个决定处理器性能的重要因素。厂家也通过二级缓存的不同来区分各系列处理器产品的不同。例如:奔腾E5200和赛扬E3300的核心架构和频率完全相同,但奔腾E5200拥有2MB的二级缓存,而赛扬E3300只有1MB的二级缓存。因此在成本更高的同时,奔腾E5300的性能自然也优于赛扬E3300。
延伸阅读>>
处理器缓存昂贵的原因
处理器核心(计算数据的部分)和处理器缓存的生产都是在一起的,也就是在同一块晶圆上同时制作完成。因此,制作相同面积的处理器缓存的成本和制作相同面积的处理器核心的成本是完全一致的。如果要比较在一颗处理器中,是处理器核心部分花费的制作成本高,还是制作处理器缓存的成本高,直接比较两者的面积就可以了(如题图)。目前很多中端产品的缓存面积已经超过了核心面积,从处理器晶圆的制作角度而言,制作处理器缓存的成本甚至超过了制作处理器核心的成本。因此在同一核心架构下,缓存越大的型号,自然成本也会越高。
课堂作业>>
我们上次的作业是虚拟缓存是内存吗?来自贵阳的李明同学说,虚拟缓存不是内存,它是计算机从硬盘上划分出来的空间,当内存空间不足时,电脑可以利用这部分空间存放内存中的数据,以保证电脑的正常运行。在Windows Vista或Win7中,我们还可以使用ReadyBoost功能,利用USB设备上的存储空间,提高电脑系统的运行速度。
本期作业>>
三级缓存都在处理器内部吗?