探索UCS(3)- UCS的核心技术之内存扩展

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




系列目录 探索UCS

  1. 探索UCS(1)- 什么是UCS?
  2. 探索UCS(2)- UCS的架构
  3. 探索UCS(3)- UCS的核心技术之内存扩展

UCS和其他刀片器系统相比,它为了X86虚拟化做了更多的优化,其中之一就是在它的B系列刀片服务器内提供了“内存扩展技术(Extended Memory Technology)”,通过这种技术,能够将基于Xeon 5500的刀片服务器的内存容量从144G增加到384G,从而能装载更多的虚拟机。下文将给大家介绍思科的“内存扩展技术”,但在切入之前,会首先给大家介绍一下普通的Xeon 5500的内存架构来帮助大家更好地理解什么是“内存扩展”。

Xeon 5500内存架构

在服务器端,Nehalem 被分为三种类型:EN(Entry,入门级),EP(Efficient Performance,高效率)和EX(Expandable,可扩展)。用通俗的话来说,就是EN是单路,EP是双路,EX是双路以上。因为Xeon 5500芯片属于Nehalem-EP系列,所以采用它的服务器主要为双路。

在总体架构方面,因为之前的FSB(前端总线)结构不仅极大地限制了处理器之间的信息传输带宽,还越来越成为处理器与内存信息交换的瓶颈,还在一定程度上限制了处理器向更多路扩展,所以Intel在Nehalem中引入了和AMD的直连架构非常类似的QPI总线。QPI总线,全称“QuickPath Interconnect”,它不仅在处理器之间提供一致性点对点的连接,而且在处理器和I/O之间也提供快速的通信。因为它使得多路处理器之间有专门的总线连接,而无需再通过北桥芯片中转,极大地提高了信息交换速度,提升了多路系统的效率,更重要的是,通过这种架构,将多路系统的设计更简单。Xeon 5500内嵌两条QPI总线,每条QPI总体提供25.6 Gbps的带宽。

在内存架构方面,Xeon 5500内置一个内存控制器。这个内存控制器能管理三个内存通道(Channel),而且每个内存通道能接三个DIMM,也就是一个Xeon 5500 CPU最多能插9根内存条。在双路的情况下,因为有两个内存控制器,所以能插18根内存条。如果全面使用8GB内存条,一套双路系统能插上144(8*18)GB的内存。还有,Xeon 5500使用的是相对于DDR2电压更低(1.5v)的DDR3内存条。总体而言,Xeon 5500所提供的内存带宽是其前代的3.4倍。下面是Xeon 5500的内存架构:

Xeon 5500 memory architecture

Xeon 5500的内存架构图(点击可看大图)

虽然Xeon 5500系统能插18根内存条,但从整体而言,插满这个情况不一定是最优的,为什么呢?因为如果每个内存通道插入内存越多,系统的内存运行频率就越低,比如,当每个通道最多插入一根内存条时,它的运行频率能达到1333Mhz,但当其中一个通道被插入第二根时,其总体运行频率就会降至1066Mhz,假如其中一个通道被插入第三根时,内存就只能运行在800Mhz的情况下。具体情况,请看下表:

memory speed

内存速度对照表(点击可看大图)

内存的运行频率的快慢是非常关键的,因为它不仅影响到内存的延迟,而且还影响到内存的吞吐量。在延迟方面,当内存的运行频率从1333Mhz降至800Mhz时,延迟将提高10%。在吞吐量方面,当内存的运行频率从1333Mhz降至1066Mhz时,吞吐量会下降9%,但它从1066Mhz下降至800Mhz,吞吐量将会向下坠落28%。

思科的内存扩展技术

虽然Xeon 5500 芯片每个内存通道都支持三个DIMM,但因为使用三个DIMM的后果是内存只能运行在800Mhz,所以思科屏蔽了第三个DIMM,通过一块称为“Catalina”的专用集成电路将前两个DIMM都进行扩展,使每个DIMM扩展成四个子DIMM,这样的话,每个内存通道都能支持八个DIMM,并且都运行在1066Mhz下,下面是内存扩展之后的架构:

