为了全面的了解NUMA的优势,我们不妨先来考察一下这集中模式在处理器与存储器结构方面的区别。
SMP模式将多个处理器与一个集中的存储器相连。在SMP模式下,所有处理器都可以访问同一个系统物理存储器,这就意味着SMP系统只运行操作系统的一个拷贝。因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能。
MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。MPP体系结构对硬件开发商颇具吸引力,因为它们出现的问题比较容易解决,开发成本比较低。由于没有硬件支持共享内存或高速缓存一致性的问题,所以比较容易实现大量处理器的连接。
可见,单一SMP模式与MPP模式的关键区别在于,在SMP模式中,数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高;在MPP模式中,节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多。
在美国某大学的研究项目中被提出来的NUMA模式,也采用了分布式存储器模式,不同的是所有节点中的处理器都可以访问全部的系统物理存储器。然而,每个处理器访问本节点内的存储器所需要的时间,可能比访问某些远程节点内的存储器所花的时间要少得多。换句话说,也就是访问存储器的时间是不一致的,这也就是这种模式之所以被称为“NUMA”的原因。简而言之,NUMA既保持了SMP模式单一操作系统拷贝、简便的应用程序编程模式以及易于管理的特点,又继承了MPP模式的可扩充性,可以有效地扩充系统的规模。这也正是NUMA的优势所在。
Sequent公司是世界公认的NUMA技术领袖。早在1986年,Sequent公司率先利用微处理器作为创建大型系统的构建,开发了基于Unix的SMP体系结构,开创了业界转入SMP领域的先河。1999年9月,IBM公司收购了Sequent公司,将NUMA技术集成到IBMUnix阵营中,并推出了能够支持和扩展Intel平台的NUMA-Q系统及解决方案,为全球大型企业客户适应高速发展的电子商务市场提供了更加多样化、高可扩展性及易于管理的选择,成为NUMA技术的领先开发者与革新者。
此后,IBM还推出了名为NUMACenter的多层次系统,集成了Unix和WindowsNT系统优势,为WindowsNT应用程序提供了预集成的环境,允许客户在高可扩充性和高可用性的Unix数据层中,自由使用WindowsNT应用程序,有效的实现了Unix和WindowsNT的互操作。
NUMA-Q结构的基本构成是Intel的4个处理器组建块(Quad)设计,NUMA-Q实现的2项关键技术是Quad设计和IQ-Link互连设备。NUMA-QQuad由4个处理器、一定数量的内存和7个位于PCI通道的PCI插槽组成。NUMA-Q体系结构利用Quad实现了CC-NUMA结构,大规模扩展并保留了SMP编程模式,并可提供容错光纤通道I/O子系统,是SMP应用程序能运行于其上。NUMA-Q能在单一节点上支持高达256个处理器。IQ-Link互联设备是NUMA-QQuad总线间的互联设备,这种互联设备的一致性严格以硬件实现,不需要用软件维护。IQ-Link互联设备允许使用多个低延迟总线,具备低延迟和吞吐量高的特点,提供了很强的系统可扩充性和整体性能。
可见,这种体系结构的优势在于:首先,NUMA的突破性技术彻底摆脱了传统的超大总线对多处理结构的束缚。它大大增强单一操作系统可管理的处理器、内存和I/O插槽。
其次,NUMA设计的重点是让处理器快速的访问在同一单元的内存,NUMA-Q处理器访问同一单元上的内存的速度比一般SMP模式超出一倍。并且,NUMA-Q操作系统充分利用处理器缓存,能达到极高的寻址命中率。SMP模式虽然比NUMA简单,但是,所有的处理器访问内存的时间是一致且缓慢的。同时,基于SMP的总线存着在一个物理极限,令系统的扩充性逐步降低。此外,在基于SMP体系结构的大型系统中,平衡的增加处理器、I/O和内存变得更加困难。
此外,NUMA系统提供内存互连的硬件系统,这种技术可以开发新型动态的分区系统。系统分区的好处在于允许系统管理员在同一计算机内运行多个操作系统(如Unix和WindowsNT),并根据用户工作负荷的要求,在不同的操作系统环境间,简单的管理和使用CPU和内存资源,从而实现最佳的性能和最高的资源利用率。
NUMA-Q现已成为IBM互联网服务器部门的支柱产品,加强了IBM服务器在电子商务领域的竞争力。不难看出,NUMA-Q的目标市场是那些解决“关键事务性”(Mission-Critical)的商业数据中心。这些商业数据中心的计算机系统具有一些共同的特征,如具有高可用性、高可靠性、能够适应与日俱增的性能需求的高可扩充性的特点。NUMA-Q体系结构可以帮助联机事务处理、决策支持系统和企业信息通讯系统设计人员创建这种大规模的“关键事务性”解决方案。
因此,NUMA-Q广泛的适用于具有大量I/O计算、商业智能、客户关系管理、企业资源规划的环境。它给企业提供利用同一组部件创建多种体系结构的灵活性,以及适用于多种解决方案的高可用性和高可管理性的工具集,同时可以支持多用户和更大的吞吐量,减少客户故障停机时间,提升了I/O功能,实现更大的联机存储与备份能力,并具有很强的扩展性,可以最大程度地保护客户的投资。
目前,包括美国Nasdaq证券自动报价系统,波音飞机制造公司、福特汽车公司等在内的诸多国际著名企业都选用了IBMNUMA-Q体系结构的服务器,全球最大的Internet儿童产品零售商eToys依靠NUMA-Q成功地实现了电子商务。国内已有很多大型企业,包括中国银行、中国建设银行、邮政储蓄管理局、北京西单商场股份有限公司及国务院办公厅等等部门,采用IBMNUMA-Q建立了自己的系统环境。
业界许多服务器产品供应商,如Sun、HP、Compaq、Unisys、SGI和DataGeneral等厂商的硬件结构也将向NUMA结构转移,很多厂商正在计划或正在研制基于NUMA体系结构的计算机系统。IBM也将推出更有竞争力的第4代NUMA-Q体系结构,迎接NUMA对复杂设计、多路I/O提出的挑战。
高速缓存相关的非一致性内存访问(CacheCoherentNon-UniformMemoryAccess,CC-NUMA)是NUMA的一种类型。在CC-NUMA系统中,分布式内存相连接形成单一内存,内存之间没有页面复制或数据复制,也没有软件消息传送。CC-NUMA只有一个内存映象,存储部件利用铜缆和某些智能硬件进行物理连接。CacheCoherent是指不需要软件来保持多个数据拷贝的一致性,也不需要软件来实现操作系统与应用系统的数据传输。如同在SMP模式中一样,单一操作系统和多个处理器完全在硬件级实现管理。
高速缓存唯一的内存体系结构(Cache-OnlyMemoryArchitecture,COMA)是CC-NUMA体系结构的竞争者,两者拥有相同的目标,但实现方式不同。COMA节点不对内存部件进行分布,也不通过互连设备使整个系统保持一致性。COMA节点没有内存,只在每个Quad中配置大容量的高速缓存。