我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:爱彩网 > 二级高速缓存 >

问倒Intel专家 酷睿i7四万字权威测试(上篇)

归档日期:05-01       文本归类:二级高速缓存      文章编辑:爱尚语录

  2008年11月18日,Intel如期发布新一代的Core i7微处理器。相对于目前的Core微架构的处理器,Core i7将为我们带来什么新的变化?这些变化对我们又意味着什么?相信我们这篇长达四万字的深度评测将为您揭晓这一切。

  全文主体可以分为三大部分:Nehalem微架构深度解析、X58芯片组与目前已发布的各款主板的对比,以及Core i7与Core处理器横向评测。

  在Nehalem微架构深度解析部分中,我们将深入分析Core i7相对于其前任,在微架构方面有着那些变化,这些变化意味着什么。本部分行文两万字,据我们所知,目前国内外对Nehalem的各篇评论文章尚未有如此详细全面者。在这部分中,想了解Nehalem的读者不但可以看到我们在流水线、SMT、高速缓存、内置内存控制器和QPI、功耗控制方式等热点内容的深入解析,而且可以了解到TLB、同步原语、指令集、虚拟机等细节内容的详尽描述。

  在X58芯片组及主板说明部分中,我们详细说明了X58芯片组所带来的新的不同,并对目前所发布的4款不同品牌的X58主板进行了对比。

  在Core i7与Core架构横评中,我们从23个方面对五款Core i7与Core 2处理器进行了多达40个项目的评测。在测试中,我们不但可以看到顶级的Core i7与Core 2处理器的王者对决,更可以看到中高端平台的Core i7与Core 2处理器的性能比较。众多读者所感兴趣的三通道内置内存控制器所带来的作用、SMT重新回归后的性能提升、Turbo Mode对性能和功耗的影响、Core i7的温度表现、游戏能力、超频能力等等,我们都将为大家一一揭晓。

  无关紧要的话讲了这么多,下面还是让我们来一起领略Core i7的风采吧!

  数年以前,AMD发布的集成众多先进技术的K8架构CPU可谓让Intel在很长一段时间内灰头土脸。但随即Intel在2006年发布了Core架构的微处理器。Core凭借革命性的微架构革新,为Intel重新夺回了性能王者桂冠。而2007年底Intel发布的45nm Penryn微处理器,更进一步拉开了与AMD的技术差距。Intel非但没有就此停下脚步,更进一步加速推出了的新一代Nehalem微架构的CPU,希望凭借这款处理器给予AMD无情的一击。

  Intel对Nehalem寄予了很高的期望。为了明显区分开Nehalem与之前所发布的处理器的不同,Intel将Nehalem的品牌名称定义为Core i7,中文品牌名称仍然为酷睿。

  Intel自2005年以后就遵循“制程提升”——“微架构提升”的策略来发布自家的处理器,即在奇数年推出制程升级的微处理器,而在偶数年推出改进架构的微处理器。Nehalem即为微架构上有别于之前的Conroe、Penryn处理器的新一代CPU。这种策略使得Intel不断提升自我,也让竞争对手因此而疲于奔命。

  Nehalem是Intel对于新一代处理器的架构名称,而非产品代号。此次发布的三款微处理器是定位与桌面应用、研发代号为Bloomfield的产品。而根据Intel的路线,在服务器领域将发布研发代号为Gainstown的面向双路服务器的CPU和研发代号为Beckton的定位于高端服务器应用的CPU。在桌面领域Intel也将在2009年第三季度和2010年上半年陆续发布研发代号为Lynnfield和Havendale的产品,其中Lynnfield面向主流桌面市场,Havendale面向低端桌面市场。而在移动领域,Intel将发布研发代号为Clarkfield、TDP为45/55W的移动版处理器,以及研发代号为Auburndale,TDP为25/35W的双核移动版处理器。

  自Penryn发布后,众多网友就对Nehalem翘首以盼。本次Intel发布的Nehalem处理器一共有三款,都属于高端桌面市场,型号分别为Core i7 920、Core i7 940以及Core i7 Extreme Edition 965。为了区分市场,Core i7 920与Core i7 940的QPI总线GT/s,而Core i7 Extreme Edition 9650则为6.4GT/s。与上一代的Penryn/Yorkfield相比,Nehalem处理器在诸多方面有所不同。例如指令集从SSE4.1提升到SSE4.2,增加了三级缓存,内置了内存控制器,使用QPI总线与外部进行连接等等。另一方面,由于缓存总容量削减,因此Nehalem处理器在晶体管数量方面大幅下降,这有利于Nehalem控制整体成本。同时改进的设计也使得热设计功耗有所降低。Nehalem相对于之前Core微架构的Penryn处理器,在微结构方面的改变究竟有哪些?这些改变对于Nehalem的表现又有着什么样的影响?本文将带大家一起走近Nehalem,去寻找这些问题的答案。

  Nehalem的设计目标是找到折衷的设计方案,为各种应用场合的处理提供一个单一的、可扩展的平台。众所周知,不同领域的应用程序在表现上有着极大的差异。例如矩阵运算、视频编解码、数据库等领域的处理具有很高的并行性,因此新出现的程序越来越多的采用多线程的方式编写;而同时相当多的较老的应用程序仍然采用单线程的方式编写,编译等一些特殊领域的应用也很难被并行化处理。再例如对于一些专业工作者,处理速度至关重要,运行一遍应用来对自己手头的数据进行处理往往要几天甚至一个月的时间;但使用笔记本出差的用户却对笔记本的巡航时间更为关注。

  Nehalem的出现,正是想为这些应用提供单一的解决方案,由用户根据自己的应用选择处理器的使用和运行方式。Nehalem既需要为已存在和即将涌现的多线程应用程序服务,同时又要高效地运行大量的单线程应用程序。它既要满足高端计算对性能的需求,也需要具有很低的功耗,以便可以在低功耗应用领域工作。

  为了达成以上设计目标,Nehalem处理器被设计为核心(Core)与非核心(UnCore)两部分。处理器的执行流水线、一二级高速缓存都集成在核心中,而三级高速缓存、集成的内存控制器、新的连接协议QPI,以及功耗与时钟控制单元都被集成在非核心中。这种设计,使得Nehalem的设计可以很方便的进行调整,从而为不同应用领域设计出新的解决方案。例如针对低端市场,Nehalem可以削减三级缓存的容量以降低成本,由于Nehalem仍然具有一二级高速缓存,因此削减三级缓存并不会对性能造成严重影响;对于多路服务器市场,可以增加QPI的数量以增加互联带宽。甚至于,内存控制器在必要的时候也可以放置在片外。

  Nehalem处理器并不是一代将Core架构推翻重来从而推出的一代革命性的微处理器,而是沿袭Core微体系结构的一代革新性设计。事实上,由于Core微体系结构在技术和市场上取得的重大成功,推翻重来并没有必要。Nehalem从本质上仍然属于Core微体系结构,但在性能和功耗控制等许多方面进行了改进和重新设计。主要的改进包括:

  Nehalem处理器一共有四个物理核心,由于每个核心可以同时支持两个线程运行,因此Nehalem处理器一共具有8个逻辑核心。每个物理核心具有自己单独的一级与二级高速缓存,同时四个核心使用了共享的三级高速缓存。Intel在Nehalem处理器内部首次引入了集成的内存控制器和QPI连接方式,内存控制器目前最高支持1066MHz 的DDR3内存。遗憾的是,Nehalem处理器取消了对于DDR2内存的支持。由于目前DDR3内存的价格还较高,因此包含Nehalem处理器的计算机系统在短期内价格仍然会较高,腰包里银子不多的朋友尚需要等待一段时间才能够享受Nehalem。

  一个Nehalem内核(Nehalem处理器版图中红框圈出的位置)包含了处理器的流水线,以及一级、二级高速缓存。Nehalem的内核经过精心设计,以达到更高的性能。Nehalem内核与之前Intel所发布的处理器的内核相比,在以下部分进行了改进:支持新的SSE4.2指令集、具有更深的缓冲器、支持SMT、对虚拟化进行了改进、对分支预测进行了改进、增强了对循环的处理、增加了高速缓存的层次、改进了原语支持等等。在后续文章中,我们将对这些改进逐一介绍。

  上图展示了Nehalem的流水线。了解Conroe微体系结构的读者可以看到,右上角非核心部分包括的QPI、三通道内存控制器、三级高速缓存都是之前Intel的处理器中所没有的。此外核心部分Nehalem与之前的Penryn也有诸多不同。让我们来一起剖析Nehalem的设计,我们先来关注流水线的前端部分。

  很多朋友还不清楚什么是流水线以及流水线的具体作用。为了方便大家阅读,在此进行一些说明。让我们考虑这样一个例子。假如你家旁边开了一家洗衣房,而你有一筐衣服要洗。洗衣房洗衣服可以分为以下几个步骤:在前台登记并收取衣物、洗衣、晾干、熨烫。完成同样的事情可能有两种做法。第一种是前一个顾客在前台登记完成并洗完衣服,晾干、熨烫都完成以后你才能登记。这种做法既相当于流水线处理器出现之前的微处理器的处理方式。第二种方式是前一个顾客只要登记完成,你就可以登记,然后每个顾客按照顺序洗衣、晾干、熨烫。第二种方式即相当于流水线的处理方式。在这个例子中,衣物相当于程序中的每条指令,而洗衣房相当于处理器,洗衣房洗衣服的过程就相当于处理器处理指令的过程。很显然,具有流水线的处理器在处理任务时会高效很多。

  Intel在Conroe处理器中首次引入了宏融合的概念。宏融合指的是将两条连续执行的x86指令当作一条指令来处理。宏融合的目的在于增加处理器处理指令的吞吐率并减小执行延迟(想想看将两缸衣服放到一缸里面洗,一定比连续洗两缸衣服要快),另外也改进了能耗比(洗一次总比洗两次省电)。在Conroe中,如果TEST/CMP指令后紧跟一条件分支指令,那么这两条指令被当做一条指令一并解码、执行和提交,但是只能在32位模式下进行。Nehalem可以同时在32位和64位模式下支持宏融合,可以明显提高64位处理模式下的执行效率。由于当前服务器大多使用64位的操作系统,而台式机也越来越多的使用64位的操作系统,因此支持64位的宏融合相当有必要。

  在Core微体系结构之前,并不具有循环流检测技术,循环流检测器也是Core微体系结构引入的。Core微体系结构在取指单元和译码单元加入了一个循环流检测器,这个循环流检测器是一个包含18条指令的缓冲,用于检测需要执行的指令是否是存在于一个循环中(循环的大小不能超过18条指令)。当CPU执行指令时,循环流检测器会检测自身的缓冲器。如果发现需要执行的指令包含在其中,将不再对这条指令进行分支预测和取指,而是从缓冲器中取出这条指令,并开始下一步的译码。循环流检测器的加入可以有效改善CPU在执行包含大量循环的应用程序时的表现。(还是拿洗衣房那个例子来讲,如果你每次过去的时候,不需要登记即可直接洗衣,那么无疑提高了你洗衣服的效率)。

  Nehalem处理器在此仅仅使用了一点小技巧:将循环流检测器放到译码之后进行。循环流检测器中存放的不再是译码之前的x86指令,而是28条微操作。由于程序包含的指令多为简单指令(每条指令被译码成一个微操作),因此新的循环流检测器往往可以扩展可以检测的循环的大小;更进一步的,检测到一个循环时,不仅被检测到的指令不需要分支预测和取指,甚至连译码过程也省略了,因此可以进一步提升对于循环处理的性能。

  程序是由很多指令组成的。在执行前,程序首先被加载到内存中。程序执行时,CPU首先要从内存或高速缓存中获取指令,这个过程被成为取指。在CPU取到指令后,需要判断这条指令是什么类型的指令,究竟要执行什么操作,这个过程被称为译码。在指令被译码后,需要为这条指令分配它计算所需要的资源,例如加法器等,这个过程被称为分派和发射;指令在计算单元中具体执行的过程被称为执行;执行结束后,需要将运行结果存回目标地址,这个过程被称为回写;指令结束运行,这个过程被称为提交。

  Nehalem处理器的另一个改进是分支预测器。在当今的处理器设计中,分支预测器的设计是非常重要的一部分。较高的分支预测正确率和更快的纠错可以使得处理器的性能获得提升。同时较高的分支预测正确率可以减少重新取指的次数,从而提升处理器的能耗比。

  对于当前一些特定的应用软件而言,目前的分支预测器工作的并不是很有效。例如包含大量无规律数据访问的数据库应用,分支预测器预测的正确率相当低下。(感兴趣的读者可以参考IBM PowerPC微处理器以及IBM eServer i系列服务器首席架构师Frank G.Soltis所著的《罗彻斯特城堡——IBM eServer i系列服务器技术揭秘》一书)。Nehalem首次采用了多级分支预测机制,加入了第二级分支目标缓冲器(BTB)。分支目标缓冲器用来对分支指令的目标地址进行预测。在分支预测方向正确的时候,分支目标缓冲器可以有效的提升处理器取指的性能。Nehalem第二级BTB的加入,可以增强处理器在处理分支指令的效率,提升处理器在数据库等商业应用方面的性能。

  另外,传统的处理器通过使用返回栈缓冲器(RSB)来预测函数返回时的地址。但由于程序中函数调用往往是嵌套的,递归调用的函数将会导致RSB会溢出;并且在投机执行时,RSB也可能因为分支预测错误而产生错误的返回地址。Nehalem对RSB进行重命名,最大限度的消除了栈溢出问题以及预测错误对函数返回时的影响。

  分支预测器是在分支指令没有得出执行结果前,处理器对分支的方向(究竟是选择哪条路线继续执行)和目标地址(新的执行从哪里开始)进行猜测的过程。在分支预测后,处理器将按照分支预测器的预测方案从一级高速缓存中取出某一段指令继续执行,而不是等待分支指令执行结束再取出正确的指令流。由于当前的处理器大多是超标量流水线结构,因此流水线中一般都有几十条指令在同时运行。如果其中一条分支指令的预测产生错误,处理器将不得不清空流水线中分支指令后的所有指令,并且从正确的位置重新取指、译码、执行。这样即会导致处理器的效率严重降低。由于程序中分支指令往往较多(研究表明一般占全部指令的15%~25%),因此分支预测的正确率对处理器的性能有着至关重要的影响。

  在分析完前端流水线后,我们再继续看一下Nehalem的执行引擎。Nehalem的执行引擎与之前的Penryn有着明显的不同。首先Nehalem采用了2个寄存器分配表,这是因为Nehalem支持SMT,需要为每个线程在执行时所用到的寄存器分别进行重命名,以免两者发生冲突。其次重排序缓冲器从96表项增加到了128表项、保留站从32表项增加到了36表项,MOB对于Load操作支持的深度从32个增加到48个,对于Store操作支持的深度从20个增加到32个。这同样是因为SMT的原因。由于最多可以有两个线程在处理器中运行,那么它们之间不可避免的需要争抢资源。增加一些部件的数量,可以有效的减少线程之间的资源冲突,提升处理器在执行多线程任务时的表现。

  Nehalem在流水线中实现的又一重大变化是重新引入了SMT。SMT最早在Intel Netburst微架构的P4处理器中出现,并命名为超线程(Hyper Threading)。从技术角度而言,在Intel引入HT之前学术界和工业界都对基于多线程技术的处理器性能进行过广泛研究,并且大多认为多线程技术的处理器是今后处理器发展的重要方向。Intel在桌面处理器中引入多线程技术可谓众望所归,影响深远。但是Intel当时的超线程技术在现实应用中的表现并不尽如人意。一方面原因是由于超线程需要发挥作用需要CPU、芯片组、操作系统、驱动、应用软件等诸多方面的支持,而当时各方面对超线程并没有做好足够的准备,多线程应用相对匮乏;另一方面原因则是Pentium 4当初对于HT技术实现的不够完善,对于一些单线程的多媒体以及游戏等注重浮点的应用而言,处理器在打开HT之后的性能提升微乎其微,甚至性能下降。由于Intel在HT上市前进行了大量宣传,用户对于HT技术期望很高。Pentium 4在打开HT后并没有带来用户期望的性能提升,必然引起了很多用户的不满。

  而在2006年,Netburst架构终究由于功耗和效率的问题被Intel抛弃,而新发布的Conroe处理器并没有对HT进行进一步的支持,据我们分析可能是由于以下两个方面的原因:

  第一个原因是Conroe发布前已经没有足够的时间来实现多线程技术。虽然多线程技术在处理器内实现不需要消耗太多的硬件资源,在成本上也不会有太大影响,但是验证支持多线程技术的处理器在功能上的正确性则是一个相当困难的事情。而由于之前Intel在Netburst微架构上下了太大的注码,因此可能在决定放弃Netburst的时候已经没有太多时间去将多线程技术进一步集成到处理器内部。

  第二个原因则可能来自于FSB本身。由于多线程技术可以更有效的利用处理器的功能部件,更快的完成多个任务,那么就需要有足够的存储带宽以源源不断的供给流水线所需要的指令和数据。而由于FSB的带宽是整个系统中的瓶颈,因此已经无力供给多个线程同时执行所需要的指令和数据,因此即便集成了多线中集成HT时取得明显的提升。

  从以上两个方面来看,我们相信第一个方面应该是Intel没有在Core微架构中没有实现多线程技术的首要原因,第二个方面是次要原因。

  由于Core微架构中集成了更多的执行部件,因此没有集成多线程技术实在是一件遗憾的事情,这样会有很多硬件资源得不到利用而空闲。而Intel本次发布的Nehalem处理器再度集成多线程技术,并尊重学术界与工业界之前的习惯,命名为SMT(同步多线程)。由于Nehalem处理器在存储子系统上进行了重新设计,减弱了因为存储带宽问题引起的性能损失,同时目前支持多线程的软件也越来越多,我们有理由相信支持SMT的Nehalem处理器会带来更好的性能表现。

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

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

  缓存层次。Conroe/Penryn处理器的高速缓存分为两层:一级高速缓存与二级高速缓存。而在Nehalem中,正如我们前面所看到的,增加到三级高速缓存。更准确一点说,Intel是在原有的一级与二级缓存之间插入了一级新的缓存。新的高速缓存层次会带来怎样的变化?

  缓存容量。Nehalem处理器的高速缓存总容量比前一代的处理器更少,更少的缓存是否会对性能有影响?

  高速缓存的互联方式。Core2时代的核心是“胶水”式的,相当于两个核心拼在一起组成一个四核处理器。每两个核心共享一组二级高速缓存,对于具有四个核心的处理器而言,两组高速缓存需要竞争前端总线的使用权。Nehalem处理器的二级高速缓存是独占式的,每个核心具有自己的二级高速缓存,多个核心竞争三级高速缓存的访问权。多个核心竞争三级高速缓存对三级缓存接口处的布局布线设计会带来很大压力,这是否会影响到三级缓存的带宽?

  内置了内存控制器。Nehalem处理器取消了Intel一直沿用的前端总线,而内存控制器也被放置到片内。内置内存控制器会对存储性能有什么影响?

  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发现一级高速缓存的带宽并不是整个存储子系统中的瓶颈,而故意将一级高速缓存简化,以便集中精力设计好处理器的其他部分。两个原因之中,我们认为前者可能占据了主导地位。

  二级高速缓存相当于是新加入的,位于新设计的核心部分。每个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。另一方面,由于处理器核心的数量将不断增加,因此采用共享缓存的设计方式会遇到很大的麻烦:一方面,共享缓存需要负担起更高的带宽,这就需要共享缓存具有较小的访问延迟;同时共享缓存也需要有更高的容量和相联度,以提高命中率。但另一方面,更高的容量和相联度会增加访问时间,另一方面,更多的核心也使得布局布线越来越困难。这两方面的矛盾始终存在,而且终究会变得不可调和。而新的独占式的二级高速缓存的加入,使得每一个二级高速缓存可以做得比较小,而总容量仍然相对可观;同时每个缓存位于自己的核心内部,因此布局布线也更加容易。新的独占式二级高速缓存的加入,大大减小了三级缓存的压力。

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

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

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

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

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

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

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

  Nehalem在高速缓存层次进行了重大的改变,而在其他方面的改进也不少。

  首先是在TLB方面的改进。一方面当前的应用程序正在变得越来越庞大,而另一方面处理器的核心越来越多、又加入了SMT技术,这两方面都使得同时处理的应用程序需要更多的内存空间去执行。这就使得TLB的设计改进成为必然。对于之前的Core2微结构的处理器而言,只具有一级TLB。Core2处理器的一级指令TLB具有128个表项,而一级数据TLB为256个表项。而在Nehalem中,一级指令TLB仍然为128个表项,但是一级数据TLB削减到了64个表项。Nehalem加入了统一的512表项二级TLB,二级TLB被一级指令和数据TLB所共享。从目前而言,Nehalem的这个改动可能对性能的提升作用并不明显。但是二级TLB相对比较容易扩充,后续设计中有可能通过进一步扩充二级TLB的容量以提升存储映射的性能。

  其次是在非对齐高速缓存访问方面的改进。Intel的指令集支持两种16字节的SSE存储访问指令:对齐访问与非对齐访问指令。对齐访问指令只能执行对齐访问,所访问的数据的起始地址都是16字节的整数倍数,也就是16字节对齐的。由于Intel的高速缓存行宽都是64字节,因此对齐访问所需要的数据都是位于一个高速缓存行内(如果所需要的数据存在于高速缓存中)。在执行对齐式的访问时,只需要访问一次高速缓存即可得到所需要的所有数据。而非对齐访问则没有这么幸运。对于之前的设计而言,对于非对齐访问指令的处理相当糟糕。Core2微结构的处理器需要产生多个微操作才能完成一条非对齐访问指令,延迟很高、带宽很低,同时也会浪费能量。甚至于,即便这条指令所需要的数据是对齐的(非对齐访问指令所需要的数据可以是对齐也可以是非对齐的),Core2微结构的处理器完成一条非对齐访问指令的时间也比完成相同功能的两条指令的时间更长。

  Nehalem处理器改进了这一点。如果非对齐访问指令所需要的数据是对齐的,那么处理器会把它当作一条对齐访问指令来处理,效率与完成相同功能的对齐访问指令一样。如果所需要的数据是非对齐的,Nehalem在跨越高速缓存行边界的访问也进行了优化,效率得到了提升。因此软件对Nehalem处理器进行优化时,已经没有必要再使用对齐访问指令。

  然后是同步原语。原语是指机器执行多条指令时,必须将其作为一个整体进行执行——要么这些指令全部被执行、要么全部不执行。由于多个程序可能同时访问一个数据,因此必须需要原语才能保证这些程序在访问数据时不会产生冲突。为了方便理解我们可以用一个例子来说明:如果你到ATM机上去取款,输入密码键入需要的取款金额后,如果ATM机扣除了你帐号里的钱,但是不给你钞票那你一定会很震惊并且恼火。这是因为扣除帐号中的钱和吐出钞票虽然是两个动作,但是必须作为一个整体来处理。

  对于当前的应用来说,多线程的应用越来越广泛,因此同步原语的速度也更加重要。Nehalem提升了Lock Prefix、XCHG等同步原语的速度,为传统的软件减少了同步延迟,提升了系统在多线程应用中的表现。

  Intel的竞争对手早在2005年发布的K8处理器中就集成了内存控制器,但是Intel认为在CPU中集成内存控制器为时尚早, 坚持将内存控制器集成在北桥中,通过前端总线访问内存控制器。一时间,究竟是内置内存控制器更好还是外置内存控制器更优秀成为大家在对比AMD和Intel产品时广泛争论的热点。

  从设计角度讲,内置内存控制器可以获得对内存访问更低的延迟,有助于提升实际应用时的存储带宽;同时内置内存控制器将使得主板的设计更加简单,有利于降低系统整体成本。但是内置内存控制器同样也带来一些问题。首先是处理器封装的问题。内置内存控制器需要更多的针脚与内存互联,如何在很小的PAD上摆放这么多接口信号,并外联到PIN就是一个问题。然后是处理器的性能。内置内存控制器必然会带来处理器布局布线的困难,同时在运行时内存控制器也必然会产生热量,如果Intel在早先Netburst微架构中集成内存控制器,那么处理器的功耗将非常恐怖,也会影响处理器的热设计以及性能提升。第三个方面是灵活性。如果集成内存控制器,那么将限定只能使用内存控制器支持的内存,如果需要支持其他类型的内存则需要对处理器进行重新设计。所以虽然集成内存控制器是发展的趋势,但是在什么时候集成内存控制器,更多的成为一种设计取舍时的感觉而非明确的优劣参考。

  如今,Intel终于认为时机已经成熟,在Nehalem中弃用了前端总线,并且将内存控制器集成在CPU中。内存控制器被设计在非核心部分,可以针对不同的应用领域更换甚至省略,增强了灵活性。并且,为了表示技术上领先于竞争对手,Nehalem中的内存控制器具有三个通道,支持三通道DDR3 1333内存。对于三条通道全部启用的情况下,内存带宽将高达32GB/s。对此,AMD表示Intel是追随AMD的创新,学习AMD的做法。笔者个人对此不以为然。在芯片中集成内存控制器并不是近些年来才出现的技术创新,早在上世纪,很多面对嵌入式系统的微处理器中就集成了内存控制器。从技术上来说,集成内存控制器对于Intel这种芯片巨头只是小菜一碟。但是什么时间在片内集成内存控制器,才是需要谨慎考虑的,这是一种设计时的折衷,更是一种设计哲学与态度。

  Intel内置内存控制器后,内存控制器的性能表现成为大家关注的焦点。很遗憾Intel并没有给出Nehalem中内存控制器一些重要的设计规格,例如内存控制器的延迟、与三级高速缓存连接的位宽等等。我们在后续测试中,将尽可能的为大家揭晓Nehalem内存控制器的表现。

  Nehalem中的另一个重要改变是取消了沿用多年的前端总线FSB,转而支持QPI(QuickPath Interconnect)进行系统间互联。在之前的设计中,FSB一直是基于Intel架构的系统中的瓶颈所在。即便当前FSB的频率已经可以高达1600MHz,其带宽也只有12.8GB/s。而对于只采用一条FSB总线的多处理器系统而言,系统间互联和可可扩展性无疑很差。与传统的总线不一样的是,QPI是一种点对点的传输协议,也就是QPI只能挂接两个设备。对于多处理器系统而言,需要多条QPI进行数个芯片间的互联。相对于传统的总线方式,QPI提高了系统的整体成本,却可以大大提升系统互联速度,以及平台的可扩展性。

  QPI是一种基于包传输的串行式高速点对点连接协议,采用差分信号与专门的时钟进行传输。在延迟方面,QPI与FSB几乎相同,却可以提升更高的访问带宽。一组QPI具有具有20条数据传输线,以及发送(TX)和接收方(RX)的时钟信号。一个QPI数据包包含80位,需要两个时钟周期或四次传输完成整个数据包的传送(QPI的时钟信号速率是传输速率的一半)。在每次传输的20bit数据中,有16bit是真实有效的数据,其余四位用于循环冗余校验,以提高系统的可靠性。这样子,每个QPI总线单向传输的带宽为每次传输的有效数据×每秒传输次数=102.4Gb/s=12.8GB/s。由于QPI是双向的,在发送的同时也可以接收另一端传输来的数据,因此一组QPI的总带宽为25.6GB/s。QPI同样是非核心的一部分。这说明Intel可以比较灵活的修改处理器中集成的QPI的数量。在针对多路服务器的系统中,可能在CPU中集成四组甚至更多QPI;在针对双路处理器的系统中,将集成两组QPI;而在针对高端桌面平台的Nehalem处理器中,只包含一组QPI。需要特别说明的是,QPI只是Intel用来实现多处理器间互联、以及处理器与芯片组间互联的系统连接协议,而并非一种I/O接口。在I/O接口方面,例如显卡以及其他一些外设,Intel仍然采用PCI-Express来处理I/O通讯问题。

  需要注意的是,QPI取代FSB虽然对桌面用户有一些帮助,但是最大的提升还是在科学计算等需要海量数据处理的领域。由于基于FSB的系统受限于系统互联,系统可扩展性较差。例如Xeon MP在8路以上就会出现性能损失,基于4路/24核/24线 的系统SPECint_rate和SPECfp_rate得分只有243分和139分,而基于IBM Power 6处理器的Power 595系统则在32路的情况下依然保持非常良好的可扩展性(包含32路/64核/128线系统SPECint_base和SPECfp_rate分值分别为2080分和2110分)。从另外一个角度看,TPC-C目前最高的系统为32路/64核/128线百万分,而Intel自家的系统得分最高的是64路/128核/256线的HP Integrity Superdome系统,其TPC-C分值只有400万分。目前从Intel取消前端总线而采用QPI,同时QPI具有循环冗余校验功能来看,Intel可能很想凭借基于Nehalem微架构的处理器组成具有更高可扩展性和更高可靠性的系统,来在小型机和高端服务器领域取得一些突破。

  随着内存控制器的内置和QPI的诞生,包含Nehalem处理器的系统中对内存的访问也和之前不太一样。在之前我们所见到的Xeon系统中,往往是用多路处理器共享内存和总线的方式进行互联,任意处理器访问任意内存的延迟都是一样的,也就是所说的SMP(对称多处理)。SMP是一种UMA(一致内存访问)模式的一种实现。而在基于Nehalem的系统中支持的是NUMA(非一致内存访问)的存储技术。也就是每个处理器具有自己的本地内存,同时也可以访问其他处理器的远程内存,访问本地内存和远程内存的延迟不相等。在访问本地内存时,CPU向本地内存发出访问请求,并侦听其他CPU以检查数据是否存在。本地内存访问返回数据,而远程CPU返回侦听响应。对本地内存的访问延迟即为两者中的较大值。Intel对本地内存访问进行了优化,使得远程侦测访问时间和访问内存的时间差异不会太大,以免造成瓶颈。

  对远程内存的访问就要复杂一些。CPU通过QPI先向远程CPU发起访问请求,远程CPU的内置内存控制器发起自己的内存访问,内存的数据返回到远程CPU的三级缓存中,远程CPU再通过QPI将数据返回。由于QPI延迟不高,内置的内存控制器延迟也很小,因此即便对远程内存访问,整体的访问延迟仍然会保持在一个较好的水平。

  SSE4指令集被认为是2001年以来Intel最重要的指令集扩展,包含54条指令。Intel在Penryn处理器中加入了对SSE4.1的支持,共增加了47条新指令,提升了处理器在图形、3D图像与游戏、视频编码与影音处理等方面的性能表现。本次在Nehalem处理器中,进一步支持了SSE4.2指令集。SSE4.2完整的实现了SSE4指令集,相对于SSE4.1加入了7条新指令。

  SSE4.2新加入的几条新指令有两类。第一类是字符串与文本新指令STTNI,STTNI包含了四条具体的指令。STTNI指令可以对两个16位的数据进行匹配操作,以加速在XML分析方面的性能。据Intel表示,新指令可以在XML分析方面取得3.8倍的性能提升。第二类指令是面向应用的加速指令ATA。ATA包括冗余校验的CRC32指令、计算源操作数中非0位个数的POPCNT指令,以及对于打包的64位算术运算的SIMD指令。CRC32指令可以取代上层数据协议中经常用到的循环冗余校验,据Intel表示其加速比可以达到6.5~18.6倍;POPCNT用于提高在DNA基因配对、声音识别等包含大数据集中进行模式识别和搜索等操作的应用程序性能。

  Intel也公布了支持新指令集的开发工具。这些工具涵盖了主流的编译开发环境。目前已明确支持SSE4.2的开发环境包括:Intel C++ Compiler 10.X、微软的Visual Studio 2008 VC++、GCC 4.3.1、Sun Studio Express等。程序员可以直接使用高级编程语言编程,编译器会自动生成优化结果。当然程序员也可以用内嵌汇编的方式来达到目的。

  在软件开发和服务器领域,虚拟机也使用的越来越广泛。Intel从2005年发布自家的虚拟化技术,以减少软件的虚拟机相关开销并更广泛的支持操作系统。减少软件的虚拟机相关开销、提高虚拟机性能可以通过以下两种方式来实现:减少虚拟机与外界的转换和映射等操作,或者减少转换和映射的延迟。Nehalem对这两方面都进行了改进。一方面,Nehalem减少了转换的延迟。而另一方面,Intel使用了两种新技术来减少虚拟机与外界的转换操作。

  第一个技术是扩展页表。由于虚拟机上运行的进程是虚拟的,因此在需要查找进程的页面时,无法通过直接访问内存得到,而是必须将需要的地址通知虚拟机,虚拟机再根据自身的内存映射情况将映射后的地址告诉主机。主机进行地址转换操作后将转换后的内存地址通知虚拟机,虚拟机最后再通知需要这个数据的页面。整个过程十分繁琐。Nehalem在存储管理单元中支持了扩展页表VPT。虚拟机上的进程需要访问页面时,可以直接到主机中进行映射,跳过了虚拟机这一层,这样就大大简化了访问的过程。同时,由于硬件的可靠性要比软件高很多,因此这一技术的加入也消除了从虚拟机退出最重要的原因。

  第二个技术是虚拟处理器ID(VPID)。在之前的系统中,虚拟机上的进程是虚拟出来的,硬件并不知道虚拟机上运行的进程号码。硬件无法得知进程运行的情况,也就无法很好的管理进程的内存映射和占用情况。虚拟机上的进程需要访问自身的页面时,往往最后被告知页表的表项不在TLB中,于是不得不从内存中取出页表,以得到页面的位置信息和所需的数据,过程非常缓慢。而加入VPID后,由于每个硬件可以直接看到虚拟机上运行的每个进程,因此其虚拟进程号可以和页表的映射信息被一起放在TLB中,这样就提高了TLB的命中率,减少了因为TLB失效导致过多内存访问的情况。

  以上是Nehalem在性能方面的改进,下面我们主要来关注一下Nehalem的功耗设计。

  芯片的功耗主要由两部分组成:动态功耗与静态功耗。动态功耗指的是在芯片在工作时,由于晶体管需要开启-关闭,以及电源网络、传输线上的信号翻转所造成的功耗。静态功耗指得是芯片无论是否工作都要引发的功耗。(详细介绍可以参考:)。在130nm以前,芯片的功耗主要是动态功耗,静态功耗所占比例很小。而在90nm以后,由于特征尺寸变小,漏电的问题越严重。芯片在设计时就不得不考虑静态功耗的问题。在之前CPU厂商所发布的桌面处理器中,很少考虑静态功耗的问题。直到最近几年,这个问题才逐渐被大家所重视。Intel早先发布的45nm Penryn处理器,就通过使用High-K介电质和金属门减轻了静态功耗的问题。而在芯片处于空闲时,使用降低频率和工作电压的方式,来削弱漏电流的影响。但是这仍然无法完全解决漏电引起的问题。尤其在芯片处于空闲时,大量的逻辑门单元和复杂的时钟网络仍然需要耗去一定的电量。

  优化芯片的功耗水平,需要从多方面着手进行。目前已经出现的功耗优化技术主要包括:针对应用使用功耗优化的软件算法,在软件编译时生成低功耗的代码,使用功耗优化的架构和微架构,将芯片划分为多个时钟域或/和电源域、将不同的应用需求分配到不同域的电路中完成,门控时钟和门控电源、降低电路的电压或/和频率,使用低功耗的材料和工艺如铜互联、High-K介质、高阈值晶体管等等。Nehalem中几乎采用了硬件可用的所有方面的技术以保证较好的功耗水平。

  在架构和微架构层次,正如我们前面所讲到的,Nehalem通过加入了SSE4.2和增强的虚拟机减少了特定任务的操作数量,并通过支持SMT、优化的宏融合、循环流检测器、分支预测和对非对齐高速缓存访问的增强提升了处理器的能耗比。下面让我们来看一下其他的方面。

  首先是多时钟域结构。Nehalem的芯片分为两部分:核心与非核心部分。时钟由位于主板上的晶振和对应的PLL产生,并传送入非核心部分。非核心部分将这个时钟(BCLK)分频,为每个核心产生单独的时钟。因非核心部分工作在较慢的时钟域下,有利于减少非核心部分的功耗;核心部分被设计的非常高速,以达到更高的计算能力。

  其次是门控电源。门控电源与门控时钟原理类似,都是采用逻辑电路来动态控制电路的电源或时钟。在电路不工作时,控制端即会关闭晶体管,电路的电源即被切断。这样对应的电路就不会产生任何的功耗。与门控时钟相比,门控电源对功耗的降低作用更加明显,因为消除了电路在不工作时的静态功耗;但相应的,使用门控电源也会增加电路的唤醒时间。因为在门控时钟关闭时,电路的时钟停止工作,但电路里的数据因为仍有电源所以仍然可以被保存起来;而门控电源切断时,唤醒则需要再次从外部加载相应的数据。Nehalem对每个核心都使用单独的门控电源,在核心不工作时,相应的电源可以被动态的切断,而不影响其他核心上执行的程序。

  然后是动态调节电压和频率。由于动态功耗和工作电路的电压、频率关系重大(动态功耗=常数*电容*频率*电压*电压),因此降低电路的电压和频率对于降低功耗具有重要的意义。Intel在多年以前就开始使用EIST技术以动态降低工作电路的电压和频率,但在Nehalem中,Intel对优化功耗的技术有了进一步的诠释。

  这种技术被成为Turbo Mode(加速模式)。Intel相信,降低处理器的功率并不是唯一的解决之道。提高能耗比,在完成相同的任务量前提下减少耗电,或者在相同耗电量的前提下完成更多的任务,才是评价处理器效率的标准。Turbo Mode正是基于这种思想的产物。Turbo Mode可以通过软件或BIOS开启或关闭。在打开Turbo Mode时,处理器可以自动侦测CPU的负载情况,智能的关闭不用的核心,并提高其他核心的性能。在极端的情况下,如果只运行单线程程序,其他三个核心可以全部被关闭,并对运行任务的核心进一步提升工作频率。Turbo Mode的出现真正做到了按需供电、按需提供性能。

  最后,Nehalem也使用High-K介质和金属门等Penryn处理器上刚刚采用的工艺,从制造角度降低了处理器的功耗水准。

  X58是Intel为Core i7搭配的桌面芯片组,属于高端桌面平台,由X58 IOH和ICH10系列南桥组成。

  首先简单解释一下“IOH”这个容易让读者联想到“ICH”的名字。在以往的Intel芯片组如P45、X38中,北桥芯片包含了内存控制器,被称为MCH(Memory Controller Hub)。到了Nehalem推出以后,平台架构发生了翻天覆地的变化,内存控制器从北桥移到了CPU内部,因而北桥不再称为MCH,而是改名为IOH(I/O Hub)。IOH被定义为各种I/O设备连接到具备QPI总线的CPU的桥梁,它同时提供了很多PCI-E 2.0总线连接作为标准的I/O接口。从CPU到IOH的连接界面是QPI总线,从IOH到南桥的连接是从915芯片组一直沿用下来的基于PCI-E Gen1 x4的DMI总线。

  在上面的X58高端桌面平台架构图中我们可以看到,X58和CPU连接的QPI总线GB/s的带宽,可以给数张PCI-E高端显卡提供充裕的带宽。而DMI总线GB/s带宽也尚堪用。计划于明年面世的下一代南桥“Ibexpeak” PCH也会通过这条DMI总线与CPU相连。这一代X58继续使用ICH10系列南桥,基本规格和性能仍然是令人满意的,只是期待下代接口SATA 6G和USB3.0的用户要失望了。

  X58 IOH提供的36个PCI-E 2.0连接可以配置为2*16x、4*8x等组合(此外还剩下一个4x连接),可以支持最多四张显卡的系统,比如四路CrossFire X、三路SLI、双路SLI及CrossFire等。如果主板要将1个16x连接无跳线颗芯片控制2个PCI-E通道。

  上图是X58的2个16x连接重配置成4个8x连接的示意图(点击放大)。因为要拆分2个16x连接,所以用了2组共8颗Mux芯片。底下是华硕P6T Deluxe主板上型号为ASM1440的Mux芯片实物。

  我们已经知道,X58主板通过NVIDIA的授权可以直接支持SLI。另外和双CPU的Skulltrail平台类似,X58也可以板载nForce 200(BR04)桥接芯片将一条PCI-E 2.0 x16连转换为两条x16连接,从而实现3路SLI,但这样在成本和功耗上都很高。

  但在核心尺寸和功耗方面X58就有很大劣势。X58的核心尺寸是10.6mm*13.8mm=146.3平方毫米,略小于一颗RV730 GPU,功耗虽然没有和RV730看齐,在芯片组中也十分可观。

  上表是我们从各种文档和消息中收集到的几颗芯片组北桥的功耗数据。X58、790FX和X48/X38都提供了两个16x PCI-E 2.0界面连接显卡,P45提供了一个16x PCI-E 2.0。制程方面X58、790FX、P45都基于65nm工艺而X48/X38基于相对老一些的90nm工艺。空闲功耗的部分,Intel给出的空闲功耗为最大空闲功耗值,而AMD 790FX的3W可能是典型值、最小值或最大值,故没法直接相比,但满载功耗(或TDP值)仍然是可以拿来比较的。X58的功耗介于P45和老制程的X38之间,但两倍于790FX。从芯片组散热器尺寸上我们也能直观地体会到功耗的差距。AMD-ATI芯片组部门设计低功耗PCI-E桥的能力是令人惊叹的,我们也只有期望Intel尽快将IOH切换到45nm工艺生产以减少发热量,同时为全球的节能减碳做贡献。

  Core i7+X58 IOH的平台虽然被称为高端桌面(HEDT)平台,实际上CPU和芯片组都是面向服务器应用的芯片。Nehalem架构面向单CPU高端桌面平台的芯片代号为Bloomfield,就是我们所知道的i7;面向双CPU服务器平台的芯片代号为Gainestown(Nehalem-EP)。它们都使用LGA1366接口,唯一的区别就是支持的QPI连接数:Bloomfield仅支持1个QPI连接作为CPU到IOH的专用连接,而Gainestown支持2个QPI连接,一个QPI用作两颗CPU之间的直接互联,另一个QPI连接CPU与IOH。可以说i7这个桌面产品是Intel将服务器版的产品直接下放到高端桌面领域,类似地还可以联想到将Xeon的Prestonia核心用于高端桌面的P4 Extreme Edition。

  Tylersburg是X58的代号,也是第一代IOH芯片的代号,该芯片面向单路桌面与双路服务器平台,未来面向四路以上系统的IOH代号为Boxboro。如前所述,IOH是各种I/O设备与支持QPI的CPU连接的桥梁。根据支持的PCI-E通道数(24条、36条)与QPI连接数(Single、Dual),Tylersburg IOH有以下四个版本:

  Tylersburg-36S即X58,和36D是同一颗芯片,它们的区别在于36S版关闭了2条QPI连接中的1条,在Intel一篇Roadmap当中也把36D版称作X58 IOH。而24S和24D是仅提供24条PCI-E通道的低端版本。双路服务器的平台可以用一颗或两颗Tylersburg来组成芯片组,平台架构如以下两图所示。

  如上图,在一颗IOH的双路平台中,IOH通过两个QPI直接连接到两颗Gainestown CPU;在两颗IOH的双路平台中,两颗IOH分别通过QPI连接一颗CPU,相互之间通过另一条QPI连接,一共提供4条PCI-E 2.0 16x连接。如果Intel计划将双路服务器平台搬上桌面,搞出类似上一代Skulltrail的平台,候选方案就会在上面两种中产生了。

  Core i7的四颗CPU内核与Uncore部分有分离的电源层,工作在不同的电压下,在主板的供电电路部分,内核和Uncore的供电是分开的。四个内核共用的电压被称为VCC,Uncore的电压被称为VTT。这里要注意,Core i7供电的VTT与Core 2超频时FSB的VTT概念是不同的,前者是给Uncore部分大量数字和模拟电路供电的电压,而后者是AGTL+总线的终结电压。

  以技嘉EX58-Extreme主板为例,CPU VCC供电分布在CPU插座的左侧和上方,为加强型6相供电(虚拟12相)设计,由符合VRD11.1规范、支持动态相数控制的ISL6336A芯片控制。左下角贴着一小块散热片的两相供电就是CPU VTT供电,由符合VRD11规范的ISL6312控制。此外北桥散热片下方还遮盖着两相X58 IOH供电,控制器为ISL6322G。

  通过官方资料我们可以知道,供电规范要求VCC供电能达到145A的输出电流,VTT供电的模拟和数字两部分加在一起要达到28A。X58的TDP是24.1W,VCC电压1.1V,电流要求也在20~30A之间。由此我们进行一点估算,一般来讲每相供电能提供30A左右的稳定输出。按照每相供电能提供30A的稳定输出来推算,145A电流就需要5相供电来提供,而VTT部分和X58的供电各需要至少1相,也就是说合理配置至少是5+1+1相,考虑到超频情况,6+2+2相就是合理的选择。华硕P6T Deluxe是16+2+2相,技嘉EX58 Extreme是12+2+2相。通过加强散热和合理布线、用料可以让每相供电能力上到40A,每相元件数量和规格不同,供电能力可能不到30A,也可能上到40~60A,因此这里只是对“普通配置”的一点推算。

  Core i7 CPU的VCC供电基于VRD 11.1规范,目前露面的VRD 11.1规范PWM控制器包括Intersil ISL6336、ON Semi ADP4000等型号,其中以ISL6336/6336A最为常见。VTT供电基于VRD11规范,使用常见的VRD11单相或2~4相控制器即可控制。i7 CPU会发出两组8bit VID信号分别发给VCC和VTT供电的控制芯片,指示供电电路分别产生VCC、VTT电压。对VRD 11.1的详细内容我们暂时还不得而知,只知道CPU提供了PSI#信号,CPU进入C4 “Deeper Sleep”睡眠状态时就会通过PSI#告知PWM控制器,PWM控制器以逐步逼近的方式大幅降低VCC电压,同时将供电相数关闭到最低1相,从而节约电力。

  随着i7 风风火火的上市,intel最新的芯片组X58芯片组也随之亮相,这一代芯片组也是intel历史上改动非常大的一次,CPU针脚定义有原来的775时代迈向了1366时代,内存也从DDR2王朝走向DDR3的新纪元,总之,X58给我们带来了许许多多的变化 让我们一起来看看新时代的主板吧!

  intel DX58SO它采用了Intel X58北桥和Intel ICH10R南桥,整块主板采用了黑色大板设计。X58芯片组重要的技术就是支持3通道内存,三通道内存插槽赫然摆放在了主板的最上方,仿佛向大家说“我是三通的”。

  Nehalem采用了与以往Core 2 Duo不同的CPU插槽,以前的是LGA775,现在升级到了LGA1366。Intel DX58SO主板采用了中规中矩的6相供电。由于CPU的TDP仍然为130W,因此供电、散热的设计和以往相比都加强了许多,让人耳目一新。

  CPU供电方面Intel DX58SO采用了方形密封电感,搭配三洋和日化的固态电容。

  主板使用了大量的日化, 三洋的固态电容,同时还有不少日化的电解电容,主板支持Cross fire。传闻X58芯片组支持SLI,但是由于NVIDIA和Intel的竞争关系,必须由NVIDIA向Intel主板芯片组提供nForce 200桥接芯片才能支持SLI,但是也许是NVIDIA流露出更多的善意,X58芯片组不需要搭配nForce 200桥接芯片也能原生支持SLI,改变这一决策的条件是,但必须经过认证。目前的情况是,已有部分厂商陆续开始将样品送交NVDIA进行测试、认证。

  intel的骷髅标志,和X58主板一起推出的还有intel自家出的超频软件,同样超频软件也带有骷髅标志,莫非Intel认为自己是死亡的象征?

  I/O接口部分,提供8个USB ,一个千兆网卡,一个 1394接口,2个e-SATA接口,抛弃了传统的PS/2

  技嘉 EX58-Extreme是最先上市的X58芯片组主板之一,该主板采用Intel X58+ICH10R芯片组,支持LGA1366接口的Core i7处理器,支持三对DDR3内存,支持CrossFireX以及三路SLi,全固态电容 ,供电与芯片组散热采用配备热管的被动式设计并支持水冷。

  EX58 Extreme的尺寸为标准的Full-ATX,PCB层数为8层,比X58建议的6层要豪华一点。ATX12V 24pin插座布局在主板边缘。整板布局比较合理,CPU插座周围有充足的空间支持大尺寸散热器。

  主板供电部分采6+2+2相供电设计,CPU Vcc的6相供电由符合VRD11.1、支持动态相数切换的Intersil ISL6336A控制,铁氧体电感,日系NCC的PSE系列固态电容,低阻MOSFET上覆盖着厚实的一体热管散热器。散热器鳍片为铝质,控制了高度。

  近距离观看最新的1366针脚的CPU底座,密密麻麻的排列成两个“L”型,插座中央高频去耦用的陶瓷电容非常完整。

  内存采用两相供电,低阻MOS管搭配三洋OSCON SEPC固态电容和铁氧体电感。开机和重启微动开关从一贯的主板下方改到了内存。

本文链接:http://pikeducation.com/erjigaosuhuancun/111.html