StarFabic总线技术在冗余计算机系统中的应用
2012-11-07姚惟琳胡志良
姚惟琳 胡志良
中国电子科技集团公司第三十二研究所,上海 200233
StarFabic总线技术在冗余计算机系统中的应用
姚惟琳 胡志良
中国电子科技集团公司第三十二研究所,上海 200233
针对冗余计算机系统中,处理器之间进行高速数据传输的需求,本文提出利用StarFabric总线技术实现实时高速数据传输通道的方案,设计并实现了StarFabric模块。该设计成功应用于磁浮运行控制冗余计算机系统,其传输时延满足磁浮运行控制系统要求。
StarFabric总线;冗余计算机;高速数据传输
引言
对于安全苛求系统等对可靠性要求比较高的应用场所中,经常采用多余度容错计算机提高计算机系统可靠性,冗余方式主要有二取二冗余、三取二冗余等。对于多处理器组成的冗余系统,每个处理器产生的输出和采集的输入数据要与其它处理器的相应数据进行比较,从而可以判断自身的状态,这样就要求处理器之间数据传输快速,满足实时性的要求。现有的构建多处理器间数据交换,大都采用CAN、以太网等技术,但其延时不确定,性能不理想。对于实时性要求较高的应用场合,例如轨道交通、航空航天等领域,基于以上技术的数据传输和比较模块,不能满足实时性和可靠性的要求。
StarFabric 技术 由StarGen 公司发起推广,主要用于嵌入式多处理机系统模块与模块之间背板级交换互连和底板与底板之间机柜级互连,以每秒“吉比特”(Gb/s)级的速率传递数据,且传输延迟确定,实时性较好。StarFabric 具有拓扑结构简单、组网方便、传输速率高、可扩展性等优点,技术比较成熟且成本较低。
本文设计并实现了基于StarFabric总线的高速通信模块。磁浮交通运行控制计算机系统采用三取二冗余架构,利用该模块实现了处理器之间的高速数据传输,该冗余计算机系统已成功应用于上海磁浮嘉定试验线。
1 StarFabric技术
StarFabric是协议开放的开关互连技术中的一种,StarGen公司提出,得到了Dolphin、Agere、SVA、SIEMENS等20多个公司的支持。针对嵌入式计算机,形成了PICMG2.17标准。StarFabric技术的应用主要针对多处理器系统,模块与模块之间、背板级交换互连以及底板与底板之间、系统级互连。
StarFabric有如下优点:
速度快:物理层分别使用4对622Mbps低压差分信号线进行全双工的接收和发送,每条链路的带宽可达2.5Gbps。其中协议效率89%,采用8B/10B编码,数据带宽为1.77Gbps。
可靠性高:硬件支持错误监测和上报,实现点到点的CRC效验和错误重传。当单方向的4对差分信号线中的某些失效时,链路层可以检测和重组,系统自动以碎链路方式工作,见图1。虽然这样会降低带宽,但提高了可用性和可靠性。
图1 StarFabric的链路重组
服务质量高:支持输出缓存、分类服务的虚通道和基于信用的流控机制。支持多种服务类型,同步、异步、多播和专用帧。可以根据数据传输性质和带宽要求,动态的预留和分配通道带宽,已分配的带宽在未使用时也可被其他服务类型的数据传输使用。
结构简单:StarFabric互连构架的组成主要包括交换设备和桥节点设备。交换设备和桥节点设备主要由交换芯片和桥节点芯片组成。桥节点芯片实现PCI总线和StarFabric总线之间的桥接。交换芯片是StarFabric网络中实现交换功能,负责完成StarFabric数据帧在不同端口之间的转发。
延迟确定:每片PCI-to-StarFabric芯片协议转换时间<0.5us,StarFabric交换芯片的交换延迟<1us。
兼容性好:100%兼容PCI协议,物理层接口符合IEEE1596.3规范TIA/EIA-644低压差分信号标准,兼容现有连接器(CPCI、RJ45等)和线缆(CAT5类线)。
2 磁浮运行控制计算机冗余结构
磁浮交通运行控制系统计算机采用三取二冗余结构,如图2所示。三个互为冗余的处理器通道A、B、C采用相同的处理器和IO硬件。每个通道输入的数据会传输给其他2个通道,每个处理器会对3个通道的数据进行比较,3通道数据中2个或2个以上一致的数据为有效数据。同样,每个通道的输出数据以及一部分计算处理数据也需要传给其他2个通道进行比较,并进行3取2仲裁。
图2 磁浮交通运行控制系统计算机冗余结构
每个通道配置一个StarFabric模块,每个通道的处理器与StarFabric模块通过PCI背板连接,三个通道间通过StarFabric模块相互连接。连接采用点对点方式,即每个模块均拥有独立的通道连接到其他两个模块,在任何一个组件出故障时,不会影响另两个组件的通信。
3 StarFabric模块设计与实现
3.1 StarFabric模块组成
StarFabric模块主要由一片PCI-to-Fabric协议芯片(SG2010)和一片StarFabric交换芯片(SG1010)构成,如图3所示。PCI-to-Fabric协议芯片内部包含PCI接口控制单元和两路冗余的高速串行收发控制器。交换芯片负责协议芯片与外部StarFabric节点的通信。
图3 StarFabric模块组成框图
3.2 PCI接口及总线转换电路
PCI接口及总线转换电路主要将复杂的PCI总线协议转化为StarFabric总线,该功能电路STARGEN公司生产的SG2010芯片实现。该芯片支持33MHz/32bits的CPCI协议V2.3。该芯片可将复杂的CPCI总线协议转化为高速串行的总线协议。
在本设计中,可以实现两种编址模式,一种是采取传统的PCI系统中的地址路由来实现,另一种是采用解析帧头的路径路由方式。这两种编址方式通过PCI-Fabric网关功能和PCI-PCI透明桥功能的使用模式来确定,共分成有桥功能的根模式、有桥功能的叶模式以及网关模式三种基本模式,本设计中在模块上设置拨动开关来控制根/叶及有/无桥功能。
有桥功能的根模式下,SG2010的PCI接口必须连接到第一方总线上,如图4所示。两个链路接口可传输地址路由的帧或路径路由/多播帧。这里的桥和网关成为PCI总线上的两个功能设备。这两种功能的配置空间可通过PCI总线,用Type0配置事务处理来访问。被配置为根的SG2010负责初始化时交换网络的枚举,并建立PCI等级树结构。
图4 有桥功能的根模式
有桥功能的叶模式下,其中的一个链路接口必须连接到第一方总线上,两个链路可传输地址路由的帧或路径路由/多播帧,但另一个链路接口不属于根的PCI等级树结构中,如图5所示。这里的网关在逻辑上就像是桥的第二方总线上的一个PCI设备。缺省情况下,桥是完全透明的,连在桥的第二方总线上的所有设备包括网关对主机完全可见,它们的资源空间被映射在全局PCI存储空间中,但SG2010也能配置成对主机隐藏第二方总线的设备资源。
图5 有桥功能的叶子模式
图6 只有网关功能的模式
只有网关功能模式下,网关的PCI配置只能从PCI接口访问,如图6所示。在该模式中,传输PCI事务处理的唯一办法是将PCI事务转换成路径路由或多播的帧,转换是通过查询段表和路径表来实现的,这些查询表可以是静态的也可以是动态的。当SG2010的链路接口在网关模式中收到地址路由帧,它会将该帧丢弃,并且发出地址路由错误事件的信号。
在根节点和叶子节点的设计中,需使每个组件可以根据用户的需要配成根模式或叶子模式工作,但整个系统中必须有一个模块以根模式工作。设定为根的SG2010负责系统中StarFabric交换网络的初始化,初始化过程包括交换网络的枚举和交换网络的发现。网络枚举即完成网络中所有设备网络标号(FID)的分配,FID实际上是各设备到根结点的一条路径。网络发现就是通过软件检测网络中的设备及设备间连接关系的过程,最终建立交换网络设备间的关系图,并找出本地结点到其它设备的最短路径。
设备本身需要设置这些配置寄存器值。这些配置寄存器值由设备向串行SROM预读得到,串行SROM预读在设备上电初始化的时候完成。该SROM存储SG2010的上电配置信息。这里按照STARGEN公司的推荐,选用了AMTE公司的AMTE25640。其中,SG2010的网关功能地址设置寄存器是关键设置参数,因为绝大部分的应用中都需要通过网关功能得到系统分配的存储器空间和IO空间资源。
在硬件连接上,对SG2010进行如下配置:
(1)总线为地址/数据复用;
(2)SG2010始终控制局部总线,不释放总线控制权;
(3)StarFabric总线所需要的时钟是由CPCI时钟得到的;
(4)SG2010的时钟由66.208MHz和77.768MHz表贴晶振提供。
3.3 交换电路
考虑到磁浮交通运行控制系统冗余计算机为对可靠性的要求。这里使用拥有6个链路的SG1010来实现StarFabric总线的交换,支持错误监测和上报,实现点到点的CRC效验和错误重传。
SG1010为了完成向系统配置软件的资源分配请求,需要设置配置寄存器值。配置寄存器值由设备向串行SROM预读得到。按照STARGEN公司的推荐,选用了AMTE公司的AMTE25640。
3.4 链路接口电路
考虑磁浮交通运行控制系统冗余计算机的可维修性要求,采用的前出线。StarFabric总线前出端口,串行了滤波电容和耦合电感,来防止信号的干扰。可靠性的考虑,前出的四个端口,采用了冗余,双路输入双路输出,即使一个端口断掉,另外一个端口会保证通信的正常进行。
图7 测试方法示意图
4 实验结果
针对磁浮交通运行控制系统对实时性有较高要求,本文特针对StarFabric的传输时延进行了测试。测试方法如图7所示,作为根节点的A通道处理器通过StarFabric总线向B通道处理器发送一系列数字信号,同时A通道处理器通过本通道数字输出模块将该信号输出到示波器。B通道处理器通过StarFabric总线接收到数字信号后立即通过本通道数字输出模块将该信号输出到示波器。A、B通道的数字信号在示波器上显示,便可观察出两个信号之间的时间差,该时间差反映了A通道至B通道StarFabric的传输时延。本测试中,处理器采用PowerPC MPC8245,操作系统为Vxworks。
测试结果如表1所示,可以看出StarFabric的传输时延小于1ms,满足磁浮交通运行控制系统对实时性的要求。
表1 时延测试结果
5 结语
本文设计并实现了一种StarFabric高速数据传输模块,利用该模块实现了三取二冗余计算机系统处理器之间的高速数据传输,具备可靠性高,传输延时小的优点。该计算机系统已成功应用于上海嘉定磁浮试验线。实验测试表明StarFabric数据传输延时小于1ms,满足磁浮运行控制系统对实时性的要求。
[1] StarGen, Inc..StarGen Fabric Programmer Manual [EB/OL].(2003-09-10).http//www.stargen.com.
[2] StarGen, Inc..SG2010 PCI to Starfabrie Bridge Data Sheet [EB/OL].(2003-08-12).http://www.stargen.com.
[3] StarGen, Inc..SG1010 Starfabrie Switch Data Sheet[EB/ OL].(2003-08-22).http//www.stargen.com.
10.3969/j.issn.1001-8972.2012.13.057