双主机冗余显示系统的分析和设计
扫描二维码
随时随地手机看文章
摘要:根据大屏幕行业应用的高可靠性要求,设计了双主机冗余视频显示方案。利用目前最新的PCI Exrpess总线技术,在桥芯片PEX8696的基础上搭建双主机通信通道,通过非透明桥的心跳寄存器传送主机的信息,从而实现了从机对主机工作监控的功能,达到高可靠性的要求。在系统启动初期,针对可能出现的情况,设计了系统状态转换机制,保证冗余系统的正常启动和运行。分析结果表明,该视频冗余的设计机制合理,系统中各状态转换安全,大大提高了系统运行的可靠性。
关键词:冗余;非透明桥;视频显示;PCI Express;PEX8696
冗余系统的重要性
近年来,随着国内经济的稳步发展,国内各领域各行业都非常重视信息化建设,对信息的可视化需求也急剧扩大,特别是一些监控中心、指挥中心、调度中心等重要场所的需要,人们对于观看的显示图像尺寸的要求越来越大,对显示图像提供的信息量要求越来越多,人们要求可以在一个超大尺寸的屏幕上同时显示多个不同信息的图像和文字信息,要求大屏幕的各个单元显示的图像能够实现无缝连接。随着大屏幕拼墙应用领域的不断推广,在医疗影像、指挥调度中心等领域的应用产生了高可靠性的需求,而且这种需求非常迫切。如在临床手术中,医疗影像的中断可能会威胁到一个病人的生命,这些需求促使人们开发高可靠性视频显示系统。
系统的可靠性体现在很多方面,包括了元器件的选择、降额设计、冗余设计等。冗余系统设计即为了保险起见,采取两套同样配置的硬件、软件,目的是在其中一套系统出现故障时,另一套系统能立即启动,并代替工作,这好比演员的替身,两套完整好用的系统也许单独运行的故障率很高,但采取冗余措施后,在不改变内部设计的情况下,这套系统的稳定性立即可以大幅度提高!假如单独系统的故障率为50%,而冗余系统马上可以将故障率降低到25%。本文主要从主机冗余的角度考虑,目的是实现一个具有备份功能的视频显示系统。系统将采用PCI Express协议和透明桥技术实现双主机冗余设计;利用PLX公司的桥接芯片PEX 8696将双主机连接起来实现主机备份功能。
PCI Express总线
PCI Express是新一代的总线接口。早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。它彻底变革原来的PCI总线的并行技术,克服PCI总线在系统带宽、传输速度等方面的缺陷。它的优越性能满足了计算机和通信领域时于I/O数据传输高速度和高可靠性的要求。
与原有的PCI总线相比较,PCI Express总线具有以下特点。
(1)在数据传输模式上,PCIe总线采用双通道串行传输模式。一条PCIe通道包含2对LVDS差分线对,一对负责发送,一对负责接收,目前PCIe 2.0单向的数据率为5Gbit/s。
(2)与PCI总线上所有没备共享一条总线不同,PCIe总线采用点对点技术,能够为系统内的所有设备分配独立的通道资源,充分保障设备的带宽,提高数据传输率,同时可以实现多个设备并行工作。
(3)具有很好的灵活性,一个PCIe物理连接可以根据实际需求配置成×l、×2、×4,×8、×16、×32个并行的数据通道,以满足不同设备之间通信带宽的要求。
(4)在软件层与PCI总线完全兼容。原有的总线的驱动程序可以完全移植到PCIe总线架构的系统中。
(5)串行连接采用自时钟技术,时钟内嵌于串行数据的8bit/10bit编码中,可实现数据传输率的自适应调整。
(6)串行数据以数据包的形式进行传输,保障了数据传输的完整性和可靠性。
在大屏幕拼接显示领域,由于显示单元数目比较多,需要同时接入多个数据卡,PCIe总线扩展技术显得非常关键。利用透明桥芯片,可以非常方便地实现PCIe总线的扩展。我们的系统需要一个能支持较多PCIe通道,同时支持多主机连接和容错机制的桥芯片。经过对多个芯片手册的研究,我们发现PLX公司的一款芯片PEX8696非常适合这套冗余系统的设计需求。该芯片符合PCIe2.0规范[2],并且兼容PCIe1.1规范,包含了PCIe电源管理特性;支持Base Mode(基本模式)和Visual Switch Mode(虚拟开关模式)的PCIe扩展;具有96个PCIe通道,每个通道功率最大仅仅为900mW;具有24个端口,端口通道可以灵活配置,同时支持均衡和非均衡端口配置功能;支持多主机功能和容错功能,包括了1+1容错和N+1容错功能;无阻塞的芯片架构,PICe的数据包交换时间小于150ns;支持非透明桥功能;配置灵活,支持硬连接配置、EEPROM配置、SMBUS(系统管理总线)配置和主机软件配置四种方式。图1为PEX8696芯片内部模块图[2],从图中我们可以看到该芯片96个PCIe通道分别在6个Station内,各个Station是分别独立的,通过内在的Fabric连接起来;逻辑模块承担了大部分芯片功能的实现,如PCIe协议实现、通道的管理和仲裁功能、芯片配置功能等;Packet Ram模块主要是提供数据的缓冲功能。
冗余系统结构
冗余显示系统采用了双主机备份系统,一个主机在工作时候出现致命问题不能恢复时候,则由另外一台主机接管其所有的业务。系统的结构采用目前通用的工业计算机平台PICMG1.3规范,将一块PEX8696置于系统底板中,同时在底板设计2个符合PICMG1.3规范的插槽和16个PCIe×4的插槽。视频输入卡可以兼容多种视频信号的输入,包括了RGB、Video等信号;视频输出采用GPU卡进行硬件加速等各种图象处理,支持多通道输出。系统的架构框图如图2,采用了目前常用的PCIe扩展技术,将PCIe总线扩展出16个×4的PCIe通道,其中8个×4通道供视频数据输入用,8个×4通道供GPU(图像处理单元)处理显示用。上行端口采用了两个×16的PCIe通道连接了HOST1和HOST2,两个主机通过桥芯片PEX8696的门铃寄存器互通信息。当HOST1出现致命错误不能正常工作时候,可以在程序中预先设置流程,通过门铃寄存器将此信息传递到HOST2;HOST2接收到此信息后,启动复位操作,对桥芯片进行重新配置,届时原来由HOST1控制的所有视频输入和GPU卡等将通过通道的重新配置进入HOST2的监管,同时也就实现了系统的高可靠性。
主机的状态转移图见图3[3]。任一主机上电时,进人竞争及检测状态,竞争原则是先启动者为主机;后启动者为备机。状态转换方法包括:
(1)通过自检,若主机发现自身有故障,在心跳寄存器和备机正常的条件下,经过门铃寄存器通知备机升为主机,本身转人故障状态;
(2)若主机发生故障,不能在规定时间内向备机发心跳信息及有关信息,备机经核实主机已放弃主用状态条件下,自动转入主机状态;
(3)备机自检发现故障page--]转入故障状态;
(4)进入故障状态的设备给出报警信息,经修复后进入再次竞争状态。
PEX8696中有一些比较特殊的寄存器功能,包括了门铃寄存器和心跳消息。门铃寄存器被用来从非透明桥的一边向另一边发送中断。非透明桥的两边一般都有软件可以控制的中断请求寄存器和相应的中断屏蔽寄存器。这些寄存器在非透明桥的两边都是可以被访问的。心跳消息一般来自主设备端往从设备端的主机,可用来指示它还活着。从设备主机可监控主设备主机的状态,如果发现出错,它就可以采取一些必要的措施。通过门铃寄存器可以传送心跳消息。当从设备主机没有收到一定数量预先规定好的心跳消息时,就可以认为主设备的主机出错了。本系统中就是采用了上述寄存器的特殊功能来实现对主机的监控和工作状态的转换的,下面将对系统出现故障后,主机2接管主机1的过程进行详细描述。
当主机1工作时候,主机2处于待机模式。两个主机之间通过心跳消息通信。正常工作过程中,主机处理器完成所有的正常职责,因为它要主动管理系统。此外,它还需要定时发送心跳消息给备份处理器。心跳消息是发起消息的处理器健康与否的标志。心跳消息在该系统设计中同时也保护了一些特定的数据,以减少误报警的可能性。心跳消息承担了为备份处理器验证主机处理器功能是否正常的工作,同时,这一数据也提供所有外围设备的最新活动和状态。如果备份主机不能及时地接收到心跳消息[4],它将开始承担控制。首先,它将主机1中的端口降为下行端口,以防止已经发送故障的处理器与系统的其他部分交互。该变换是通过使用非透明桥端口中的BAR(基地址寄存器 )提供的寄存器CSR(空间配置寄存器)存储器进行地址映射[5],以重新编程交换器的CSR来完成;接着,需要将主机2的端口配置成上行端口,把主机1的端口配置成非透明桥端口,同时拆除主机1的链路;然后,主机2通过操作桥控制寄存器,对原理主机1中的设备进行重启操作;最后,在清除了队列中遗留的所有事务或者由于主机1发生故障而遗留的非完成状态之后,主机2重新对所有设备进行枚举,经过枚举后,系统开始正常运行。
结语
本文主要针对目前在医疗、监控等领域的高可靠性高清大屏的应用,专门设计了一套双主机冗余系统。该系统采用了目前最新的PCIe总线技术,结合PLX公司提供高灵活性的透明桥芯片以及非透明桥技术,在不改变常规视频显示系统内部设计的情况下,使得系统的稳定性大幅度提高,系统故障率降低到原来的50%;同时该系统采用了具有96个PCIe通道的桥芯片,大大减少了桥芯片的使用,降低了系统的成本。