英特尔Xeon X7560 四路服务器超详评测(1)(3)

时间:2010-11-18   来源:   网友评论:0   人气: 6283 作者:


片内网络:环形互联 

 

新的总线架构同时改变了Nehalem-EX的L3架构,在传统Nehalem上,CPU核心通过交叉开关来连接L3,但是Nehalem-EX上,这个交叉开关变成了一个环状总线,而同时L3缓存块和CPU核心的连接也更加紧密,通过bypass结构,可以实现0延迟的访问L3(当然,是指Core - L3无延迟)。Nehalem-EX的环状总线由十个节点(Ring Stop)组成,其中8个是连接到Core/L3 Cache的节点,叫做Cbox,还有两个是Sbox,用来连接内存控制器和外部的QPI总线,这个环状总线是双向的,运行在Uncore频率,数据从一个节点传输到邻近节点只需要一个Uncore时钟周期,总带宽可以达到1.2TB(0.8TB/s数据信号,0.4TB/s控制信号)。环状总线的优点是到不同区域具有预知的、恒定的延迟,到达最远的节点只需要5个时钟周期。


在设计上,Nehalem-EX晶圆基本上是有水平和垂直两条对称轴的,这样可以降低布线的复杂程度

和QPI一样,Nehalem-EX的环状总线并不是一个串行总线,它们是并行的,在每一个环站上,大约有近1000个信号在传输,峰值信号带宽可以达到3TB/s,1.2TB/s属于持续的带宽。


处在M7层的纵向信号线具有较低的电容值以提升传输速率,这些信号线具有1.5倍的宽度,两个环的间距是通常布线的3倍,与地线的距离也是通常的1.5倍


纵向数据通道使用的双端口寄存器文件允许同时对CPU核心和L3 Cache的写入操作


为了降低功耗,数据环使用了Clock Gating技术,只有传输数据的时候才有时钟产生,这可以大为降低总线的闲置功耗


为了弥补Clock Gating只能在闲置时生效的缺点,Nehalem-EX还使用编码解码技术,可以在大中负荷下具有适中的能耗节约

在环形总线上,除去8个Core/L3缓存站之外,剩下的两个站就身负对外部进行IO的重大任务,名字上,它们叫做QPI Caching agent,除了负责连接外部的QPI总线之外,它们也负责连接系统的内存控制器:


QPI Caching agent,每个使用QPI的处理器都有

QPI Cachingagent——CA0/CA1通过连接Router模块来连接外部QPI总线,通过连接HA0/HA1模块来连接内存控制器,它支持48(两个CA合96)个并发请求,并支持120项的snoops buffer。

QPI Home Agent ——HA0/HA1则负责沟通QPI和内存,它支持256个并发请求(每个Caching agent支持最多48个并发请求),并且支持来自8个其他处理器、4个其他IO/NC芯片的请求。两个HA一共能支持512个并发请求。QPI HA还使用了内存预取、预写入等优化延迟的技术。


两个一致性分区,每个区含一个内存控制器,不同的区将地址空间分割

 

内存子系统部分是Nehalem-EX中误会较多的地方。Nehalem-EX的HA0/HA1分别连接到MC0/MC1,一共两个内存控制器,普通的Nehalem处理器只有一个内存控制器。每个内存控制器提供一个SMI(Scalable Memory Interface),每个SMI界面提供了两个SMI Link,又称SMI Channel,它们可以运行于Lockstep模式(普通的Nehalem处理器也提供了这种模式)以提升性能和增强RAS。每个Nehalem-EX就提供了4个SMI Link。注意SMI Link和SMI本身的区别。

SMI Link看起来并不是一个串行界面(笔者之前的做法看起来并不正确)。SMI Link各方面和QPI Link都很像,例如它的传输速率是6.4GT/s,从这点来看它也不应该是串行总线,QPI也不是串行总线。然而,SMI Links的带宽还是个谜,因为它的位宽并不清楚,Intel没有公布这个数据。


Nehalem-EX:2MC/2SMI、4SMI Link/4SMB、8 Memory Channel、16 DIMM、256GB

SMI Link需要连接到一个叫做Scalable Memory Buffer(SMB)的芯片才能联接到并行的DIMM上(久远的Pentium 4使用的RIMM则本身是串行的),因此这让人联想到SMI是串行的,不过从其6.4GT/s的速率来看,不太像。SMB这个名字听起来和以前FBD内存上的AMB芯片很相似,AMB用来将内存管理器的串行界面转换为内存条的并行界面。在Nehalem-EX上,这个SMB可以集成在主板上而不是集成在内存条上,兼容性远非FBD架构可比。用于Nehalem-EX平台的SMB芯片还有一个开发代号(Code Name),叫做Mill Brook 1

