热点推荐
ZOL首页 > CPU频道 > CPU评测 > 技术讲堂 >

高速缓存结构与性能的重大变化

问倒Intel专家 酷睿i7四万字权威测试

CNET中国·ZOL&玩家堂 作者:中关村在线 玩家堂 责任编辑:向中 【原创】 2008年12月06日 06:06 评论
在本页阅读全文(共29页)

Nehalem处理器的存储层次

    一辆上好引擎的汽车需要有汽油才能跑得起来。同样,流水线的设计改进和SMT的重新加入使得处理器的性能提升,但这需要存储子系统能够跟上流水线提升的步伐,能够及时的供应给流水线所需要的指令和数据。Nehalem的存储子系统需要达到以下几个目标:取回指令和数据需要有较低的延迟时间;需要很高的访问带宽以无缝处理从多个内核发起的存储访问请求;需要良好的扩展性,为在处理器中集成更多的内核加入设计上的考虑。


Core i7终极全面测试
Core2 Quad处理器存储层次

Core i7终极全面测试
Nehalem处理器存储层次

    为了实现以上设计目标,Nehalem处理器的存储子系统相对于之前的Conroe/Penryn处理器发生了很大的改变。这些改变主要有以下几点:

  1. 缓存层次。Conroe/Penryn处理器的高速缓存分为两层:一级高速缓存与二级高速缓存。而在Nehalem中,正如我们前面所看到的,增加到三级高速缓存。更准确一点说,Intel是在原有的一级与二级缓存之间插入了一级新的缓存。新的高速缓存层次会带来怎样的变化?
  2. 缓存容量。Nehalem处理器的高速缓存总容量比前一代的处理器更少,更少的缓存是否会对性能有影响?
  3. 高速缓存的互联方式。Core2时代的核心是“胶水”式的,相当于两个核心拼在一起组成一个四核处理器。每两个核心共享一组二级高速缓存,对于具有四个核心的处理器而言,两组高速缓存需要竞争前端总线的使用权。Nehalem处理器的二级高速缓存是独占式的,每个核心具有自己的二级高速缓存,多个核心竞争三级高速缓存的访问权。多个核心竞争三级高速缓存对三级缓存接口处的布局布线设计会带来很大压力,这是否会影响到三级缓存的带宽?
  4. 内置了内存控制器。Nehalem处理器取消了Intel一直沿用的前端总线,而内存控制器也被放置到片内。内置内存控制器会对存储性能有什么影响?

    带着这些问题,我们来解析Nehalem的存储子系统。

Core i7终极全面测试
Core2 Quad处理器存储子系统规格

Core i7终极全面测试
Nehalem处理器存储子系统规格

    Nehalem处理器的一级数据高速缓存仍然是八路组相联结构,容量也仍然为32KB。但Nehalem的一级指令高速缓存容量虽然保持不变,但相联度减少为四路组相联。这将使得一级指令高速缓存的命中率受到影响。另外,一级高速缓存的访问时间从3个时钟周期增加到了4个时钟周期。对于Core i7 EE 956而言,每个核心的一级指令高速缓存的带宽为一级高速缓存位宽*访问时间=16Byte*3.2GHz/4=12.8GB/s,总共四个核心的一级指令高速缓存总带宽为12.8GB/s*4=51.2GB/s;由于数据高速缓存的存储体是dual端口类型,同时支持读写操作,因此总共四个核心的一级数据高速缓存总带宽为102.4GB/s。从表面上看,一级高速缓存访问周期增加可能并不是好消息,因为这会对处理器的性能产生影响。我们猜测原因可能是在Intel研发Nehalem时,发现时序上的关键路径位于一级高速缓存上。Intel可能认为,增加一级高速缓存的访问周期可以消除处理器设计时的关键路径,有利于产品上市后处理器频率可以不断提升。另一个可能的原因是Intel发现一级高速缓存的带宽并不是整个存储子系统中的瓶颈,而故意将一级高速缓存简化,以便集中精力设计好处理器的其他部分。两个原因之中,我们认为前者可能占据了主导地位。

Core i7终极全面测试

    二级高速缓存相当于是新加入的,位于新设计的核心部分。每个Nehalem的物理核心拥有自己的二级高速缓存,二级高速缓存为八路组相联结构,容量为256KB。Nehalem的二级高速缓存访问速度相当快,据Intel透露不高于10个时钟周期。如果你觉得这没什么,可以对比一下K10的二级高速缓存,它需要15个时钟周期的访问时间。很低的访问延迟时间、以及每个核心独享二级高速缓存的设计方式使得Nehalem的二级高速缓存的带宽很高。从理论上讲,Nehalem二级指令高速缓存的访问带宽为32Byte*3.2GHz/10*4=40.96GB/s,二级数据高速缓存总的访问带宽为32Byte*3.2GHz/10*2*4=81.92GB/s。相比较,Core2 Quad的二级数据高速缓存的带宽只有32Byte*2.667GHz/12*2*2=28.44GB/s。另一方面,由于处理器核心的数量将不断增加,因此采用共享缓存的设计方式会遇到很大的麻烦:一方面,共享缓存需要负担起更高的带宽,这就需要共享缓存具有较小的访问延迟;同时共享缓存也需要有更高的容量和相联度,以提高命中率。但另一方面,更高的容量和相联度会增加访问时间,另一方面,更多的核心也使得布局布线越来越困难。这两方面的矛盾始终存在,而且终究会变得不可调和。而新的独占式的二级高速缓存的加入,使得每一个二级高速缓存可以做得比较小,而总容量仍然相对可观;同时每个缓存位于自己的核心内部,因此布局布线也更加容易。新的独占式二级高速缓存的加入,大大减小了三级缓存的压力。

Core i7终极全面测试

    三级高速缓存位于Nehalem的非核心部分,是16路组相联结构,容量为8MB。Nehalem的所有核心共享三级缓存。从技术特点上来说,Nehalem的三级缓存很像Conroe/Penryn时代的二级缓存:都有着很高的容量、相对更慢的访问速度,但是两者又存在着明显的区别。首先是访问延迟和容量。由于Nehalem中加入了新的二级高速缓存,因此三级高速缓存没有必要做得太快,容量也没有必要太高。三级高速缓存的访问延迟只要明显低于访问内存的延迟即可(通常是几十到上百ns,相当于上百个甚至数百个处理器时钟周期),容量也可以小一点,因为二级缓存已经帮助三级缓存解决了一些存储访问的问题。这两方面使得三级高速缓存可以更轻松的面对多核时代的布局布线问题。第二个方面是可扩展性。由于三级共享式高速缓存可以更轻松的进行设计,那么就可以加入更多的处理器核心,以方面整个系统提升性能。

    由于三级高速缓存放置在核心外部,时钟频率与核心的时钟频率并没有一定的关系,因此其访问延迟无法简单的以时钟周期来衡量。Intel并没有透露其三级高速缓存的位宽和访问时间,只是表示根据核心倍频不同,大约在3X~4X时钟周期。

    同时Intel也把Nehalem的三级高速缓存设计成内含式(Inclusive)的,即二级高速缓存中存在的内容必然在三级高速缓存中存在。与之对应的是排斥式设计(Exclusive),即所有二级高速缓存中的内容在三级高速缓存中都不存在。Intel为什么要这么设计,我们下面说明一下。

Core i7终极全面测试
排斥式和内含式高速缓存都被访问时的情况

    由于二级高速缓存可能失效,因此无论内含式还是排斥式的三级高速缓存,都存在被访问的情况。

Core i7终极全面测试
需要的数据不在高速缓存时的对比

    访问三级高速缓存存在两种结果:需要的数据存在于三级高速缓存中,或者在三级高速缓存中不存在。首先来看一下数据不在三级高速缓存中的情况。对于排斥式的三级高速缓存,如果数据不在三级高速缓存中,那么还仍然可能存在于其他核心的二级高速缓存中。这时需要检查其他每一个核心的高速缓存。如果不检查其他核心的高速缓存而直接去访问内存会有什么问题呢?原因在于需要的数据虽然在内存中存在,但是它有可能正在被另外一个核心所修改。而修改这个数据的核心如果还没来得及将结果存回内存中,那么直接读取内存就会得到错误的结果。在排斥式的高速缓存系统中,一旦访问失效,需要先检查其他几个核心。如果其他几个核心中仍然不存在这个数据,还需要继续访问内存才能得到想要的数据。很显然,排斥式高速缓存在访问失效的时候并不是很有效率。

    内含式的高速缓存就不存在这个问题。一旦访问三级高速缓存失效,说明整个其他核心的二级高速缓存中也都不存在相应的数据,也就表明了最近其他核心并没有对这个数据进行过访问。这时只需要访问内存就可以了。

Core i7终极全面测试
需要的数据存在于高速缓存时的对比

    如果需要的数据存在于三级高速缓存中,那么排斥式的三级缓存还是很有效率的,只需要从三级缓存中取回相应的数据就可以了,因为数据不可能在其他任何一个核心中。但对于内含式的三级高速缓存就没有这么简单。由于数据还可能存在于其他核心中,因此三级高速缓存还需要访问其他核心以确定是否正在被其他核心所修改。所幸Intel很聪明的解决了这个问题。Nehalem对三级高速缓存加入了一组计数器,用来表明每一个数据存在于哪些核心中。上图给出了这样一个访问的例子:计数器表明需要的数据在第二个核心中,因此需要访问第二个核心以得到所需的数据。事实上,除此之外,Nehalem还实现了MESIF协议,以进一步提升三级高速缓存访问命中时的性能。因为这个问题解释起来比较复杂,所以本文中不做详细介绍。感兴趣的网友可以去查阅《The Research of the Inclusive Cache used in Multi-Core Processor》一文。

Core i7终极全面测试

    内存控制器我们将在后续章节中讲到,这里暂且不做分析。

上一页 1 ...4 5 6 7 8 ...29 下一页
频道热词:AMD  散热器  intel  
视觉焦点
CPU评测热点
排行 文章标题
TOP10周热门CPU排行榜
  • 热门
  • 新品
查看完整榜单>>