CN102763087B - Cpu间互联容错的实现方法及系统 - Google Patents
Cpu间互联容错的实现方法及系统 Download PDFInfo
- Publication number
- CN102763087B CN102763087B CN201180001259.2A CN201180001259A CN102763087B CN 102763087 B CN102763087 B CN 102763087B CN 201180001259 A CN201180001259 A CN 201180001259A CN 102763087 B CN102763087 B CN 102763087B
- Authority
- CN
- China
- Prior art keywords
- link
- cpu
- fpga
- interface module
- steering logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
Abstract
一种CPU间互联容错的实现方法,包括:第一FPGA的第一SerDes接口模块和第二FPGA的第二SerDes接口模块中均增设有传输链路连接状态信息和链路控制信号的数据通道;控制逻辑模块监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;当第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA通过自身增设的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;当故障链路恢复正常状态时,各FPGA分别启用各自连接的各条正常状态的链路,进行第一CPU和第二CPU之间实现互联的各条链路的连接。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种CPU间互联容错的实现方法及系统。
背景技术
现有技术中,实现CPU之间互联的方案有如下两种:
一种实现方案为,IBM公司PCB(Printed Circuit Board,印制电路板)全直连的方式实现各CPU之间的互连。每个IBM的Power CPU自带7个高速互连接口,可同时与7个Power CPU互连。8个Power CPU通过全直连方式可组成8P系统。但因Power CPU集成了NC(Node control节点控制器)的功能,所以成本较高。受Power CPU互连接口数量限制,由Power CPU组成的CPU系统可扩展性差,灵活度低;
另一种实现方案为,HP公司采用NC节点控制器和switch模块实现CPU之间的互连,整个互连架构的系统复杂。该方案在整个系统中增加了2个芯片,分别实现NC节点控制和switch模块功能。因为该方案采用switch模块进行NC间数据交换,每个switch模块需要进行跳点判断,增加了数据传输的延时,系统性能较低,成本较高。
因此,目前的CPU互连方案,可扩展性差,数据传输延时较长,系统性能低下;此外,在实现CPU互联的各条链路中,任何一条链路出现错误都可能导致所涉及的CPU之间互联发生异常,而对于CPU间互联容错的解决方案,并未存在相关现有技术。
发明内容
本发明为解决背景技术中存在的上述技术问题,而提出一种CPU间互联容错的实现方法及系统,能够提高CPU间互连的扩展性,实现CPU间互连容错。
本发明的技术解决方案是:
本发明实施例提供一种CPU间互联容错的实现方法,所述方法包括:
第一CPU连接第一现场可编程门阵列FPGA的第一快速通道互联QPI接口模块、第二CPU连接第二FPGA的第二QPI接口模块,第一FPGA的第一串解串SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;其中,所述第一SerDes接口模块和第二SerDes接口模块中包括原有数据通道和新增数据通道,所述原有数据通道用于所述第一CPU和第二CPU之间的数据传输,所述新增数据通道用于传输链路连接状态信息和链路控制信号;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA中的控制逻辑模块通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;
当故障链路恢复正常状态时,各FPGA中的控制逻辑模块分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
一种CPU间互联容错的实现系统,所述系统包括:至少第一CPU、第二CPU、第一FPGA和第二FPGA;第一CPU连接第一FPGA的第一QPI接口模块、第二CPU连接第二FPGA的第二QPI接口模块,第一FPGA的第一SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;其中,所述第一SerDes接口模块和第二SerDes接口模块中包括原有数据通道和新增数据通道,所述原有数据通道用于所述第一CPU和第二CPU之间的数据传输,所述新增数据通道用于传输链路连接状态信息和链路控制信号;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA中的控制逻辑模块通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;当故障链路恢复正常状态时,各FPGA中的控制逻辑模块分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
本发明实施例中,通过为CPU设置FPGA,基于FPGA的透传功能,通过FPGA之间的连接实现CPU之间的互联,在内部互联的CPU增加或减少时,可通过增加或减少专用FPGA的个数来实现。因此,能够提高CPU间互连的扩展性;并且,通过在FPGA上增设数据通道,当互联的CPU之间的任意连接链路发生故障,通过该数据通道传输CPU互联各链路的连接状态信息和链路控制信号,实现CPU间互连容错。
附图说明
图1为本发明实施例提供的实现CPU之间互联的FPGA的结构示意图;
图2为利用图1中FPGA实现CPU互联的结构示意图;
图3为图2中的互联架构所涉及的链路连接示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,参见图1所示,为本发明实施例中实现CPU之间互联的FPGA的结构示意图。该FPGA(Field-Programmable Gate Array,现场可编程门阵列)设置有QPI(Quick Path Interconnect,快速通道互联)接口模块11和SerDes(Serial Deserial,串解串)接口模块12,FPGA的QPI接口模块11与CPU的QPI接口连接,负责完成与CPU之间高速数据的传输;在QPI接口模块和SerDes接口模块之间还设置有控制逻辑模块13,SerDes接口模块12与控制逻辑模块13连接,并与另一个FPGA上设置的SerDes接口模块12通过高速线缆(CXP Cable)进行连接。
图2所示为利用上述FPGA实现CPU互联的结构示意图。
为了描述方便,以两个CPU进行互联为例进行说明,并将互联的两个CPU分别命名为第一CPU(CPU0)和第二CPU(CPU1),第一CPU和第二CPU分别连接有FPGA,即第一FPGA(FPGA0)和第二FPGA(FPGA1)。
在第一CPU和第二CPU之间互联的各链路处于正常状态下,FPGA上的QPI接口模块11可以将CPU发送的串行QPI数据转换成并行QPI数据。由于QPI接口模块将CPU发送的串行QPI数据转换成并行QPI数据,降低了QPI数据的频率,以适应FPGA内部的数据处理频率。
而通过FPGA上的SerDes接口模块12,可以将从QPI接口模块11接收到的并行QPI数据转换成高速串行SerDes数据,并通过另一个FPGA上设置的SerDes接口模块12发送至对端CPU,并接收对端FPGA上的SerDes接口模块发送的高速串行SerDes数据,并将接收到的高速串行SerDes数据转换成并行QPI数据,发送至自身连接的CPU。
由于SerDes接口模块将不支持长距离电缆互连和拓扑的DC特性的QPI数据,转换成AC特性的SerDes接口,从而可以支持长距离高速度电缆互连和拓扑,实现了板间的处理器高速互连。本发明实施例中,在SerDes接口模块中原有数据通道的基础之上,增设至少一条数据通道,与原有数据通道不同的是,该增设的数据通道并不用于互联的CPU之间数据的传输,而是用于FPGA之间传输互联各链路的连接状态信息和链路控制信号。
此外,FPGA中在QPI接口模块和SerDes接口模块之间设置有控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态。
相应上述互联架构,本发明实施例提供一种CPU间互联容错的实现方法实施例。
具体实施时,第一CPU连接第一FPGA(FPGA0)的第一QPI接口模块、第二CPU连接第二FPGA(FPGA1)的第二QPI接口模块,第一FPGA的第一SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;其中,所述第一SerDes接口模块中增设有传输链路连接状态信息和链路控制信号的第一数据通道,所述第二SerDes接口模块中增设有传输链路连接状态信息和链路控制信号的第二数据通道;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
由此,本发明实施例中的互联架构涉及CPU0与FPGA0之间的QPI链路、FPGA0和FPGA1之间的高速SerDes链路以及FPGA1与CPU1之间的QPI链路,上述3条链路中的任何一条链路发生故障,都会导致CPU0和CPU1之间出现互联异常;
本发明实施例中,当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA通过自身增设的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;
当故障链路恢复正常状态时,各FPGA分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
本发明实施例中,通过为CPU设置FPGA,基于FPGA的透传功能,通过FPGA之间的连接实现CPU之间的互联,在内部互联的CPU增加或减少时,可通过增加或减少专用FPGA的个数来实现。因此,能够提高CPU间互连的扩展性;并且,通过在FPGA上增设数据通道,当互联的CPU之间的任意连接链路发生故障,通过该数据通道传输CPU互联各链路的连接状态信息和链路控制信号,实现CPU间互连容错。
为了便于对本发明实施例技术方案的充分理解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
如图3所示,为本发明实施例中的互联架构所涉及的链路连接示意图。相应的链路包括:CPU0与FPGA0之间的QPI链路(简称为A链路)、FPGA0和FPGA1之间的高速SerDes链路(简称为B链路)以及FPGA1与CPU1之间的QPI链路(简称为C链路),A、B、C链路都有可能出现工作异常的故障状态,因此,本发明实施例中的容错方案即解决在A、B、C任意一条链路上出现的异常状态。
实施例一
当所述第一FPGA或第二FPGA中的控制逻辑模块监测到所述第一SerDes接口模块和第二SerDes接口模块之间的B链路发生故障时,所述第一FPGA和第二FPGA中的控制逻辑模块通过各自增设的数据通道向B链路发送链路控制信号以恢复B链路的正常状态;
同时,所述第一FPGA中的第一控制逻辑模块通过第一SerDes接口模块中增设的数据通道控制所述第一QPI接口模块与第一CPU之间的A链路保持在复位状态,所述第二FPGA中的第二控制逻辑模块通过第二SerDes接口模块中增设的数据通道控制所述第二QPI接口模块与第二CPU之间的C链路保持在复位状态,以等待B链路的成功建立,直至当所述B链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中增设的数据通道控制所述A链路的连接;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制所述C链路的连接。
具体实施时,当B链路成功建立之后,第一FPGA控制A链路的QPI初始化流程,同时,第二FPGA控制C链路的QPI初始化流程,从而实现A、C链路的连接。
当A、B、C三条链路均建立完成之后,第一CPU和第二CPU便可以开始正常的链路通信,从而完成第一CPU和第二CPU之间的互联。
实施例二
当所述第一控制逻辑模块监测到A链路发生故障、且第二控制逻辑模块监测到C链路发生故障时,所述第一控制逻辑模块将所述A链路的故障信息通过所述第一SerDes接口模块中增设的数据通道发送至所述第二FPGA;同时,所述第二控制逻辑模块将所述C链路的故障信息通过所述第二SerDes接口模块中增设的数据通道发送至所述第一FPGA;即,第一FPGA和第二FPGA通过各自增设的数据通道进行本端QPI链路状态的交互;
所述第一FPGA和第二FPGA中首先接收到连接链路的故障信息的一方的控制逻辑模块,通过自身增设的数据通道向连接相应CPU的连接链路发送链路控制信号以恢复该连接链路的正常状态;并通过自身增设的数据通道向对端FPGA发送链路控制信号,以控制对端FPGA的控制逻辑模块发起自身对应的连接链路的恢复操作。
第一FPGA和第二FPGA通过相互交换链路控制操作信号,使得A、C链路分别进入初始化流程,完成A、C链路的重新建立。
实施例三
当A、B链路发生故障,C链路正常时,所述第一控制逻辑模块能够监测到上述异常链路,从而通过所述第一SerDes接口模块中增设的数据通道控制所述A路保持在复位状态;同时,所述第二控制逻辑模块能够监测到B链路异常,从而,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制所述C链路保持在复位状态,等待B链路的重新建立;
此外,所述第一控制逻辑模块和第二控制逻辑模块通过各自增设的数据通道向B链路发送链路控制信号以恢复B链路的正常状态;直至当B链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中增设的数据通道控制A链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制C链路的连接。
本发明实施例以A、B链路发生故障,C链路正常为例进行说明,当B、C链路发生故障,A链路正常时,第一CPU和第二CPU之间的互联容错方案与该实施例相似。
实施例四
当A链路发生故障,B、C链路正常时,所述第一控制逻辑模块将A链路的故障信息通过所述第一SerDes接口模块中增设的数据通道发送至所述第二FPGA,并向所述第二FPGA发送链路控制信号,使得所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制C链路处于复位状态;
所述第一控制逻辑模块继续通过所述第一SerDes接口模块中增设的数据通道向所述第二FPGA发送链路控制信号,使得所述第一控制逻辑模块通过所述第一SerDes接口模块中增设的数据通道控制A链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制C链路的连接,从而实现A链路的重新建立。
本发明实施例以A链路发生故障,B、C链路正常为例进行说明,当C链路发生故障,A、B链路正常时,第一CPU和第二CPU之间的互联容错方案与该实施例相似。
通过上述各实施例可见,基于FPGA的透传功能,通过高速线缆连接实现板间CPU之间的互联架构中,采用本发明实施例的容错解决方案可以很好的解决互联CPU间互联链路可能出现的故障状态,使得故障链路及时恢复正常状态,使互连CPU之间保持稳定的工作状态。
相应地,本发明实施例还提供了一种CPU间互联容错的实现系统,所述系统包括:至少第一CPU、第二CPU、第一FPGA和第二FPGA;第一CPU连接第一FPGA的第一QPI接口模块、第二CPU连接第二FPGA的第二QPI接口模块,第一FPGA的第一SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;其中,所述第一SerDes接口模块和第二SerDes接口模块中均增设有传输链路连接状态信息和链路控制信号的数据通道;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA通过自身增设的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;当故障链路恢复正常状态时,各FPGA分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
上述系统实施例中,通过为CPU设置FPGA,基于FPGA的透传功能,通过FPGA之间的连接实现CPU之间的互联,在内部互联的CPU增加或减少时,可通过增加或减少专用FPGA的个数来实现。因此,能够提高CPU间互连的扩展性;并且,通过在FPGA上增设数据通道,当互联的CPU之间的任意连接链路发生故障,通过该数据通道传输CPU互联各链路的连接状态信息和链路控制信号,实现CPU间互连容错。
具体实施过程中,当所述第一FPGA和/或第二FPGA中的控制逻辑模块监测到所述第一SerDes接口模块和第二SerDes接口模块之间的第二连接链路发生故障时,所述第一FPGA和第二FPGA中的控制逻辑模块用于,通过各自增设的数据通道向第二连接链路发送链路控制信号以恢复第二连接链路的正常状态;同时,所述第一FPGA中的第一控制逻辑模块通过第一SerDes接口模块中增设的数据通道控制所述第一QPI接口模块与第一CPU之间的第一连接链路保持在复位状态,所述第二FPGA中的第二控制逻辑模块通过第二SerDes接口模块中增设的数据通道控制所述第二QPI接口模块与第二CPU之间的第三连接链路保持在复位状态,直至当所述第二连接链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中增设的数据通道控制所述第一连接链路的连接;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制所述第三连接链路的连接。
当所述第一控制逻辑模块监测到第一连接链路发生故障、且第二控制逻辑模块监测到第三连接链路发生故障时,所述第一控制逻辑模块用于,将所述第一连接链路的故障信息通过所述第一SerDes接口模块中增设的数据通道发送至所述第二FPGA;同时,所述第二控制逻辑模块将所述第三连接链路的故障信息通过所述第二SerDes接口模块中增设的数据通道发送至所述第一FPGA;
所述第一FPGA和第二FPGA中首先接收到连接链路的故障信息的一方的控制逻辑模块,通过自身增设的数据通道向连接相应CPU的连接链路发送链路控制信号以恢复该连接链路的正常状态;并通过自身增设的数据通道向对端FPGA发送链路控制信号,以控制对端FPGA的控制逻辑模块发起自身对应的连接链路的恢复操作。
当所述第一(三)连接链路、第二连接链路发生故障时,所述第三(一)连接链路正常时,所述第一(二)控制逻辑模块用于,通过所述第一(二)SerDes接口模块中增设的数据通道控制所述第一(三)连接链路保持在复位状态;同时,所述第二(一)控制逻辑模块通过所述第二(一)SerDes接口模块中增设的数据通道控制所述第三(一)连接链路保持在复位状态,所述第一控制逻辑模块和第二控制逻辑模块通过各自增设的数据通道向第二连接链路发送链路控制信号以恢复第二连接链路的正常状态;直至当所述第二连接链路恢复正常时,所述第一(二)控制逻辑模块通过所述第一(二)SerDes接口模块中增设的数据通道控制所述第一(三)连接链路的连接,同时,所述第二(一)控制逻辑模块通过所述第二(一)SerDes接口模块中增设的数据通道控制所述第三(一)连接链路的连接。
当所述第一(三)连接链路发生故障时,所述第一(二)控制逻辑模块用于,将所述第一(三)连接链路的故障信息通过所述第一(二)SerDes接口模块中增设的数据通道发送至所述第二(一)FPGA,并向所述第二(一)FPGA发送链路控制信号,使得所述第二(一)控制逻辑模块通过所述第二(一)SerDes接口模块中增设的数据通道控制所述第三(一)连接链路处于复位状态;
所述第一(二)控制逻辑模块还用于,继续通过所述第一(二)SerDes接口模块中增设的数据通道向所述第二(一)FPGA发送链路控制信号,使得所述第一控制逻辑模块通过所述第一SerDes接口模块中增设的数据通道控制所述第一连接链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中增设的数据通道控制所述第三连接链路的连接。
因此,上述CPU间互联容错的实现系统中,基于FPGA的透传功能,通过高速线缆连接实现板间CPU之间的互联架构,采用本发明实施例的容错解决方案可以很好的解决互联CPU间互联链路可能出现的故障状态,使得故障链路及时恢复正常状态,使互连CPU之间保持稳定的工作状态。
对于系统实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种CPU间互联容错的实现方法,其特征在于,所述方法包括:
第一CPU连接第一现场可编程门阵列FPGA的第一快速通道互联QPI接口模块、第二CPU连接第二FPGA的第二QPI接口模块,第一FPGA的第一串解串SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;
其中,所述第一SerDes接口模块和第二SerDes接口模块中包括原有数据通道和新增数据通道,所述原有数据通道用于所述第一CPU和第二CPU之间的数据传输,所述新增数据通道用于传输链路连接状态信息和链路控制信号;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA中的控制逻辑模块通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;
当故障链路恢复正常状态时,各FPGA中的控制逻辑模块分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
2.根据权利要求1所述的CPU间互联容错的实现方法,其特征在于,当所述第一CPU和第二CPU之间的任意连接链路发生故障,则与该故障链路连接的FPGA通过所述新增数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态,具体包括:
当所述第一FPGA或第二FPGA中的控制逻辑模块监测到所述第一SerDes接口模块和所述第二SerDes接口模块之间的第二连接链路发生故障时,所述第一FPGA和第二FPGA中的控制逻辑模块通过所述新增的数据通道向所述第二连接链路发送链路控制信号以恢复所述第二连接链路的正常状态;同时,所述第一FPGA中的第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一QPI接口模块与所述第一CPU之间的第一连接链路保持在复位状态,所述第二FPGA中的所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第二QPI接口模块与所述第二CPU之间的第三连接链路保持在复位状态,当所述第二连接链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
3.根据权利要求1所述的CPU间互联容错的实现方法,其特征在于,当所述第一CPU和第二CPU之间的任意连接链路发生故障,则与该故障链路连接的FPGA通过所述新增的的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态,具体包括:
当所述第一控制逻辑模块监测到所述第一QPI接口模块与所述第一CPU之间的第一连接链路发生故障、且第二控制逻辑模块监测到所述第二QPI接口模块与所述第二CPU之间的第三连接链路发生故障时,所述第一控制逻辑模块将所述第一连接链路的故障信息通过所述第一SerDes接口模块中所述新增的数据通道发送至所述第二FPGA;同时,所述第二控制逻辑模块将所述第三连接链路的故障信息通过所述第二SerDes接口模块中所述新增的数据通道发送至所述第一FPGA;
所述第一FPGA和第二FPGA中首先接收到连接链路的故障信息的一方的控制逻辑模块,通过所述新增的数据通道向连接相应CPU的连接链路发送链路控制信号以恢复该连接链路的正常状态;并通过所述新增的数据通道向对端FPGA发送链路控制信号,以控制对端FPGA的控制逻辑模块发起自身对应的连接链路的恢复操作。
4.根据权利要求1所述的CPU间互联容错的实现方法,其特征在于,当所述第一CPU和第二CPU之间的任意连接链路发生故障,则与该故障链路连接的FPGA通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态,具体包括:
当所述第一QPI接口模块与所述第一CPU之间的第一连接链路、所述第一SerDes接口模块和所述第二SerDes接口模块之间的第二连接链路发生故障时,所述第二QPI接口模块与所述第二CPU之间的第三连接链路正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路保持在复位状态;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路保持在复位状态,所述第一控制逻辑模块和第二控制逻辑模块通过所述新增的数据通道向第二连接链路发送链路控制信号以恢复第二连接链路的正常状态;当所述第二连接链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
5.根据权利要求1所述的CPU间互联容错的实现方法,其特征在于,当所述第一CPU和第二CPU之间的任意连接链路发生故障,则与该故障链路连接的FPGA通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态,具体包括:
当所述第一QPI接口模块与所述第一CPU之间的第一连接链路发生故障时,所述第一控制逻辑模块将所述第一连接链路的故障信息通过所述第一SerDes接口模块中所述新增的数据通道发送至所述第二FPGA,并向所述第二FPGA发送链路控制信号,使得所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第二QPI接口模块与所述第二CPU之间的第三连接链路处于复位状态;
所述第一控制逻辑模块继续通过所述第一SerDes接口模块中所述新增的数据通道向所述第二FPGA发送链路控制信号,使得所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
6.一种CPU间互联容错的实现系统,其特征在于,所述系统包括:至少第一CPU、第二CPU、第一FPGA和第二FPGA;第一CPU连接第一FPGA的第一QPI接口模块、第二CPU连接第二FPGA的第二QPI接口模块,第一FPGA的第一SerDes接口模块连接第二FPGA的第二SerDes接口模块、并通过第一控制逻辑模块连接第一QPI接口模块,第二FPGA的第二SerDes接口模块通过第二控制逻辑模块与第二QPI接口模块相连,以实现所述第一CPU和第二CPU之间的互联;
其中,所述第一SerDes接口模块和第二SerDes接口模块中包括原有数据通道和新增数据通道,所述原有数据通道用于所述第一CPU和第二CPU之间的数据传输,所述新增数据通道用于传输链路连接状态信息和链路控制信号;所述第一FPGA和第二FPGA中在相应QPI接口模块和SerDes接口模块之间的控制逻辑模块,用于监测对端FPGA与相应CPU之间传输链路连接的状态,并控制本端FPGA与相应CPU之间传输链路连接的状态;
当所述第一CPU和第二CPU之间实现互联的任意连接链路发生故障,则与该故障链路连接的FPGA中的控制逻辑模块通过所述新增的数据通道向故障链路发送链路控制信号以恢复故障链路的正常状态;当故障链路恢复正常状态时,各FPGA中的控制逻辑模块分别启用各自连接的各条正常状态的链路,进行所述第一CPU和第二CPU之间实现互联的各条链路的连接。
7.根据权利要求6所述的CPU间互联容错的实现系统,其特征在于,当所述第一FPGA或第二FPGA中的控制逻辑模块监测到所述第一SerDes接口模块和第二SerDes接口模块之间的第二连接链路发生故障时,
所述第一FPGA和第二FPGA中的控制逻辑模块用于,通过所述新增的数据通道向第二连接链路发送链路控制信号以恢复第二连接链路的正常状态;同时,所述第一FPGA中的第一控制逻辑模块通过第一SerDes接口模块中所述新增的数据通道控制所述第一QPI接口模块与第一CPU之间的第一连接链路保持在复位状态,所述第二FPGA中的第二控制逻辑模块通过第二SerDes接口模块中所述新增的数据通道控制所述第二QPI接口模块与第二CPU之间的第三连接链路保持在复位状态,当所述第二连接链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
8.根据权利要求6所述的CPU间互联容错的实现系统,其特征在于,当所述第一控制逻辑模块监测到所述第一QPI接口模块与所述第一CPU之间的第一连接链路发生故障、且所述第二控制逻辑模块监测到所述第二QPI接口模块与所述第二CPU之间的第三连接链路发生故障时,
所述第一控制逻辑模块用于,将所述第一连接链路的故障信息通过所述第一SerDes接口模块中所述新增的数据通道发送至所述第二FPGA;同时,所述第二控制逻辑模块将所述第三连接链路的故障信息通过所述第二SerDes接口模块中所述新增的数据通道发送至所述第一FPGA;
所述第一FPGA和第二FPGA中首先接收到连接链路的故障信息的一方的控制逻辑模块,通过所述新增的数据通道向连接相应CPU的连接链路发送链路控制信号以恢复该连接链路的正常状态;并通过所述新增的数据通道向对端FPGA发送链路控制信号,以控制对端FPGA的控制逻辑模块发起自身对应的连接链路的恢复操作。
9.根据权利要求6所述的CPU间互联容错的实现系统,其特征在于,当所述第一QPI接口模块与所述第一CPU之间的第一连接链路、所述第一SerDes接口模块和所述第二SerDes接口模块之间的第二连接链路发生故障时,所述第二QPI接口模块与所述第二CPU之间的第三连接链路正常时,
所述第一控制逻辑模块用于,通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路保持在复位状态;同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路保持在复位状态,所述第一控制逻辑模块和第二控制逻辑模块通过所述新增的数据通道向第二连接链路发送链路控制信号以恢复第二连接链路的正常状态;当所述第二连接链路恢复正常时,所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
10.根据权利要求6所述的CPU间互联容错的实现系统,其特征在于,当所述第一QPI接口模块与所述第一CPU之间的第一连接链路发生故障时,
所述第一控制逻辑模块用于,将所述第一连接链路的故障信息通过所述第一SerDes接口模块中所述新增的数据通道发送至所述第二FPGA,并向所述第二FPGA发送链路控制信号,使得所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第二QPI接口模块与所述第二CPU之间的第三连接链路处于复位状态;
所述第一控制逻辑模块还用于,继续通过所述第一SerDes接口模块中所述新增的数据通道向所述第二FPGA发送链路控制信号,使得所述第一控制逻辑模块通过所述第一SerDes接口模块中所述新增的数据通道控制所述第一连接链路的连接,同时,所述第二控制逻辑模块通过所述第二SerDes接口模块中所述新增的数据通道控制所述第三连接链路的连接。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/076471 WO2012167461A1 (zh) | 2011-06-28 | 2011-06-28 | Cpu间互联容错的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102763087A CN102763087A (zh) | 2012-10-31 |
CN102763087B true CN102763087B (zh) | 2015-03-11 |
Family
ID=47056378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180001259.2A Active CN102763087B (zh) | 2011-06-28 | 2011-06-28 | Cpu间互联容错的实现方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102763087B (zh) |
WO (1) | WO2012167461A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034613A (zh) * | 2012-12-12 | 2013-04-10 | 深圳市华力特电气股份有限公司 | 一种处理器间的数据通信方法及fpga设备 |
CN106055436A (zh) * | 2016-05-19 | 2016-10-26 | 浪潮电子信息产业股份有限公司 | 一种测试QPI data lane Degrade功能的方法 |
CN107579936A (zh) * | 2017-09-11 | 2018-01-12 | 北京腾凌科技有限公司 | 报文传输方法、控制器及存储系统 |
CN107515601A (zh) * | 2017-09-22 | 2017-12-26 | 北京腾凌科技有限公司 | 控制装置及方法 |
CN113246117B (zh) * | 2020-02-11 | 2023-08-22 | 株式会社日立制作所 | 一种机器人的控制方法、设备及楼宇管理系统 |
CN117493259B (zh) * | 2023-12-28 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种数据存储系统、方法及服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634959B (zh) * | 2009-08-21 | 2011-05-04 | 北京航空航天大学 | 一种基于嵌入式cpu的双机冗余容错系统 |
CN101819556B (zh) * | 2010-03-26 | 2013-06-12 | 北京经纬恒润科技有限公司 | 一种信号处理板 |
CN101833491B (zh) * | 2010-04-26 | 2012-10-24 | 浪潮电子信息产业股份有限公司 | 一种节点互连系统链路检测电路的设计与fpga实现方法 |
-
2011
- 2011-06-28 CN CN201180001259.2A patent/CN102763087B/zh active Active
- 2011-06-28 WO PCT/CN2011/076471 patent/WO2012167461A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2012167461A1 (zh) | 2012-12-13 |
CN102763087A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763087B (zh) | Cpu间互联容错的实现方法及系统 | |
CN103455005B (zh) | 一种控制器冗余及切换方法 | |
CN1863081B (zh) | 基板管理控制器的管理系统和方法 | |
CN101977139B (zh) | 路由转发实现装置、方法及交换设备 | |
CN101710314B (zh) | 高速外围部件互连交换控制器及其实现方法 | |
CN104407556B (zh) | 一种热备冗余的模块切换装置 | |
CN102724093B (zh) | 一种atca机框及其ipmb连接方法 | |
CN1909559B (zh) | 基于快速外围组件互连的接口板及其切换主控板的方法 | |
CN106713184A (zh) | 一种双冗余数据交换装置 | |
CN111427824B (zh) | 串口通信电路 | |
CN103560955A (zh) | 冗余设备切换方法及装置 | |
CN112019457B (zh) | 一种基于国产化srio的高速交换装置 | |
CN104917700A (zh) | 一种管理单元和交换单元双冗余的交换机 | |
US8909979B2 (en) | Method and system for implementing interconnection fault tolerance between CPU | |
CN113032187A (zh) | 一种高速双机热备冗余通讯方法 | |
CN105763488B (zh) | 数据中心汇聚核心交换机及其背板 | |
CN109995681B (zh) | 一种单芯片实现双主控主备切换的装置及方法 | |
CN204633800U (zh) | 一种管理单元和交换单元双冗余的交换机 | |
CN115268339A (zh) | 一种三余度综合控制系统和控制方法 | |
CN114095462B (zh) | 一种雷达处理机srio通信系统的容错方法及系统 | |
CN108733610B (zh) | 一种交换板及刀片服务器 | |
CN102880583A (zh) | 一种多路服务器动态链路配置装置和方法 | |
CN114138354A (zh) | 一种支持multihost的板载OCP网卡系统及服务器 | |
CN202949446U (zh) | 一种适用于远控系统的高可靠高实时性环形网络拓扑结构 | |
CN107395422B (zh) | 一种多机框管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |