服务器 频道

X3核心芯片组解密

内存子系统

    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)、位引导(bit steering)和镜像。 David Wang 在他的文章“Error Correcting Memory——第一部分”中十分详细地介绍了最先的三个特性,在此特别推荐。 内存镜像相当简单;它只是复制内存中的内容,模拟硬盘驱动器 RAID-1 的作用。 这也有降低一半内存容量和增加成本等令人遗憾的副作用。

I/O 子系统

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

名异实同的 IOMMU

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

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

0
相关文章