用于为多通路pci特快io互连提供故障保护的方法和装置的制作方法

文档序号:6437830阅读:233来源:国知局
专利名称:用于为多通路pci特快io互连提供故障保护的方法和装置的制作方法
用于为多通路PCI特快10互连提供故障保护的方法和装置技术领域
本发明的实施例总体上涉及外围部件互连特快(PCIE)总线并且具体地涉及一种用于为多通路PCIE IO互连提供线缆冗余性和故障保护的方法和装置。
背景技术
20世纪早期最初引进外围部件互连(PCI)标准。通过使用连接到前侧总线和处理器的PCI桥芯片,PCI为连接到PCI总线的任何外围设备提供对计算机系统内的系统存储器的直接访问。PCI桥芯片独立于处理器的速度调控PCI总线的速度,从而可以实现高程度的可靠性。
PCI特快(PCT Express, PCIE)标准是通过引用将相关内容结合于此的PCI标准的继承者。与PCI相比,PCI特快可以用较少的物理管脚来实现较高传输速率。与先期几代PCI总线相比,PCI特快使用点到点总线架构。因而,专用总线用于在使用PCIE总线系统的任何两个设备之间的数据事务。专用总线由在通信设备之间建立点到点连接的交换器来支持。因此,交换器被用作中间设备,并且物理上和逻辑上位于附接到计算机系统的任何两个设备之间。
PCIE交换器包括用于支持将设备附接到计算机系统的多个端口。在设备与交换器的端口之间的物理连接惯称为链路。每个链路包括一个或者多个通路,并且每个通路能够在两个方向上传输数据。因此,每个通路是全双工连接。
包括单个通路的链路称为Xl链路。类似地,包括两个通路或者四个通路的链路分别称为x2链路或者x4链路。PCI特快允许与不同宽度(例如xl、x2、x4、x8、xl2、xl6和 x32链路)的接口以满足各种外围设备的不同带宽要求。因此,专用总线可以宽度为1个通路、2个通路、4个通路、8个通路、12个通路、16个通路或者32个通路。
现代服务器类计算机经常使用PCIE IO适配器作为主要IO适配器技术。CPU外壳包括用于定制特定服务器的IO选项的有限数目的PCIE适配器槽。然而,CPU机架封装通常使这样的槽很少,而每个机架的计算能力已经随着多芯处理器芯片而明显增长。通常,服务器提供用于将CPU连接到一个或者多个附加“10扩展”机架中的PCI适配器槽的机制。例如在PCIE系统中,也称为PCIE主桥(PHB)的PCI根端口(PRP)是CPU电子器件的部件并且创建PCI总线,该PCI总线直接连接到单个PCIE IO适配器槽或者连接到IO扩展机架中的PCIE交换器,该扩展机架将该PHB总线扩展到该交换器下的多个PCIE适配器槽。IO扩展需要在扩展机架中放置一个或者多个PCIE适配器槽并且将这些槽连接到CPU机架内的 PHB。
通常,由于这些IO扩展机架是物理上不同的电子机架或者外壳,所以在CPU机架内的PHB与IO扩展机架内的PCIE适配器槽之间的电子连接需要在这些外壳之间的物理线缆线路。这些线缆可能需要在PHB与PCIE适配器槽之间几英寸的互连距离,甚至可能在包含CPU和IO扩展外壳的不同物理机架之间延伸。发明内容
本公开内容的某些方面提供一种用于为在第一 PCIE桥与第一输入/输出(IO)设备之间的连接提供故障保护操作的方法。该方法主要包括使用第一 PCIE桥的第一组通路通过第一链路在第一 PCIE桥与第一 IO设备之间交换第一组总线位;响应于检测到第一链路中的故障,在PCIE桥端从使用第一组通路调换为使用第一 PCIE桥的第二组通路用于使用第二组通路通过第二链路在第一 PCIE桥与第一 IO设备之间交换第二组总线位,第二链路连接第二 PCIE桥与第二 IO设备;以及响应于检测到第一链路中的故障,在IO设备端从使用第一组通路切换为使用第二组通路,以便使用第二组通路通过第二链路在第一 PCIE 桥与第一 IO设备之间交换第二组总线位。
本公开内容的某些方面提供一种用于为在第一 PCIE桥与第一输入/输出(IO)设备之间的连接提供故障保护操作的装置。该装置主要包括第一链路,连接第一 PCIE桥与第一 IO设备,第一链路用于使用第一 PCIE桥的第一组通路通过第一链路在第一 PCIE桥与第一 IO设备之间交换第一组总线位;至少一个第二链路,连接第二 PCIE桥与第二 IO设备, 其中第一 PCIE桥响应于检测到第一链路中的故障在PCIE桥端从使用第一组通路调换为使用第一 PCIE桥的第二组通路用于使用第二组通路通过第二链路在第一 PCIE桥与第一 IO 设备之间交换第二组总线位;以及在IO端的至少交换器,用于从使用第一组通路切换为使用第二组通路用于使用第二组通路通过第二链路在第一 PCIE桥与第一 IO设备之间交换第二组总线位。
本公开内容的某些方面提供一种用于为在第一 PCIE桥与第一输入/输出(IO) 设备之间的连接提供故障保护操作的计算机程序产品,该计算机程序产品主要包括计算机可读介质,该计算机可读介质包括代码。该代码主要包括如下代码,该代码用于使用第一 PCIE桥的第一组通路通过第一链路在第一 PCIE桥与第一 IO设备之间交换第一组总线位; 响应于检测到第一链路中的故障,在PCIE桥端从使用第一组通路调换为使用第一 PCIE桥的第二组通路用于使用第二组通路通过第二链路在第一 PCIE桥与第一 IO设备之间交换第二组总线位,第二链路连接第二PCIE桥与第二 IO设备;并且响应于检测到第一链路中的故障,在IO设备端从使用第一组通路切换为使用第二组通路用于使用第二组通路通过第二链路在第一 PCIE桥与第一 IO设备之间交换第二组总线位。


