【IT168 专稿】去年初,布莱德公司首席代表陈炜在接受记者独家采访时,针对数据中心Server I/O市场有一个预测,他预计在去年的下半年,服务器I/O市场会有一个井喷式的爆发。虽然由于经济危机等原因,井喷没有爆发,但是从目前的趋势来看,服务器I/O也正在成为厂商竭力试图创新的焦点所在。
众所周知,服务器I/O主要由外部通讯I/O和内部I/O组成,而除了大规模高性能计算,我们的数据中心通常不会遇到外部I/O瓶颈问题——这倒不是数据量不够大,而是很多时候服务器内部I/O瓶颈是掣肘的关键。本文主要从内存控制、多核通讯和磁盘传输等三个主视角出发,探讨服务器I/O瓶颈与最新技术。
DDR3内存控制器移进CPU 新至强堪比大力神
服务器I/O的第一步就是处理器对内存的访问过程。由于处理器内部缓存数目受制于制程工艺和功耗/封装面积等原因,无法做的很大(至强7500已经做到了惊人的24MB)。因此在需要获取最新计算数据时,处理器会向内存控制器发出命令, 要求读取计算数据。按传统的架构,内存控制器是独立于处理器,在北桥芯片上的。于是就会出现:“CPU--北桥--内存--北桥--CPU”五个步骤来实现对数据的读取——可以看出其时间主要消耗在与北桥这个“中介”的通讯上。
左边是传统的北桥内存控制器,FSB是瓶颈;右边是QPI直连后的内存控制
而从去年的Nehalem微架构开始,英特尔将内存控制器集成在了处理器内部,CPU与内存之间的数据交换过程就简化为“CPU--内存--CPU”三个步骤,省略了两个步骤,与传统的内存控制器方案相比显然具有更低的数据延迟,这有助于提高计算机系统的整体性能。此外还有两个好处,一是CPU内部集成内存控制器可以使内存控制器同频于CPU频工作(现在CPU工作频率一般都在2G以上) 而以往的北桥内存控制器频率远大于CPU的实际工作频率,从而造成数十倍的延迟(例如2GHz主频和800MHz FSB,一个来回就延迟了4倍多)。另外,CPU集成内存控制器之后,减低了北桥的工作压力,使得更多带宽可以使用到PCI-E总线和与南桥的沟通上。
不过,整合内存控制器对于服务器系统来说,还是有一定弊端的——灵活性差,兼容并不十分好。但是英特尔最新发布的至强7500(Nehalem-EX)处理器中,这一情况被彻底扭转:Nehalem-EX集成了两个内存控制器(以前只有一个),每个内存控制器提供一个SMI(Scalable Memory Interface),它们可以运行于Lockstep模式(普通的Nehalem处理器也提供了这种模式)以提升性能和增强RAS。
SMI接口是一个串行界面,因此它需要连接到一个叫做Scalable Memory Buffer(SMB)的芯片才能联接到并行的DIMM上(久远的Pentium 4使用的RIMM则是串行的),这个芯片就和以前FBD内存上的AMB芯片一样,用来将串行界面转换为并行界面,只是在Nehalem-EX上,这个SMB可以集成在主板上而不是集成在内存条上,兼容性远非FBD架构可比。每个SMI接口支持两个SMB芯片。
由于每个SMB芯片支持两个DDR3内存通道,每个内存通道最多支持2个DIMM,这样一个Nehalem-EX处理器就能提供最多8个内存通道、16个DIMM、256GB的内存容量支持。Nehalem-EX支持8个内存通道,这确实和通常想象的不太一样。很多人曾以为它支持的是4个内存通道。这使得至强7500在内存容量支持与内存通讯带宽上达到了前所未有的超高性能,所集成的两个内存控制器就像组合在一起的变形金刚——打造出至强7500这个“大力神”。