1.什么是MBB结构
MBB的全称是Modular Building Block,每个BB(Building Block)可包含4路CPU,若干内存和I/O卡。在Sun服务器上称BB为board;在HP服务器上称BB为cell;在原先的Compaq服务器上称BB为quad。不同BB内的CPU可以有不同的时钟频率。所有的BB通过一种称为crossbar switch的交换机制连接在一起。crossbar switch可以提供BB之间的点对点的高速连接。
采用MBB技术可以比较容易的设计出拥有更多数量CPU的服务器。在这种服务器上既可以运行一个操作系统,也可以在一个或多个BB上运行多个操作系统。这就是所谓的服务器(基于物理分区)的逻辑分区。
MBB 技术从出现到现在已经超过十年了,最早是由Sequent (NumaQ)公司在八十年代末到九十年代初时发明并采用的。Cray公司在九十年代初时在它的Cray 6400上采用了MBB技术,该机型是Sun E10000的前身;Compaq公司在2000年一季度发布了它的基于MBB技术的机型Wildfire (GS320);HP公司发布了业界最后一款基于MBB技术的机型Superdome,那是在2000年三季度。Sun公司在2001年三季度发布的 Starfire (F15K)在体系结构上并无变化,只是将原来E10000上的CPU换成了SPARC3而已。
2.MBB结构的优点
基于MBB技术的服务器是由多个BB构成的,所以它天生具有物理分区(Physical Partition)的特性。前面提到在MBB服务器上存在一个连接BB的互连机制(crossbar switch),它工作在一个固定的时钟频率上。
例如,在Sunfire服务器上的Uniboard机制就是完成这种互连功能的。其总线时钟是150MHz,不管CPU的主频是多少(600,750, 900,1050MHz),它是固定不变的。所带来的问题是数据/指令被传送出去的等待时间过长。这是典型的高CPU时钟频率和低总线速度的矛盾。
所有的MBB结构的服务器都具有一个"显著"的优势:可以热插拔CPU板和内存板。这是因为每一个BB是物理分开的,每个4路CPU板可以单独从系统中隔离出来并将其下电。但有一点需要注意:在一个运行的系统中,从一个BB中拔出CPU、内存或I/O板是有限制的,这基于每个机型的设计不同而不同。例如,Sun 6800服务器就有一个警告标签,其注明每个Uniboard槽在系统运行时空槽位的时间不能超过60秒(而且电源、温度等环境因素必须控制在一定的范围内)。由此推断,F12K/F15K可能时间会更短。
3. MBB结构的缺陷
HP公司当初发布Superdome 服务器时,曾公布了它与HP其它UNIX服务器的相对性能值。64路CPU的Superdome(MBB结构)的相对性能值是20,8路N4000(共享结构)的相对性能值是6.3。我们可以看到,8倍数量的CPU换来的只是3倍性能的提升。
造成这种现象的根本原因就在MBB结构上。 Superdome上的每个cell(BB)里的CPU、内存或I/O卡可能需要访问其它cell里的数据。crossbar switch在cell之间建立点对点的连接,但同时带来延迟(latency)。即如果一个连接请求建立不成功时,则会再试一次直到建立连接成功,而此时其它的连接请求将会等待。在实际环境中,很多客户通过建立物理分区(每个分区中最多12到16个CPU)的方法来尽量减少这种延迟的影响。这种做法将原来CPU个数较多的机器分成了若干个有较少CPU个数的机器,当然也就不是原来宣称的服务器的扩展性了(例如具有64路CPU的服务器)。
Sun和Compaq公司的具有MBB结构的服务器里都有类似的crossbar switch结构,当然都存在相同的数据访问延迟的缺陷:点对点的连接必须建立,同时这种连接的建立是竞争的。
Sun 公司宣称其服务器的扩展性是线性的,即服务器的性能随着CPU个数的增加呈线性增长。它是用SPECintRate和SPECjbb2000这两个基准测试值来证明的。我们需要指出的是:这两种测试方法只是基于CPU本身,并没有共享数据的访问和网络及硬盘I/O的发生。很显然,这与实际情况是不相符的。
我们谈服务器的性能是整体的去看。有很多可以整体评价服务器性能的基准测试,例如:TPC/C、Oracle ASB11i、Peoplesoft、SAP、Baan、JDEdwards等。这些测试方法都具有数据库访问、模拟客户的实际应用和很大的I/O访问量等特点。
4. 以POWER4为芯片的IBM UNIX服务器的设计
IBM UNIX(p系列)服务器的设计思想是共享式的,即所有CPU可以同等的看到所有的内存和I/O的连接方式:一种全新的为数据/指令流提供足够的高速通路的体系结构。
p 系列服务器CPU数量的增加是一个成比例渐进的过程。目前p690上的最大CPU个数是32路。从p690"以少胜多"的实例来看,服务器CPU数量的多少并不真正代表其处理能力的高低。P690(32路CPU)胜过Superdome(64路CPU)就是一个有力的证明。
POWER4和以POWER4为芯片的服务器在设计上有两个重要点:
? 消除对数据传送的约束
? 数据传送能力是随着CPU性能的增长而增长
下面将比较详细的做一介绍:
(1) 在POWER4芯片上设计了较大的缓冲区。一个POWER4芯片(chip)上有两个核心处理器,每个核心处理器有一个L1缓冲器(32KB数据和 64KB指令),并且每个芯片上有一个共享的L2缓冲器(1.5MB)。这个L2缓冲器的时钟频率是核心处理器的一半。每个 L2缓冲器有三个32字节宽的总线与两个核心处理器相连,用于向两个核心处理器传送指令和数据。另外还有三条8字节宽的总线用于从两个核心处理器回传数据给L2缓冲器。POWER4创造了第一个消除了控制信号和数据传送冲突的CPU结构。
POWER4处理器有一个L3缓冲器控制器,它是与32MB大小的L3缓冲器的接口。在业界有一种说法:任何I/O都是不好的,即CPU运行时所需的数据不在内存里,需要从外设中读入。最理想的状态是处理器运行时所需要的指令/数据全都满足,其次是指令/数据在L1缓冲器中,再其次是在L2缓冲器中,再其次是在L3缓冲器中,最差的情况是在内存里。p 系列服务器上的缓冲区总数量是Sun服务器的四倍,是HP服务器的十五倍。 (2) 在POWER4的设计中存在一个称作分布式交换器(distributed switch)的连接机制。它提供在一个MCM(Multi-Chip Module)上的处理器之间的点对点的连接,也用于在不同的MCM上的处理器之间的点对点的连接。这个分布式交换器的时钟频率是CPU的时钟频率的一半。例如,如果是1.3GHz POWER4的处理器,则分布式交换器提供16字节宽、时钟是650MHz的点对点总线连接。
IBM目前提供给UNIX市场的服务器,真正实现了CPU处理能力和服务器处理能力的线性增长。
5. 关于IBM UNIX服务器上的一些"限制"
IBM 在其UNIX服务器(p系列)的设计上没有采用MBB的设计结构,所以在p系列机器上不支持物理分区。IBM沿用了大主机S390上的逻辑分区(LPAR)设计思想,即设计一个hypervisor(系统管理程序),它能看到所有的真实资源(CPU、内存和I/O卡),并且通过一个控制台(HMC)来管理逻辑分区。通过HMC将上述提到的资源定义到不同的逻辑分区中去,每个逻辑分区所需的最小资源是一个CPU、1GB内存和一个PCI插槽。
IBM没用象其它厂商那样采用crossbar switch技术做CPU之间的连接。在p系列服务器上所有的CPU能够看到所有的内存和I/O资源,它不允许不同主频的CPU共存在同一台机器内。而 MBB结构的服务器则允许这样做,其代价就是crossbar switch工作在相同的带宽上(MBB之间的连接带宽恒定),所以高主频CPU带来的服务器整体性能提升是有限的。
在p系列服务器上,如果升级CPU则必须更换整个CPU板,其优点是CPU主频和系统总线带宽同时得到提升,保证更高主频的CPU带来更高的服务器性能。
由于没有采用MBB的设计结构,所以在p系列服务器上不支持热插拔CPU板和内存板。"热插拔"这个设计思想的目的是为了方便系统维护,即更换服务器失效部件时不需停机,以减少计划内停机时间、提高系统的可用性(availability)。
关于系统可用性方面,IBM的设计思想是:在关键性部件(如CPU,内存等)出现硬件故障时,系统能自动隔离失效部件并且继续运行。主要包括如下三个方面的内容:
?选用高质量的材料,制造高质量的部件,提供更高的可靠性。
?IBM 发明的自诊断技术FFDC(First Failure Data Capture)能够做到早发现故障(例如在p690上就设计有5600多个观察点),并能自动隔离失效部件。目前在p系列服务器上能做到自动隔离失效的 CPU、L2/L3缓冲器、PCI总线、PCI卡和LPAR(逻辑分区)等,使系统能够继续运行。
?客户在计划内的停机维护时间里,可以很快的修复失效部件。据研究表明计划内的停机是有代价的(对客户来讲有些损失),但非计划内停机所带来的损失则是几何级数量的。采用MBB结构服务器的厂商声称热插拔CPU/内存的功能可减少计划内的停机时间,但其服务器有限的自诊断和自隔离功能将增加非计划内的停机时间。
6. 结束语
IBM是唯一一家在高端服务器行业有能力自己设计、研发和制造的厂家。IBM设计和制造CPU的成就是非凡的。从我们目前所熟知的铜芯片、绝缘硅技术,到后继的low-K dielectric和silicon strainin等新技术已一一被发明出来。 IBM在服务器的设计、软件的设计和存储器方面的成就也是令人瞩目的。从大型主机上继承下来的丰富的多机系统设计、中央数据处理、高可靠(RAS)设计等经验已经迁移到UNIX服务器的设计和实践中。