对称多处理器系统-SMP

1 概念:SMP和MP

在讲SMP之前需要先了解下MP系统的概念以及其分类

SMP(Symmetric multiprocessing,对称多处理器技术)是提高系统处理能力的一种方法。单CPU同时只能处理一个线程,如果有许多线程需要执行,PU数量必然是一个瓶颈,只能通过提高CPU频率提高处理性能。MP技术(Multi-Processing,多处理技术)使用多个CPU能够协同工作,并行处理,每个CPU在执行队列中选取一个线程执行。MP系统依据资源共享方式,有多种类型:

1.1.松耦合的多处理技术

许多不同系统通过网络通信技术进行互联,通常通过软件技术实现,例如IBM的SP系统(System Parallel,并行系统)、使用群集软件HACMP的并行版(PSSP),建立起松耦合的多处理架构。不同的系统被称为节点,可以互相共享文件、存储,但并不共享CPU和内存,通过专用高速网络进行节点间通信(SP系统专用的交换网络,或者Infinity Band网络等),利用软件控制任务分发和并行处理。

1.2.紧耦合的多处理技术

多个CPU之间共享部分内存,但每个CPU都有自己的独立内存和总线结构,通过一个操作系统控制不同处理器之间协同工作,一般有一个主处理器,管理其他从处理器,如果此主处理器不能工作,则由第二候选处理器升级为主处理器。

1.3.对称多处理技术

多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的锁机制去解决资源争用问题。

pSeries采用的就是SMP结构。在AIX中,每个处理器依据其物理位置,依次标记为:proc0,proc1,…不同处理器在正常运行的时候没有区别,但是在机器启动的时候,通常由proc0控制引导过程,如果必要,也可以控制系统内核从其他的处理器引导系统。

由于SMP需要协调各个处理器之间的工作,因此当处理器数量很多,或者执行任务的并行度差(任务之间有复杂的逻辑关联)时,CPU数量增加,则系统性能提高的比例递减,也就是所谓的线性度不好。线性度与CPU设计、操作系统架构及任务类型关系密切,每个计算机厂商都有自己的一套理论来支持自己的设计体系,并没有哪一种理论可以占据绝对优势。例如Sun走的是"群殴"路线,用数量众多的CPU、内存来提高总体性能,尽管最后将近满配的时候,每个CPU所带来的性能提升非常有限。Sun服务器中动辄几十颗,甚至一百多颗CPU并行!IBM则走向另一个极端,甚至曾经建议客户不要使用12颗以上的CPU运行一个操作系统映像(当然也有人说这是因为当时IBM的最高端服务器S70只能支持12颗CPU,作者则觉得两种原因都有)。现在呢,IBM的UNIX服务器仍然是采用少而精的策略,最高端服务器也只可以配到64颗CPU(在IBM只支持最多32颗CPU的时候,HP和Sun的服务器就有可以支持到128颗的配置了,当然可能当时的操作系统并不支持这么多,需要分区后才能使用,一个分区最多64颗CPU)。IBM的一种解释是这样可以降低软件License的费用(因为现在大部分UNIX服务器软件都是按照CPU数量收费的);另一方面,IBM的POWER 5 CPU确实拥有很高的处理能力,可以以一敌二(至少现在的TPCC测试结果是这样),能够让IBM的销售代表理直气壮地任意解释。

2 SMP 

SMP是一种紧耦合、共享存储的系统模型,特点是多个CPU使用共同的系统总线,因此可访问共同的外设和存储器资源。(所有处理器通过一条高速总线或者一个转换器在同一机器中紧密耦合处理器共享同样的全局内存、磁盘和 I/0 设备。只有一份操作系统的副本跨所有处理器运行,并且操作系统必须设计为能利用这种体系结构多线程操作系统)

2.1 构建SMP 系统的条件

首先,关键的是需要支持SMP 的硬件:CPU 和主板。

要实现SMP功能,我们使用的CPU必须具备以下要求:

1、 CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。 Intel 多处理规范的核心就是高级 可编程中断控制器 (Advanced Programmable Interrupt Controllers--APICs)的使用。 CPU通过彼此发送中断来完成它们之间的通信。通过给中断附加动作(actions),不同的CPU可以在某种程度上彼此进行控制。 每个CPU有自己的APIC(成为那个CPU的本地APIC),并且还有一个I/O APIC来处理由I/O设备引起的中断,这个I/O APIC是安装在 主板 上的,但每个CPU上的APIC则不可或缺,否则将无法处理多CPU之间的中断协调。
2、相同的产品型号,同样类型的CPU核心。 例如,虽然Athlon和Pentium III各自都内置有APIC单元,想要让它们一起建立SMP系统是不可能的,当然,即使是Celeron和Pentium III,那样的可能性也为0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能建立SMP系统--这是因为他们的运行指令不完全相同,APIC中断协调差异也很大。
3、完全相同的运行频率。 如果要建立双Pentium III系统,必须两颗866MHz或者两颗1000MHz处理器,不可以用一颗866MHz,另一颗1000MHz来组建,否则系统将无法正常点亮。
4、尽可能保持相同的产品序列编号。 即使是同样核心的相同频率处理器,由于生产批次不同也会造成不可思议的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机,因此,应该尽可能选择同一批生产的处理器来组建SMP系统。
其次,需要操作系统的支持,例如LINUX UNIX WINDOWS SERVER 2003 等支持SMP 的系统。
最后,需要支持SMP的应用软件。
2.2   对称多处理 (SMP) 的应用优势
对称多处理 (SMP) 广泛应用于 PC 领域,能够显著提升台式计算机的性能。SMP 能使单芯片上多个相同的处理子系统运行相同的指令集,而且都对存储器、I/O 和外部中断具有同等的访问权限。 操作系统 (OS) 的单份拷贝就能控制所有内核,使任何处理器都能运行所有的线程,而无需考虑内核、应用或中断服务的区分。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值