在通过实践测试说明问题之前,有必要先让读者从理论上了解二级缓存的作用以及它对处理器性能产生的影响。
●二级缓存的原理回顾
影响CPU执行效率的关键要素除了流水线级别之外就是高速缓存,众所周知,Core 2系列处理器目前只有一种流水线长度,即14级。因此无论是基于何种工艺制程,E8500和E7200在这方面的效率基本是相同的。那么高速缓存又起到什么作用呢?
处理器在根据指令集进行运算时并非直接与内存交换数据,而是先由一个寄存器单元(非缓存)来装载,这个寄存器集成在处理器内核里,与整数、浮点等各个运算单元规则地结合在一起,构成处理器的核心组成部分。“寄存器”的先天优势使它存储的指令可极其迅速地被各个运算单元访问,但它没有办法被做的很大,这不仅是受到制程和芯片体积的限制,还因为和各个运算单元紧密地融合,若要在此之上改动势必会影响到整个内核的架构。
如果当寄存器指令处理器完毕后直接在内存中寻址对于当今的计算机技术而言是十分离谱的事情,因为和内核时脉同速的寄存器要比内存快的多,这样会造成处理器将大部分时间浪费在向内存发送指令然后等待内存响应上。好在人类的智慧是无穷的,高速缓存的出现大大缓解了这种尴尬。高速缓存分为一级缓存和二级缓存,当寄存器内的进程周期结束后,处理器从一级缓存中寻址,继而再访问二级缓存,最后调度内存中的数据。当执行指令和调度数据得以在同时进行,便很大程度上减少了核心等待指令数据而浪费的时间,这些高速缓存无形中起到一种高速桥梁的作用。
Intel Core 2处理器拥有大量的高速缓存
一级缓存又由数据缓存和指令缓存独立区分,分别用来存放数据和执行数据的指令,避免对缓存资源的争抢,确保处理器的功能协调,增加了效率。一级缓存跟核心时脉同速又与寄存器紧密相连,拥有极低的响应延迟,但是同样受到核心架构和晶体管数量的限制无法做大。二级缓存却相对地独立出来,由多条位宽接口与一级缓存相连,和内存的连接方式非常类似。虽然它仍然与核心时脉同速,可是连接位宽的约束使它的传输延迟大大超过一级缓存,但它突出的优势就是容量可以被做大。这样当处理器在二级缓存中寻址数据时命中率也相应地提高很多,如此一来便很少再需要劳师动众地去催促内存了。
那么在了解以上二级缓存的作用和属性之后,读者应该已对它的连接路数以及容量大小的作用有了一定的概念。在CPU主频固定的前提下,二级缓存的连接路数越多,容量越大,数据传输带宽也就越大,内核计算能力也就得到更有利的发挥。Intel的竞争对手AMD自K8架构开始将内存控制器集成在处理器内部,这样可以大幅度缩小内存与二级缓存交互的延迟,因此二级缓存的容量对AMD处理器的影响并不显得那么重要,取而代之的是内存的时序及频率。尽管让Intel做到这一点也完全不是问题,可是它们似乎坚持认为使内存控制器独立位于主板芯片组中更有利于把握全局。这样Intel只需研发新的MCH北桥便能让他们的处理器和不同传输标准的内存搭配供消费者选购,而AMD的处理器却只能使用一种传输标准的内存,想有丝毫变动都必须更新整个产品线。外置的内存控制器与缓存的交互效率略为逊色,Intel同时利用两种先天优势来弥补:一是4倍于外频的前端总线(FSB)连通到MCH,尽可能地提高内存与二级缓存之间的传输;另一个是超大的二级缓存容量,减小运算单元向内存请求数据的几率。由此可见二级缓存规格的差别在Intel Core 2处理器效能上的体现是立竿见影的。