memory extension

内存扩展之后的架构图(点击可看大图)

接下来,谈一下“Catalina”专用集成电路是怎么不牺牲内存总线速度的情况下,来增加DIMM的数量?“Catalina”是通过少量延迟数据第一个词(word)的获取,来让接下来的词能顺利的按照内存总线速度传送。

那么,这样做有什么优缺点吗?很显然,通道内本地读取延迟有少量的增加。但是这种做法能极大地扩展内存的数量,而且不需要像常见Nahelam通过使用每个通道的第三个DIMM来增加容量,因为这种扩展将使系统内存跑在缓慢和低吞吐量的800Mhz上。

 

本篇结束,因为思科和业界在这方面的公开资料太少,同时我也不是搞集成电路出身的,所以对思科的“内存扩展技术”只能很无奈地浅尝即止,无法细嚼慢咽,但如果哪位大牛很熟悉相关的技术,请赐教。下篇将继续介绍UCS的其它核心技术,幸运的是,因为其它核心技术的资料更多,而且我都比较熟悉,所以能提供更多的细节给大家,希望大家喜欢。

参考资料:

  1. Nehalem Memory with Catalina
  2. Introduction to Nehalem Memory
  3. Cisco Extended Memory Whitepaper
  4. Optimizing the Performance of IBM System x and BladeCenter Servers using Intel Xeon 5500 Series Processors
  5. Nehalem-EX将发布 X86上攻关键计算市场
(5个打分, 平均:5.00 / 5)

雁过留声

“探索UCS(3)- UCS的核心技术之内存扩展”有12个回复

  1. 楼上楼下,电灯电话 于 2010-03-31 5:38 下午

    Cisco认为memory是云计算的瓶颈,按cisco的架构,内存超过96G才比intel的有优势.按每个虚拟机用4G内存,96G可以同时跑24个,只能说intel的Cpu太强大了.

  2. Mansfield 于 2010-04-01 1:35 上午

    Intel的Nehalem-EX发布了,首席什么时候可以谈谈此款芯片,个人觉得可是具有里程碑意义的.

  3. wxh168 于 2010-04-01 5:19 上午

    memory确实是云计算的瓶颈,因为云计算的一个关键技术就是虚拟化,在一台机器上部署N个VM,而每个VM都需要部署一个OS+APP,因此内存消耗非常大。

  4. HJ 于 2010-04-01 3:05 下午

    什么时候虚拟机技术能够做到双向扩展,也就是既能一台物理机器上有N个虚拟机,也可以一个虚拟机分布在N台物理机器上。有谁能做到后者那就NB大了。

  5. 1help1 于 2010-04-01 7:18 下午

    >也可以一个虚拟机分布在N台物理机器上。有谁能做到后者那就NB大了

    http://www.scalemp.com/about

  6. 陈怀临 于 2010-04-01 7:25 下午

    我之前谈过Nehalem-EX。是的,这个芯片比较狠。

  7. ikewu83 于 2010-04-01 9:12 下午

    to HJ:
    一个虚拟机分布在N台物理机器上,应该需要对整个架构进行极大的重构。

  8. ikewu83 于 2010-04-01 9:14 下午

    to Mansfield:
    关于EX的介绍,除了首席的看法,还可以看一下这个
    http://tech.sina.com.cn/b/2010-03-31/09051298754.shtml

  9. Multithreaded 于 2010-04-01 9:30 下午

    #4, 什么是一个虚拟机分布在N台物理机器上?

  10. ikewu83 于 2010-04-01 9:46 下午

    to 陈怀临:
    首席,请问你觉得Power7在哪方面领先于Nehalem-EX?

  11. HJ 于 2010-04-02 11:23 上午

    1help1:
    ScaleMP这个公司的技术看上去不错,虽然最多好像只能把16个节点攒成一个,不过还是很NB的。可惜这个规模还是小了一点。。。

  12. sswv 于 2010-07-15 9:42 下午

    我正在听 CISCO 的 Jason Ding 讲 USC 中……