目录

服务器体系(SMP/NUMA/MMP)

从系统架构来看,目前的商用服务器大体可以分为三类:

  • 对称多处理器结构(SMP:Symmetric Multi-Processor)
  • 非一致存储访问结构(NUMA:Non-Uniform Memory Access)
  • 海量并行处理结构(MPP:Massive Parallel Processing)

共享存储型多处理机有两种模型:

  • 均匀存储器存取(Uniform-Memory-Access,简称UMA)模型
  • 非均匀存储器存取(Nonuniform-Memory-Access,简称NUMA)模型

NUMA这个名词在不同的上下文中可能会涉及不同的概念,需要根据具体情况加以区分

对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。

各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)

  1. 示意图概述 1)处理器通过前端总线(Front Side Bus, FSB)连接到北桥。 2)北桥包含内存控制器(Memory Controller),当处理器需要读取或者写回数据时,就通过前端总线和内存控制器通信。 3)南桥也称为IO桥(IO bridge),负责I/O总线之间的通信,比如PCI总线、SATA、USB等,可以连接光驱、硬盘、键盘灯设备交换数据。

  2. 注意事项 1)处理器之间的所有数据通信必须经过前端总线 2)处理器访问内存、访问所有的外设,都需要通过北桥 3)处理器都共享一个内存端口,意味着同一时刻,只能够读或写 4)处理器和挂接到南桥设备的通信,需要北桥路由 5)南桥挂接的所有设备访问内存,需要通过北桥

  3. 瓶颈解析 1)为设备去访问RAM的瓶颈。解决办法是DMA,让设备直接通过北桥访问RAM,而不需要CPU的介入。如今挂到任一bus的所有高性能设备都能利用DMA。虽然DMA减少了CPU的工作量,但是争用了北桥的带宽 2)北桥到RAM的瓶颈。老的系统里只有一条通往所有RAM芯片的bus。现在的RAM类型要求有两条独立的bus,所以倍增了带宽(DDR2里称为channel)。北桥通过多个channel交替访问内存。

可以看出,这种系统的瓶颈就在北桥中。

  1. 示意图概述 1)内存控制器并没有被集成在北桥中,而是被单独隔离出来以协调北桥与某个相应的内存之间的交互。这样的话,北桥可以和多个内存相连。

  2. 瓶颈解析 1)这种架构增加了内存的访问带宽,缓解了不同设备对同一内存访问的拥塞问题,但是却没有改进单一北桥芯片的瓶颈的问题。

由于SMP在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术,NUMA就是这种努力下的结果之一

利用NUMA技术,可以把几十个CPU(甚至上百个CPU)组合在一个服务器内。