
| 出版日期:2002-10-14 总期号:488-489 本年期号:38-39 |
|
长话短说SMP
《中国电脑教育报》双木 您听说过SMP吗?SMP就是Symmetric Multiprocessing(对称多处理)的缩写。SMP技术相当复杂,这里我们尽可能地长话短说把它讲明白。 什么是SMP 随着服务器应用水平的提高,单个处理器很难满足实际的应用需求,因而服务器厂商纷纷采用对称多处理(SMP)系统来解决这一矛盾。SMP是专门用于服务器和高档工作站的技术术语,在高性能服务器和工作站的主板架构中比较常见。对称多处理指的是系统中的多个CPU对称地访问系统的所有硬件资源,比如内存、I/O总线和中断等。 SMP系统中最关键的技术是如何更好地解决多个处理器的相互通讯和协调问题。虽然系统同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机—样。系统将任务队列对称地分布于多个CPU之上,从而大大地提高了整个系统的数据处理能力。 谁能提供SMP技术 目前Unix服务器可支持最多64颗CPU的系统,如Sun公司的Enterprise l0000服务器。IA架构服务器中最常见的对称多处理系统采用两路、4路或8路CPU,目前只有Intel Xeon(至强)系列CPU才支持大于两路的SMP。已经是明日黄花的Intel Pentium Ⅱ和Pentium Ⅲ只支持两路SMP,Intel Xeon支持8路SMP。而AMD的CPU仅支持两路SMP。 实现SMP的条件 构建一套SMP系统的必要条件是:支持SMP的硬件,包括主板和CPU;支持SMP的系统平台,如Windows NT/2000 Server、Linux以及其他Unix等32位操作系统;还需要有支持SMP的应用软件,才能发挥SMP的威力。 一、要有支持SMP的CPU 要组建一个SMP系统,最关键的就是需要合适的CPU相配合。支持SMP是有许多必要条件的,不可能随便拿几颗CPU就凑成SMP系统。支持SMP的CPU必须满足以下几个条件。 1、CPU必须内置APIC单元 Intel多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers,缩写为APIC)。CPU通过彼此发送中断来完成它们之间的通信,通过给中断附加动作,不同的CPU可以在某种程度上彼此进行控制。每个支持SMP的CPU都必须有自己的APIC,否则将无法处理多CPU之间的中断协调。 2、CPU的型号必须相同 SMP的CPU必须具有相同的产品型号和同样类型的CPU核心。虽然AMD Athlon XP和Intel Pentium 4各自都内置有APIC单元,想要让它们一起建立SMP系统是不可能的,因为它们的运行指令不完全相同,APIC的中断协调差异也很大。即使是Intel Celeron和Intel Pentium 4也不能一起建立SMP,甚至即使是相同核心但是产品批号不同的CPU,也可能会影响SMP的建立。 3、运行频率要相同 SMP的CPU需要运行在完全相同的运行频率上。例如要建立双Pentium 4系统,必须使用两颗频率相同的Pentium 4 CPU,比如都是2GHz,而不能是一颗1.8GHz,另一颗2GHz,否则系统将无法正常使用。 4、尽可能使用相同产品序列号的CPU 即使是同样核心的相同频率处理器,由于生产批次不同也会造成意想不到的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机,因此,应该尽可能选择同一批生产(即具有相同产品序列号)的CPU来组建SMP系统。 二、要有支持SMP的主板 主板是实现SMP诸多因素中仅次于CPU的因素。首先主板要支持SMP,否则这么多的CPU插在哪儿呢?有的SMP主板支持两颗CPU,有的能够支持4颗CPU,还有的主板支持更多的CPU,但是支持SMP的主板的CPU插槽数量必须是偶数。 SMP主板并非只是增加几个CPU插槽,其中涉及非常复杂的多处理技术。SMP主板也需要I/O APIC来处理由I/O设备引起的中断。 三、要有支持SMP的操作系统 有了支持SMP的CPU和主板,并不等于万事大吉了。如果没有多处理器操作系统的支持,即使安装了多颗CPU和相应的主板,系统性能会跟装有1颗CPU的系统没有什么差别,原因就在于因为没有操作系统的支持。现在服务器操作系统一般都支持多CPU,比如Windows NT/2000 Server、Linux以及其他Unix等32位服务器操作系统,而Windows 9x/Me等用于PC的操作系统是不支持多处理的。 四、要有支持SMP的应用软件 即使有了CPU、主板、操作系统的支持,但是如果没有针对SMP优化了的应用程序的支持,如PhotoShop、3D Studio MAX和AutoCAD等,SMP也不能自由发挥。只有针对SMP优化了的应用系统才能在SMP系统上大展身手,SMP可以显著提高经过优化了的应用软件的多任务和多线程性能。 说了这么些,您对SMP有了一定的了解了吧?在以上的讲解中,我们忽略了相当多的技术细节,因为对于一般读者来说,没有必要知道这些技术细节,了解SMP的一般原理和如何实现就足够了! |
|||||||||||||||||||||||