每个SMI Link支持两个SMB芯片,每个SMB芯片支持两个DDR3内存通道,每个内存通道最多支持2个DIMM,这样一个Nehalem-EX处理器就能提供最多8个内存通道、16个DIMM、256GB的内存容量支持。Nehalem-EX特别的地方是支持16GB的单条内存,其它Nehalem处理器只能支持8GB单条内存。Westmere-EP支持单条16GB内存。Nehalem-EX支持8个内存通道,这确实和通常想象的不太一样。很多人曾以为它支持的是4个内存通道。

目前,Nehalem-EX只支持R-ECC DDR3 1066规格,这会限制其内存带宽。Intel表示其未来可以支持到R-ECC DDR3 1333规格(和通常的Nehalem-EP不同,Nehalem-EX不支持普通的不带R、ECC的内存)。


这个图的数据应该没有什么问题,除了最底部的那个

上图上,本地内存访问延迟约是108ns,距离一跳的远程内存访问延迟约是161ns,比使用DDR3 1333的Nehalem-EP/Westmere-EP要高,即使是Nehalem-EX以后达到DDR3 1333的规格下也应该差不多。这是使用了SMI和SMB的代价,作为交换,Nehalem-EX获得了增强的内存RAS特性,以及更高的带宽和更大的容量支持。


如表所示,Nehalem-EX的内存带宽只是Westmere-EP的1.15倍么?

从本页的第二幅图的数字来看,每个处理器的峰值内存带宽是约26GB/s,每个内存控制器的带宽是13GB/s(或许准确的是12.8GB/s?),理论上,8个DDR3-1066通道提供的带宽应该是66.7GB/s,理论和现实总是有一些距离,或许原因出在SMI Link上。在IDF2009给出的文档上,26GB/s这个数字被换成了50GB/s

作为Intel直联架构的一个重要部分,QPI总线在多路系统总扮演着非常重要的角色。在Nehalem-EX当中,4个QPI总线通过一个Router模块和内部环形总线以及内存控制器连接起来。实际上,CA0/CA1、HA0/HA1以及Router这三个模块都是可以直接互相通信的。

Router模块面对着8个组件:两个CA、两个HA,以及四个QPI,它是一个8端口的Crossbar交叉总线架构,任意两个组件之间可以建立直接的通信通道。这个交叉总线为全流水线设计,宽度为64bit(缓存线宽度),可以提供约120GB/s的理论交换带宽,路由延迟约为18ns。Nehalem-EX的Router模块还支持两个无死锁虚拟通道,以支持复杂的无死锁拓扑结构。


四个QPI总线,每个3.2GHz、6.4GT/s,双向带宽25.6GB/s


可能和很多人想的不一样,QPI是一个并行总线而不是一个串行总线,和HT总线一样,它可以拆分为半宽度的链接;QPI可以分为四分之一链接,这一点比HT要特别一些


4路Nehalem-EX,可以连接两个IO Hub


8路Glueless架构的Nehalem-EX,任意处理器之间最多两跳距离

 
QPI通过Node Controller,还可以支持更多路的结构

看完处理器,我们接下来看看处理器需要搭配的主板芯片组,Nehalem-EX搭配的主板芯片组代号叫做Boxboro,也可以叫做Boxboro-EX,类似于双路端的Tylersburg-EP芯片组(桌面的就叫Tylersburg):

 Nehalem-EX座驾:Boxboro芯片组

只是,由于Nehalem-EX是多路设计,因此对应的Boxboro芯片往往有多个,基本上,两个Nehalem-EX处理器就需要搭配一个Boxboro芯片,每个芯片属于一个Partition分区。当然,连接键盘鼠标的ICH芯片整个系统只能有一个:

 Nehalem-EX座驾:Boxboro芯片组
八路Nehalem-EX需要四个Boxboro芯片,不过只能使用一个ICH10R

看到Boxboro我们将会感到非常熟悉,实际上,它和Tylersburg芯片非常相似,从架构图上看起来就是一样,只是改了个标题: 

 Nehalem-EX座驾:Boxboro芯片组
Boxboro:7500芯片

 Nehalem-EX座驾:Boxboro芯片组
Tylersburg:5520芯片

它们的区别应该是在IOH的RAS特性上,这一点后面再谈。Boxboro/Tylersburg家族的IOH每个都提供了最多36 Lanes的PCI Express 2.0接口,提供充足的IO带宽(实际测试大约是14GB/s每IOH),并且还可以搭配多个IOH。其实,二路的Nehalem-EP也有一个双IOH配置,提供72 Lanes的PCI Express 2.0。南桥芯片ICH10/10R还提供了6个Lanes的PCI Express 1.01a接口,不过通常用来接显卡和KVM,用来接服务器使用的高速IO设备比较勉强。

 Nehalem-EX座驾:Boxboro芯片组
Boxboro:65nm工艺,约1亿晶体管

