一、核心
本文中所定义的核心为CPU、内存和芯片组三大块。PC服务器应用在各行各业,为了满足不断增长的运算需求,现代高端的PC服务器普遍采用了双/多CPU的架构(SMP),内存和芯片组也使用了特殊设计。
1、CPU-SMP
PC服务器中的双/多CPU多以SMP形式出现。SMP(对称多处理)全称是Symmetrical Multi Processing,是一种广泛应用于服务器、图形工作站等高端运算领域的并行处理技术。它使用两颗或多颗CPU同时进行工作,这种架构中,同时有多个CPU运行软件的单一复本,可提高运算效率。一些对CPU要求较高的软件中,SMP架构性能凸现,大幅度领先于单CPU架构。PC服务器普遍采用8路CPU的SMP架构,8路以上服务器大多采用大型机中的NUMA架构。
SMP技术对CPU是有要求的:首先,CPU中必须有APIC(可编程中断控制器)单元,这也是SMP技术的基本保证。CPU可以彼此发送中断信息完成信息交换,并可以相互进行协调控制。除了CPU内置的APIC单元外,主板上还要安装一个I/O APIC以处理I/O设备引起的中断。这也是支持SMP的CPU价格昂贵的原因。其次用来组建SMP架构的CPU核心必须完全相同,且频率一致,否则无法点亮系统。下图为采用Xeon CPU的典型SMP架构。我们看到,4颗CPU使用一条3.2GB/s的总线与北桥芯片连接,北桥芯片又和内存连接,所以每颗CPU分得了800MB/s的内存带宽。
| Xeon CPU的典型SMP架构(点击看大图) |
AMD的Opteron大家一定也不陌生,它也是一款服务器的CPU。由于其内部集成了内存控制器,所以每颗CPU拥有了独立的内存通道,是一种高性能的SMP架构。在IBM、HP等厂商的鼎力支持下,Opteron快速发展,并抢占了一部分Intel的市场,下图为4路Opteron的SMP架构。CPU之间用6.4GB/s的HT总线连接,每颗CPU可得到5.4GB/s的独立带宽,达到了比Xeon架构更强的I/O能力。
| 4路Opteron的SMP架构(点击看大图) |
2、内存-ECC
内存的稳定性直接影响到整机的稳定性,为了保证服务器的工作稳定,在服务器中使用的内存都要求有ECC功能。
ECC是(Error Checking and Correcting)错误检查和纠正。它同SMP一样,也是一种服务器中的内存纠错技术。ECC和奇偶校验(Parity)类似。绝大多数错误ECC可以纠正,而Parity只能检测到错误。经过ECC的纠错,计算机的操作指令才可以继续执行。
ECC内存使用额外的bit存储一个用数据加密的代码。当数据被写入内存,相应ECC的代码与此同时也被保存下来。在读取数据时,原ECC代码就会和读数据时产生的ECC代码做比较。结果相同,则被视为无错;结果不同,则两个代码被译码,继续找到出错的那一位数据。出错的数据被抛弃,内存控制器随即再写入正确的数据。这就是ECC内存的工作原理,这一过程中虽然传输速度会受到一定影响,但在“稳定压倒一切”的服务器中,ECC起到了重要作用。
ECC技术集成在内存中,要占用内存位宽。DDR内存的标准位宽是64位,加入ECC后,位宽为64+64÷8=72位。早期的SIMM内存,标准位宽是32位,加入ECC后为32+32÷8=36位。位宽的增加对内存颗粒要求更高,所以服务器的ECC内存价格不斐。
3、芯片组
相比技术含量较高的CPU等其它部件,芯片组只是为它们提供稳定的平台支持。服务器芯片组厂商中规模较大是通讯芯片制造商Broadcom旗下的子公司ServerWorks,是Intel服务器的主要芯片组供货商。ServerWorks崛起之时正逢Intel服务器芯片组业务处于青黄不接之时。当时其产品因为技术的瑕疵与支持Rambus内存技术而受创,因而Intel芯片组想打开服务器市场举步维艰。但随后Intel大力研发DDR内存芯片组抢回了一定的市场份额。为了区别于PC和Rambus内存的芯片组,Intel在服务器芯片组使用了不同的命名方式:E7XXX和E8XXX,E7XXX表示IA-32架构,E8XXX表示以Itanium为主的IA-64高端芯片组。
无论是E7还是E8,它们都抛弃了Rambus而转向双通道DDR,特别是E7500,首次在SMP架构中使用了双通道DDR,加速了DDR技术的成熟和普及。此外,一些一线主板厂商利用其强大的研发能力使875P也支持双Xeon,拓展了高端PC服务器主板的选择范围。最近,由于Intel的积极研发,使其下一代64位Xeon(Nocona)也有了合适的双路平台——E7525。
![]() |
| E7500(点击看大图) |
AMD也一样,推出了许多自家的芯片组,并且得到了其它厂商的协助。AMD8XXX,nVIDIA的nForce4和HP的F8等芯片组,都是Opteron不错的搭档。由于Opteron集成了内存控制器,所以基于Opteron的服务器芯片组性能差别不大,大多是靠功能去竞争。
至于芯片组中的SCSI控制器和PCI-X标准,在后文会详细介绍。
