PCI bus用于计算机平台领域已将近十年,以PCI总线为架构设计的计算机系统也已运用于许多应用领域,但是主流个人计算机内的PCI架构似乎并没有办法直接满足工业用计算机的需求。工业计算机的典型运用比如计算机语音整合(CTI), 常常需要在一个系统内插入超过十张PCI 的语音卡,而一般个人计算机上可提供的PCI扩充槽仅有四槽。为了能在计算机平台上增加这些扩充槽,PCI-SIG协会就发展出一个PCI桥接器的公开规范,让世人遵循,而工业计算机界所属的规范制定者PICMG协会也为PCI bus及PCI桥接器的运用制定了一些规范,成为公开标准,其中有些谈及单板计算机上设计的标准,也有些谈到背板设计的规范。除了单板计算机及背板设计上需特别规范外,若将桥接器应用到CompactPCI的单板计算机上,实际应用还有一些特别的不同,单板计算机上的桥接器将区分成『透明桥』以及『不透明桥』。到底单板计算机及背板的桥接器设计要注意些什么?『透明桥』以及『不透明桥』又是怎么一回事呢?当您要运用PCI桥接器来开发应用时,关键的考虑因素为何?本文希望能加以探讨。</P><P> 引言<BR> 为了符合应用上的需求,在技术上总是会不断的更新调整,产品设计者及制造商必须跟上脚步及时做设计变更。传统的工业计算机主要组成含单板计算机及背板,二者之间的结合靠的是PCI/ISA金手指及其插槽,早期的4U 上架式机箱中,所采用的背板大都是4槽PCI及8~12槽的ISA,主要的扩充是背板上的ISA插槽,在总线主流地位由ISA转移到PCI后,多槽数PCI背板的需求应运而生,于是PCI桥接器开始出现在背板上。另一方面,电信用的欧规卡原先架构在VME Bus上,后来在PCI 总线转为流行之后,欧规卡上VME bus 也渐渐被PCI取代掉,催生了CompactPCI的架构。欧规卡架构常有多槽数需求,因此也促使CompactPCI单板计算机以及背板的设计需要将PCI桥接器考虑进去。诸多单板计算机的应用区分为Host CPU Card及Peripheral CPU Card,这两种应用都需要PCI 桥接器将CPU Card连接上背板上的PCI总线,不同的地方只是CPU Card插在系统槽作为Host CPU Card或是插在外围槽作为Peripheral CPU Card,这两种应用所需的桥接器是不同的,分别为『透明桥』以及『不透明桥』。</P><P> 以下将针对桥接器在单板计算机、背板、compactPCI上的应用作深入探讨,特别是在compactPCI的设计上,同时也会介绍一下PCI桥接器之技术发展趋势。</P><P> <BR> PCI桥接器在传统工业计算机上的应用</P><P> 请参考图一,传统工业计算机可拆解为单板计算机及背板两大部分。背板必须依据PICMG1.0的规范来设计,图中可以看见有2颗PCI桥接器芯片在10槽的背板上,若依据原不含PCI桥接器的规范来看,CPU卡需要提供以下几组信号来实现背板上的四个扩充槽(PCI Bus0):<BR> 1. REQ(3,2,1,0)# <BR> 2. GNT(3,2,1,0)#<BR> 3. Slot(1,2,3,4)的Clock分别接CLK(A,B,C,D)<BR> 4. Slot(1,2,3,4)的IDSEL分别接AD(31,30,29,28)<BR> 5. 中断信号INT(A,B,C,D) 绕行方式依据PCI 规范来连接,有一固定的绕行规则</P><P> 若要再进一步增加扩充槽,则桥接器可依据PCI Bridge的规范,将二颗桥接器芯片分别放在Slot3及Slot4的位置,分别扩充8个PCI槽(PCI Bus1,2),使背板上的PCI槽数达到18槽,扩充槽位的REQ#,GNT#及CLK信号由桥接器提供,中断信号INT(A,B,C,D)则需依据PCI桥接器规范来连接,使得PCI Bus0, 1, 2可以共享INT(A,B,C,D)四个中断信号。<BR> 图一:4U机箱、PICMG单板计算机及18槽PCI背板<BR> 用单板计算机上PCI桥接器来扩充Compact PCI背板上的槽数</P><P> CompactPCI规范PICMG2.0将CompactPCI的slot数目限制在小于等于8槽,这是在PCI-33Mhz下经模拟及实际验证的结果。为了设计这8槽,CompactPCI的单板计算机上需要使用PCI桥接器,并将扩充的PCI总线信号经由单板计算机上的J1, J2连接到背板上的P1, P2, 再分配到各个扩充槽去,如图二所示。在 CompactPCI背板上,除系统槽外,另外七槽的信号必须依照以下规则设计: 1. REQ(6,5,4,3,2,1,0)# <BR> 2. GNT(6,5,4,3,2,1,0)#<BR> 3. Slot(1,2,3,4,5,6,7)的Clock分别接CLK(A,B,C,D,E,F,G)<BR> 4. Slot(1,2,3,4,5,6,7)的IDSEL分别接AD(31,30,29,28,27,26,25)<BR> 5. 中断信号INT(A,B,C,D)的绕行方式依据PCI桥接器的规范来连接,有一固定的绕行规则<BR> 图二:3U,6U单板计算机及8槽背板</P><P> 若是要扩充到15槽,则须遵循PICMG2.7的双系统规范来设计,单板计算机上需设计两个PCI桥接器才行,概念上可以方块图示意,如图三。而在背板的设计上则须将第一个桥接器扩充的BusA经由P1, P2扩充1-7槽;同时将第二个桥接器扩充的BusB经由P4, P5扩充9-15槽,如图四。<BR> 图三:6U单板计算机,双桥接器设计<BR> 图四:6U 15槽,双系统背板<BR> 用托盘式桥接方式来扩充Compact PCI背板上的槽数</P><P> 前一段我们采用CPU卡上的桥接器来扩充背板上的插槽,但是有时候碍于主板面积或是J4, J5有其它的用途,不得不将另一颗桥接器安置于背板上,但事与愿违,很不幸的是背板并没有多余的空间放置桥接器,在设计上并没有如图一中传统背板那样简单。此时有一个不错的做法,就是将桥接器作成子板,由背板背面将Primary bus端连接1-7槽中的一槽,再将桥接器子板上的Secondary Bus连接至欲扩充的7槽去,如图五,这样的应用方法较常出现在3U的系统中,主要是因为3U的系统并没有J4, J5可使用,6U系统则较常采用图四的做法。</P><P> 托盘式桥接法</P><P> PCI透明桥、非透明桥在CompactPCI单板计算机上的应用</P><P> 在传统的应用上,CompactPCI单板计算机就像一般计算机一样,被用作主控端主机 (Host Computer),但是在许多特殊应用中,常常希望能够有一种CompactPCI卡,它属于外围卡但是却拥有CPU卡般的运算能力,为了达到此目的,于是诞生了PCI非透明桥,PCI非透明桥虽然仍旧将不同的CPU卡用PCI Bus连接起来,但是它会将背板上的PCI Bus与CPU外围卡上PCI bus做适当的阻隔。</P><P> 结论</P><P> PCI桥接器虽然很少在一般个人计算机上被采用,但在工业计算机领域的应用却极为重要,就像文中所提的,传统工业计算机背板、主板,CompactPCI系统的背板、主板等设计,都或多或少会牵扯到PCI桥接器的应用,仅以此篇短文用最浅显的方式介绍给大家,希望对有兴趣的人能有一点帮助。</P><P>