在前面,笔者分析了Nehalem-EX处理器内部架构相对于通常的Nehalem处理器的不同,此外,Nehalem-EX和通常的x86处理器很不同的一个地方是,它面向Mission Critical(关键任务)市场,相对于性能,这些市场上更加重要的是平台的可靠性。Nehalem-EX增加了相当多的RAS(Reliability, Availability, Serviceability:可靠性、可用性、稳定性)特性来满足关键任务计算的需求:


简单来说,RAS大约体现了系统的健壮性;Intel的安腾平台就带有很多RAS特性

传统的x86处理器难以进入关键领域的原因,就在于其RAS特性不足,可靠性不够,用户不敢在上面跑相关应用。Nehalem-EX的出现,将x86系统的可靠性带到了一个全新的水平,如图上所示,这些RAS特性非常多,大致总结如下:

 

 

Nehalem-EX RAS Features
类别 功能 特性 说明
数据保护 降低关键级别错误
全系统数据错误检测
限制错误所致影响
Parity checking and ECC
奇偶校验与ECC
 
Memory Themal Throttling
内存热量监控
防止内存过热
Memory demand & patrol scrubbing
内存按需/轮询检查
提高全系统数据可靠性
Corrupt data containment
污染数据隔离
限制错误数据造成的影响
QPI viral mode
QPI病毒模式
标记为Viral的数据包将被限制在QPI总线内而不会发送到设备上
QPI rolling CRC
QPI持续CRC校验
QPI CRC校验扩展到两个连续的包
高可用性 恢复失效数据链接
从失效部件迁移
从不可修正错误中恢复
故障预测
Intel SMI Lane Failover
SMI内存接口信道容错
 
Intel SMI Clock Failover
SMI内存接口时钟容错
 
Intel SMI & QPI Packet Retry
SMI & QPI包重发
 
QPI Clock Failover
QPI时钟容错
 
QPI Self-Healing
QPI自愈
 
SDDC plus random bit error recovery
内存SDDC纠错与任意位错误恢复
 
Memory Mirroring
内存镜像
 
Memory DIMM and Rank Sparing
内存DIMM和Rank热备
 
Dynamic CPU and memory migration
CPU/内存动态迁移
需要操作系统支持
MCA-recovery with OS support
MCA恢复
需要操作系统支持
计划宕机时间最小化 分区模块化
替换失效组件
Static System partitioning
静态系统分区
需要操作系统支持
MCA error logging (CMCI) with OS predictive failure analysis
用于操作系统失效分析预测的MCA错误记录
 
Physical Memory Board Hot Add/remove
物理内存卡热添加/热移除
 
Dynamic/OS Memory On-lining(capacity change)
动态内存在线(容量变更)
需要操作系统支持
Physical CPU Board Hot Add/remove
物理CPU卡热添加/热移除
需要操作系统支持
OS CPU on-lining(capacity change)
动态CPU在线(容量变更)
需要操作系统支持

 

 

在Intel正式宣传的文档中,提到的RAS特性就是上面22条,集中解决三个方面的问题:一是数据保护,利用CRC、ECC等硬件机制来对传输的数据进行校验、纠错,如果无法纠正,就将损坏的数据进行隔离,以保证不造成更大的数据,避免系统的重启和宕机。二是高可用性,包括各种主要部件的备、镜像和热切换等,以保证系统的高可用性。三是计划宕机时间最小化,包括系统分区管理技术、CPU和内存的热添加和热移除等,将系统维护时间降低到最小

众多RAS特性通过CPU、芯片组的配合来达,首先,硬件通过Parity/ECC/CRC等手段尽量保障运行信号传输的正确性。

 Nehalem-EX平台:可靠性的改进
Boxboro的RAS特性

在硬件无法纠正所有错误的时候错,平台通过CMCI(Corrected Machine Check Interrupts)特性向软件报告,因为即使是硬件错误,也有些是可以接受的,例如,一些定时备份结果的计算只需要从最近的某一阶段重新开始计算即可,不需要因为某个硬件错误就程序崩溃,关键是软件需要知道这个错误的详细信息以进行判断:

Nehalem-EX平台提供了一系列需要联合OS/firmware进行的错误隔离以及错误恢复:


对无法纠正的数据,使用一个Poison(毒药)标记,OS/firmware可以知道这些数据在硬件层次上无法恢复,从而可以决定进行Retry或者丢弃

这些特性形成了一个完整的MCA架构(Machine Check Architecture):


Recoverable MCA系统可以在多个椭圆、方块表示的多个状态之间切换,并不会宕机

MCA是一个原来只在IA64架构处理器上才有的功能,MCA功能可以在不关机的情况下检查和纠正处理器、内存或者IO中的错误,在OS配合的情况可以对系统进行热维护,保障系统的不间断运行。据表示,包括微软Windows Server、RedHat、SUSELinux以及VMware等平台都已经支持这一功能。


 

文章评论