转自:深度硬件讨论
长期以来,我们讨论计算机性能总是将注意力放在各个子系统的技术参数上。例如微处理器的速度、内存规范、用何种等级的GPU等,而没有意识到这些部件的协同效率会对系统产生怎样的影响,对于系统连接的探讨也仅限于总线技术层面。这种惯有的模式导致了人们对计算平台的技术水准难以产生明确的认知,同时也产生了一个概念上的模糊空间,让用户在厂商的宣传中无所适从。本文所要探讨的对象便在于此:计算机的连接架构。
一辆法拉利跑车可以轻松达到300公里以上的时速,但在普通公路上它却可能无法超过80公里—道路不够宽阔、路上的行车和弯道太多等都是影响速度的因素。如果想让它发挥应有的潜能,那么就应该提供一个专用的赛道。其实对于计算机系统,情况同样如此。计算机系统的性能取决于微处理器、内存、图形、硬盘等子系统,但即便配备顶尖的硬件,也未必能保证它们以最高的效率运行。事实上,微处理器、内存、图形、硬盘只能决定自身的性能,它们的协作效率则由总线技术以及连接架构所掌管—总线技术决定带宽,类似于道路的宽敞以及平整程度,允许数据在上面跑得多快;连接架构则定义了两点间的连接方式,是直道或者弯道,路径最短则最优,数据传达的效率自然最高。
谁在说谎?“微架构”与“连接架构”的迷思
英特尔宣称Core架构远远领先于对手,理由是指令性能更优越;AMD也声称K8架构更科学,理由是更高效的内存调用和更富弹性的连接。双方的宣传都给出足够多的理由,并且有充分的技术解释。对于这种各执一词的说法,如果你对处理器技术稍有了解,便会知道双方的论点都没错,但这就导致一个矛盾的问题:究竟哪一个平台在架构上更具优势?
事实上,英特尔与AMD都没有对公众做出详尽的解释,他们给用户留下一个模糊的认知空间,回避了对方之长,宣扬自身的优点。公正的说法应该是:英特尔“Core”处理器的微架构胜于对手,而AMDK8处理器家族则拥有更胜一筹的连接架构。在这里,你会发现处理器架构的概念一分为二:其一是“微架构”,其二就是“连接架构”,两者是完全不同的概念,它们从不同的角度影响着系统的性能与扩展性。
“微架构”通常是我们在衡量微处理器设计细节时最先接触到的概念,它描述的是处理器最基础的指令执行部分,包括执行的方式和运算单元的构成等—它就好比是法拉利跑车的引擎和车体框架,引擎决定了跑车所具有的速度,车体框架则让跑车能够在高速状态下保持稳定。
正常来说,处理器的微架构通常都是非常稳定的,寿命可在5年以上,而每一种微架构往往都对应着一个处理器家族—例如Pentium Ⅱ~Pentium Ⅲ都基于P6微架构,Pentium 4家族基于Netburst微架构,现行的Core 2 Duo/Quad则基于“Core”微架构;AMD Athlon 64/X2、Opteron系列、Turion 64/X2系列则隶属于K8微架构。
在x86领域,英特尔的Core微架构无疑是佼佼者,它的特点在于具有四发射能力,即每个周期可以同时对4条x86指令进行解码,Core微架构还结合了微指令融合和宏指令融合两项优化技术,同时可以对多达5~6条指令进行处理。显然,在频率相同的情况下,处理器的指令并行度越高,实际性能就越强。正因为这方面的优势,Core 2 Duo处理器才能够在较低的频率下保有超越高频Pentium 4的卓越性能。
相比之下,AMD K8微架构实际上只是承袭于K7体系,它同时只能对3条指令进行解码,也没有任何指令优化技术,K8与K7的主要区别仅在于集成内存控制器和64位支持—若单单从指令执行的角度来衡量,我们可以认为K8与K7隶属于相同的技术体系,两者都只能同时解码3条指令,并行能力远逊于英特尔的“Core”以及Pentium M家族所采用的“P6增强”微架构。
但是,AMD K8家族拥有更出色的连接架构—微架构决定了芯片的指令执行效能,而连接架构则决定系统输送指令的能力。如开篇所述,连接架构就好比是道路,车再好道路不行也跑不快;同理,倘若指令输送能力无法跟上,处理器的执行性能再高都无济于事,因为它不得不浪费很多的时间在等待上面,导致有效工作时间的减少(类似于堵车等待,拖慢了平均速度)。AMD的K7和K8在微架构方面变化极小,指令解码能力没有获得增强,运算单元的数量也未增加,但K8的指令执行性能却远高于K7,关键原因就在于K8系列拥有更出色的连接架构。
现在情况就变得明朗了:英特尔Core平台拥有出色微架构,但连接架构落后于对手;AMD K8平台微架构落后,但它拥有一套非常先进的连接架构。这种情况导致竞争双方各有长处和短处。对于微架构,之前就有过很多探讨,这里就不作过多的论述,本文的重点在于PC的连接架构,我们要解决一些问题:连接架构对系统性能和扩展力有何种程度的影响?PC的连接架构将向什么样的趋势发展?
来自80286时代的架构—前端总线+北桥芯片+南桥I/O芯片
对于英特尔平台,前端总线、北桥芯片、南桥芯片的概念从80286时代至今就没有多少变化。处理器通过前端总线与北桥芯片连接,北桥芯片包括图形接口控制器和内存控制器两个逻辑单元,北桥芯片通过特定的总线与南桥芯片连接,南桥芯片则负责I/O扩展,包括存储、网络、音频、内部扩展总线(PCI、PCI Expressx1)、外部连接总线(并口、串口、USB)等等。
在过去二十年中,技术提升仅限于各个子系统的规格,例如总线的速度、内存标准、图形接口标准、磁盘接口标准等等,但都没有对这套架构作什么本质性改变。尽管各个子系统的规格升级能够让系统性能获得显著的提升,但僵化的连接架构同时也产生明显的瓶颈,通讯延迟较长的缺点体现得非常明显。
英特尔965系列芯片组基于传统的南北桥连接架构,这套连接在PC诞生之后就没有获得本质性的改变
首先,我们来看处理器与内存的连接。如图2,处理器必须通过“前端总线”与北桥芯片相连,然后再经由单/双通道“内存总线”才能与内存系统实现数据交换,那么这一数据交换工序就涉及到两条不同类型的总线—只有当前端总线的带宽高于内存总线时,处理器才能够充分利用内存资源。在与AMD平台的对比测试中,Core2 Duo平台内存性能居于明显的下风(搭载相同的内存系统时),原因就在于此。而由于技术上的限制,前端总线难有大幅度提升的空间,这就注定内存瓶颈难以消除。第二个缺陷在于内存的访问延迟——由于需要前端总线和北桥芯片的中转,处理器的内存延迟较长,导致处理器必须浪费很多时间在数据等待上,处理器即便拥有一流的微架构,也难以充分发挥潜能。
计算机传统的连接架构,存在内存访问延迟长、总线带宽瓶颈等弊端
对服务器来说,这套连接架构就显得更加糟糕:倘若服务器中包含两枚以上的处理器,那么它们都必须经过前端总线访问内存控制器,并共同分享内存资源,借此才能够实现多处理器的任务协同。而在实际环境下,多处理器共享内存经常会遭遇资源冲突现象,即两个处理器同时要求对某个内存区域进行读写操作,一旦遇上这种情况,其中的一枚处理器就必须停下等待,然后依顺序完成。系统中处理器的数量越多,冲突几率就越高,性能提升幅度也越来越小,一旦达到极限值后继续增加处理器数量,反而会导致系统性能的大幅度下滑。英特尔自身的Xeon平台一直未能突破八路朝向高性能计算机迈进(IBM EAX系列芯片组除外),主要原因就在于连接架构的限制。
Xeon平台的连接架构,处理器间无法直接通讯,共享内存又会遭遇资源冲突的难题
英特尔现时的Core 2Duo计算平台,乃至未来的45纳米“Penyrn”平台都没有脱离这套守旧的体系,连接架构依然沿用“CPU-北桥(内存控制器+图形接口控制器)+南桥(I/O)”的传统模式,数据交换的效率不高,这就限制了Core平台性能的进一步发挥—当然换个角度来看,我们可以认为Core平台显然具有很高的性能增长潜力。Core 2 Duo当前的性能水平,大概只发挥了Core架构70%~80%的潜力而已。
修建PC中的“高速公路”—集成内存控制器+芯片直连总线
AMD在开发K8处理器时,即参照RISC计算平台的经验,对平台的连接架构进行改良。K8连接架构有两个基本的关键点:一是将内存控制器集成于处理器内部,处理器核心与内存控制器通过超高速、低延时的内部总线连接;其二就是引入通用的HyperTransport总线技术,实现处理器与处理器、处理器与I/O芯片组之间的高速直连。这两项技术有效改变了传统连接方案的弊病,让处理器得以充分发挥自身潜能而不会被内存系统拖后腿,同时也有利于构建更强大的多路并行计算系统。
首先我们来看集成内存控制器会带来哪些增益。情况非常明显,现在内存控制器与CPU核心紧密地结合在一起,两者通过芯片内总线实现数据交换—芯片内总线可以轻而易举地达到百GB/s级别的速度,并且访问延迟极低,一举克服了传统平台前端总线的制约。以此为依托,内存系统的性能可以得到最高限度的利用,处理器获得数据的能力大幅度增强,从而可以将更多的时间放在指令执行而非数据等待上面。根据从K7到K8的过渡经验来看,集成内存控制器设计让内存访问延迟降低了50%,而K8的指令效能比K7高出25%以上,其中的关键点便是该技术的引入。
将内存控制器集成于处理器内,可有效提升内存性能,对整机性能的提升也相当可观
在多路服务器领域,集成内存控制器的设计更是获得广泛的认同。这一设计让每颗处理器都拥有属于自己的内存系统,不会再有任何因资源分享造成的性能降低或存取冲突之类的问题,系统的多路扩展也变得更加容易。不过,将内存控制器集成之后,前端总线的概念就不复存在,为了解决处理器与I/O芯片的信息交换问题,AMD引入了HyperTranport总线技术,不过HyperTranport更大的意义体现在多处理器的扩展——AMD K8微架构中包含三个独立的HyperTranport控制器,可支持三路HyperTranport总线输出,这三路总线可以根据需要同其他的处理器和I/O控制芯片连接,进而建立起一套完整的高性能计算单元。结合上述两项技术,K8微架构非常适合用于构建超级计算机系统,其中最著名的案例当属IBM为美国“洛斯·阿拉莫斯”国家实验室设计制造的“RoadRunner”、克雷(Cray)的“Red Storm”,等等,在超级计算机500强排行榜上,AMD Opteron平台占有相当重要的地位。
借助HyperTransport直连总线,Opteron平台可实现高度弹性的扩展,并可用于构建超级计算机系统
当然,PC不必考虑多路扩展的问题,先进连接架构的优势更多体现在内存性能以及可升级性。我们知道,芯片组中规格最经常变动的就是内存支持,现在内存控制器由处理器所整合,芯片组的功能仅剩下图形接口控制器/整合图形和I/O扩展,这两个部分的功能都非常稳定,没有迫切升级的必要,而且处理器与芯片组连接的HyperTranport总线也是非常稳定。换句话说,计算机的主板就变成一个规格稳定的承载平台,用户如果要进行硬件升级,只要更换处理器或升级内存即可。AMD K8平台一开始并没有很好地利用这一优势,它额外设计了如Socket 754、Socket 939等不同的插槽,直到Socket AM2到来之后,K8平台才充分利用到该连接架构可升级性强的优势,如我们既可以用单核Athlon 64、也可以换为双核Athlon64 X2甚至四核Athlon 64 X4,即将出台的Socket AM2+接口也保持向下兼容。从用户的角度来看,选择AMD平台可以让计算机拥有更长的生命周期,相比之下,英特尔当前的Core 2 Duo平台就缺乏这个优势。
尽管AMD拥有先进的连接架构,但K8平台在单机性能上已被Core 2 Duo所大幅度抛下,这便是受到K8微架构落后之累。而Core 2 Duo平台固然连接架构因循守旧,但在Core微架构的帮助下,能获得全方位的性能领先。不过,来自市场的反馈并不如英特尔所愿:Core 2 Duo平台增长速度不如预期,处于叫好不叫座的局面,AMD性能落后的Athlon64/X2系列则势头未减,很大程度上就在于K8平台先进的连接架构,更长的生命周期保障以及丰富的芯片组/主板支援很容易就会让人产生好感;而英特尔平台高中低端泾渭分明,若你现在购买了低端平台,那么就只能局限于低端的处理器和内存系统,日后要通过升级来大幅提升性能几乎不可能—英特尔似乎持有保守僵化的观念,这不仅体现在市场定位上,产品技术策略同样如此。
AMD在多路系统的辉煌成功让英特尔意识到K8直连架构的优越性,为此英特尔决定于2008年中期后开始引入类似的设计。即将内存控制器集成于CPU内部,同时以一条“CSI(全称为Common Serial Interconnect)”高速直连总线建立多处理器之间,以及处理器与I/O芯片之间的互联,事实上,这其实只是K8连接架构的翻版,但在效率一流的Core微架构的辅助下,英特尔仍有能力实现平台性能的大幅度提升,AMD固然可以拿出更有噱头的Fusion混合处理器、Torrenza协处理器平台等更先进的连接架构,但如果不及时拿出可以同Core抗衡的新一代微架构,AMD就很难在平台性能方面获得领先,更何况它的生产工艺整整比英特尔落后了一代。
强者的到来—协处理器与混合处理器
集成内存控制器、芯片间高速互联总线等特性代表了PC连接架构优化的开始,但它远不是终结。上述两项技术都是以处理器作为系统中枢,图形和其他PCI Express扩展只是作为常规的I/O组件,在过去几年这套架构大概是没什么问题。但随着DirectX 10和统一渲染架构的引入,GPU具备越来越强的可塑性,除了3D图形渲染之后,GPU所拥有的强大浮点性能可以用来完成诸如物理计算、流处理、科学计算、影像解码加速、图像处理加速等等许多要求高计算性能的场合,但如此一来,GPU便要与处理器交换大量的数据,尽管PCI Express x16总线(芯片组-GPU)和HyperTransport总线(CPU-芯片组)都足够快,但数据中转过程必然导致存在总线访问延迟较长的弊端。
1.全方位出击—AMD Torrenza协处理器与Fusion混合处理器架构
AMD再度发起了连接架构的革新,它首先提出Torrenza协处理器平台,该平台仍然以HyperTransport为连接中枢,所不同的是应用范围被扩大了,它可以用于连接浮点协处理器、多媒体协处理器以及图形模块。这样,这类协处理器就能够通过HyperTransport直接与处理器进行高速通讯,协处理器所处的地位与主处理器完全对等。其中意义最大的当属图形系统,AMD通过收购ATI成功地获得了高端图形业务,这样,它可以直接推出采用HyperTransport接口的高端显卡—AMD现在已经推出HyperTransport 3.0标准,数据传输频率可达到2.6GHz,若仍采用16位接口,那么GPU与处理器之间可以10.4GB/s的超高速进行低延时的数据交换,有效提升图形系统与主处理器的协作紧密程度,倘若我们此时借助GPU来完成一些通用计算任务,它也能够更加轻松地完成。在这里,我们也不难发现PCI Express总线不再必要,它的作用被削弱为一些无关紧要的系统I/O。
AMD Torrenza协处理器平台,主处理器与协处理器同样借助HyperTransport总线实现对等的高速直连
Torrenza是一套开放且极具弹性的平台,中高端GPU可以做成外置的图形模块,而入门级别的GPU则可以直接集成于处理器内部,这便是AMD提出的“Fusion”混合处理器计划。Fusion的构想也许有些石破天惊,如图7所示,我们可以看到,GPU与CPU功能直接耦合,两者共享二级缓存和内存控制器,等同于将双核处理器中的一个CPU核心,直接更换为GPU单元。在Fusion架构中,GPU与CPU拥有等同的权力,它可以根据需要获得既定的二级缓存资源,也可以同内存系统进行高速通讯。事实上,此时显存与主内存也合而为一。这套连接架构最大的优点就在于具有极高的资源利用效率,假设系统搭载的是双通道DDR2 800,那么CPU与GPU都能获得12.8GB/s的内存带宽,加上有高速二级缓存的帮助,GPU性能可以获得最大限度的保障。相较而言,现行K8整合平台都是将GPU集成于北桥芯片内,北桥再通过HyperTransport总线与CPU核心相连,然后通过CPU获得内存控制器的分享权,这套架构很难保证集成图形能够具有多么出色的内存性能。事实上,AMD在设计K8微架构时根本没有考虑到这一点,导致初期整合芯片组难以获得内存资源,图形性能极差,虽然AMD现在解决了这一问题,但集成图形的内存效率仍谈不上出色,与Fusion混合处理器根本不是一个层面的产品。
AMD Fusion混合处理器,CPU与GPU地位相等,两者都可直接与内存控制器通讯,实现内存性能的最佳化
Fusion方案在成本方面也有明显的优势。由于功耗的原因,Fusion只能整合入门级的GPU,但也足够90%以上的人群使用;而Fusion的图形性能将直逼中端显卡,购买一块独立显卡不再那么必要;同时,由于芯片组的职能遭到削弱,单芯片设计将进一步流行,整机成本也都可以进一步降低;另外,系统中现在只要Fusion混合处理器,一枚I/O芯片就可拥有完整的计算功能,整机可以轻松做到小型化,这些因素都能够显著降低整机的成本。Fusion同时也具有更长的生命周期,若用户觉得有升级的必要,那么只要更换一枚处理器,就可以同时升级CPU、图形和内存支持。从这些情况来看,Fusion在移动领域、中低端消费市场、商用领域显然都拥有突出的优势,其中移动领域更是Fusion的重中之重—在理想条件下,AMD可以做到在25W功耗内实现CPU、GPU和内存控制器功能,从而在平台功耗方面战胜对手,为进入超轻薄和商用机型领域彻底扫除障碍!无论从何种角度考虑,Fusion所代表的连接架构都拥有足够多的技术噱头,即便AMD未来得及对CPU微架构做出质的改变,整体性能落后于对手,Fusion依然能够扮演AMD在移动市场的杀手角色。
Fusion的出台意味着计算机图形系统也拥有先进的连接架构。而在CPU方面,AMD同样没有停步,很早就有关于AMD K9/K10架构的研发消息,但至今AMD一直守口如瓶。我们过去曾经获得这样的消息:K9/K10将直接集成PCIExpress控制器,将I/O设备与处理器更紧密地联结为一体,这样做的技术难度并不大,至少原ATI就掌握了单芯片40个PCI Express通道的技术能力,将其整合于处理器内完全可行。
不过,我们不应指望集成PCIExpress控制器能带来多明显的性能改善,它的价值更多体现在降低平台成本,因为芯片组的职能进一步缩减,只要一枚拥有完整I/O功能的南桥即可。由于南桥的磁盘接口、音频、网络、USB 2.0等功能都不会频繁升级,一块主板即可应对整个架构生命的始终,当然这得在处理器接口保持稳定的前提下。如果你看到这一趋势,便会发现AMD平台的开放性大打折扣,除了像NVIDIA这样拥有高端图形技术的芯片组厂商可以依靠SLI来维持高端市场外,主流和低端市场将逐渐归AMD自家的芯片组掌控,VIA、SiS这样的三方厂商将不断失去机会。也正是看到这一趋势,NVIDIA现在积极开发通用处理器技术,借此打造包含处理器、图形和芯片组的一体化平台,AMD与英特尔也都在创建这样的平台,看来未来计算机市场的竞争也更多会是平台的对决,而计算机工业也很有可能重返封闭时代。
2.“给跑车装上多个发动机”—英特尔的协处理器平台
英特尔所倡导的协处理器架构便是披露已久的Many Core计划。Many Core的关键点是在处理器内集成数量庞大的加速单元,例如浮点加速器、多媒体加速器、Java解释器、Flash加速器等等,这些加速单元围绕着若干枚CPU核心,接受来自CPU的任务分派并将结果传回—与AMD Torrenza/Fusion的对等模式形成鲜明对比。英特尔Many Core计划实际上采用“主-从”模式,而且所集成的协处理器都是相对简单的加速单元,英特尔一开始并没有考虑将GPU和高性能浮点协处理器包含在内。但是面对AMD收购ATI后带来的威胁,英特尔也积极寻求高端图形技术,并将推出类似“AMDFusion”的混合型处理器。到目前为止,英特尔没有详细披露它的混合处理器采用何种架构连接,英特尔初期更可能将GPU芯片与CPU芯片封装在一起,构成一个MCM(Multi-Chip Module)多芯片模块。但GPU与CPU通过何种方式尚不知晓,是否能够共享内存控制器也还有待观察,毕竟英特尔要到明年中期后才会推出集成内存控制器和CSI总线的新架构,混合处理器的推出时间将会在2009年之后。
英特尔2015年的处理器设想:8个通用处理器+64个专用协处理器,主处理器与协处理器采用主-从模式构建
写在最后
如果说微架构决定了计算机大脑的智商,那么连接架构所决定的就是神经系统的敏锐程度,这两者相辅相成,从不同的角度对系统性能产生着重大影响。在微架构的战争中,英特尔获得了绝对的胜利,Core以卓越的指令并行性和每瓦性能确立了x86处理器的巅峰,x86芯片首度在技术上达到RISC芯片的水准。
但在连接架构的竞争中,局面却决然相反:AMD系统集成内存控制器、HyperTransport直连总线让CPU获得卓越的内存使用效率;Fusion架构让GPU又获得同样出色的内存效率,Torrenza协处理器平台让超级计算机的构建变得更简单易行。而英特尔一直拘泥于传统的连接架构,开发人员没有从全局的高度来对整套平台的连接架构作任何优化设计,虽然它最终也将进行变革,但明显是追随AMD的后尘。倘若英特尔能够在连接架构方面前卫一些,配合一流的微架构和领先的半导体技术和产能,AMD将完全没有机会。
我们只是从技术角度探讨微架构与连接架构的问题,对PC来说,连接架构之于性能的影响还不是那么巨大,微架构的差异为显性因素,所以如你在诸多评测中所见,Core 2 Duo平台在性能方面优势明显。但在四路乃至八路服务器系统中,AMD Opteron则获得更多技术层面上的认可。