EMC VMAX虚拟矩阵:RapidIO还是内存带宽?

进一步查看EMC的文档,我们注意到关于VMAX(20K)的虚拟矩阵带宽似乎有两种说法?

  上图中针对VMAX(20K)的24GB/s192GB/s这两个数字,显然与笔者刚刚列出的10GB/s和80GB/s不符,倒是和前面VMAX 40K对应的文档相比,新产品的带宽大致提升了一倍。

  尽管虚拟矩阵与RapidIO互联带宽“对不上号”,不过24GB/s似乎与VMAX(20K)引擎示意图中2个节点的内存带宽之和恰好一致,这只是个巧合吗?

  Intel Xeon 5400/5600平台内存带宽回顾

EMC VMAX虚拟矩阵:RapidIO还是内存带宽?

Intel Xeon 5400服务器/工作站平台芯片组示意图(红圈部分就是我们接下来要讨论的)

  这里首先有点意外的收获:Intel 5400 MCH北桥可以提供8个PCI-E x4 2.5Gbps连接,加上连接6321ESB ICH南桥的一个PCI-E x4,一共是36个PCIe lane。前者还可以组成4个PCI-E x8或者2个PCI-E x16,但应该只有用于连接显卡的x16插槽才支持PCI-E Gen2的5Gbps速率,否则就是PCIe 1.0的带宽。

  看来上文在EMC资料中列出的VMAX 20K是PCIe Gen1,应该就是这个原因。联想到当年的硬件平台,Intel 5400只是在5000X/P基础上的一款升级产品,并不像Xeon 5500那样有大的架构改动。

  为了进一步印证自己的判断,我们找出了当年Xeon 5400平台刚发布时撰文曾使用过的资料。首先是17-21GB/s(533-667)的内存带宽,这是在四通道全缓冲内存(Fully Buffer DIMM)的情况下。其实5400B版本还能够支持FBD DDR2 800MHz的内存频率(5400A不支持),对应内存带宽可达25.6GB/s。那么上文中VMAX(20K)引擎示意图中的12GB/s又指的是什么呢?

  在讨论内存带宽的同时,我们还要考虑前端总线(FSB),这个在Xeon 5500及之后整合内存控制器的CPU中已经不存在的概念。Intel的Xeon 5000系列芯片组(包括用于服务器的5000P、V和用于工作站的5000X)以及增强的5400采用了两条FSB的设计,而之前的SMP多处理器平台都是共享前端总线的。上图中所示的1067/ 1333MT/s和内存总线的位宽都是64bit,对应的FSB带宽为8.5GB/s和10.6GB/s。5400B最高可支持1600MHz的高端Xeon 5200/5400 CPU,FBD DDR2-800内存就是为了搭配它,此时前端总线带宽达到了12.8GB/s,也就是单个处理器访问内存的最大带宽

  最后一个数字就比较接近VMAX 20K中的每个Director 12GB/s了。可能有人觉得2颗CPU同时访问内存时的带宽会超过这一水平?从理论上说确实如此,但在实际应用中,每一个CPU分别并发访问不同内存页面地址中数据的情况有多少?或许EMC认为这个数值相对实际一些吧。

  还有一点不得不指出,VMAX 20K引擎使用的四核Xeon CPU主频为2.33GHz,如果对应Intel产品线中的L5410——支持1333MHz而不是1600MHz FSB的话,12GB/s恐怕就只是一个理想(理论)中的数字了?

  写到这里,可以说从前一张图片开始的一段话进入了技术细节的讨论。当然如果只是为了2009年发布的VMAX(20K)我们显然不会下这么大功夫,因为接下来要以此为基础来看VMAX 40K。

EMC VMAX虚拟矩阵:RapidIO还是内存带宽?

Intel Xeon 5500/5600处理器+5520芯片组(IOH)服务器平台示意简图

  需要说明的是,上图中的CPU是Xeon 5500而不是5600,笔者没有花太多功夫去找后来的资料,而是使用了手头早期的。因为Xeon 5600在5500基础上的改动相对不大,功能上主要是增加了6核,L3 Cache由8MB提升到12MB,其它方面如QPI连接速率以及芯片组主板平台都是沿用上一代的。

  Xeon 5500/5600处理器集成的三通道DDR3内存控制器,支持1333、1066和800MHz内存频率,根据每通道安装的内存数量而定。那么根据VMAX 40K每个引擎最大256GB缓存内存(单一Director控制器128GB),按今天的情况有可能是8条16GB或者16条8GB?如果按照1066MHz的频率来计算,此时每个处理器的理论内存带宽正好是25GB/s。另外一个CPU还能够通过QPI连接访问另一个CPU控制的内存,这里