为了可以具体理解上文记载的方面的实现方式,可以参照附图更具体描述上文简要概括的本发明实施例。
然而将注意,附图仅图示了本发明的典型实施例,因此不应被视为限制本发明的范围,因为本发明可以采用其他同样有效的实施例。
图1是图示了根据本公开内容一个实施例的并入PCI特快(PCIe)结构技术的示例计算机系统的图。
图2是图示了根据本公开内容一个实施例的如下PCIE系统的示例基本操作的图, 该PCIE系统用于使用在CPU端和交换器端的复用器或者交叉点开关来提供线缆故障保护机制。
图3是图示了根据本公开内容一个实施例的在图2的PCIE系统中在线缆故障期间使用的故障保护机制的示例的图。
图4是图示了根据本公开内容一个实施例的用于使用图2和图3的如下PCIE系统来提供线缆故障保护机制的示例过程的流程图,该PCIE系统使用在CPU端和交换器端的見用器。
图5是图示了根据本公开内容一个实施例的用于提供线缆故障保护机制的示例操作的流程图。
图6是图示了根据本公开内容的如下PCIe系统的基本操作的示例图,该PCIe系统用于使用在交换器端的复用器来提供故障保护机制。
图7是图示了根据本公开内容一个实施例的在图6的PCI系统中在线缆故障期间的故障保护机制的示例图。
图8是图示了根据本公开内容一个实施例的用于使用图6和图7的如下PCIE系统来提供线缆故障保护机制的示例过程的流程图,该PCIE系统使用在交换器端的复用器。
图9是图示了根据本公开内容一个实施例的用于提供线缆故障保护机制的示例操作的流程图。
具体实施方式
图1是根据本公开内容一个实施例的并入PCI特快(PCIe)结构技术的计算机系统100的示例图。计算机系统包括连接到根复合体(root complex) 104的CPU 102。根复合体104通常代表CPU 102而生成事务请求。根复合体功能可以实施为分立设备或者可以集成于处理器(例如,CPU 102)内。根复合体104可以包含多个PCI特快端口,并且多个 PCIE交换器设备可以连接到端口或者从一个或者多个端口级联。
根复合体104可以包括多个PCIE主桥(PHB)、例如PHB 106和108。根据某些方面,PHB 106、108可以实施为分立设备或者可以集成于根复合体104内。每个PHB 106,108 可以经由输入/输出(I/O)总线130、132连接到对应PCIe交换器142、144。例如,PHB 106 经由总线103连接到PCIe交换器142,PHB 108经由总线132连接到PCIe交换器144。每个交换器142、144还可以经由链路152连接到PCIe端点(EP)。交换器142、144通常为它们的相应I/O总线130、132提供扇出(fan-out)。这样做可以增加PHB与PCIE适配器之比并且使CPU机架中所需PHB的数目最少。
根据某些方面,交换器142、144具有连接器经由链路152与之附接的一个或者多个端口,并且每个连接器还附接到端点150。端点通常使用链路152来与计算机系统上的任何其他设备(包括另一端点)执行数据事务。每个交换器142、144在上游根端口与连接到计算机系统中的这些交换器的端点设备150之间建立点到点连接。
链路是在计算机系统100中的两个部件之间的双单工(dual-simplex)通信。在逻辑上,端口是在部件与PCI特快链路之间的接口。在物理上,端口是位于相同芯片上的限定链路的一组发送器和接收器。链路必须支持至少一个通路而每个通路代表一组差分信号对(一个发送对和一个接收对)。为了调节带宽,链路可以聚集XN表示的多个通路,其中N 为支持的链路宽度之一。例如xl表示具有一个物理通路的链路,而x8表示具有八个物理通路的链路。PCI特快提供多个物理通路(例如单个通路、4个通路、8个通路、16个通路和 32个通路)以便适应符合PCI特快的外围设备的不同带宽要求。在一些方面中,每个IO纵贯线130、132也可以具有多个通路而通路数目通常对应于连接到端点150的链路的通路数目。例如每个总线130和132为x8总线。根据某些方面,PCIE链路包括线缆、嵌入式板布线、板到板连接和在PCIE桥与PCIE交换器或者设备之间实现通信的任何其他连接。
根据某些方面,链路/总线的通路可以物理上划分成多组通路。例如连接PHB 106 和PCIe交换器142的I/O总线130划分成两通路组110和112,每组4个通路。类似地,将 PHB 108与PCIe交换器144连接的I/O总线132划分成两通路组114和116,每组4个通路。可以理解,将每个链路/总线划分成两组通路仅为示例并且总线/链路可以划分成任何数目的通路组,每个通路组具有最少一个通路。例如xl6总线/链路可以划分成两个x8 总线、四个x4总线、八个x2总线或者十六个xl总线。根据某些方面,总线的这一物理划分不受软件控制,并且该划分基于硬件设计而为持久的。
在启动时,PCI特快设备通常与交换器协商以确定可以构成它的链路的通路的最大数目。这一链路宽度协商依赖于链路本身的最大宽度(即构成链路的物理信号对的实际数目)、与设备附接的连接器的宽度和设备本身的宽度。
在某些方面中,由于PCIe交换器142、144为物理上不同的电子机架或者外壳,将 PHB连接至其相应交换器的每个I/O总线沿单独链路(例如物理线缆134、136)延伸。例如总线130经过线缆134延伸而总线132经过线缆136延伸。在每个线缆134、136的任一端通过的线缆线路器(CC) 160在通路组与线缆之间提供电连接。根据某些方面,将CPU和 PCIe交换器与外部线缆线路连接所造成的一个问题是由于线缆或者线缆连接器的故障、 在一个或者其他机架意外移除线缆连接或者需要移除线缆来修理线缆的维修动作,而失去与通过该线缆通信的IO槽的连接。
根据某些方面,使用单独物理线缆分别连接每个PHB 106、108与交换器142、144 提供了冗余线缆,并且在一个或者其他线缆134、136故障的情况下有助于提供故障保护机制。在某些方面中,根据故障保护机制,如果将第一 PHB与第一 PCIe交换器连接的线缆出故障,则可以使用将第二 PHB与第二 PCIe交换器连接的第二活跃线缆在第一 PHB与第一 PCIe交换器之间交换至少部分数据。例如,如果计算机系统100检测到线缆136已经出故障,则可以使用仍然在可以活跃的线缆134内的一些通路在PHB 108与交换器144之间交换数据,同时PHB 106和交换器142继续在线缆134内的其他通路上交换数据。
PCIe架构允许通路下调和上调。这允许CPU固件减少(下调)在PHB与对应交换器之间活跃的通路的数目以及恢复(上调)至活跃通路的原数目。在某些方面中,PCIe系统的这一能力被用以在线缆故障期间提供故障保护机制。例如,当检测到线缆136中的故障时,下调两个总线130和132以使用仅一组通路。因此,每个总线从x8总线下调至x4总线。一旦通路下调完成,就使用总线130的未用通路组,在PHB 108与交换器144之间交换在总线132的活跃一组通路上的数据。在某些方面中,仅总线130从x8下调至x4,并且总线130的不活跃一组通路用来在PHB 108与交换器144之间交换数据。
图2是图示了根据本公开内容一个实施例的如下PCIE系统的基本操作的示例图, 该PCIE系统用于使用在CPU端和交换器端的复用器来提供线缆故障保护机制。
如图2中所示,PCIe根复合体104包括PHB 106和108。PHB 106使用I/O总线 130来与PCIe交换器142交换数据,同时PHB 108使用I/O总线132来与PCIe交换器144 交换数据。每个总线130和132为x8总线。I/O总线130划分成两个通路组110和112,每组4个通路。类似地,I/O总线132划分成两个通路组114和116,每组4个通路。在某些方面中,对于总线130,通路组110代表较高阶通路0-3,并且通路组112代表较低阶通路 4-7。类似地,对于总线132,通路组144代表较高阶通路0-3,并且通路组116代表较低阶通路4-7。在每个线缆134、136的任一端提供的线缆连接器160a-160d在通路组与线缆之间提供电连接。
通路复用器(MUX)(或者交叉点电开关)202a-202d在线缆134和136的两端(CPU 端和交换器端)上实现总线130和132中每一个的通路组之间的通路切换。在某些方面中, 在PCIe系统的基本操作期间,两个线缆134和136活跃。下面是MUC在基本操作期间的典型配置
ο在CPU端,MUX 202a连接通路组110与CC 160a以及通路组116与CC 160c。
ο在CPU端,MUX 202c连接通路组114与CC 160c以及通路组112与CC 160a。
ο在交换器端,MUX 202b连接通路组110与PCIe交换器142以及通路组116与 PCIe交换器144。
ο在交换器端,MUX 202d连接通路组114与PCIe交换器144以及通路组112与 PCIe交换器142。
因此,在基本操作期间,总线130的通路组110和112连接PHB 106与交换器142, 而总线132的通路组114和116连接PHB 108与交换器44。交换器处的MUX可以集成于包括PCIe交换器的IO机架中。在某些方面中,在CPU端,可以利用复用器将所有通路从每个PHB路由至两个线路。例如MUX 20 可以连接通路组110与CC 160a或者切换通路组以连接通路组110与CC 160c。类似地,交换器端的复用器允许将每个线缆内的通路的子组重新路由至任一交换器。当然,本领域技术人员将理解图2中所示MUX的数目和配置用于示例并且MUX的任何数目或者任何配置可以用于实施本公开内容的各种方面。
根据某些方面,CPU固件控制PHB以及MUX 202a和202c的操作。在某些方面中, MUX 202b和202d由连接到交换器142和144中的任一交换器的一个或者多个设备(或者 EP)控制。例如,分别连接到交换器142和144的MUX控制设备204a和204b可以被编程为控制MUX 202b和202d。在某些方面中,CPU固件配置MUX控制设备20 和204b或者与 MUX控制设备20 和204b通信,以便使用MUX 202b和202d在交换器端实现通路切换。在某些方面中,每个MUX控制设备20 和204b可以控制两个MUX 202b和202d。在某些方面中,MUX控制设备为特殊类型的IO机架控制单元,该IO机架控制单元也是连接到交换器的 PCIE设备。
图3是图示了根据本公开内容一个实施例的在图2的PCIE系统中在线缆故障期间的故障保护机制的示例图。
如上文关于图2讨论的那样,在基本操作期间,连接PHB与IO机架中的交换器之间的PCIE总线的所有通路。因此,两个x8 PHB 106、108中的每个x8 PHB将总线130、 132中的所有8个通路连接到IO机架中的相应交换器。当失去一个线缆时,CPU固件使用 PCIe “通路下调,,先减少在其他PHB与其相应交换器之间活跃的通路的数目,例如从x8总线减少至x4总线。这释放了 4个通路以供已经与PHB的交换器失去线缆连接的PHB和I/O 总线使用。在某些方面中,释放的通路通常为x8 PCIe总线中的通路4-7。根据某些方面, PHB或者根端口可以向与PCIE链路连接(或者线缆)的故障或者失去有关的CPU固件信号通知链路状态改变事件(例如,链路停用事件),从而激发CPU固件检查线缆或者链路的操作状态。其他实施例可以利用其他指示或者机制来激发CPU固件检查线路故障获得相同效: O
根据某些方面,CPU固件也将失去线缆的PHB设置为x4总线。如已经讨论的那样, 可以使用“复用器”或者交叉点电开关将所有通路从每个PHB路由至两个线缆。因此,当线缆134、136之一故障时,故障保护机制启动,并且CPU固件设置CPU端的复用器以便将通路组(通常为通路0-;3)从失去线缆的PHB重新路由至其他活跃PHB线缆的那些未用通路(通常为通路4-7)。也如讨论的那样,交换器端的复用器允许将每个线缆内的通路子组重新路由至任一交换器。同样,作为故障保护机制的部分,CPU固件通过活跃PHB线缆来与PCIE 交换器上的MUX控制器设备通信,以设置复用器现在将用于PHB的活跃线缆的通路4-7路由至其他交换器的通路0-3。这由此利用活跃连接的线缆中的PHB的通路4-7将已经失去线缆连接到的PHB的通路0-3连接到它原先连接到的交换器的通路0-3,同时保持活跃PHB 通路0-3与其在该相同线缆上的交换器通路0-3的连接无间断(除PCIE下调协议外)。
例如,图3图示了当线缆132已经出故障并且仅线缆130活跃时的线缆故障保护机制。CPU检测到线缆132的故障,并且作为响应而使用通路下调以将总线130和132中的通路的活跃数目从x8总线减少至x4总线。在这一示例中,通路下调指示PHB 106仅使用通路组110(通路0-;3),并且指示PHB 108仅使用通路组114(通路0-;3)。CPU固件指示 MUX 202c在通路组114与活跃总线130的通路4-7之间建立连接。CPU固件同时使用活跃线缆134的I/O总线130来与MUX控制设备20 同时通信。MUX控制设备20 指示MUX 202d在总线130的通路4-7与PCIe交换器144的通路0_3之间建立连接。因此,线缆故障保护机制由此使用PHB在活跃连接的线缆134中的通路4-7,将已经失去线缆连接的PHB 108的通路0-3连接到它原先连接到的PCIe交换器144的通路0_3。
根据某些方面,在完成用于恢复失去的线缆连接的维修动作时,可以通知CPU固件(或者可以代之以经由电子线缆存在信号来检测)恢复的线缆连接,并且可以反转在故障保护机制期间执行的MUX配置,由此改变通路复用器设置,从而将用于每个PHB的所有通路直接经过其相应的线缆重新路由至与其连接的交换器的上游端口。
图4是图示了根据本公开内容一个实施例的用于使用图2和图3的PCIE系统来提供线缆故障保护机制的示例过程400的流程图,该PCIE系统使用在CPU端和交换器端的复用器。在402,CPU固件检查分别将PHB 106和108连接到其相应交换器142和144的线缆134和136中的故障。如果CPU固件在404检测到线缆(例如线缆136)中的故障,则在 406,CPU固件将两个总线130和132从x8下调至x4总线。在408,固件指示CPU端的MUX 202c将具有线缆故障的PHB的通路组114切换至活跃总线130的通路4_7。在410,固件使用交换器端的MUX控制设备20 来指示MUX 202d将活跃总线130的通路4_7切换至交换器144的通路0-3。在412,如果线路136未恢复至全连接,则过程400继续在故障保护模式中操作,并且继续检查线缆136恢复连接。在412,如果CPU固件检测到线缆136恢复连接线,则PCIE系统恢复至图2中的基本操作而总线恢复至x8总线。
根据某些方面,可以消除线缆CPU端上的通路复用电子器件(或者MUX),以实现减少电子器件成本和封装要求的优点。然而,它具有的缺点在于它可能由于如下电子时序要求而限制线缆长度并且约束一些IO机架线缆线路配置,这些要求规定在用于这些冗余性配置的两个线缆之间的狭窄线缆长度容差。每个冗余性配置在故障保护和恢复机制的固件定序上具有对应不同。本领域普通技术人员可以选择任一冗余性配置以适应特定PCIE实施方式的需要。
图5是图示了根据本公开内容一个实施例的用于提供线缆故障保护机制的示例操作500的流程图。
操作500始于步骤502,在此使用第一 PCIe桥的第一组通路通过第一线缆在第一 PCIe桥与第一 IO设备之间交换第一组总线位。总线位通常是指在总线上传输的数据位。 在504,在第一线缆中检测故障。在506,响应于检测到第一线缆中的故障,使用将第二 PCIe 桥与第二 IO设备连接的第二线缆的未用部分在第一 PCIe桥与第一 IO设备之间交换第一组总线位。
图6是图示了根据本公开内容一个实施例的用于仅使用在交换器端的复用器来提供故障保护机制的PCIe系统600的基本操作的示例图。
如图6中所示,通路复用器(MUX)(或者交叉点电交换器)20 和202d在线缆134 和136的交换器端实现在总线130和132的每一个的通路组之间的通路切换。然而,在CPU 端没有MUX,并且通路组直接连接到线缆。在某些方面中,在PCIe系统的基本操作期间,两个线缆134和136活跃。下面是PCIe系统600在基本操作期间的典型配置
ο 在 CPU 端
ο对于PHB 106,通路组110与CC 160a直接连接,通路组112与CC 160c直接连接。
ο对于PHB 108,通路组114与CC 160c直接连接,通路组116与CC 160a直接连接。
ο在交换器端
ο MUX 202b连接通路组110和112与PCIe交换器142,并且可被用来在通路组 110与112之间切换。
ο MUX 202d连接通路组114和116与PCIe交换器144,并且可被用来在通路组 114与112之间切换。
因此,在基本操作期间,总线130的通路组110和112连接PHB 106与交换器142, 总线132的通路组114和116连接PHB 108与交换器144。在某些方面中,在CPU端可以利用通路调换将所有通路从每个PHB路由至两个线缆。例如,通路组114可以与通路组116 调换,因此使通路组114能够经过线缆160a而不是160c被路由。类似地,可以调换通路组 110和112以经过线缆160a和160b中的任一线缆来路由每个线路组。如上文所述,交换器端的MUX 202b和202d允许将每个线缆内的线缆子组重新路由至任一交换器。当然,本领域普通技术人员将会理解,MUX的数目和配置仅用于示例并且MUX的任何数目或者任何配置可以用于实施本公开内容的各种方面。
根据某些方面,CPU固件控制CPU端的通路调换。如已经讨论的那样,CPU固件控制PHB的操作,MUX 202b和202d由连接到交换器142和144中任何一个的一个或者多个设备(或者EP)(例如,MUX控制设备204a和204b)控制。而且,每个MUX控制设备204a和 204b可以控制MUX 202b和202d 二者。
图7是图示了根据本公开内容一个实施例的在图6的PCIe系统中响应于检测到线缆故障而使用的故障恢复机制的示例图。如上文关于图6讨论的那样,在基本操作期间, PHB及其在IO机架中的相应交换器之间的每个PCIE总线130和132的所有通路被连接。 因此,两个x8PHB 106和108中的每一个将总线130、132中的所有八个通路连接到IO机架中的相应交换器。当线缆134、136之一失去连接时,CPU固件使用PCIe “通路下调”以减少在其他PHB与其相应交换器之间活跃的通路的数目,例如将它从x8总线减少至x4总线。 这释放出了四个通路,以供已经与PHB的交换器失去线缆连接的PHB和I/O总线使用。在某些方面中,释放的通路通常为xSPCIe总线中的通路4-7。
根据某些方面,CPU固件还将失去线缆的PHB设置为x4总线。如关于图6中的 PCIE系统的基本操作已经讨论的那样,可以利用通路调换将所有通路从每个PHB路由至两个线缆。因此,在线路故障条件下,故障保护机制启动,并且CPU固件调换失去线缆的PHB的通路组,以便将来自失去线缆的PHB的通路组(通常为通路0- 重新路由只其他活跃PHB 线缆的那些未用通路(通常为通路4-7)。还如讨论的那样,交换器端的复用器允许将每个线缆内的通路的子组重新路由至任一交换器。因此,作为故障保护机制的部分,CPU固件通过活跃PHB线缆来与PCIE交换器上的MUX控制器设备通信,以设置复用器现在将活跃线缆的通路4-7路由至失去线缆的PHB原先连接到的其他交换器的通路0-3。这使用活跃连接的线缆中的PHB的通路4-7,将已经失去线缆连接的PHB的通路0_3连接到它原先连接到的交换器的通路0-3,同时保持活跃PHB通路0-3与它在相同线缆上的交换器通路0-3的连接无间断(除PCIE下调协议)。
例如,如图7中所示,线缆132已经出故障,并且仅线缆130活跃。CPU检测到线缆132的故障,并且作为响应,CPU固件使用通路下调将总线130和132中的通路的活跃数目从x8总线减少至x4总线。在这一示例中,通路下调指示PHB 106仅使用通路组110(通路0- ,并且指示PHB 108仅使用通路组114 (通路0- 。CPU固件指示PHB 108在通路组114与116之间调换,使得通路组114(通路3-0)经过活跃线缆134中的总线130而不是出故障的线缆136的通路4-7被路由。CPU固件使用活跃线缆134的I/O总线130来与 MUX控制设备20 同时通信,以指示MUX 202d在总线130的通路4_7与PCIe交换器1444 的通路3-0之间建立连接。线缆故障保护机制由此利用PHB 106在活跃连接的线缆134中的通路4-7将失去线缆连接的PHB 108的通路3-0连接到PHB 108原先连接到的PCIe交换器144的通路3-0。
根据某些方面,在完成用于恢复失去的线缆连接的维修动作时,CPU固件被通知 (或者可以代之以经由电子线缆存在信号来检测)恢复的线缆连接,并且可以调换回通路组116和114以及恢复在故障保护机制期间执行的对MUX 20b和202d的配置。
图8是图示了根据本公开内容一个实施例的用于使用图6和图7的如下PCIE系统来提供线缆故障保护机制的示例过程的流程图,该PCIE系统使用在交换器端的复用器。 在802,CPU固件检查分别将PHB 106和108连接到其相应交换器142和144的线缆134和 136中的故障。在804,如果CPU固件检测到线缆(例如,线缆136)中的故障,则过程800 继续到806,在此CPU固件将两个总线130和132从x8下调至x4总线。在808,固件指示 CPU端的PHB 108在通路组114与116之间调换,以使用活跃总线130的通路4_7来路由通路组114。在810,固件使用交换器端的MUX控制设备20 来指示MUX 202d在总线130的通路4-7与PCIe交换器144的通路3-0之间建立连接。在812,如果线缆136未恢复至全连接,则过程400继续在故障保护模式中操作,并且继续检查线缆136恢复连接。在412,如果CPU固件检测到线缆136恢复连接,则PCIE系统恢复至图6中的基本操作而总线恢复至 x8总线。
图9是图示了根据本公开内容一个实施例的用于提供线缆故障保护机制的示例操作900的流程图。如图所示,操作900始于902,其中使用第一 PCIe桥的第一组通路通过第一线缆在第一 PCIe桥与第一 IO设备之间交换第一组总线位。在904,在第一线缆中检测故障。在906,响应于检测到第一线缆中的故障,使用第一 PCIE桥的第二组通路通过第二线缆在第一 PCIe桥与第一 IO设备之间交换第一组总线位。
下面,将参考本发明的实施例。然而,应当理解本发明并不限于具体描述的实施例。代之以设想无论是否与不同实施例有关的以下特征和要素的任何组合。例如,本领域技术人员将理解本发明可以同样应用于未利用线缆的或者未涉及到多个物理外壳的PCIE 链路。本发明同样服务于例如如下PCIE链路这样的其他实施例以提供针对失去PCIE链路的故障保护,这些PCIE链路利用在计算机电路板中或者例如经过中间平面连接器在计算机电路板之间并且在相同或者相邻物理外壳内嵌入的接线。也可以理解上文讨论的故障保护机制可以适用于如下PCIE配置,其中IO设备或者适配器直接连接到PHB而不是经由交换器来连接。类似故障保护过程也可以用来使用MUX控制设备来管理在交换器与连接到交换器的IO设备之间的故障连接。
另外,虽然本发明的实施例可以实现较其他可能解决方案和/或较现有技术而言的优点,一个给定的实施例是否实现特定优点并不限制本发明。因此,以下方面、特征、实施例和优点仅为示例并且除非在权利要求中明确记载则并不视为所附权利要求的要素或者限制。类似地,提及“本发明”不应理解为这里公开的任何发明主题内容的概括并且除非在权利要求中明确记载则并不视为所附权利要求的要素或者限制。
如本领域技术人员将理解的那样,本发明的方面可以具体化为系统、方法或者计算机程序产品。因而,本发明的方面可以采用这样全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者将这里可以都通称为“电路”、“模块”或者“系统”的软件与硬件方面组合的实施例这样的形式。另外,本发明的方面可以采用在一个或者多个如下计算机可读介质中具体化的计算机程序产品这样的形式,该计算机可读介质具有具体化于其上的计算机可读程序代码。
可以利用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外线或者半导体系统、装置或者设备或者前述介质的任何适当组合。 计算机可读存储介质的更多具体示例(非穷举列表)可以包括具有一个或者多个接线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或者闪存)、光纤、便携紧致盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或者前述介质的任何适当组合。在本文献的背景中,计算机可读存储介质可以是任何如下有形介质,该有形介质可以包含或者存储用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。
计算机可读信号介质可以包括例如在基带中或者作为载波一部分的有计算机可读程序代码具体化于其上的传播数据信号。这样的传播信号可以采用多种形式中的任何形式(包括但不限于电磁、光学或者其任何适当组合)。计算机可读信号介质可以是任何如下计算机可读介质,该计算机可读介质并非计算机可读存储介质并且可以传达、传播或者传送用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。
可以使用任何适当介质(包括但不限于无线、有线、光纤线缆、RF等或者前述介质的任何适当组合)来发送在计算机可读介质上具体化的程序代码。
可以用一种或者多种编程语言(包括诸如Nava、Smalltalk, C++等面向对象的编程语言和例如“C”编程语言或者类似编程语言这样的常规过程编程语言)的任何组合来编写用于实现用于本发明方面的操作的计算机程序代码。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上而部分在远程计算机上或者完全在远程计算机或者服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或者广域网(WAN))连接到用户的计算机,或者可以产生与外部计算机的连接(例如通过使用因特网服务提供商的因特网)。
下文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程示和/或框图描述本发明的方面。将理解流程示和/或框图的每块以及在流程示和/或框图中的块的组合可以由计算机程序指令实施。可以向通用计算机、专用计算机或者其他可编程数据处理装置的处理器提供这些计算机程序指令以产生机器,从而经由计算机或者其他可编程数据处理装置的处理器执行的指令产生用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机程序指令也可以存储于如下计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或者其他设备以特定方式工作,从而存储于计算机可读介质中的指令产生包括如下指令的制造产品,这些指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。
计算机程序指令也可以加载到计算机、其他可编程数据处理装置或者其他设备上以使系列操作步骤在计算机、其他可编程装置或者其他设备上执行以产生计算机实施的过程,从而在计算机或者其他可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的过程。
图中的流程图和框示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就这一点而言,在流程图或者框图中的每块可以代表如下代码模块、段或者部分,该代码模块、段或者部分包括用于实施一个或者多个指定逻辑功能的一个或者多个可执行指令。也应当注意,在一些替代实施方式中,在块中指出的功能可以不按照图中指出的顺序出现。例如事实上根据涉及到的功能可以基本上并行执行接连示出的两个块或者有时可以逆序执行这些块。也将注意,框图和/或流程示的每块以及在框图和/或流程示中的块的组合可以由执行指定功能或者动作的基于专用硬件的系统实施或者由专用硬件与计算机指令的组合实施。
尽管前文涉及本发明的实施例,但是可以设想本发明的其他和更多实施例而不脱离其基本范围,并且其范围由所附权利要求确定。
权利要求
1.一种用于为第一 PCIE桥与第一输入/输出(IO)设备之间的连接提供故障保护操作的方法,所述方法包括使用所述第一 PCIE桥的第一组通路,通过第一链路在所述第一 PCIE桥与所述第一 IO 设备之间交换第一组总线位;响应于检测到所述第一链路中的故障,在PCIE桥端,从使用所述第一组通路调换为使用所述第一 PCIE桥的第二组通路,以使用所述第二组通路通过第二链路在所述第一 PCIE 桥与所述第一 IO设备之间交换第二组总线位,所述第二链路连接第二 PCIE桥与第二 IO设备;响应于检测到所述第一链路中的所述故障,在IO设备端,从使用所述第一组通路切换为使用所述第二组通路,以使用所述第二组通路通过所述第二链路在所述第一 PCIE桥与所述第一 IO设备之间交换所述第二组总线位。
2.根据权利要求1所述的方法,还包括响应于检测到所述第一链路中的所述故障,将所述第一 PCIE桥配置为停止使用所述第二组通路。
3.根据权利要求1所述的方法,还包括响应于检测到所述第一链路中的所述故障,将使用所述第一链路以使用所述第二 PCIE 桥的第三组通路来与所述第二 IO设备交换第三组总线位的所述第二 PCIE桥配置为停止使用所述第三组通路。
4.根据权利要求1所述的方法,其中所述第一PCIE桥和第二 PCIE桥的每一个包括 PCIE 主桥(PHB)。
5.根据权利要求1所述的方法,其中所述第一IO设备和第二 IO设备的每一个包括 PCIE交换器。
6.根据权利要求1所述的方法,其中所述第一PCIE桥和第二 PCIE桥被容纳于PCIE根复合体中。
7.一种用于为第一 PCIE桥与第一输入/输出(IO)设备之间的连接提供故障保护操作的装置,所述装置包括第一链路,连接第一 PCIE桥与第一 IO设备,所述第一链路被用于使用所述第一 PCIE 桥的第一组通路通过所述第一链路在所述第一 PCIE桥与所述第一 IO设备之间交换第一组总线位,至少一个第二链路,连接第二 PCIE桥与第二 IO设备;其中响应于检测到所述第一链路中的故障,所述第一 PCIE桥在PCIE桥端从使用所述第一组通路调换为使用所述第一 PCIE桥的第二组通路,以使用所述第二组通路通过所述第二链路在所述第一 PCIE桥与所述第一 IO设备之间交换第二组总线位;以及IO端的至少一个交换器,用于从使用所述第一组通路切换为使用所述第二组通路,以使用所述第二组通路通过所述第二链路在所述第一 PCIE桥与所述第一 IO设备之间交换所述第二组总线位。
8.根据权利要求7所述的装置,其中响应于检测到所述第一链路中的所述故障,所述第一 PCIE桥被配置为停止使用所述第二组通路。
9.根据权利要求7所述的装置,其中响应于检测到所述第一链路中的所述故障,使用所述第一链路以使用所述第二 PCIE 桥的第三组通路来与所述第二 IO设备交换第三组总线位的所述第二 PCIE桥被配置为停止使用所述第三组通路。
10.根据权利要求7所述的装置,其中所述第一PCIE桥和所述交换器由中央处理单元 (CPU)固件控制。
11.根据权利要求7所述的装置,还包括连接到所述第二 IO设备的控制设备,用于控制所述交换器,所述控制设备由所述CPU 固件控制。
12.根据权利要求7所述的装置,其中所述第一PCIE桥和第二 PCIE桥的每一个包括 PCIE 主桥(PHB)。
13.根据权利要求7所述的装置,其中所述第一IO设备和第二 IO设备的每一个包括 PCIE交换器。
14.根据权利要求7所述的装置,其中所述第一PCIE桥和第二 PCIE桥被容纳于PCIE 根复合体中。
全文摘要
本发明涉及用于为多通路PCI特快IO互连提供线缆冗余性和故障保护的方法和装置。特别地,提供用于为第一PCIE桥与第一输入/输出(IO)设备之间的连接提供故障保护操作的方法和装置。使用第一PCIE桥的第一组通路通过第一链路在第一PCIE桥与第一IO设备之间交换第一组总线位。响应于检测到第一链路中的故障,在PCIE桥端调换第一组通路与第一PCIE桥的第二组通路,以使用第二组通路通过第二链路在第一PCIE桥与第一IO设备之间交换第二组总线位,第二链路连接第二PCIE桥与第二IO设备。响应于检测到第一链路中的故障,利用第二组通路来切换第一组通路,以使用第二组通路通过第二链路在第一PCIE桥与第一IO设备之间交换第二组总线位。
文档编号G06F13/40GK102541790SQ201110353120
公开日2012年7月4日 申请日期2011年11月7日 优先权日2010年12月3日
发明者G·M·诺德斯托姆, J·R·赫林, P·A·巴克兰德, W·A·汤普森 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1