中国CompactPCI/PXI技术发展与应用
中国CompactPCI/PXI技术发展与应用
1 前言
从1998年中国计算机行业协会PICMG/PRC成立,并将CompactPCI/PXI总线技术引入到国内以来,短短的6年时间,中国CompactPCI/PXI技术取得了令人瞩目的成绩,研制和推广应用单位发展到数十家,应用普及程度不断提高,应用面不断扩大。作为一种能够满足不同行业需要的高性能、高可靠、高可用以及经济型工业计算机技术,CompactPCI/PXI正在越来越广泛地被电信(Telecommunications)、数据通信(Data Communications)、计算机电话集成系统(Computer Telephony Integration)、工业自动化(Industrial Automation)、监控和数采系统(SCADA)、测试和测量自动化(Test & Measurement Automation)、网络互连(Networking Connectivity)、航空航天(Avionics & Aerospace)以及军工和国防(Military & Defenses)等领域所关注和采用,成为了我国电子信息产业发展的新亮点。
形势喜人,但来之不易。几年前,即使在2002年,中国计算机行业协会PICMG/PRC在全国范围内进行CompactPCI/PXI技术宣传、普及、培训过程中,人们大多还只是出于对新技术的捕捉、跟踪、了解、好奇甚至疑虑来参加研讨会的,但随之便被新技术的特殊魅力所强烈感染。到了2003年,今天可以告诉大家,CompactPCI/PXI技术在中国已经开始大范围生根、开花、结果,越来越多的企业已经或者开始基于CompactPCI/PXI平台研制新产品、改造老产品、承接或实施应用项目,开始品尝到了新技术所带来的丰硕成果。
然而,随着技术的不断发展,以CompactPCI总线为代表的新一代工控机技术引起了业界越来越强烈的关注,迫切需要得到诸如“CompactPCI的关键技术以及未来发展方向是什么?CompactPCI、PICMG 2.16、AdvancedTCA之间的关系?它们产生的出发点和应用范围有什么不同?该如何进行选择?”等问题的答案,行业协会也有义务提供准确的答案。
2 CompactPCI总线技术走向成熟和完善
2.1 CompactPCI总线核心技术
为了满足日益提高的处理器速度对海量数据的快速传输和快速处理的要求,1992年,Intel公司定义了PCI总线作为局部总线,直接用于互连CPU与周边器件,如与显示控制器、网络控制器、内存控制器等互连。为了研制和管理PCI标准,成立了PCI总线特别兴趣组织(PCISIG),并先后推出了PCI Local Bus Specification Rev. 2.1、Rev. 2.2以及最新版本Rev. 2.3,PCI总线也由芯片级互连总线发展成了板级互连总线。PCI总线的32位/33MHz标准具有132MB/Second数据传输速度,其64位/66MHz的标准可以达到528MB/Second,所以,相对ISA或VME总线每秒几MB或几十MB的传输速度而言,PCI是高速总线。为了将PCI总线应用于嵌入式领域,1994年成立了PCI工业计算机制造商协会(PICMG),主要动机就是为嵌入式计算机(如工业计算机,医疗设备,通信设备,交通设备以及军事系统等)研制通用技术标准。现在PICMG在全球有三个分会,分别为PICMG China(即PICMG/PRC)、 PICMG Europe和 PICMG Japan。
1997年8月,PICMG发布了第一个CompactPCI技术标准PICMG 2.0 Rev. 1.0,CompactPCI Specification。1997年9月发布了PICMG 2.0 Rev. 2.1。1999年10月发布了PICMG 2.0 Revision 3.0。PICMG 2.0 R3.0是CompactPCI总线的核心标准,也是CompactPCI技术的精髓。它由三项领先技术综合而成:
² PCI局部总线的电气特性(PCI Local Bus Specification, PCISIG)。
² 工业级欧洲卡封装结构和规格(IEC 60297-3 and –4, Eurocard Specification; IEEE 1101.11, IEEE Standard for Additional Mechanical Specifications for Microcomputers Using IEEE 1101.1 Equipment Practice)。
² IEC
PICMG 2.0 Revision 3.0规定了背板上各插槽之间,系统槽与背板,I/O模板与背板之间严格的互连关系;定义了背板、模板和前后面板的结构和尺寸;定义P1支持32位PCI操作,P1和P2支持64位PCI操作,P3、P4和P5留给用户使用或作为总线扩展用。规范还为33MHz和66MHz工作频率的Clock信号分布,定义了严格的设计规则。规范还定义了系统管理总线,并为背板上每个插槽定义了唯一对应的物理地址。CompactPCI系统由金属外壳和前、后面板组成的整体导电以及ESD电路设计,使得CompactPCI具有电磁辐射屏蔽和静电释放能力,表现出良好的电磁兼容性。
2.2 CompactPCI总线热插拔技术
可维护性是嵌入式计算机非常重要的特性。此外,面向特定应用的系统(如电信设备、电力保护设备、车载控制系统和军事系统等)还需要热插拔(Hot Swapping)功能和容错(Fault Tolerance)设计。
CompactPCI(以下简称CPCI)技术规范使得流行的PCI总线兼容架构可以用欧洲卡规格实现。这种模块化的CPCI模板可以灵活组合成适合各种不同工业现场应用的系统。为了提高CPCI系统的可维护性,需要在CPCI产品上增加热插拔功能,使得CPCI模板可以在不需要关断电源情况下,插入或拔出正在运行的系统,而不影响或破坏系统的正常工作,从而为高可用性(High Availability)设计奠定基础。为此PICMG成立了热插拔工作组,并于1998年8月发布了热插拔标准PICMG 2.1 R1.0, CompactPCI Hot Swap Specification。随后于2001年1月推出了修订版本PICMG 2.1 R2.0。2002年5月发布了热插拔基础软件规范PICMG 2.12 R2.0,Hot Swap Infrastructure Interface Specification。
PICMG 2.1 R2.0标准定义了三种不同的热插拔模型:
² 基本热插拔模型。基本模型也允许在系统运行过程中拔出或插入CPCI模板,但必须由训练有素的操作员通过人机接口向操作系统发出控制命令才能实现,软件连接不能自动进行。
² 完全热插拔模型。完全模式下的软件连接是自动完成的,不需要人的干预。完全热插拔模型应该是经济型工业计算机主要发展的目标。
² 高可用性模型。高可用性要求系统始终处于运行状态,几乎没有故障。
为了控制拔出或插入模板的电气和软件连接过程,CPCI的连接器插针采用长、中、短三层结构。长针为模板提供预充电电源,中针连接工作电源和CPCI信号,短针为BD_SEL#和IDSEL#信号,用于启动板上电源控制并通知该系统模板所处的状态。标准规定CPCI 热插拔控制电路要设计在模板上,而不是在无源背板上,以缩短更换故障部件的时间。这导致了相同功能的CPCI模板将以两种形式存在,一种是普通模板,一种是支持热插拔的模板。实践证明,CPCI热插拔设计75%的工作量是软件设计,而硬件设计只占25%。
为了支持Hot Swap, PICMG 2.1 R2.0定义了三种独立于硬件的硬件抽象层接口:Hot Swap System Driver、Hot Swap Service和High Availability Service,但对程序具体如何编制并没有明确规定。值得注意的是,2003年初在美国拉斯维加斯举行的摩托罗拉计算机事业部(MCG)年会上,很多著名软件操作系统公司都展示了支持CPCI热插拔标准的产品,如Lynx的LynxOS、Microware的OS-9、Enea的OSE、Wind River的VxWorks、Integrated Systems的pSOS等。当然,最引人注目的要数GoAhead的SelfReliant和 Jungo的Go-HotSwap软件,因为它们是独立于操作系统的。虽然如此,由于缺少Windows通用操作系统的支持,在一定程度上延缓了CPCI热插拔技术的推广速度。随着微软支持“热插拔”的嵌入式Windows XP操作系统的推出,相信解决这个问题的日子不远了。
2.3 CompactPCI总线的冗余设计、故障切换和故障管理
高可用性技术的目标就是通过硬件和软件设计,使系统的宕机时间(Downtime)为最小。今天,大多数电信设备供应商都将高可用性作为一个主要的技术指标。电信设备要求系统每年的连续运行时间为99.999%,即每年宕机时间不超过5分15秒钟。根据可用性的计算公式 Availability = MTBF / ( MTBF + MTTR ),给出下表。
系统可用性示意表
9's
|
Availability
|
Downtime/Year
|
Examples
|
1
|
90.0%
|
36 days 12 hours
|
Personal clients
|
2
|
99.0%
|
87 hours 36 minutes
|
Entry-level businesses
|
3
|
99.9%
|
8 hours 46 minutes
|
ISPs, mainstream businesses
|
4
|
99.99%
|
52 minutes 33 seconds
|
Data centers
|
5
|
99.999%
|
5 minutes 15 seconds
|
Carrier-grade Telco, medical, banking
|
6
|
99.9999%
|
31.5 seconds
|
Military defense system, CG goal
|
从技术的角度来看,PICMG发布的热插拔规范只是“预警”机制,也就是当系统出现故障时,通过一种方式通知操作员按照规定的程序,在不关机的条件下更换故障模板,使系统继续运行。当然,在一定时间内,故障模板上的功能是不能工作的。但高可用性系统必须具有故障自动检测、诊断和排除故障能力,保证系统所有功能都正常连续运行。这就需要冗余设计(Redundancy)、自动故障切换(Failover)以及进行故障管理(Fault Management)。
冗余设计的目的是为了消除单点故障(Single Point of Failure)。单点故障是指“由于系统中一个部件出现故障而将导致整个系统大部分失效或完全失效的故障”。这是高可用性系统所不允许的。冗余设计分为系统槽冗余、I/O冗余和整机冗余。
系统槽冗余(Redundancy of System Slot, RSS),也称为CPU板冗余。在传统CPCI系统中,CPU板冗余主要有两种方式,即主/主方式(Active/Active)和主/备方式(Active/Standby)。在主/主方式中,将系统分成2个独立的段(Segment),每段一般6个插槽。每个CPU板管理一个段,两个CPU同时工作。当一个CPU板出现故障时,这个CPU板被隔离,由另一个CPU接管控制权来同时管理2个段,维持系统的正常运转。在主/备方式(Active/Standby)中,在某一时间段,系统只有一个CPU工作。当一个CPU出现故障时,系统马上切换到备份CPU板,由备份CPU板接管系统的控制权,故障CPU板被迅速隔离。备份CPU板是处于“热备份”状态,还是处于“冷备份”状态,需视具体情况而定。当然,冗余设计和多主系统设计是不能等同起来的,多主系统可以实现负载均衡,但CPCI的冗余设计一般还不能。在CPCI系统中,CPU板与段之间的连接和故障切换需要通过PCI-to-PCI桥或Switched PCI Fabric实现。
I/O冗余(Peripheral Redundancy)。I/O模板的热插拔功能可以缩短系统的MTTR,但却不能防止系统出现宕机。为此,需要设计I/O冗余。I/O冗余一般采用主/备机制,当主工作不正常时,在没有人干预的情况下,自动切换到备份,由备份I/O板作为主I/O板,接替原主I/O板的工作。然后通知系统维护人员,更换故障I/O,将系统恢复到冗余状态。
故障管理。为了将系统的宕机时间降到最短,系统还必须有完善的故障管理机制。故障管理一般分为5个阶段或过程:
² 故障检测(Detection);
² 故障诊断与定位(Diagnosis & Location);
² 故障隔离(Isolation);
² 故障切换(Failover);
² 故障排除(Repair or Replacing)。
当然,系统的高可用性硬件设计也只能保证硬件系统连续工作,但不能保证系统连续可用,还需要高可用性系统管理软件的支持。高可用性系统管理软件一般分三个层次:底层硬件驱动程序,由硬件供应商提供;中间层是软件中间件(middleware),对系统工作状态进行检测、实现硬件资源管理与切换,一般由第三方提供;最上层是系统应用管理软件,对整个系统进行管理,保证信息的正常流通和信息的完整性,一般由系统设备制造商针对特定应用自行研制。
需要指出的是,多处理器技术(Multi-Processors, MPS)也是冗余设计中经常采用的技术之一,一般分为对称多处理器(Symmetric Multi-Processor, SMP)系统以及非对称多处理器(Asymmetric Multi-Processor, AMP)系统两种。冗余设计也可以采用系统级冗余设计,如双机冗余和三模冗余(Triple Modular Redundancy, TMR)等。
2.4 CompactPCI总线的电源冗余和风扇冗余
为了给CPCI系统提供一种可靠的、方便维护的供电方式,1999年,国际CompactPCI协会发布了电源接口标准PICMG 2.11 R1.0 CompactPCI Power Interface Specification。R1.0为CPCI系统定义了可拔插的、模块化的电源电气和机械接口,以及对CPCI平台系统和电源管理最少的接口要求,为CPCI热插拔和HA系统提供1+1冗余、N+1冗余和N+N冗余电源设计提供了标准依据。冗余电源的设计的核心是均流(Current Sharing)或负载均衡(Load Balancing)设计、故障切换和热插拔。
为了给CPCI系统提供稳定可靠的制冷能力,高可用性CPCI系统要求风扇冗余设计。风扇冗余一般采用N+M方式(如N=2,M=4)和Active/Active机制工作,并可以热插拔更换。任何一组都要有为系统提供足够制冷的能力。
2.5 CompactPCI完善的系统管理架构
2000年2月,PICMG发布了具有重要意义的系统管理标准PICMG 2.9 R1.0,CompactPCI System Management Specification。标准为CPCI系统定义了基于IPMI接口规范的IPMB总线及其管理总线网络。互为备份的两个专用的系统管理控制器模板(独立于主CPU),实时采集和查询系统所有部件的事件日志(Event Log),向系统管理员报告引起系统服务中断的异常事件,以便及时采取预防措施,防止系统崩溃。系统所有部件(包括CPU模板、I/O模板、包交换模板、无源背板、故障切换电路、机箱、电源、冗余磁盘阵列、风扇、网络以及环境条件等)的监视和管理都统一由管理软件和系统管理控制器通过IPMI接口和IPMB网络实现。
2.6 脱颖而出的CompactPCI交换式以太网背板技术
CPCI总线最初只是单一的总线标准。但当1997年PICMG将H.110 Telephony Bus增加到CPCI背板上时,激发了人们的创新灵感,去探索“将行业专业总线移植到CPCI背板上,使单一的PCI数据传输总线演变成控制总线”的可能。事实上,这一方面反映了“主流电信设备供应商希望用CPCI架构满足一些高端应用的要求”,另一方面也说明人们已经开始寻求打破CPCI总线插槽数量限制和高速数据传输瓶颈的手段。为此,PICMG协会成立了由Performance Technologies牵头、50多家公司参加的PICMG 2.16工作组,目标就是将交换式以太网机制(Switched Ethernet Fabric)增加到CPCI架构中。经过几年卓有成效的工作,PICMG于2001年9月发布了以太网包交换背板标准PICMG 2.16, CompactPCI Packet Switching Backplane Specification。
PICMG 2.16的发布说明了什么问题?首先,它代表了人们追求不断提升信息交流速度的愿望,打破了并行总线对传输速度的物理限