科技时代新浪首页 > 科技时代 > 滚动新闻 > 正文

IBM独家至强服务器用X3核心芯片组深度剖析


http://www.sina.com.cn 2005年08月19日 17:56 赛迪网

  【赛迪网讯】IBM依靠最近的技术成就(即著名的POWER4和POWER5)成为拥有超凡技术的微处理器设计厂商,与此同时,它在系统级设计领域也几乎没有对手,这是毫无疑问的。IBM的系统设计历史可追溯到S/360的成功;今天,IBM的zSeries(S/360的后继产品)代表了高端系统体系架构的顶峰。幸运的是,IBM内部的其它部门已经获得了IBM大型机支配地位的技术优势。John McCalpin和Tom Bradicich博士都欣然承认它们的产品(分别是pSeries和xSeries系统)在很大程度上受着这些第一次由大型机架构所完善的技术的影响。看到大型机世界又
出现了新的技术总是令人很兴奋的,因为摩尔法则让芯片组设计人员知道晶体管数目有不断增加的趋势。本文详细分析了IBM新X3 Architecture的基本节点、一致性机制、内存子系统和I/O子系统,这些内容已由Tom Bradicich博士在2005年春的IDF上进行了介绍。

  构造块

  大多数的x86服务器供应商使用的都是Intel的标准芯片组。这对于“白牌机”供应商(因为它们无力支付研究和开发的费用)和其它供应商(如戴尔,它提前放弃了研究和开发方面的相关费用)当然是一个福音。不过,对于IBM而言,这意味着一个可以充分发挥自己雄厚的系统专业知识、创建可扩展性更高的解决方案的大好机会。这一战术正是IBM的常规战略。IBM往往看好可以利用它们的人才资源、并对竞争产品具有绝对优势的市场,避免进入那些高度竞争、对价格十分敏感的市场(如PC)。

  XA-64e或者“Hurricane”芯片组是IBM新一代x86芯片组,它的设计用途是从简单的单路处理器服务器和工作站扩展到具有双核处理器的64P系统。因为除了Unisys的ES7000和IBM的xSeries,很少有大型的x86服务器,所以,有点难以找到X3 Architecture的比较点。就像Bradicich博士在他的谈话中指出的,X3最自然的比较对象是它的前代产品,即EXA2芯片组,因为IBM在这两款产品上拥有丰富的信息。X3象征着在前一代芯片组上取得了巨大的进步,它支持双667MHz前端总线、探听过滤器(snoopfilter)、芯片内基于目录的一致性机制、虚拟高速缓存、PCI-X2.0和DDR2内存。

  像大多数大型系统一样,X3使用小型4路服务器(双核为8路)构造块并将它们连接成更大的系统。每个4路都有本地内存、I/O、探听过滤器(snoopfilter)和芯片内目录。最多可将8个4路连接在一起,形成32个处理器的系统(使用双核芯片可达64路)。

  X3Architecture是在2005年2月22日发布的,eServerx366已从3月29日开始提供。x366使用的是Intel的XeonMP芯片,为该系统发布的第一个基准测试使用的是CranfordXeonMP(3.66GHz、1MBL2高速缓存)。IBM提交了两组4路TPC-C结果;一个使用的是MSSQL,一个使用的是IBM自己的DB2。基于DB2的系统以大约9KTpmC的微弱差距败给了MSSQL系统(基于DB2的系统是141KTpmC,而MSSQL系统是150KTpmC)[3]。

  一致性机制

  对于使用x86MPU的大型系统制造商而言,最复杂的地方在于一致性。IntelCPU使用写入无效、基于广播的窥探协议来强制执行高速缓存一致性。尽管这是最简单的方法,而且可为小型配置(4路及以下)提供最短的延时,但是,不适用于扩展到4路以上。在大型系统中,会消耗太多的带宽用于一致性信息的广播,几乎没有给实际的数据留下什么空间。几乎每个8路以上专有系统都要依靠这种基于可扩展性更高的、目录更简明的高速缓存一致性模式,但是,这一方法在应用到较小的系统时开销太大。X3折衷了这两种方法,对节点间通信量使用的是混合的目录/广播机制和虚拟的L4高速缓存,对节点内部通信量使用的是探听过滤器(snoopfilter)。我们首先讨论探听过滤器,然后,讨论节点间的一致性机制。

  探听过滤器

  每个可扩展性控制器都有48Mbits的eDRAM,组成8组,每组6Mbits。整个结构是一个由ECC保护的、具有192k行的9路相联表。每行都有9路最近的高速缓存行请求以及高速缓存行的MESI(ModifiedExclusiveSharedorInvalid)状态。因为Xeon处理器中的每个高速缓存行都由2个区段(每个区段64字节)构成的,所以,整个结构可以高速缓存216MB的数据(9路x192K项x128字节)。在只有一个节点时,整个表可用作探听过滤器。Hurricane芯片组拥有两个总线线段,探听过滤器在这两个段之间分割总线通信量。在出现高速缓存未命中时,一个探听命令放到CPU总线上,探听过滤器截取该命令,并确定是否必须将探听命令传递到该4路中的另一个总线线段上。如果读取请求在同一总线上的另一个处理器,则取消探听过滤器访问。如果不在另一个处理器上,探听过滤器将确定是否进行下一个操作。如果读取请求不在探听过滤器中,则直接从内存返回数据。如果探听过滤器表明,请求的目标高速缓存行在另一个总线线段上,则该探听过滤器将探听指向另一总线线段。如果另一个段仍然拥有该高速缓存行,则将请求转向此总线线段。如果另一个线段不再拥有目标高速缓存行,则从内存返回数据。因为协议是写入无效的,所以必须始终将写入请求传递到拥有所查询的高速缓存行副本的任何总线线段上。下面的图2显示了在读取请求上使用探听过滤器的好处。与使用简单的转发器相比,探听过滤器在4路系统上可以提升10-15%的性能。

  远程目录和vL4高速缓存

  在启动具有多个节点的系统时,BIOS将48Mbits的eDRAM分成探听过滤器和远程目录(划分比率可能是8:1、7:2、6:3等等)。这种分区已经根据系统的大小在BIOS中进行了硬编码;32路系统的节点间通信量明显地比8路系统的多,因此应该拥有一个更大的远程目录。这种化分操作将来有可能由用户进行控制,但是,很可能仅对HPC或者彻底了解应用程序扩展特征的应用程序用户本身有吸引力。远程目录会跟踪那些通过编址映射到主机内存、并由另一个节点检查的数据,它使用的格式与探听过滤器使用的格式相同。

  在节点请求一个地址在远程节点上的内存的高速缓存行时(本地处理器缓存和vL4都未命中),源节点将发送一个广播探听到系统中其它的所有节点上。远程目录经过了巧妙的设计,仅仅支持单个节点向任何给定的探听广播响应。当一个节点接收另一个节点的请求且它的探听过滤器显示出它拥有该高速缓存行时,数据会发送到请求节点。至多一个节点可以在它的探听过滤器中显示其拥有该缓存行。特定请求的主节点(Homenode)定义为请求的地址映射的内存所在的节点。当非主节点(off-node)请求到达时,该主节点会会同时检查它的探听过滤器和远程目录。如果远程目录显示,高速缓存行的所有权已经提供给另一个节点,则主节点不会返回数据。如果该请求在探听过滤器中,或者不在远程目录中,则主节点会返回数据。下面的图3显示了一个内存事务的例子。

  在多节点系统中,虚拟L4高速缓存用于提高X3的可扩展性。在启动时,BIOS会留出一个单独的内存区,将其用作虚拟高速缓存。尽管留出的内存量是硬编码的,它很可能可以由用户进行配置,供了解相关知识的用户使用(很可能又是HPC用户)。可扩展性控制器使用vL4来存储以前请求的非本地高速缓存行(即高速缓存行在可扩展性控制器相对较遥远的地方)。这提高了性能(因为vL4服务的数据请求的速度比节点间数据请求快)并且确保了内存一致性(因为每个高速缓存行在内存中都有唯一的位置)。因此,在上面的图3中,NEquad将从它的vL4(或者高速缓存本身)而不是从内存中发送所请求的数据。

  如上所述,选择这一协议的目的是为了平衡目录协议(可扩展的延时)的好处和广播协议(低最初延时且成本低)的好处。我们已经与JohnBorkenhagen博士稍微深入地讨论了这一点,JohnBorkenhagen博士是IBM研究RS64IV微处理器杰出的工程师,也是X3的首席架构师。根据Borkenhagen博士的看法,模拟实验显示,混合协议在4quad及4quad以下配置上优于目录协议,在8quad性能上和目录协议相当。这似乎有点不寻常,但重要的是要记住,点对点协议需要提前知道目的地,这就需要额外查询关键的请求路径,而广播协议则没有这一操作。

  内存子系统

  X3中改进最明显的部分是内存分级结构。前一代EXA2同时支持Itanium和Xeon处理器。因为前端总线具有不同的物理特性,因此,需要使用双芯片结构,请参见图4;其中一个芯片处理前端总线(FSB),另一个芯片包含内存和I/O控制器。令人遗憾的是,这导致产生了额外的芯片到芯片的互连,且处理器和I/O与内存之间出现了相应的延时,从而降低了性能。为了缓解这一损失,添加了L4高速缓存,并与前端总线控制器相连接。

  在将版本镜像到pSeries系统体系架构的迁移中,X3消除外部的芯片互连,芯片组功能大部分整合到了一个芯片上。因此,内存存取的互连跳跃少了一个,从而显著地降低了延时。这还允许IBM在设计中完全去掉L4高速缓存,进一步降低成本和设计复杂性。结果,X3的本地内存延时达到了惊人的108ns,而前一代为265ns。在下面的图4中可以看到这些变化。

  前述芯片整合还可以消除一个关键的瓶颈:即内存控制器和可扩展控制器之间的连接。在EXA2中,该互连只能提供3.2GB/s的带宽,这降低了8通道DDR内存架构的效能,因为该内存架构理论上可以提供12.8GB/s的带宽。比较起来,X3能够获得四个DDR2-400控制器的全部优势,可跨8个通道提供21.3GB/s的带宽。注意:这显著地超过了前端总线能够提供的带宽,因此,大约有一半的内存带宽专门提供给了I/O设备和远程quad。

  RAS特性

  IBM还提供一系列供X3内存子系统使用的RAS特性。该内存控制器支持热插拔、擦除(scrubbing)、位引导(bitsteering)和镜像。DavidWang在他的文章“ErrorCorrectingMemory——第一部分”中十分详细地介绍了最先的三个特性,在此特别推荐。内存镜像相当简单;它只是复制内存中的内容,模拟硬盘驱动器RAID-1的作用。这也有降低一半内存容量和增加成本等令人遗憾的副作用。

  I/O子系统

  X3的I/O也修改了;尽管从区块图表上看,其中的一些差异并非一目了然。实际上,I/O系统使用InfiniBandelectricals(可轻易地从当地的IBMMicroelectric分支机构得到)与一对64位PCI-X2.0控制器连接。每个PCI-X总线以266MHz的速度全速运行,通过6个插槽提供总计12GB/s的带宽,这是EXA2芯片组的三倍。控制器使用32位循环冗余校验(CRC)进行错误检测,支持热添加和插拔,但是没有ECC功能。尽管PCI-X是当前通用的I/O技术,IBM将来仍然会升级X3,使其支持PCIExpressx8。

  名异实同的IOMMU

  尽管带宽的确给人以深刻的印象,X3最显著的I/O特性并不是那么直观,尤其是I/O内存管理单元(IOMMU)。大多数I/O设备通过名为DMA(DirectMemoryAccess,直接内存存取)的流程与内存协作,它绕过了CPU。结果,DMA常常要使用物理内存,因为虚拟地址转换是使用TLBs和页面表在CPU中执行的。IOMMU与支持DMA的设备一起工作为它们进行虚拟地址转换,所以,这些设备能够绕过CPU并执行DMA。IBM对于IOMMU几乎不陌生;IBM首次在1971年获得了这一概念的专利,尽管在1985年IBM的PR/SM首次推出后才进行了实施。基于这一历史,IOMMU成为IBM服务器的标配就一点也不令人惊奇了,尽管IBM的专门术语将其称为转换控制项(TranslationControlEntries,TCE)

  IBM又重新将p/i/zSeries系统中的IOMMU用于X3。IOMMU理论上支持p/i/zSeriesIOMMU中的所有特性。它支持4GBI/O地址空间,修改映射表需要管理程序权限。不过,问题是它需要BIOS和操作系统对该功能的支持。将来的Linux或者Windows很有可能拥有适当的功能,但是,目前还不具备。另一个备选方案,这在不久的将来也更有可能实施的方案是,发布可以利用IOMMU的管理程序(或者虚拟机监控程序/VMM)。很显然,备选方案将会是VMware和Xen项目。利用IOMMU的管理程序会显著地改善X3的I/O子系统RAS,对于x86服务器生态系统也是一个受欢迎的改进。

  可扩展端口

  EXA2上的可扩展性端口也得到了明显的改善。像I/O子系统一样,可扩展性端口也使用InfiniBandelectricals。X3向其它quad提供三个链接,每个链接提供最高6.4GB/s的带宽,并且,像I/O子系统一样提供热故障切换和32位CRC,但是,没有ECC。远程延时也从735ns下降到222ns,仅是本地延时的两倍,这是一个非常巨大的成就。这些数字反映的是在可扩展性端口上一次跳跃的往返存取时间。对于节点超过4个系统,将引入两个跳跃。顺便说一下,quads可与最多两个可扩展性端口连接。仅在8P配置上才有此可能,但是,使用两个可扩展性端口意味着可以承受其中一个端口出现故障,且可用的节点间带宽将翻一番,达到12.8GB/s。RAS优势被视为是更重要的贡献,这并不令人吃惊,尽管还不清楚这是否是因为额外的带宽发挥了边际性能的影响,还是因为RAS对于IBM的目标市场更加关键,或者两者都有。

  现在,在讨论了X3芯片组的所有主要子系统后,我们来看看Hurricane控制器的电路芯片(die)。

  结论

  IBM在所有OEM之中具有独一无二的地位;作为垂直集成的计算机厂商和大型机供应商,它是客户最后的选择。为了利用丰富的技术传统,IBM投资了1亿美元来开发X3,新一代的xSeries服务器芯片组。像之前的EXA2芯片组一样,X3为x86服务器提供了优异的性能和RAS;X3还可以扩展到32个插座(如果双核XeonMP推出,可达到64P)。IBM的工程设计成绩令人难忘;在TPC-C中,4路x366在CranfordXeonMP上达到了150K和141KTpmC,领先最接近的4路Opteron约20k,领先最接近的Xeon约30K(尽管系统使用的是以前的3GHzXeonMP)。Bradicich博士提示,8路X3系统有可能达到大约220Ktpmc;这和以前研制的16路系统几乎完全一样。X3的“最佳性能”很可能是16路配置,尽管还会宣布更大规模的配置。

  历史上看,IBM已经将首次在大型机上开发的技术向下迁移到它们的UNIX服务器,并最终迁移到它们的x86服务器。尽管面临着戴尔及其它厂商的价格竞争,越来越多的客户已经选择使用IBM的xSeries服务器所具有的高性能和RAS特性(更不用说它们优异的支持)。在相当长的一段时间内,这一趋势很有可能会继续,尽管将来的xSeries服务器实际上会拥有一个实质性的对手。Newisys用于Opteron的HORUS芯片组在技术上应该可与X3竞争,但是还没有宣布基准测试得分,到目前为止HORUS也没有Tier1OEM的支持。

  总的来说,IBMX3Architecture是可靠的新一代xSeries服务器平台。它是前一代的革新,在延时、带宽和可扩展性方面具有许多明显的改进,还巧妙地提高了业已十分显著的RAS特性。在短期内,X3的商业成功几乎是确定无疑的,且在18-24个月后,还会出现新的产品,IBM在xSeries标准方面应该是绰绰有余的。


  爱问(iAsk.com)


评论】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5828   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2005 SINA Inc. All Rights Reserved

版权所有 新浪网