CN103098428B - 一种实现pcie交换网络的报文传输方法、设备和系统 - Google Patents
一种实现pcie交换网络的报文传输方法、设备和系统 Download PDFInfo
- Publication number
- CN103098428B CN103098428B CN201280001718.1A CN201280001718A CN103098428B CN 103098428 B CN103098428 B CN 103098428B CN 201280001718 A CN201280001718 A CN 201280001718A CN 103098428 B CN103098428 B CN 103098428B
- Authority
- CN
- China
- Prior art keywords
- tlp
- message
- tlp message
- peic
- pcie
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种高速外围组件互连接口控制单元。一种高速外围组件互连接口控制单元,包括PCI到PCI桥P2P模块,用于接收来自于根联合体RC或端点设备EP的第一事务层包TLP报文,转发所述第一TLP报文给可靠性TLP传输RTT模块处理;所述可靠TLP传输模块,用于根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC,从而实现了PCIE交换双平面组网连接时TLP报文的可靠传输,提升了采用PCIE交换的系统的可靠性。本发明实施例还公开了一种PCIE交换网络的报文传输方法、系统和存储介质。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及实现高速外围组件互连(PeripheralComponentInterconnectExpress,简称PCIE)交换网络的报文传输方法、设备、系统和存储介质。
背景技术
随着计算机和通信技术的进一步发展,新一代的输入/输出(Input/Output,简称I/O)接口大量涌现,比如千兆以太网(GigabitEthernet,简称GE)、万兆以太网(10GigabitEthernet,简称10GE)的以太网技术、4G/8G的光纤通道(FibreChannel,简称FC)技术,I/O接口速率大幅提高,传统的外围组件互连(PeripheralComponentInterconnect,简称PCI)总线的带宽已经无力应付计算系统内部大量高带宽并行读写的要求,PCI总线也成为系统性能提升的瓶颈,于是出现了PCIE总线。PCIE总线能够通过多通道(X1/X2/X4/X8/X16/X32)提供极高的带宽来满足系统的需求。
PCIE采用点对点的通信模式,从根联合体(RootComplex,简称RC)到端点设备(Endpoint,简称EP),是一种树形网络结构,传输层基于事务层包(TransactionLayerPacket,简称TLP)报文进行数据交换。PCIE作为单板内部总线应用时,简单的树形结构就足够保证系统的可靠性,而且PCIE总线发生故障时,影响的范围也仅限制在单板内部。随着计算、网络和存储架构发生变化,PCIE作为这些部件之间的交换网络显示出优势,如图1所示,图形处理单元(GraphicsProcessUnit,简称GPU)、聚合网络适配器(ConvergeNetworkAdaptor,简称CNA)、固态硬盘(Solid-StateDisk,简称SSD)、视频加速部件等提供虚拟化技术,通过PCIE交换可在中央处理单元(CentralProcessUnit,简称CPU)之间或者虚拟机(VirtualMachine,简称VM)之间实现GPU、CNA、SSD等的资源共享,提高系统资源的利用率。当GPU/CNA/SSD/视频加速部件/PCIE交换部件或者PCIE链路发生故障时,由于PCIE规范定义的树形交换结构,可能导致所有CPU产生异常,极大降低系统可靠性。
如上所述,由于PCIE现有树形结构的组网方式,系统可靠性无法满足应用需求。
发明内容
有鉴于此,本发明实施例提供了一种实现高速外围组件互连(PeripheralComponentInterconnectExpress,简称PCIE)交换网络的报文传输方法、设备、系统和存储介质,实现在PCIE双平面交换网络时,进行报文传输。
第一方面,本发明实施例提供了一种高速外围组件互连接口控制器PEIC,包括:
PCI到PCI桥P2P模块,用于接收来自于根联合体RC或端点设备EP的第一事务层包TLP报文,转发所述第一TLP报文给可靠性TLP传输RTT模块处理;
所述可靠TLP传输模块,用于根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC;
所述可靠TLP传输模块包括:
TLP报文分发模块,用于根据接收的所述第一TLP报文查找地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第一TLP报文放入TLP传输队列,其中,所述TLP传输队列与所述第一TLP报文的目的PEIC相对应;
发送模块,用于封装所述TLP传输队列中的所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号SEQUENCE,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述SPEIC和所述SEQUENCE选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC。
在第一方面的第一种可能的实现方式中,
所述可靠TLP传输模块,还用于封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,以便所述第一TLP报文的目的PEIC根据所述源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收,其中,所述TLP报文发送序号是所述源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同源PEIC编号和相同所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中:
所述发送模块,还用于封装所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号SEQUENCE,以便所述目的PEIC根据所述SPEIC和所述SEQUENCE对所述主备PCIE交换单元转发的所述第一TLP报文进行选收,其中,所述TLP报文发送序号是所述源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据所述SPEIC和所述SEQUENCE对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同SPEIC和相同SEQUENCE的所述第一TLP报文仅接收先到达的所述第一TLP报文。
结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述可靠TLP传输模块还包括:
接收模块,用于选收所述主备PCIE交换单元发送的第二TLP报文,将接收的所述第二TLP报文发送给所述P2P模块,由所述P2P模块转给所述第二TLP报文的目的RC或目的EP。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述接收模块用于选收所述主备PCIE交换单元发送的第二TLP报文,具体为:
所述接收模块,用于接收所述主备PCIE交换单元发送的所述第二TLP报文,针对自定义TLP前缀中携带相同的源PEIC编号SPEIC和相同TLP报文发送序号SEQUENCE的所述第二TLP报文中,只接收第一个收到的所述第二TLP报文,丢弃后收到的所述第二TLP报文。
结合第一方面的第二至第五种任一可能的实现方式,在第六种可能的实现方式中,所述可靠TLP传输模块还包括:
TLP传输队列管理模块,用于维护管理各TLP传输队列的TLP报文发送序号和TLP报文发送链路,所述TLP传输队列的TLP报文发送序号为向所述传输队列对应的目的PEIC发送的TLP报文发送序号,所述TLP传输队列的TLP报文发送链路为向所述传输队列对应的目的PEIC的TLP报文发送链路。
第二方面,本发明实施例提供了一种高速外围组件互连接口控制器PEIC,包括:
PCI到PCI桥P2P模块,用于接收来自于根联合体RC或端点设备EP的第三事务层包TLP报文,转发所述第三TLP报文给可靠性TLP传输RTT模块处理;
所述可靠性TLP传输RTT模块,用于根据接收的所述第三TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第三TLP报文给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器接收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC且根据接收到的所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回第一确认消息TLP报文,并用于在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,重新发送所述第三TLP报文,其中,所述返回的第一确认消息TLP报文的自定义端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;
所述可靠TLP传输模块包括:
TLP报文分发模块,用于根据接收的所述第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第三TLP报文放入所述TLP传输队列,其中,所述TLP传输队列与所述第三TLP报文的目的PEIC相对应;
发送模块,用于封装所述TLP传输队列中的所述第三TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器根据所述源PEIC编号SPEIC和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC且根据源PEIC编号和TLP报文发送序号对接收到的TLP报文返回所述第一确认消息TLP报文;并用于在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,重新发送所述第三TLP报文;其中,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号;
接收模块,用于所述接收主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文,并传递给确认模块;
所述确认模块,用于根据所述第一确认消息TLP报文中携带的TLP报文的发送序号信息和源PEIC编号,通知TLP传输队列管理模块删除TLP传输队列中已确认的第三TLP报文;
所述TLP传输队列管理模块,用于根据所述确认模块的通知删除所述TLP传输队列中已确认的所述第三TLP报文。
在第二方面的第一种可能的实现方式中,
所述RTT模块,还用于封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,并通过所述发送链路发送封装后的所述第三TLP报文给所述PCIE交换单元,以便所述第三TLP报文的目的PEIC根据接收到的所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回所述第一确认消息TLP报文,所述返回的第一确认消息TLP报文的自定义端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号,其中,所述第三TLP报文中的TLP报文发送序号是所述第三TLP报文的源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述第一确认消息TLP报文中的确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述第三TLP报文的源PEIC的TLP报文发送序号。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中:
发送模块,还用于封装所述第三TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,并通过所述TTQ的发送链路发送封装后的所述第三TLP报文给所述PCIE交换单元,以便所述第三TLP报文的目的PEIC根据源PEIC编号和TLP报文发送序号对接收到的TLP报文返回第一确认消息TLP报文,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,所述TLP报文发送序号是所述源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述源PEIC的TLP报文发送序号。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中:
所述TLP传输队列管理模块,还用于维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
结合第二方面的第一至第三种任一可能的实现方式,在第四种可能的实现方式中:
所述接收模块,还用于接收从所述PCIE交换单元发送的第四TLP报文,判断是否是确认消息TLP报文,如果不是确认消息TLP报文,则将接收的所述第四TLP报文缓存到与所述第四TLP报文的源PEIC对应的TLP确认序列TAS中;
P2P模块,还用于获取所述TLP确认序列TAS中的所述第四TLP报文,转发给所述第四TLP报文的目的RC/EP。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述可靠TLP传输模块还包括:
TLP确认序列管理模块,用于在TLP确认序列收到所述第四TLP报文后,通知所述确认模块给所述第四TLP报文的源PEIC返回确认消息TLP报文;
则,所述确认模块,还用于产生第二确认消息TLP报文,缓存到所述第四TLP报文的源PEIC对应的TLP传输队列中,以便由所述发送模块进行调度发送。
结合第二方面的第二至五种任一可能的实现方式,在第六种可能的实现方式中,所述可靠TLP传输模块还包括:
心跳模块,用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,通知所述TLP发送队列管理模块更新所述返回检测应答TLP报文的目的PEIC相应的TTQ的发送链路。
则,TLP传输队列管理模块,还用于根据所述心跳模块的通知更新所述TLP传输队列的发送链路。
第三方面,本发明实施例提供了一种高速外围组件互连交换网络的报文传输方法,包括:
接收来自于RC或EP的第一TLP报文;
根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC;
所述根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC,具体为:
根据接收的所述第一TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第一TLP报文放入TLP传输队列,其中,所述TLP传输队列与所述第一TLP报文的目的PEIC相对应;
封装所述TLP传输队列中的所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC。
在第三方面的第一种可能的实现方式中,所述通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元前,所述方法还包括:
封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,以便所述目的PEIC根据所述源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收,其中,所述TLP报文发送序号是所述第一TLP报文的源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同源PEIC编号和相同所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
结合第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
所述第一TLP报文的目的PEIC针对自定义TLP前缀中携带相同的所述源PEIC编号和所述TLP报文发送序号的所述第一TLP报文,只接收第一个收到的所述第一TLP报文,丢弃后收到的所述第一TLP报文。
结合第三方面的第一至第三种任一可能的实现方式,在第四种可能的实现方式中,还包括:
维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路,每发送一个TLP报文,相应TLP传输队列的TLP报文发送序号加1;
维护期望接收的其他PEIC发送的TLP报文发送序号,每接收一个TLP报文,期望接收的相应的源PEIC发送的TLP报文发送序号加1。
第四方面,本发明实施例提供了一种高速外围组件互连交换网络的报文传输方法,包括:
接收来自于RC或EP的第三TLP报文。
根据接收的所述第三TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第三TLP报文给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器根据所述源PEIC编号和TLP报文发送序号选收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC,且根据所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回第一确认消息TLP报文,并在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,通过重新发送所述第三TLP报文;
其中,所述第一确认消息TLP报文为确认收到所述第三TLP报文的报文,所述第一确认消息TLP报文的端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;
所述根据接收的所述第三TLP报文确定与所述主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路发送所述第三TLP报文给所述主备PCIE交换单元,具体为:
根据接收的所述第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第三TLP报文放入所述TLP传输队列,其中,所述TLP传输队列与所述第三TLP报文的目的PEIC相对应;
封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述TLP传输队列的发送链路将所述第三TLP报文发送给所述主备PCIE交换单元。
在第四方面的第一种可能的实现方式中,所述根据接收的所述第三TLP报文确定与PCIE交换单元连接的发送链路,通过所述发送链路发送所述第三TLP报文给所述PCIE交换单元,具体为:
根据接收的所述第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第三TLP报文放入所述TLP传输队列,其中,所述TLP传输队列与所述第三TLP报文的目的PEIC相对应;
通过所述TLP传输队列的发送链路将所述第三TLP报文发送给所述PCIE交换单元。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
接收所述PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的第一确认消息TLP报文;
根据所述第一确认消息TLP报文中携带的TLP报文的发送序号和源PEIC编号,删除所述TLP传输队列中已确认的所述第三TLP报文。
结合第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
封装所述第三TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,以便所述第三TLP报文的目的PEIC根据所述第三TLP报文中的源PEIC编号和TLP报文发送序号对接收到的所述第三TLP报文返回第一确认消息TLP报文,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,所述TLP报文发送序号是所述源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述源PEIC的TLP报文发送序号。
结合第四方面的第二种可能的实现方式,在第四种可能的实现方式中,在所述接收所述PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文之前,还包括:
接收到从所述PCIE交换单元发送的第四TLP报文,根据所述第四TLP报文的类型确认是否是所述第一确认消息TLP报文,如果不是所述第一确认消息TLP报文,则将接收的所述第四TLP报文转发给所述第四TLP报文的目的RC或目的EP。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
给所述第四TLP报文的源PEIC返回第二确认消息TLP报文。
结合第四方面的第三至第五任一可能的实现方式,在第六种可能的实现方式中,还包括:
维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
结合第四方面的第三至第六可能的实现方式,在第七种可能的实现方式中,还包括:
每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,更新相应TLP传输队列的发送链路。
第五方面,本发明实施例提供了一种高速外围组件互连交换网络报文传输系统,包括:
至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每一个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第一PCIE节点设备,用于发送第一TLP报文给相连的所述至少两个PCIE接口控制器中的第一PCIE接口控制器;
所述第一PCIE接口控制器,用于接收所述第一TLP报文,根据接收的所述第一TLP报文确定与所述两个PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述两个PCIE交换单元;所述两个PCIE交换单元中的每个PCIE交换单元,用于转发所述第一TLP报文给所述至少两个PCIE接口控制器中的第二PCIE接口控制器,所述第二PCIE接口控制器为所述第一TLP报文的目的PCIE接口控制器;
所述第二PCIE接口控制器,用于根据所述第一TLP报文中的所述源PEIC编号和所述TLP报文发送序号选收所述PCIE交换单元转发的所述第一TLP报文并发送给所述至少两个PCIE节点设备中的第二PCIE节点设备,所述第二PCIE节点设备为所述第一TLP报文的目的PCIE节点设备;
所述第二PCIE节点设备,用于接收所述第二PCIE接口控制器转发的所述第一TLP报文;
所述第一PCIE接口控制器,用于根据接收的所述第一TLP报文确定与所述两个PCIE交换单元连接的发送链路,具体为:
所述第一PCIE接口控制器,用于根据所述第一TLP报文,查找地址转发表或者ID转发表,确定所述第一TLP报文对应的目的PEIC编号,从而确定所述第一TLP报文对应的与所述两个PCIE交换单元相连的发送链路。
在第五方面的第一种可能的实现方式中,
所述第一PCIE接口控制器,还用于封装所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号和TLP报文发送序号;
所述第二PCIE接口控制器,还用于根据所述第一TLP报文中的所述源PEIC编号和所述TLP报文发送序号对所述PCIE交换单元转发的所述第一TLP报文进行选收;
其中,所述TLP报文发送序号是所述第一PEIC向所述第二PEIC发送的TLP报文的顺序编号,所述根据根据所述第一TLP报文中的所述源PEIC编号和所述TLP报文发送序号对所述第一TLP报文进行选收为针对相同PEIC编号和所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
结合第五方面或第五方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中:
所述PCIE节点设备为根联合体RC或端点设备EP,所述每个PCIE接口控制器与一个RC或至少一个EP连接。
第六方面,本发明实施例提供了一种高速外围组件互连交换网络报文传输系统,包括:
至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第三PCIE节点设备,用于发送第三TLP报文给相连的所述至少两个PCIE接口控制器中的第三PCIE接口控制器;
所述第三PCIE接口控制器,用于接收所述第三TLP报文,根据接收的所述第三TLP报文确定与所述两个PCIE交换单元中的每一个PCIE交换单元连接的发送链路,通过所述发送链路同时发送所述第三TLP报文给所述两个PCIE交换单元,并在超时未收到所述两个PCIE交换单元转发的所述至少两个PCIE接口控制器中的第四PCIE接口控制器返回的第一确认消息TLP报文时,通过与所述两个PCIE交换单元连接的发送链路重新发送所述第三TLP报文给所述第四PCIE接口控制器,其中所述第四PCIE接口控制器为所述第三TLP报文的目的PCIE接口控制器;
所述两个PCIE交换单元,用于转发所述第三TLP报文给所述第四PCIE接口控制器,并转发所述第四PCIE接口控制器返回的所述第一确认消息TLP报文给所述第三PCIE接口控制器;
所述第四PCIE接口控制器,用于根据源PEIC编号SPEIC和TLP报文发送序号选收所述两个PCIE交换单元转发的所述第三TLP报文并发送给所述至少两个PCIE节点设备中的第四PCIE节点设备,所述第四PCIE节点设备为所述第三TLP报文的目的PCIE节点设备,并返回所述第一确认消息TLP报文给所述第三PCIE接口控制器以确认收到所述第三TLP报文;
所述第四PCIE节点设备,用于接收所述第四PCIE接口控制器转发的所述第三TLP报文。
在第六方面的第一种可能的实现方式中,所述第三PEIC,还用于接收所述PCIE交换单元转发的所述第四PEIC返回的所述第一确认消息TLP报文,并根据所述第一确认消息TLP报文中携带的TLP报文的发送序号信息和源PEIC编号,删除已确认的所述第三TLP报文。
结合第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中:
所述第三PEIC,还用于封装TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,并通过所述发送链路发送封装后的所述第三TLP报文给所述PCIE交换单元;
所述第四PEIC,还用于根据所述第三TLP报文携带的源PEIC编号和TLP报文发送序号返回所述第一确认消息TLP报文,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,所述TLP报文发送序号是所述第三PEIC到所述第四PEIC发送的TLP报文的顺序编号,所述确认的TLP报文发送序号是所述第四PEIC已接收的所述第三PEIC的TLP报文发送序号。
结合第六方面的第二种可能的实现方式,在第三种可能的实现方式中:
所述第三PEIC,还用于维护到其他PEIC的TLP报文发送序号和TLP报文发送链路。
结合第六方面或第六方面的第一至第三种可能的实现方式,在第四种可能的实现方式中:
所述每个PCIE接口控制器,还用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并更新在规定时间内没收到返回的检测应答TLP报文的PEIC的对应发送链路。
结合第六方面或第六方面的第一至第四种任一可能的实现方式,在第五种可能的实现方式中:
所述PCIE节点设备为根联合体RC或端点设备EP,所述每个PCIE接口控制器与一个RC或至少一个EP连接。
第七方面,本发明实施例还提供了一种高速外围组件互连接口控制器PEIC,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述高速外围组件互连接口控制器PEIC运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述高速外围组件互连接口控制器PEIC执行上述第三方面任一方法。
第八方面,本发明实施例还提供了一种高速外围组件互连接口控制器PEIC,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述高速外围组件互连接口控制器PEIC运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述高速外围组件互连接口控制器PEIC执行上述第四方面任一方法。
第九方面,本发明实施例还提供了一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使高速外围组件互连接口控制器PEIC执行上述第三方面任一方法。
第十方面,本发明实施例还提供了一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使高速外围组件互连接口控制器PEIC执行上述第三方面任一方法。
通过上述方案,本发明实施例提供的PCIE交换网络的报文传输方法、设备、系统和存储介质,通过在与主备PCIE交换单元连接的发送链路上同时发送第一TLP报文给主备PCIE交换单元,由第一TLP报文的目的PEIC选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC,或者通过与PCIE交换单元连接的发送链路上发送第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,目的PEIC转发给该第三TLP报文的目的EP或目的RC,并返回第一确认消息TLP报文给源PEIC。源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。从而实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中PCIE交换应用的系统架构图;
图2为现有PCIE规范的树形网络的网络结构图;
图3为本发明实施例的PCIE网络的网络结构图;
图4为本发明实施例1的PCIE接口控制器的结构图;
图5为本发明实施例2的PCIE接口控制器的结构图;
图6为本发明实施例的TLP报文的地址转发表;
图7为本发明实施例的TLP报文的ID转发表;
图8为本发明实施例的TLP传输队列与PCIE接口控制器的连接关系图;
图9为本发明实施例的TLP报文格式图;
图10为本发明实施例3的PCIE接口控制器的结构图;
图11为本发明实施例4的PCIE接口控制器的结构图;
图12为本发明实施例5的PCIE接口控制器的结构图;
图13为本发明实施例的TLP传输队列的滑动窗口示意图;
图14为本发明实施例6的PCIE接口控制器的结构图;
图15为本发明实施例7的PCIE交换网络报文传输的方法流程图;
图16为本发明实施例8的PCIE交换网络报文传输的方法流程图;
图17为本发明实施例9的PCIE交换网络报文传输的方法流程图;
图18为本发明实施例10的PCIE交换网络报文传输的方法流程图;
图19为本发明实施例11的PCIE交换网络报文传输的系统图;
图20为本发明实施例12的PCIE交换网络报文传输的系统图;
图21为本发明实施例13的PCIE接口控制器结构图;
图22为本发明实施例14的PCIE接口控制器结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为现有PCIE规范的树形网络的结构图,如图所示,左边是PCIE应用连接的示意图,从根联合体RC到端点设备EP是一种树形网络结构,RC可直接连接EP或者连接一个/多个交换器,PCIE采用点对点的通信模式,每个RC到每个EP/交换器之间仅有一个路径。右边是PCIE交换器的内部结构图,每个PCIE交换器都有一个唯一的上行端口和若干个下行端口,交换器的每个端口在内部有一个虚拟的PCI到PCI(PCItoPCI,简称P2P)桥。由于PCIE规范定义的点对点的通信模式和树形交换结构,其无法支持双平面组网。
图3为本发明实施例应用的PCIE网络结构图,如图3所示,在RC/EP与PCIE交换单元之间增加一个PCIE接口控制器(PCIEInterfaceController,简称PEIC),PEIC对内连接RC/EP,对外连接主备PCIE交换单元,实现双平面组网,以及故障检测和倒换等功能;PCIE交换单元是基于PCIE规范的交换单元,完成PEIC之间的数据交换,配置主备两个平面,如图3中的PCIE交换单元1和PCIE交换单元2分别表示PCIE交换的主备平面;EP即PCIE规范中定义的标准功能设备,例如,以太网卡、FC网卡、无限带宽(InfiniBand,简称IB)网卡、低价冗余磁盘阵列(RedundantArraysofInexpensiveDisks,简称RAID)卡等。PEIC和EP、RC以及PCIE交换单元都基于PCIE规范进行数据交换。
从图3的网络结构图可以看出,PCIE接口控制器PEIC是RC/EP和PCIE交换单元之间增加的一个部件,PEIC是本发明和现有PCIE规范定义的树形结构的最大区别,通过PEIC实现了基于PCIE交换的双平面组网。
本发明实施例1提供的一个PEIC的结构如图4所示:包括一个P2P桥模块和一个TLP传输(ReliableTLPTransmission,简称RTT)模块,其中,P2P桥是PCIE规范定义的标准点对点桥,实现PCIE的链路层和传输层协议,RC/EP和PEIC之间是标准的PCIE链路。RTT模块主要完成主备PCIE交换单元的链路选择以及从PEIC到任意其它PEIC的TLP报文端到端的可靠传输,从PCIE规范角度看,RTT模块是一个透明模块,RC/EP看到的PCIE树形结构中,PEIC实际上是一个P2P桥,通过RTT,PEIC和PCIE交换单元连接的是一个虚拟P2P,即RC/EP看不到主备PCIE交换单元,而是一个如图2中所示的标准PCIE交换器。
如图4所示的PCIE接口控制器PEIC10,包括PCI到PCI桥模块P2P模块11和可靠TLP传输模块RTT模块12。
P2P模块11,用于接收来自于RC或EP的第一TLP报文,转发该第一TLP报文给可靠性TLP传输模块RTT模块处理;
RTT模块12,用于根据接收的第一TLP报文确定与主备PCIE交换单元连接的发送链路,通过发送链路同时发送第一TLP报文给所述主备PCIE交换单元,以便该第一TLP报文的目的PCIE接口控制器选收所述主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。
优选的,RTT模块12,用于接收到P2P模块11转发的第一TLP报文后,根据TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第一TLP报文对应的目的PEIC编号,从而确定该报文对应的主备PCIE交换单元的发送链路,通过该发送链路同时将该第一TLP报文发送给主备PCIE交换单元。则,主备PCIE交换单元将接收的第一TLP报文发送给目的PEIC,目的PEIC选收相应的报文,例如,接收先到的第一TLP报文,丢弃后到的第一TLP报文。并转发接收到的第一TLP报文给该第一TLP报文的目的EP或目的RC。
进一步的,RTT模块12,还用于封装TLP报文,添加自定义的TLP前缀(Prefix),并通过发送链路同时发送封装后的第一TLP报文给主备PCIE交换单元。其中,TLP报文格式定义如图9所示:根据PCIE规范中定义,TLP报文可包含0或者多个标准或者自定义个TLP前缀,通过TLPPrefix可实现端到端扩展、点对点扩展的参数传递,实现功能扩展。TLPPrefix又分为本地和端到端TLPPrefix。TLPHeader定义了TLP报文的标准头部,DataPayload是TLP的数据部分,TLPDigest是TLP报文的摘要部分,这三个部分都是PCIE规范的标准内容。优选的,本实施例中通过使用自定义端到端TLPPrefix,添加源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE),实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,以便目的PEIC根据SPEIC和SEQUENCE对接收到的TLP报文进行排序和确认,实现对接收的主备PCIE交换单元传递的第一TLP报文进行选收。RTT模块12从两条链路上把第一TLP报文发送给主备两个PCIE交换单元,报文发送后,对应该目的PEIC的TLP报文发送序号(SEQUENCE)加1。目的PEIC选择主备链路中第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,即,具有相同SPEIC和相同SEQUENCE的TLP报文仅接收先到达的,目的PEIC接收到第一TLP报文后发送给该第一TLP报文的目的EP或目的RC,从而完成TLP报文的可靠有序传输。
本发明实施例提供的PCIE接口控制器,通过在与主备PCIE交换单元连接的发送链路上同时发送第一TLP报文给主备PCIE交换单元,由第一TLP报文的目的PEIC选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。从而实现了PCIE交换双平面组网连接时TLP报文的可靠传输,提升了采用PCIE交换的系统的可靠性。
图5为本发明实施例2的PCIE接口控制器的结构图。如同图4所示的实施例1中的PCIE接口控制器,本实施例中的PCIE接口控制器PEIC10,也包括PCI到PCI桥模块P2P模块11和可靠TLP传输模块RTT模块12。
P2P模块11,用于接收来自于RC或EP的第一TLP报文,转发该第一TLP报文给可靠性TLP传输模块RTT模块处理。
如图所示,RTT模块12可以包括:TLP报文分发模块121(DispatchModule,简称DPT),用于根据接收的第一TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第一TLP报文放入TTQ,其中,该TLP传输队列与该第一TLP报文的目的PEIC相对应;发送模块123(SendModule,简称SND),用于将TTQ中的TLP报文,通过该TLP传输队列的发送链路将第一TLP报文同时发送给主备PCIE交换单元,以便该第一TLP报文的目的PCIE接口控制器选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。
优选的,TLP报文分发模块121,用于接收从P2P模块11转发的第一TLP报文,可以根据TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号。
其中的地址转发表可以如图6所示,表中配置了I/O或内存空间的地址范围所对应的目的PCIE接口控制器的编号;ID转发表可以采用如图7所示的格式,表中配置了设备ID所对应的目的PCIE接口控制器的编号,其中的设备ID可以为TLP报文中所包含的总线(Bus)、设备(Device)、功能(Function)的ID。一般的,地址路由的TLP报文(例如,I/O空间或者内存空间的读和写报文)使用操作地址查地址转发表,如果操作地址命中了地址转发表中的某一条表项,则根据该表项的目的PEIC号,将报文加入相应的TTQ进行缓存;ID路由的TLP报文,例如,配置读/写请求报文中包含了请求者ID和访问目的设备的ID,其相应的应答报文就使用原请求报文中的请求者ID查地址转发表,如果命中某一条表项,则根据表中的目的PEIC号将TLP报文加入相应的TTQ进行缓存。地址转发表和ID转发表可以直接配置在RTT模块上,也可以配置在PCIE接口控制器的其他模块上,由RTT到相应模块获取。
如图5中所示,在RTT模块12中还包括多个TLP传输队列,如图中的TLP传输队列1—TLP传输队列n,每个TLP传输队列TTQ对应一个目的PEIC,例如,图8所示,PCIE接口控制器1的三个TLP传输队列:TLP传输队列1/TLP传输队列2/TLP传输队列3分别对应三个目的PEIC:PCIE接口控制器2/PCIE接口控制器3/PCIE接口控制器4,例如,PCIE接口控制器1接收到发送给PCIE接口控制器2的TLP报文,则根据对应关系缓存到TLP传输队列1中。TTQ和PEIC的对应关系可以根据设备的变化进行动态增加和删除,例如网络中新加入一个PEIC设备,就需要增加一个对应的TTQ。进一步的,每个TTQ中保存有到该源PEIC到目的PEIC的TLP报文发送序号(SEQUENCE)和TLP报文发送链路,其中,PEIC的TLP报文发送序号是指向该目的PEIC发送的TLP报文的顺序号,该TLP传输队列TTQ每发送1个TLP报文,该TTQ的PEIC的TLP报文发送序号加1。TLP报文发送链路是指该队列发送TLP报文到目的PEIC的通信链路,具体可以由TTQ进行维护并保存相关信息。
进一步的,RTT模块12还包括:TLP传输队列管理模块122,用于维护管理各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
优选的,发送模块123,调度TLP传输队列TTQ中的第一TLP报文,封装TLP报文,添加自定义的TLP前缀(Prefix),并通过该TTQ的发送链路同时发送封装后的第一TLP报文给主备PCIE交换单元。其中,TLP报文格式定义如图9所示:根据PCIE规范中定义,TLP报文可包含0或者多个标准或者自定义个TLP前缀,通过TLPPrefix可实现端到端扩展、点对点扩展的参数传递,实现功能扩展。TLPPrefix又分为本地和端到端TLPPrefix。TLPHeader定义了TLP报文的标准头部,DataPayload是TLP的数据部分,TLPDigest是TLP报文的摘要部分,这三个部分都是PCIE规范的标准内容。优选的,本实施例中通过使用自定义端到端TLPPrefix,添加源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE),实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC和SEQUENCE对接收到的TLP报文进行排序和确认,实现对接收的主备PCIE交换单元传递的第一TLP报文进行选收。发送模块从两条链路上把第一TLP报文发送给主备两个PCIE交换单元,报文发送后,该TTQ的TLP报文发送序号(SEQUENCE)加1。目的PEIC选择主备链路中第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,即,具有相同SPEIC和相同SEQUENCE的TLP报文仅接收先到达的,目的PEIC接收到第一TLP报文后发送给该第一TLP报文的目的EP或目的RC,从而完成TLP报文的可靠有序传输。
进一步的,P2P模块11,还用于在转发该第一TLP报文给可靠性TLP传输RTT模块处理之前,根据所接收的TLP报文类型,以及报文中的目的设备ID或者访问目的地址,判断该第一TLP报文是否转发给可靠性TLP传输模块RTT模块处理。P2P模块根据所接收的报文类型(地址路由还是ID路由)查相应的地址转发表或ID转发表,对于地址转发表或ID转发表中配置了目的PEIC,表明需要转发给可靠性TLP传输模块RTT模块处理的,则转给RTT处理。优选的,本地地址或本地ID的TLP报文,则可以直接返回给RC或EP,无需转发给RTT处理。
本发明实施例提供的PCIE接口控制器,根据TLP报文的目的PEIC确定TLP报文传输队列,并通过相应TLP传输队列的发送链路将TLP报文同时发送给主备PCIE交换单元,由主备PCIE交换单元转发给第一TLP报文的目的PEIC,目的PEIC根据第一TLP报文的自定义端到端TLP前缀中携带的源PEIC编号和TLP报文发送序号进行选收,将第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,从而完成TLP报文的可靠传输,实现了PCIE的双平面组网的可靠传输,提升了采用PCIE交换的系统的可靠性。
图10为本发明实施例3的PCIE接口控制器的结构图。在图5所示的实施例2的PCIE接口控制器基础上,本发明实施例的可靠TLP传输模块RTT模块12还包括:
接收模块124,用于选收主备PCIE交换单元发送的第二TLP报文,将接收的第二TLP报文发送给P2P模块,由P2P模块转给该第二TLP报文的目的RC/EP。
优选的,接收模块124,当该PEIC作为TLP报文的接收端(目的PEIC)时,可以根据主备PCIE交换单元发送的第二TLP报文中的自定义端到端TLP前缀中所携带的SPEIC和SEQUENCE进行选收,即,在两条链路上先后收到相同SPEIC和相同SEQUENCE的第二TLP报文,则只选择第一个收到的第二TLP报文经过P2P模块发送给该第二TLP报文的目的RC/EP,后收到的第二TLP报文丢弃。
优选的,如图10中所示,在RTT模块12中还可以包括多个TLP确认序列TAS(TLPAcknowledgeSequence),每个TLP确认序列TAS对应一个对端PEIC(报文的源PEIC),也即对应一个对端PEIC发送报文给本端的TLP传输队列,即每个与该PEIC相连接的PEIC均有一个TLP传输队列和一个TAS相对应,TTQ用于发送,TAS用于接收。每个TAS有一个期望序号,代表着从对应的对端PEIC(报文的源PEIC)接收的下一个TLP报文应携带的SEQUENCE。例如,TLP接口控制器1的TLP确认序列1对应TLP接口控制器2的TLP传输队列1,则PEIC1的TAS1中记录着期望从源端PEIC2接收到的PEIC2的TTQ1发送的TLP报文携带的SEQUENCE,如PEIC1的TAS1的期望序号为3,则表明PEIC1计划从源端PEIC2接收的下一个TLP报文的SEQUENCE应为3。TAS和TTQ的对应关系可以根据TTQ的变化进行动态增加和删除,例如网络中新加入一个PEIC设备,就需要增加一个对应的TTQ,同样要增加一个TAS。优选的,接收模块124接收到第二TLP报文,根据第二TLP报文中自定义TLPPrefix中的SPEIC确认对应的TAS,将第二TLP报文中的SEQUENCE和TAS中的期望序号对比,相等则把第二TLP报文发送给P2P模块,以便由P2P模块转发该第二TLP报文给目的RC/EP,并将该TAS的期望序号加1,相反,则丢弃TLP报文,从而实现了对于相同SPEIC和相同SEQUENCE的TLP报文仅接收一次,也保障了顺序逐一接收,实现了双平面的可靠接收。
进一步的,RTT模块12还包括:TLP确认序列管理模块125,用于维护管理各TLP确认序列的期望序号。
本发明实施例提供的PCIE接口控制器,选收主备PCIE交换单元发送的第二TLP报文,只选择第一个收到的第二TLP报文并经过P2P模块发送给该第二TLP报文的目的RC/EP,后收到的第二TLP报文丢弃。从而完成TLP报文可靠有序的双发选收传输,实现了PCIE的双平面组网,提升了采用PCIE交换的系统的可靠性。
图11为本发明实施例4的PCIE接口控制器的结构图。与实施例1-3类似,本实施例中的PCIE接口控制器,包括一个P2P桥模块和一个TLP传输(ReliableTLPTransmission,简称RTT)模块,其中,P2P桥是PCIE规范定义的标准点对点桥,实现PCIE的链路层和TLP层协议,RC/EP和PEIC之间是标准的PCIE链路。RTT模块主要完成主备PCIE交换单元的链路选择以及从PEIC到任意其它PEIC的TLP报文端到端的可靠传输,从PCIE规范角度看,RTT模块是一个透明模块,RC/EP看到的PCIE树形结构中,PEIC实际上是一个P2P桥,通过RTT,PEIC和PCIE交换单元连接的是一个虚拟P2P,即RC/EP看不到主备PCIE交换单元,而是一个如图2中所示的标准PCIE交换器。
如图11所示的PCIE接口控制器PEIC20,包括PCI到PCI桥模块P2P模块21和可靠TLP传输模块RTT模块22。
PCI到PCI桥模块P2P模块21,用于接收来自于RC或EP的第三TLP报文,转发该第三TLP报文给可靠性TLP传输模块RTT模块处理。
可靠性TLP传输RTT模块22,用于根据接收的第三TLP报文确定与PCIE交换单元连接的发送链路,通过该发送链路发送第三TLP报文给PCIE交换单元,以便第三TLP报文的目的PCIE接口控制器接收PCIE交换单元转发的第三TLP报文并发送给该第三TLP报文的目的EP或目的RC,并在超时未收到PCIE交换单元转发的该第三TLP报文的目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。
优选的,RTT模块22,用于接收到P2P模块21转发的第三TLP报文后,根据TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第三TLP报文对应的目的PEIC编号,从而确定该报文对应的PCIE交换单元的发送链路,通过该发送链路将该第三TLP报文发送给PCIE交换单元。则,PCIE交换单元将接收的第三TLP报文发送给目的PEIC,以便目的PEI接收第三TLP报文,并转发给该第三TLP报文的目的EP或目的RC,同时目的PEIC会返回该第三TLP报文的第一确认消息TLP报文,并经过PCIE交换单元转发给该RTT模块22,以表明收到了该第三TLP报文。RTT模块22会在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路(在双平面情况下,此时的PCIE交换单元连接的发送链路可能与前一次发送第三TLP报文时不同)重新发送该第三TLP报文。
进一步的,RTT模块22,还用于封装第三TLP报文,在该第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,并通过所述发送链路发送封装后的所述第三TLP报文给所述PCIE交换单元,以便所述第三TLP报文的目的PEIC根据接收到的所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回所述第一确认消息TLP报文,所述返回的第一确认消息TLP报文的自定义端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;其中,所述第三TLP报文中的TLP报文发送序号是所述第三TLP报文的源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述第一确认消息TLP报文中的确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述第三TLP报文的源PEIC的TLP报文发送序号。
现有PCIE规范中TLP报文可靠传输通过点对点的确认机制,例如,图2中的交换器1把TLP报文发送给交换器2,交换器1会保存TLP报文,直到交换机2接收到正确的TLP报文并返回确认信息给交换机1后,交换机1才会删除相应的TLP报文。但是,对于RC发给交换器2的TLP报文,如果交换器1和交换器2之间的链路发生故障,RC已经成功发送给交换器1的报文,会由于交换器1和交换器2之间的链路故障而被丢弃,但RC因为收到了交换器1的确认信息而认为已经成功发送了。这种故障导致RC无法正确感知TLP报文的传输结果,而造成系统异常或数据操作丢弃。本发明实施例提供的PCIE接口控制器PEIC,通过与PCIE交换单元连接的发送链路上发送第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,目的PEIC转发给该第三TLP报文的目的EP或目的RC,并返回第一确认消息TLP报文给源PEIC。源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。从而实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
图12为本发明实施例5的PCIE接口控制器的结构图。如图所示,进一步的,可靠性TLP传输RTT模块22,包括:
TLP报文分发模块221,用于根据接收的第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第三TLP报文放入TTQ,其中,该TLP传输队列与该第三TLP报文的目的PEIC相对应;
发送模块223,用于调度TLP传输队列TTQ,通过该TLP传输队列的发送链路将第三TLP报文发送给PCIE交换单元,以便该第三TLP报文的目的PCIE接口控制器接收PCIE交换单元转发的该第三TLP报文并发送给该第三TLP报文的目的EP或目的RC;并在超时未收到PCIE交换单元转发的该第三TLP报文的目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。
接收模块224,用于接收PCIE交换单元转发的第三TLP报文的目的PEIC返回的第一确认(ACK)消息TLP报文,并传递给确认模块226;
确认模块226,用于根据第一确认消息TLP报文中携带的TLP报文的发送序号(SEQUENCE)信息和源PEIC编号(SPEIC),通知TLP传输队列管理模块222删除TLP传输队列中已确认的第三TLP报文。
TLP传输队列管理模块222,用于根据确认模块226的通知删除TLP传输队列中已确认的第三TLP报文。
优选的,TLP报文分发模块221,用于接收从P2P模块21转发的第三TLP报文,可以根据TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号,在相应的TTQ中缓存收到的第三TLP报文。其中的地址转发表可以如图6所示,ID转发表可以采用如图7所示的格式,具体的内容和配置方法与前面实施例2、3中描述一致,这里不再赘述。
如图12中所示,在RTT模块22中还包括多个TLP传输队列,本实施例中TLP传输队列的功能和结构与实施例2中图5所示的TLP传输队列一致,具体描述可以参考相关部分,这里也不再赘述。
优选的,发送模块223,调度TLP传输队列TTQ中的TLP报文,封装TLP报文,添加自定义的TLP前缀(Prefix),并通过该TTQ的发送链路发送封装后的第三TLP报文给PCIE交换单元。其中,TLP报文格式定义如图9所示:具体结构的相关定义可参看前面实施例2、3中对于图9中的TLP报文格式的介绍,本处不再赘述。优选的,本实施例中通过使用TLP报文中的自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC+SEQUENCE对接收到的TLP报文进行排序和确认,返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,确认消息报文中的SEQUENCE字段携带的是确认的TLP报文发送序号,表明目的PEIC已接收的该源PEIC的TLP报文发送序号。发送模块通过TTQ的发送链路把第三TLP报文发送给PCIE交换单元,报文发送后,该TTQ的TLP报文发送序号(SEQUENCE)加1。
进一步的,TLP传输队列管理模块222,还用于维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。TLP传输队列管理模块用于维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路,其中,各TLP传输队列的TLP报文发送序号表示该TTQ已发送的TLP报文发送的顺序号,TLP报文发送链路表明该TTQ的主备用发送链路,以便使用主用发送链路进行TLP报文发送。
优选的,TTQ发送TPL报文可以采用滑动窗口,从而可以限制每个TTQ的并发发送报文个数。TTQ的滑动窗口机制如图13所示,图中的每个带数字的方框代表一个TLP报文,例如,滑动窗口大小为4,即最多同时只能存在4个未被目的PEIC确认的TLP报文,确认模块226接收到目的PEIC返回的TLP确认报文后,根据确认的SEQUENC,把窗口往后移动,例如,当前的窗口中待确认的TLP报文为2、3、4、5,接收到的接收模块转发的确认SEQUENC为2,则滑动窗口往后移动一个,待确认的TLP报文为3、4、5,允许该TTQ再发送一个序号为6的TLP报文,根据PEIC的缓存能力,可配置滑动窗口大小为2—n(n为任意一个整数)。通过设置滑动窗口,可以有效控制每个TTQ的并发发送报文个数,增加了处理的效率,同时又保障了发送和接收的有序性、可靠性。
优选的,第三TLP报文的目的PEIC接收到第三TLP报文,根据第三报文中的源PEIC编号(SPEIC)返回确认TLP报文给源PEIC。当然,也可以收到多个源PEIC的TLP报文后,再发一个确认TLP报文给源PEIC,例如,接收到SPEIC为101的序号为3、4、5的报文,可以只发送一个序号为5的确认TLP报文,表示序号5之前的TLP报文已经全部收到,从而减少确认TLK报文数量。优选的,确认TLP报文可以使用ID路由,目的设备ID为源PEIC的P2P模块的设备ID。确认TLP报文的自定义TLPPrefix中包含源PEIC编号(SPEIC)和确认的TLP报文发送序号(SEQUENCE),其中,确认的TLP报文发送序号(SEQUENCE)为目前收到的该源PEIC最新接收到(一般为最大的,当序号为循环使用时,可能不是最大的)的TLP报文发送序号。接收模块接收到确认TLP报文后,转发给确认模块226,确认模块226根据报文中的确认的TLP报文报文发送序号和SPEIC通知TTQ删除队列中的第三TLP报文。源PEIC的TLP传输队列管理模块根据第一确认消息报文中的确认序号,删除对应TTQ中缓存的TLP报文。一旦PEIC到PCIE交换单元的链路故障或者PCIE交换单元发生故障,TLP报文会被丢弃,对应地,此时源PEIC就无法收到目的PEIC返回的第三TLP的第一确认消息TLP报文,源端PEIC在超时后,通过与PCIE交换单元连接的发送链路重新发送TTQ中缓存的第三TLP报文,而此时可能链路故障或者PCIE交换单元故障已经恢复,或者PEIC的双平面发生了倒换,源端PEIC的发送模块223通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文,保证了源PEIC发送的任何TLP报文都能可靠地发送到目的PEIC。
优选的,确认模块226,还用于根据第一确认消息TLP报文中携带的确认的TLP报文发送序号(SEQUENCE)信息和源PEIC编号(SPEIC),更新相应的TTQ的滑动窗口。
优选的,如图12中所示,在RTT模块22中还可以包括多个TLP确认序列TAS,本实施例中TLP确认序列的结构和设置与实施例3中图10所示的TLP确认序列一致,同样每个TLP确认序列TAS对应一个传输队列。具体的的结构和设置可以参考实施例3中图10相关部分的描述,这里不再赘述。
接收模块224,还用于接收从PCIE交换单元发送的第四TLP报文,并根据TLP报文的类型区分是否是确认消息TLP报文,如果是确认消息TLP报文则转发给确认模块226。如果不是确认消息TLP报文,则将接收的第四TLP报文缓存到与该第四TLP报文的源PEIC对应的TLP确认序列TAS中。
则,P2P模块21,还用于获取TLP确认序列TAS中的第四TLP报文,转发给第四TLP报文的目的RC/EP。
RTT模块22中还包括TLP确认序列管理模块223,用于在TLP确认序列收到第四TLP报文后,通知确认模块226给源PEIC返回确认消息TLP报文。
确认模块226,还用于产生第二确认消息TLP报文,缓存到源PEIC对应的TLP传输队列TTQ中,以便由发送模块进行调度发送。优选的,确认模块226,经过一定的时间间隔发送一个确认消息TLP报文或者是收到一定数量的待确认TLP报文(数量不能大于窗口的个数)后发送一个确认消息TLP报文。
进一步的,P2P模块21,还用于在转发该第三TLP报文给可靠性TLP传输模块RTT模块22处理之前,根据所接收的报文类型,以及报文中的目的设备ID或者访问目的地址,判断该第三TLP报文是否转发给可靠性TLP传输模块RTT模块处理。P2P模块根据所接收的报文类型(地址路由还是ID路由)查相应的地址转发表或ID转发表,对于地址转发表或ID转发表中配置了目的PEIC,表明需要转发给可靠性TLP传输模块RTT模块处理的,则转给RTT处理。优选的,本地地址或本地ID的TLP报文,则可以直接返回给RC或EP,无需转发给RTT处理。
现有PCIE规范中TLP报文可靠传输通过点对点的确认机制,例如,图2中的交换器1把TLP报文发送给交换器2,交换器1会保存TLP报文,直到交换机2接收到正确的TLP报文并返回确认信息给交换机1后,交换机1才会删除相应的TLP报文。但是,对于RC发给交换器2的TLP报文,如果交换器1和交换器2之间的链路发生故障,RC已经成功发送给交换器1的报文,会由于交换器1和交换器2之间的链路故障而被丢弃,但RC因为收到了交换器1的确认信息而认为已经成功发送了。这种故障导致RC无法正确感知TLP报文的传输结果,而造成系统异常或数据操作丢弃。
本发明实施例提供的PCIE接口控制器,通过与PCIE交换单元连接的发送链路上发送携带有源PEIC编号和发送的TLP报文序号的第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,由目的PEIC转发给该第三TLP报文的目的EP或目的RC,并根据源PEIC编号和发送的TLP报文序号返回第一确认消息TLP报文给源PEIC,完成TLP报文的传递。而源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送队列的发送链路重新发送该第三TLP报文,实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
图14为本发明实施例6的PCIE接口控制器的结构图。如图所示,进一步的,可靠性TLP传输RTT模块22,还包括:
心跳模块227,用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,通知TLP发送队列管理模块222更新相应TTQ的发送链路。
TLP传输队列管理模块222,还用于根据心跳模块227的通知更新相应TLP传输队列的发送链路。
优选的,心跳模块227,用于每隔一个时间间隔(可根据网络状况等进行配置,例如,可以在10us—1ms选定一个值)给所有有通信连接的其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,进行主备链路倒换。该规定时间同样可根据网络状况等进行配置,并大于发送定时检测TLP报文后应该接收到检测应答TLP报文的时间,超过该规定时间没能接收到测应答TLP报文则表明到该目的PEIC的通信路由出现了问题,例如链路故障或者PCIE交换单元故障。此时,心跳模块通知TLP发送队列管理模块222更新相应TTQ的发送链路,即在主用链路还是备用链路上发送TLP报文。
本发明实施例通过心跳模块发送检测报文,实现了PEIC之间的链路故障检测,保障了主备平面的自动倒换,进一步保障了PCIE双平面交换网络时的的可靠报文传输。
图15为本发明实施例7的一种PCIE交换网络报文传输的方法流程图。。如图所示,本方法为:
步骤301,接收来自于RC或EP的第一TLP报文;
步骤302,根据接收的第一TLP报文确定与主备PCIE交换单元连接的发送链路,通过发送链路同时发送第一TLP报文给所述主备PCIE交换单元,以便该第一TLP报文的目的PCIE接口控制器选收所述主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。
优选的,PCIE接口控制器根据接收的第一TLP报文确定与主备PCIE交换单元连接的发送链路,具体为:PCIE接口控制器接收到第一TLP报文后,根据TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第一TLP报文对应的目的PEIC编号,从而确定该报文对应的主备PCIE交换单元的发送链路,通过该发送链路同时将该第一TLP报文发送给主备PCIE交换单元。则,主备PCIE交换单元将接收的第一TLP报文发送给目的PEIC,目的PEIC选收第一TLP报文,例如,接收先到的第一TLP报文,丢弃后到的第一TLP报文。并转发接收到的第一TLP报文给该第一TLP报文的目的EP或目的RC。
进一步的,在通过发送链路同时发送给主备PCIE交换单元前,所述方法还包括:封装第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,以便所述目的PEIC根据所述源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收,其中,所述TLP报文发送序号是所述源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同源PEIC编号和相同所述TLP报文发送序号的第一TLP报文仅接收先到达的第一TLP报文。
本发明实施例提供的PCIE双平面交换网络报文传输的方法,PCIE接口控制器PEIC通过在与主备PCIE交换单元连接的发送链路上同时发送第一TLP报文给主备PCIE交换单元,由第一TLP报文的目的PEIC选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。从而实现了PCIE交换双平面组网连接时TLP报文的可靠传输,提升了采用PCIE交换的系统的可靠性。
图16为本发明实施例8的一种PCIE交换网络报文传输的方法流程图。如图所示,
步骤401,接收来自于RC或EP的第一TLP报文;
步骤402,根据接收的第一TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第一TLP报文放入TTQ,其中,该TLP传输队列与该第一TLP报文的目的PEIC相对应;
具体的,PCIE接口控制器根据TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号。
其中的地址转发表可以如图6所示,ID转发表可以采用如图7所示的格式,具体的内容和配置方法与前面实施例2、3中描述一致,这里不再赘述。优选的,地址转发表和ID转发表配置在PCIE接口控制器上。
在PCIE接口控制器中还包括多个TLP传输队列,本实施例中TLP传输队列的功能和结构与实施例2中图5所示的TLP传输队列一致,具体描述可以参考相关部分,这里也不再赘述。
步骤403,将TLP传输队列中的TLP报文,通过该TLP传输队列的发送链路将第一TLP报文同时发送给主备PCIE交换单元,以便该第一TLP报文的目的PCIE接口控制器选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的EP或目的RC。
PCIE接口控制器调度TLP传输队列TTQ中的第一TLP报文,封装TLP报文,添加自定义的端到端TLP前缀(Prefix),并通过该TTQ的发送链路同时发送封装后的第一TLP报文给主备PCIE交换单元。其中,TLP报文格式定义如图9所示:根据PCIE规范中定义,TLP报文可包含0或者多个标准或者自定义个TLP前缀,通过TLPPrefix可实现端到端扩展、点对点的扩展参数传递,实现功能扩展。TLPPrefix又分为本地和端到端TLPPrefix。TLPHeader定义了TLP报文的标准头部,DataPayload是TLP的数据部分,TLPDigest是TLP报文的摘要部分,这三个部分都是PCIE规范的标准内容。优选的,本实施例中通过使用自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC+SEQUENCE对接收到的TLP报文进行排序和确认,实现对接收的主备PCIE交换单元传递的第一TLP报文进行选收。PCIE接口控制器从两条链路上把第一TLP报文发送给主备两个PCIE交换单元,报文发送后,该TTQ的TLP报文发送序号(SEQUENCE)加1。目的PEIC选择主备链路中第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,即,相同SPEIC+SEQUENCE的TLP报文仅接收先到达的,目的PEIC接收到第一TLP报文后发送给该第一TLP报文的目的EP或目的RC,从而完成TLP报文的可靠有序传输。
进一步的,PCIE接口控制器还维护管理各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
进一步的,第一TLP报文的目的PEIC选收主备PCIE交换单元发送的报文,将接收的第一TLP报文转给该第一TLP报文的目的RC/EP。优选的,第一TLP报文的目的PEIC,可以根据主备PCIE交换单元发送的第一TLP报文中的自定义TLP前缀中所携带的SPEIC和SEQUENCE进行选收,即,在两条链路上先后收到相同SPEIC和SEQUENCE的第一TLP报文,则只选择第一个收到的第一TLP报文发送给该第一TLP报文的目的RC/EP,后收到的第一TLP报文丢弃。
优选的,在PEIC中还可以包括多个TLP确认序列TAS,每个TLP确认序列TAS对应一个源PEIC的传输队列(此处的源PEIC的传输队列指发送TLP报文给该PEIC的其他PEIC中对应该PEIC的传输队列)。本实施例中TLP确认序列的功能和结构与实施例3中图10所示的TLP确认序列一致,具体描述可以参考相关部分,这里也不再赘述。本实施例中,同样PCIE维护管理各TLP确认序列的期望接收的TLP报文的期望序号。
进一步的,PCIE接口控制器还根据所接收的报文类型,以及报文中的目的设备ID或者访问目的地址,判断该第一TLP报文是否需要缓存到TLP传输队列进行处理。PCIE接口控制器根据所接收的报文类型(地址路由还是ID路由)查相应的地址转发表或ID转发表,对于地址转发表或ID转发表中配置了目的PEIC,表明需要转发处理的,则缓存到TLP传输队列进行后续处理。优选的,本地地址或本地ID的TLP报文,则可以直接返回给RC或EP,无需转发给RTT处理。
本发明实施例提供的PCIE双平面交换网络报文传输的方法,PCIE接口控制器PEIC根据TLP报文的目的PEIC确定TLP报文传输队列,并通过相应TLP传输队列的发送链路将TLP报文同时发送给主备PCIE交换单元,由主备PCIE交换单元转发给第一TLP报文的目的PEIC,目的PEIC根据第一TLP报文中携带的源PEIC编号和TLP报文发送序号进行选收,将第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,从而完成TLP报文的可靠传输,实现了PCIE的双平面组网,提升了采用PCIE交换的系统的可靠性。
图17为本发明实施例9的一种PCIE交换网络报文传输的方法流程图。如图所示,该方法包括
步骤501,接收来自于RC或EP的第三TLP报文。
步骤502,根据接收的第三TLP报文确定与PCIE交换单元连接的发送链路,通过该发送链路发送第三TLP报文给PCIE交换单元,以便第三TLP报文的目的PCIE接口控制器接收PCIE交换单元转发的第三TLP报文并发送给该第三TLP报文的目的EP或目的RC,并在超时未收到PCIE交换单元转发的该第三TLP报文的目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。
优选的,PCIE接口控制器PEIC接收到第三TLP报文后,根据TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第三TLP报文对应的目的PEIC编号,从而确定该报文对应的PCIE交换单元的发送链路,通过该发送链路将该第三TLP报文发送给PCIE交换单元。则,PCIE交换单元将接收的第三TLP报文发送给目的PEIC,以便目的PEI接收第三TLP报文,并转发给该第三TLP报文的目的EP或目的RC,同时目的PEIC会返回该第三TLP报文的第一确认消息TLP报文,并经过PCIE交换单元转发给源PCIE接口控制器,以表明收到了该第三TLP报文。源PCIE接口控制器会在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路(在双平面情况下,此时的PCIE交换单元连接的发送链路可能与前一次发送第三TLP报文时不同)重新发送该第三TLP报文。
进一步的,在通过该发送链路发送第三TLP报文给PCIE交换单元之前,该方法还包括:封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,以便所述第三TLP报文的目的PEIC根据所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回第一确认消息TLP报文,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;其中,所述第三TLP报文中的TLP报文发送序号是所述第三TLP报文的源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述第一确认消息TLP报文中的确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述第三TLP报文的源PEIC的TLP报文发送序号。
现有PCIE规范中TLP报文可靠传输通过点对点的确认机制,例如,图2中的交换器1把TLP报文发送给交换器2,交换器1会保存TLP报文,直到交换机2接收到正确的TLP报文并返回确认信息给交换机1后,交换机1才会删除相应的TLP报文。但是,对于RC发给交换器2的TLP报文,如果交换器1和交换器2之间的链路发生故障,RC已经成功发送给交换器1的报文,会由于交换器1和交换器2之间的链路故障而被丢弃,但RC因为收到了交换器1的确认信息而认为已经成功发送了。这种故障导致RC无法正确感知TLP报文的传输结果,而造成系统异常或数据操作丢弃。
本发明实施例提供的PCIE交换网络报文传输的方法,通过与PCIE交换单元连接的发送链路上发送第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,目的PEIC转发给该第三TLP报文的目的EP或目的RC,并返回第一确认消息TLP报文给源PEIC。源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。从而实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
图18为本发明实施例10的一种PCIE交换网络报文传输的方法流程图。如图所示,该方法具体为:
步骤601,接收来自于RC或EP的第三TLP报文。
步骤602,根据接收的第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第三TLP报文放入TTQ,其中,该TLP传输队列与该第三TLP报文的目的PEIC相对应;
优选的,PCIE接口控制器根据接收到的第三TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号,在相应的TTQ中缓存收到的第三TLP报文。其中的地址转发表可以如图6所示,ID转发表可以采用如图7所示的格式,具体的内容和配置方法与前面实施例2、3中描述一致,这里不再赘述。
如图12中所示,在RTT模块22中还包括多个TLP传输队列,本实施例中TLP传输队列的功能和结构与实施例2中图5所示的TLP传输队列一致,具体描述可以参考相关部分,这里也不再赘述。
步骤603,通过该TLP传输队列的发送链路将第三TLP报文发送给PCIE交换单元,以便该第三TLP报文的目的PCIE接口控制器接收PCIE交换单元转发的该第三TLP报文并发送给该第三TLP报文的目的EP或目的RC;并在超时未收到PCIE交换单元转发的该第三TLP报文的目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文;
优选的,PCIE接口控制器调度TLP传输队列TTQ中的TLP报文,封装TLP报文,添加自定义的TLP前缀(Prefix),并通过该TTQ的发送链路发送封装后的第三TLP报文给PCIE交换单元。其中,TLP报文格式定义如图9所示:具体结构的相关定义可参看前面实施例2、3中对于图9中的TLP报文格式的介绍,本处不再赘述。优选的,本实施例中通过使用TLP报文中的自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC和SEQUENCE对接收到的TLP报文进行排序和确认,返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,确认的TLP报文发送序号是目的PEIC已接收的该源PEIC的TLP报文发送序号。实现了对接收的PCIE交换单元传递的第三TLP报文返回第一确认消息。PEIC通过TTQ的发送链路把第三TLP报文发送给PCIE交换单元,报文发送后,该TTQ的TLP报文发送序号(SEQUENCE)加1。
进一步的,还需要维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。PEIC维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路,其中,各TLP传输队列的TLP报文发送序号表示该TTQ已发送的TLP报文发送的顺序号,TLP报文发送链路表明该TTQ的主备用发送链路,以便使用主用发送链路进行TLP报文发送。
步骤604,接收PCIE交换单元转发的第三TLP报文的目的PEIC返回的第一确认(ACK)消息TLP报文;
步骤605,根据第一确认消息TLP报文中携带的TLP报文的发送序号(SEQUENCE)信息和源PEIC编号(SPEIC),删除TLP传输队列中已确认的第三TLP报文。
优选的,TTQ发送TPL报文可以采用滑动窗口,从而可以限制每个TTQ的并发发送报文个数。TTQ的滑动窗口机制如图13所示,图中的每个带数字的方框代表一个TLP报文,例如,滑动窗口大小为4,即最多同时只能存在4个未被目的PEIC确认的TLP报文,在接收到目的PEIC返回的TLP确认报文后,根据确认的SEQUENC,把滑动窗口往后移动,例如,当前的窗口中待确认的TLP报文为2、3、4、5,接收到的确认消息TLP报文中的确认SEQUENC为2,则滑动窗口往后移动一个,当前的窗口中待确认的TLP报文为3、4、5、6,根据PEIC的缓存能力,可配置滑动窗口大小为2—n(n为任意一个整数)。通过设置滑动窗口,可以有效控制每个TTQ的并发发送报文个数,增加了处理的效率,同时又保障了发送和接收的有序性、可靠性。
优选的,第三TLP报文的目的PEIC接收到第三TLP报文,根据第三报文中的源PEIC编号(SPEIC)返回确认TLP报文给源PEIC。当然,也可以收到多个源PEIC的TLP报文后,再发一个确认TLP报文给源PEIC,例如,接收到SPEIC为101的序号为3、4、5的报文,可以只发送一个序号为5的确认TLP报文,表示序号5之前的TLP报文已经全部收到,从而减少确认TLK报文数量。优选的,确认TLP报文可以使用ID路由。确认TLP报文的自定义TLPPrefix中包含源PEIC编号(SPEIC)和确认的TLP报文发送序号(SEQUENCE),其中,确认的TLP报文发送序号(SEQUENCE)为目前收到的该源PEIC最新接收到(一般为最大的,当序号为循环使用时,可能不是最大的)TLP报文发送序号。源PEIC接收到确认TLP报文后,根据报文中的确认的TLP报文报文发送序号和SPEIC删除队列中的第三TLP报文。PCIE接口控制器根据第一确认消息报文中的确认序号,删除对应TTQ中缓存的TLP报文。一旦PEIC到PCIE交换单元的链路故障或者PCIE交换单元发生故障,TLP报文会被丢弃,对应地,此时源PEIC就无法收到目的PEIC返回的第三TLP的第一确认消息TLP报文,源端PEIC在超时后,通过与PCIE交换单元连接的发送链路重新发送TTQ中缓存的第三TLP报文,而此时可能链路故障或者PCIE交换单元故障已经恢复,或者PEIC的双平面发生了倒换,源端PEIC通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文,保证了源PEIC发送的任何TLP报文都能可靠地发送到目的PEIC。
进一步的,根据第一确认消息TLP报文中携带的发送序号(SEQUENCE)信息和源PEIC编号(SPEIC),更新相应的TTQ的滑动窗口。
优选的,如图12中所示,在PEIC中还可以包括多个TLP确认序列TAS,本实施例中TLP确认序列的结构和设置与实施例3中图10所示的TLP确认序列一致,同样每个TLP确认序列TAS对应一个传输队列。具体的的结构和设置可以参考实施例3中图10相关部分的描述,这里不再赘述。
进一步的,在步骤604,接收PCIE交换单元转发的第三TLP报文的目的PEIC返回的第一确认(ACK)消息TLP报文之前,PEIC接收到从PCIE交换单元发送的第四TLP报文,根据TLP报文的类型区分是否是确认消息TLP报文,如果不是确认消息TLP报文,则将接收的第四TLP报文转发给第四TLP报文的目的RC或目的EP,具体的,可以将接收的第四TLP报文缓存到与该第四TLP报文的源PEIC对应的TLP确认序列TAS中,以便后续调度转发给第四TLP报文的目的RC或目的EP。并进一步的,给该第四TLP报文的源PEIC返回确认消息TLP报文。具体的,生成第四TLP报文的确认消息TLP报文,并缓存在对应的TLP传输队列TTQ中,以便进行调度发送。优选的,可以经过一定的时间间隔发送一个确认消息TLP报文或者是收到一定数量的待确认TLP报文(数量不能大于窗口的个数)后发送一个确认消息TLP报文。
现有PCIE规范中TLP报文可靠传输通过点对点的确认机制,例如,图2中的交换器1把TLP报文发送给交换器2,交换器1会保存TLP报文,直到交换机2接收到正确的TLP报文并返回确认信息给交换机1后,交换机1才会删除相应的TLP报文。但是,对于RC发给交换器2的TLP报文,如果交换器1和交换器2之间的链路发生故障,RC已经成功发送给交换器1的报文,会由于交换器1和交换器2之间的链路故障而被丢弃,但RC因为收到了交换器1的确认信息而认为已经成功发送了。这种故障导致RC无法正确感知TLP报文的传输结果,而造成系统异常或数据操作丢弃。
本发明实施例提供的PCIE交换网络报文传输的方法,通过与PCIE交换单元连接的发送链路上发送携带有源PEIC编号和发送的TLP报文序号的第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,由目的PEIC转发给该第三TLP报文的目的EP或目的RC,并根据源PEIC编号和发送的TLP报文序号返回第一确认消息TLP报文给源PEIC,完成TLP报文的传递。而源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文,实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
进一步的,所述PCIE交换网络报文传输的方法,还包括:每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,更新相应TLP传输队列的发送链路。PCIE接口控制器每隔一个时间间隔(可根据网络状况等进行配置,例如,可以在10us—1ms选定一个值)给所有有通信连接的其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,进行主备链路倒换。该规定时间同样可根据网络状况等进行配置,并大于发送定时检测TLP报文后应该接收到检测应答TLP报文的时间,超过该规定时间没能接收到测应答TLP报文则表明到该目的PEIC的通信路由出现了问题,例如链路故障或者PCIE交换单元故障。此时,更新相应TTQ的发送链路,即在主用链路还是备用链路上发送TLP报文。
本发明实施例通过发送检测报文,实现了PEIC之间的链路故障检测,保障了主备平面的自动倒换,进一步保障了PCIE双平面交换网络时的的可靠报文传输。
图19为本发明实施例11的PCIE交换网络报文传输的系统图,如图所示,所述系统包括:
至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每一个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第一PCIE节点设备,用于发送第一TLP报文给相连的所述至少两个PCIE接口控制器中的第一PCIE接口控制器;
所述第一PCIE接口控制器,用于接收所述第一TLP报文,根据接收的第一TLP报文确定与所述两个PCIE交换单元连接的发送链路,通过发送链路同时发送第一TLP报文给所述PCIE交换单元;
所述PCIE交换单元,用于转发所述第一TLP报文给所述至少两个PCIE接口控制器中的第二PCIE接口控制器,所述第二PCIE接口控制器为所述第一TLP报文的目的PCIE接口控制器;
所述第二PCIE接口控制器,用于选收所述PCIE交换单元转发的该第一TLP报文并发送给所述至少两个PCIE节点设备中的第二PCIE节点设备,所述第二PCIE节点设备为该第一TLP报文的目的PCIE节点设备。
所述第二PCIE节点设备,用于接收所述第二PCIE接口控制器转发的所述第一TLP报文。
优选的,所述第一PCIE接口控制器,用于接收到第一TLP报文后,根据TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第一TLP报文对应的目的PEIC编号,从而确定该报文对应的主备PCIE交换单元的发送链路,通过该发送链路同时将该第一TLP报文发送给两个PCIE交换单元。
进一步的,第一PCIE接口控制器,封装第一TLP报文,在自定义的TLP前缀(Prefix)中添加源PEIC(此处即为第一PEIC)编号和TLP报文发送序号,并通过该TTQ的发送链路同时发送封装后的第一TLP报文给主备PCIE交换单元。其中,TLP报文格式定义如图9所示:根据PCIE规范中定义,TLP报文可包含0或者多个标准或者自定义个TLP前缀,通过TLPPrefix可实现端到端扩展、点对点扩展的参数传递,实现功能扩展。TLPPrefix又分为本地和端到端TLPPrefix。TLPHeader定义了TLP报文的标准头部,DataPayload是TLP的数据部分,TLPDigest是TLP报文的摘要部分,这三个部分都是PCIE规范的标准内容。优选的,本实施例中通过使用自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,以便目的PEIC根据SPEIC和SEQUENCE对接收到的TLP报文进行排序和确认,实现对接收的主备PCIE交换单元传递的第一TLP报文进行选收。第一PCIE接口控制器从两条链路上把第一TLP报文发送给主备两个PCIE交换单元,报文发送后,TLP报文发送序号(SEQUENCE)加1。
进一步的,所述第二PEIC,用于根据主备PCIE交换单元发送的第一TLP报文中的自定义TLP前缀中所携带的SPEIC和SEQUENCE进行选收,即,在两条链路上先后收到相同SPEIC和相同SEQUENCE的第一TLP报文,则只选择第一个收到的第一TLP报文发送给该第二TLP报文的目的RC/EP,后收到的第一TLP报文丢弃。
进一步的,其中的两个PCIE节点设备,具体可以为根联合体RC或端点设备EP,每个PCIE接口控制器可以与一个RC或至少一个端点设备EP连接。
本发明实施例提供的PCIE交换网络报文传输的系统,通过第一PCIE接口控制器在与主备PCIE交换单元连接的发送链路上同时发送第一TLP报文给主备两个PCIE交换单元,由第一TLP报文的目的PEIC选收主备PCIE交换单元转发的第一TLP报文并发送给该第一TLP报文的目的PCIE节点设备。从而实现了PCIE交换双平面组网连接时TLP报文的可靠传输,提升了采用PCIE交换的系统的可靠性。
进一步的,所述第一PCIE接口控制器,还用于根据接收的第一TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第一TLP报文放入TTQ,其中,该TLP传输队列与该第一TLP报文的目的PEIC相对应;并将TTQ中的TLP报文,通过该TLP传输队列的发送链路将第一TLP报文同时发送给主备PCIE交换单元。优选的,第一PCIE接口控制器,可以根据TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号。
其中的地址转发表可以如图6所示,ID转发表可以采用如图7所示的格式,具体的内容和配置方法与前面实施例2、3中描述一致,这里不再赘述。地址转发表和ID转发表可以配置在PEIC上。
本实施例中TLP传输队列的功能和结构与实施例2中图5所示的TLP传输队列一致,具体描述可以参考相关部分,这里也不再赘述。每个TTQ中保存有该PEIC的TLP报文发送序号(SEQUENCE)和TLP报文发送链路,其中,PEIC的TLP报文发送序号是指向该PEIC发送的TLP报文的顺序号,该TLP传输队列TTQ每发送1个TLP报文,该TTQ的PEIC的TLP报文发送序号加1。TLP报文发送链路是指该队列发送TLP报文到目的PEIC的通信链路,具体可以由TTQ进行维护并保存相关信息。进一步的,第一PCIE接口控制器还用于维护管理各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
优选的,第一PCIE接口控制器,调度TLP传输队列TTQ中的第一TLP报文,封装TLP报文,添加自定义的TLP前缀(Prefix),并通过该TTQ的发送链路同时发送封装后的第一TLP报文给主备PCIE交换单元。其中,TLP报文格式定义如图9所示:根据PCIE规范中定义,TLP报文可包含0或者多个标准或者自定义个TLP前缀,通过TLPPrefix可实现端到端扩展点对点的扩展参数传递,实现功能扩展。TLPPrefix又分为本地和端到端TLPPrefix。TLPHeader定义了TLP报文的标准头部,DataPayload是TLP的数据部分,TLPDigest是TLP报文的摘要部分,这三个部分都是PCIE规范的标准内容。优选的,本实施例中通过使用自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC+SEQUENCE对接收到的TLP报文进行排序和确认,实现对接收的主备PCIE交换单元传递的第一TLP报文进行选收。第一PCIE接口控制器从两条链路上把第一TLP报文发送给主备两个PCIE交换单元,报文发送后,该TTQ的TLP报文发送序号(SEQUENCE)加1。目的PEIC选择主备链路中第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,即,相同SPEIC+SEQUENCE的TLP报文仅接收先到达的,目的PEIC接收到第一TLP报文后发送给该第一TLP报文的目的EP或目的RC,从而完成TLP报文的可靠有序传输。本发明实施例提供的PCIE交换网络报文传输的系统,第一PEIC将TLP报文同时发送给主备PCIE交换单元,由主备PCIE交换单元转发给第一TLP报文的目的PEIC,目的PEIC根据第一TLP报文的自定义端到端TLP前缀中携带的源PEIC编号和TLP报文发送序号进行选收,将第一个收到的第一TLP报文发送给目的EP或目的RC,后收到的第一TLP报文丢弃,从而完成TLP报文的可靠传输,实现了PCIE的双平面组网,提升了采用PCIE交换的系统的可靠性。
进一步的,所述第二PEIC,用于根据主备PCIE交换单元发送的第一TLP报文中的自定义TLP前缀中所携带的SPEIC和SEQUENCE进行选收,即,在两条链路上先后收到相同SPEIC和SEQUENCE的第一TLP报文,则只选择第一个收到的第一TLP报文发送给该第二TLP报文的目的RC/EP,后收到的第一TLP报文丢弃。
优选的,在第二PEIC中还可以包括多个TLP确认序列TAS(TLPAcknowledgeSequence),每个TLP确认序列TAS对应一个源PEIC的传输队列(此处的源PEIC的传输队列指发送TLP报文给该PEIC的其他PEIC中对应该PEIC的传输队列)。每个TAS有一个期望序号,代表着从对应的源PEIC接收的下一个TLP报文应携带的SEQUENCE。例如,TLP接口控制器1的TLP确认序列1对应TLP接口控制器2的TLP传输队列1,则PEIC1的TAS1中记录着期望从源端PEIC2接收到的PEIC2的TTQ1发送的TLP报文携带的SEQUENCE,如PEIC1的TAS1的期望序号为3,则表明PEIC1计划从源端PEIC2接收的下一个TLP报文的SEQUENCE应为3。TAS和TTQ的对应关系可以根据TTQ的变化进行动态增加和删除,例如网络中新加入一个PEIC设备,就需要增加一个对应的TTQ,同样要增加一个TAS。优选的,第二PEIC接收到第一TLP报文,根据第一TLP报文中自定义TLPPrefix中的SPEIC确认对应的TAS,将第一TLP报文中的SEQUENCE和TAS中的期望序号对比,相等则把第一TLP报文发送该第一TLP报文的目的RC/EP,并将该TAS的期望序号加1,相反,则丢弃TLP报文。进一步的,第二PEIC,还用于维护管理各TLP确认序列的期望序号。本发明实施例提供的PCIE交换网络报文传输的系统,选收主备PCIE交换单元转发的第一TLP报文,只选择第一个收到的第一TLP报文并经过P2P模块发送给该第一TLP报文的目的RC/EP,后收到的第一TLP报文丢弃。从而完成TLP报文可靠有序的双发选收传输,实现了PCIE的双平面组网,提升了采用PCIE交换的系统的可靠性。
图20为本发明实施例12的PCIE交换网络报文传输的系统图,如图所示,所述系统包括:
至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每一个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第三PCIE节点设备,用于发送第三TLP报文给相连的所述至少两个PCIE接口控制器中的第三PCIE接口控制器;
所述第三PCIE接口控制器,用于接收所述第三TLP报文,根据接收的第三TLP报文确定与所述两个PCIE交换单元中的一个PCIE交换单元连接的发送链路,通过所述发送链路发送第三TLP报文给所述PCIE交换单元,并在超时未收到所述PCIE交换单元转发的该第三TLP报文的目的PEIC返回的第一确认消息TLP报文时,通过与所述PCIE交换单元连接的发送链路重新发送该第三TLP报文给所述至少两个PCIE接口控制器中的第四PCIE接口控制器,其中所述第四PCIE接口控制器为所述第三TLP报文的目的PCIE接口控制器。
所述PCIE交换单元,用于转发所述第三TLP报文给所述第四PCIE接口控制器;并转发所述第四PCIE接口控制器返回的所述第一确认消息TLP报文给所述第三PCIE接口控制器;
所述第四PCIE接口控制器,用于接收所述PCIE交换单元转发的该第三TLP报文并发送给所述至少两个PCIE节点设备中的第四PCIE节点设备,所述第二PCIE节点设备为该第三TLP报文的目的PCIE节点设备,并返回所述第一确认消息TLP报文给所述第三PCIE接口控制器以确认收到所述第三TLP报文;
所述至少两个PCIE节点设备中的第四PCIE节点设备,用于接收所述第四PCIE接口控制器转发的所述第三TLP报文。
进一步的,其中的两个PCIE节点设备,具体可以为根联合体RC或端点设备EP,每个PCIE接口控制器可以与一个RC或至少一个端点设备EP连接。
优选的,所述第三PCIE接口控制器,用于根据该第三TLP报文类型,即该报文是地址路由还是标识(Identity,简称ID)路由,查找相应的地址转发表或者ID转发表,获得该第三TLP报文对应的目的PEIC编号,从而确定该报文对应的PCIE交换单元的发送链路,通过该发送链路将该第三TLP报文发送给PCIE交换单元。则,PCIE交换单元将接收的第三TLP报文发送给目的PEIC,以便目的PEI接收第三TLP报文,并转发给该第三TLP报文的目的EP或目的RC,同时目的PEIC会返回该第三TLP报文的第一确认消息TLP报文,并经过PCIE交换单元转发给源PEIC(第三PEIC),以表明收到了该第三TLP报文。第三PEIC会在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路(在双平面情况下,此时的PCIE交换单元连接的发送链路可能与前一次发送第三TLP报文时不同)重新发送该第三TLP报文。
现有PCIE规范中TLP报文可靠传输通过点对点的确认机制,例如,图2中的交换器1把TLP报文发送给交换器2,交换器1会保存TLP报文,直到交换机2接收到正确的TLP报文并返回确认信息给交换机1后,交换机1才会删除相应的TLP报文。但是,对于RC发给交换器2的TLP报文,如果交换器1和交换器2之间的链路发生故障,RC已经成功发送给交换器1的报文,会由于交换器1和交换器2之间的链路故障而被丢弃,但RC因为收到了交换器1的确认信息而认为已经成功发送了。这种故障导致RC无法正确感知TLP报文的传输结果,而造成系统异常或数据操作丢弃。
本发明实施例提供的PCIE交换网络报文传输的系统,通过与PCIE交换单元连接的发送链路上发送第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,目的PEIC接收该第三TLP报文并返回第一确认消息TLP报文给源PEIC。源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送链路重新发送该第三TLP报文。从而实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
进一步的,第三PEIC,用于根据接收的第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将该第三TLP报文放入TTQ,其中,该TLP传输队列与该第三TLP报文的目的PEIC(第四PEIC)相对应;并通过该TLP传输队列的发送链路将第三TLP报文发送给PCIE交换单元。
优选的,第三PEIC,用于接收第三TLP报文,可以根据TLP报文的路由方式(是地址路由还是ID路由)查相应的地址转发表或ID转发表,根据查表结果得到目的PEIC号,在相应的TTQ中缓存收到的第三TLP报文。其中的地址转发表可以如图6所示,ID转发表可以采用如图7所示的格式,具体的内容和配置方法与前面实施例2、3中描述一致,这里不再赘述。如图12中所示,在RTT模块22中还包括多个TLP传输队列,本实施例中TLP传输队列的功能和结构与实施例2中图5所示的TLP传输队列一致,具体描述可以参考相关部分,这里也不再赘述。
进一步的,第三PEIC,还用于接收PCIE交换单元转发的第三TLP报文的目的PEIC返回的第一确认消息TLP报文,并根据第一确认消息TLP报文中携带的TLP报文的发送序号信息和源PEIC编号,删除TLP传输队列中已确认的第三TLP报文。
进一步的,第三PEIC,调度TLP传输队列TTQ中的TLP报文,封装TLP报文,添加自定义的TLP前缀(Prefix),并通过该TTQ的发送链路发送封装后的第三TLP报文给PCIE交换单元。其中,TLP报文格式定义如图9所示:具体结构的相关定义可参看前面实施例2、3中对于图9中的TLP报文格式的介绍,本处不再赘述。优选的,本实施例中通过使用TLP报文中的自定义端到端TLPPrefix,实现从源PEIC到目的PEIC传递源PEIC编号(SPEIC)和TLP报文发送序号(SEQUENCE)。其中,SEQUENCE是源PEIC到目的PEIC发送的TLP报文的顺序编号,针对每个TTQ在TTQ内独立排序,也就是针对该TLP传输队列所对应的目的PEIC发送的TLP报文顺序编号,以便目的PEIC根据SPEIC和SEQUENCE对接收到的TLP报文进行排序和确认,返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号,其中,确认的TLP报文发送序号是目的PEIC已接收的该源PEIC的TLP报文发送序号。实现了对接收的PCIE交换单元传递的第三TLP报文返回第一确认消息。第三PEIC通过TTQ的发送链路把第三TLP报文发送给PCIE交换单元后,该TTQ的TLP报文发送序号(SEQUENCE)加1。
进一步的,第三PEIC,还用于维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。其中,各TLP传输队列的TLP报文发送序号表示该TTQ已发送的TLP报文发送的顺序号,TLP报文发送链路表明该TTQ的主备用发送链路,以便使用主用发送链路进行TLP报文发送。
优选的,PEIC的TTQ发送TPL报文可以采用滑动窗口,从而可以限制每个TTQ的并发发送报文个数。TTQ的滑动窗口机制如图13所示,图中的每个带数字的方框代表一个TLP报文,例如,滑动窗口大小为4,即最多同时只能存在4个未被目的PEIC确认的TLP报文,确认模块226接收到目的PEIC返回的TLP确认报文后,根据确认的SEQUENC,把窗口往后移动,例如,当前的窗口中待确认的TLP报文为2、3、4、5,接收到的接收模块转发的确认SEQUENC为2,则滑动窗口往后移动一个,待确认的TLP报文为3、4、5,允许该TTQ再发送一个序号为6的TLP报文,根据PEIC的缓存能力,可配置滑动窗口大小为2—n(n为任意一个整数)。通过设置滑动窗口,可以有效控制每个TTQ的并发发送报文个数,增加了处理的效率,同时又保障了发送和接收的有序性、可靠性。
优选的,第四PEIC也可以收到多个源PEIC的TLP报文后,再发一个确认TLP报文给源PEIC,例如,接收到SPEIC为101的序号为3、4、5的报文,可以只发送一个序号为5的确认TLP报文,表示序号5之前的TLP报文已经全部收到,从而减少确认TLK报文数量。确认TLP报文的自定义TLPPrefix中包含源PEIC编号(SPEIC)和确认的TLP报文发送序号(SEQUENCE),其中,确认的TLP报文发送序号(SEQUENCE)为目前收到的该源PEIC最新接收到(一般为最大的,当序号为循环使用时,可能不是最大的)的TLP报文发送序号。第三PEIC接收到第四确认TLP报文后,根据报文中的确认的TLP报文报文发送序号和SPEIC删除对应TTQ中缓存的TLP报文。一旦PEIC到PCIE交换单元的链路故障或者PCIE交换单元发生故障,TLP报文会被丢弃,对应地,此时第三PEIC(源PEIC)就无法收到第四PEIC(目的PEIC)返回的第三TLP报文的第一确认消息TLP报文,源端PEIC在超时后,通过与PCIE交换单元连接的发送链路重新发送TTQ中缓存的第三TLP报文,而此时可能链路故障或者PCIE交换单元故障已经恢复,或者PEIC的双平面发生了倒换,保证了源PEIC发送的任何TLP报文都能可靠地发送到目的PEIC。
进一步的,第三PEIC还用于根据第一确认消息TLP报文中携带的发送序号(SEQUENCE)信息和源PEIC编号(SPEIC),更新相应的TTQ的滑动窗口。
优选的,在第三PEIC中还可以包括多个TLP确认序列TAS,本实施例中TLP确认序列的结构和设置与实施例3中图10所示的TLP确认序列一致,同样每个TLP确认序列TAS对应一个传输队列。具体的的结构和设置可以参考实施例3中图10相关部分的描述,这里不再赘述。进一步的,第四PEIC,还用于接收从PCIE交换单元发送的第三TLP报文,并根据TLP报文的类型区分是否是确认消息TLP报文,如果不是确认消息TLP报文,则将接收的第三TLP报文缓存到与该第三TLP报文的源PEIC对应的TLP确认序列TAS中,并转发给第三TLP报文的目的RC/EP,并返回第一确认消息TLP报文。第四PEIC经过一定的时间间隔发送一个确认消息TLP报文或者是收到一定数量的待确认TLP报文(数量不能大于窗口的个数)后发送一个确认消息TLP报文。
本发明实施例提供的PCIE交换网络报文传输的系统,通过与PCIE交换单元连接的发送链路上发送携带有源PEIC编号和发送的TLP报文序号的第三TLP报文给PCIE交换单元,由PCIE交换单元将接收的第三TLP报文发送给目的PEIC,由目的PEIC转发给该第三TLP报文的目的EP或目的RC,并根据源PEIC编号和发送的TLP报文序号返回第一确认消息TLP报文给源PEIC,完成TLP报文的传递。而源PEIC在超时未收到目的PEIC返回的第一确认消息TLP报文时,通过与PCIE交换单元连接的发送队列的发送链路重新发送该第三TLP报文,实现了PCIE交换双平面组网连接时TLP报文的端到端可靠传输,提升了采用PCIE交换的系统的可靠性。
进一步的,每个PCIE接口控制器,还用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,更新相应发送链路。优选的,每个PCIE接口控制器每隔一个时间间隔(可根据网络状况等进行配置,例如,可以在10us—1ms选定一个值)给所有有通信连接的其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,进行主备链路倒换。该规定时间同样可根据网络状况等进行配置,并大于发送定时检测TLP报文后应该接收到检测应答TLP报文的时间,超过该规定时间没能接收到测应答TLP报文则表明到该目的PEIC的通信路由出现了问题,例如链路故障或者PCIE交换单元故障。此时,PEIC会更新相应发送链路,即在主用链路还是备用链路上发送TLP报文。本发明实施例通过发送检测报文,实现了PEIC之间的链路故障检测,保障了主备平面的自动倒换,进一步保障了PCIE双平面交换网络系统的可靠报文传输。
图21为本发明实施例13的PCIE接口控制器结构图,如图所示,本实施例的PCIE接口控制器700包括至少一个处理器701,存储器705、至少一个网络接口卡704,和至少一通信总线702。该PCIE接口控制器700可选的包含用户接口703,包括显示器,键盘或者点击设备。存储器705存储执行指令,当PCIE接口控制器700运行时,处理器701与存储器705之间通信,处理器701执行执行指令使得PCIE接口控制器700执行本发明实施例7所描述的方法,其实现原理和技术效果类似,此处不再赘述。操作系统706,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务。该PCIE接口控制器700还包括显示接口卡。进一步的,处理器701执行执行指令还使得PCIE接口控制器700执行本发明实施例8所描述的方法其实现原理和技术效果类似,此处不再赘述。另外,本发明实施例中还提供一种计算机可读介质,包含计算机执行指令,计算机执行指令能够使PCIE接口控制器700执行执行本发明实施例7所描述的方法,进一步的,计算机执行指令能够使PCIE接口控制器700执行执行本发明实施例8所描述的方法,其实现原理和技术效果类似,此处不再赘述。
图22为本发明实施例14的PCIE接口控制器结构图,如图所示,本实施例的PCIE接口控制器800包括至少一个处理器801,存储器805、至少一个网络接口卡804,和至少一通信总线802。该PCIE接口控制器800可选的包含用户接口803,包括显示器,键盘或者点击设备。存储器805存储执行指令,当PCIE接口控制器800运行时,处理器801与存储器805之间通信,处理器801执行执行指令使得PCIE接口控制器800执行本发明实施例9所描述的方法,其实现原理和技术效果类似,此处不再赘述。操作系统806,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务。PCIE接口控制器800还可以包括显示接口卡。进一步的,处理器801执行执行指令还使得PCIE接口控制器800执行本发明实施例10所描述的方法,其实现原理和技术效果类似,此处不再赘述。另外,本发明实施例中还提供一种计算机可读介质,包含计算机执行指令,计算机执行指令能够使PCIE接口控制器800执行执行本发明实施例9所描述的方法,进一步的,计算机执行指令能够使PCIE接口控制器800执行执行本发明实施例10所描述的方法,其实现原理和技术效果类似,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
需要说明的是,在本发明实施例的描述的“第一PEIC”其实是一种PEIC,另外描述的“第二PEIC”、“第三PEIC”、“第四PEIC”也是一种PEIC,在此之所以命名为第一PEIC只是为了和后续出现的第二PEIC、第三PEIC、第四PEIC相区别,其“第一”、“第二”、“第三”、“第四”并不具有时序上或者逻辑上的任何关系,只为了表示分别是两个单独的PEIC而已。当然为了区别两个PEIC还可以采用其它的命名方式,只要能够表示这两个PEIC是两个单独的PEIC即可,例如,可以分别命名为PEICa和PEICb等。同样对于本发明实施例中出现的“第一TLP报文”、“第二TLP报文”、“第三TLP报文”和“第四TLP报文”,“第一确认消息”和“第二确认消息”,“第一PCIE节点设备”和“第二PCIE节点设备”等均适用于前述关于第一、第二、第三和第四的阐述。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (37)
1.一种高速外围组件互连接口控制器PEIC,其特征在于,包括:
PCI到PCI桥P2P模块,用于接收来自于根联合体RC或端点设备EP的第一事务层包TLP报文,转发所述第一TLP报文给可靠性TLP传输RTT模块处理;
所述可靠TLP传输模块,用于根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC;
所述可靠TLP传输模块包括:
TLP报文分发模块,用于根据接收的所述第一TLP报文查找地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第一TLP报文放入TLP传输队列,其中,所述TLP传输队列与所述第一TLP报文的目的PEIC相对应;
发送模块,用于封装所述TLP传输队列中的所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号SEQUENCE,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述SPEIC和所述SEQUENCE选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC。
2.根据权利要求1所述的接口控制器,其特征在于:所述TLP报文发送序号是所述源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同源PEIC编号和相同所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
3.根据权利要求1所述的接口控制器,其特征在于:所述可靠TLP传输模块,还包括:
接收模块,用于选收所述主备PCIE交换单元发送的第二TLP报文,将接收的所述第二TLP报文发送给所述P2P模块,由所述P2P模块转给所述第二TLP报文的目的RC或目的EP。
4.根据权利要求3所述的接口控制器,其特征在于,所述接收模块用于选收所述主备PCIE交换单元发送的第二TLP报文,具体为:
所述接收模块,用于接收所述主备PCIE交换单元发送的所述第二TLP报文,针对自定义TLP前缀中携带相同的源PEIC编号SPEIC和相同TLP报文发送序号SEQUENCE的所述第二TLP报文中,只接收第一个收到的所述第二TLP报文,丢弃后收到的所述第二TLP报文。
5.根据权利要求4所述的接口控制器,其特征在于,所述接收模块针对自定义TLP前缀中携带相同的SPEIC和相同SEQUENCE的所述第二TLP报文中,只接收第一个收到的所述第二TLP报文,丢弃后收到的所述第二TLP报文,具体为:
所述接收模块,根据所述第二TLP报文中自定义端到端TLP前缀中携带的SPEIC和SEQUENCE,与期望接收的所述第二TLP报文的源PEIC的TLP报文序号进行对比,如相等则接收所述第二TLP报文,否则丢弃所述第二TLP报文。
6.根据权利要求2至5任一所述的接口控制器,其特征在于,所述可靠TLP传输模块,还包括:
TLP传输队列管理模块,用于维护管理各TLP传输队列的TLP报文发送序号和TLP报文发送链路,所述TLP传输队列的TLP报文发送序号为向所述传输队列对应的目的PEIC发送的TLP报文发送序号,所述TLP传输队列的TLP报文发送链路为向所述传输队列对应的目的PEIC的TLP报文发送链路。
7.一种高速外围组件互连接口控制器PEIC,其特征在于,包括:
PCI到PCI桥P2P模块,用于接收来自于根联合体RC或端点设备EP的第三事务层包TLP报文,转发所述第三TLP报文给可靠性TLP传输RTT模块;
所述可靠性TLP传输RTT模块,用于根据接收的所述第三TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第三TLP报文给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器接收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC且根据接收到的所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回第一确认消息TLP报文,并用于在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,重新发送所述第三TLP报文,其中,所述返回的第一确认消息TLP报文的自定义端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;
所述可靠TLP传输模块包括:
TLP报文分发模块,用于根据接收的所述第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第三TLP报文放入所述TLP传输队列,其中,所述TLP传输队列与所述第三TLP报文的目的PEIC相对应;
发送模块,用于封装所述TLP传输队列中的所述第三TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器根据所述源PEIC编号SPEIC和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC,且根据源PEIC编号和TLP报文发送序号对接收到的TLP报文返回所述第一确认消息TLP报文;并用于在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,重新发送所述第三TLP报文;其中,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号;
接收模块,用于所述接收主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文,并传递给确认模块;
所述确认模块,用于根据所述第一确认消息TLP报文中携带的TLP报文的发送序号信息和源PEIC编号,通知TLP传输队列管理模块删除TLP传输队列中已确认的第三TLP报文;
所述TLP传输队列管理模块,用于根据所述确认模块的通知删除所述TLP传输队列中已确认的所述第三TLP报文。
8.根据权利要求7所述的接口控制器,其特征在于:
所述第三TLP报文中的TLP报文发送序号是所述第三TLP报文的源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述第一确认消息TLP报文中的确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述第三TLP报文的源PEIC的TLP报文发送序号。
9.根据权利要求7所述的接口控制器,其特征在于:
所述TLP传输队列管理模块,还用于维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
10.根据权利要求8或9所述的接口控制器,其特征在于:
所述接收模块,还用于接收从所述PCIE交换单元发送的第四TLP报文,判断是否是确认消息TLP报文,如果不是确认消息TLP报文,则将接收的所述第四TLP报文缓存到与所述第四TLP报文的源PEIC对应的TLP确认序列TAS中;
P2P模块,还用于获取所述TLP确认序列TAS中的所述第四TLP报文,转发给所述第四TLP报文的目的RC/EP。
11.根据权利要求10所述的接口控制器,其特征在于:所述可靠TLP传输模块还包括:
TLP确认序列管理模块,用于在TLP确认序列收到所述第四TLP报文后,通知所述确认模块给所述第四TLP报文的源PEIC返回确认消息TLP报文;
则,所述确认模块,还用于产生第二确认消息TLP报文,缓存到所述第四TLP报文的源PEIC对应的TLP传输队列中,以便由所述发送模块进行调度发送。
12.根据权利要求7至9任一所述的接口控制器,其特征在于:
所述确认模块,还用于根据接收的所述第一确认消息TLP报文中携带的确认的发送序号信息和源PEIC编号,更新相应的TTQ的滑动窗口。
13.根据权利要求7至9任一所述的接口控制器,其特征在于,所述可靠性TLP传输模块,还包括:
心跳模块,用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,通知所述TLP发送队列管理模块更新所述返回检测应答TLP报文的目的PEIC相应的TTQ的发送链路;
则,TLP传输队列管理模块,还用于根据所述心跳模块的通知更新所述TLP传输队列的发送链路。
14.一种高速外围组件互连交换网络的报文传输方法、其特征在于,包括:
接收来自于RC或EP的第一TLP报文;
根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC;
所述根据接收的所述第一TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC,具体为:
根据接收的所述第一TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第一TLP报文放入TLP传输队列,其中,所述TLP传输队列与所述第一TLP报文的目的PEIC相对应;
封装所述TLP传输队列中的所述第一TLP报文,在所述第一TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述TLP传输队列的发送链路同时发送给所述主备PCIE交换单元,以便所述第一TLP报文的目的PCIE接口控制器根据所述源PEIC编号和所述TLP报文发送序号选收所述主备PCIE交换单元转发的所述第一TLP报文并发送给所述第一TLP报文的目的EP或目的RC。
15.根据权利要求14所述的方法,其特征在于,所述TLP报文发送序号是所述第一TLP报文的源PEIC向所述第一TLP报文的目的PEIC发送的TLP报文的顺序编号,所述根据源PEIC编号和所述TLP报文发送序号对所述主备PCIE交换单元转发的所述第一TLP报文进行选收为针对所述主备PCIE交换单元转发的相同源PEIC编号和相同所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
16.根据权利要求14或15所述的方法,其特征在于,所述方法还包括:
所述第一TLP报文的目的PEIC针对自定义端到端TLP前缀中携带相同的所述源PEIC编号和相同所述TLP报文发送序号的所述第一TLP报文,只接收第一个收到的所述第一TLP报文,丢弃后收到的所述第一TLP报文。
17.根据权利要求16所述的方法,其特征在于,所述针对自定义TLP前缀中携带相同的所述源PEIC编号和所述TLP报文发送序号的所述第一TLP报文,只接收第一个收到的所述第一TLP报文,丢弃后收到的所述第一TLP报文,具体为:
根据所述第一TLP报文中自定义TLPPrefix中携带的所述源PEIC编号和所述TLP报文发送序号,与期望接收的所述源PEIC的TLP报文序号进行对比,如相等则接收所述第一TLP报文,否则丢弃所述第一TLP报文。
18.根据权利要求15权利要求所述的方法,其特征在于,所述方法还包括:
维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路,每发送一个TLP报文,相应TLP传输队列的TLP报文发送序号加1;
维护期望接收的其他PEIC发送的TLP报文发送序号,每接收一个TLP报文,期望接收的相应的源PEIC发送的TLP报文发送序号加1。
19.一种高速外围组件互连交换网络的报文传输方法、其特征在于,包括:
接收来自于RC或EP的第三TLP报文;
根据接收的所述第三TLP报文确定与主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第三TLP报文给所述主备PCIE交换单元,以便所述第三TLP报文的目的PCIE接口控制器根据所述源PEIC编号和TLP报文发送序号选收所述主备PCIE交换单元转发的所述第三TLP报文并发送给所述第三TLP报文的目的EP或目的RC,且根据所述第三TLP报文中的源PEIC编号和TLP报文发送序号返回第一确认消息TLP报文,并在超时未收到所述主备PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文时,通过重新发送所述第三TLP报文;
其中,所述第一确认消息TLP报文为确认收到所述第三TLP报文的报文,所述第一确认消息TLP报文的端到端TLP前缀中携带所述第三TLP报文的目的PEIC的PEIC编号和确认的TLP报文发送序号;
所述根据接收的所述第三TLP报文确定与所述主备PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路发送所述第三TLP报文给所述主备PCIE交换单元,具体为:
根据接收的所述第三TLP报文查找相应的地址转发表或者ID转发表,确定TLP传输队列TTQ,将所述第三TLP报文放入所述TLP传输队列,其中,所述TLP传输队列与所述第三TLP报文的目的PEIC相对应;
封装所述第三TLP报文,在所述第三TLP报文的自定义端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述TLP传输队列的发送链路将所述第三TLP报文发送给所述主备PCIE交换单元。
20.根据权利要求19所述的方法,其特征在于,所述第三TLP报文中的TLP报文发送序号是所述第三TLP报文的源PEIC到所述第三TLP报文的目的PEIC发送的TLP报文的顺序编号,所述第一确认消息TLP报文中的确认的TLP报文发送序号是所述第三TLP报文的目的PEIC已接收的所述第三TLP报文的源PEIC的TLP报文发送序号。
21.根据权利要求19所述的方法,其特征在于,所述方法,还包括:
接收所述PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的第一确认消息TLP报文;
根据所述第一确认消息TLP报文中携带的TLP报文的发送序号和源PEIC编号,删除所述TLP传输队列中已确认的所述第三TLP报文。
22.根据权利要求19所述的方法,其特征在于,在所述接收所述PCIE交换单元转发的所述第三TLP报文的目的PEIC返回的所述第一确认消息TLP报文之前,还包括:
接收到从所述PCIE交换单元发送的第四TLP报文,根据所述第四TLP报文的类型确认是否是所述第一确认消息TLP报文,如果不是所述第一确认消息TLP报文,则将接收的所述第四TLP报文转发给所述第四TLP报文的目的RC或目的EP。
23.根据权利要求22所述的方法,其特征在于,所述方法还包括:
给所述第四TLP报文的源PEIC返回第二确认消息TLP报文。
24.根据权利要求21至23任一所述的方法,其特征在于,所述方法还包括:
维护各TLP传输队列的TLP报文发送序号和TLP报文发送链路。
25.根据权利要求21至23任一所述的方法,其特征在于,所述方法还包括:
根据第一确认消息TLP报文中携带的确认的TLP发送序号信息和源PEIC编号,更新相应的TLP传输队列的滑动窗口。
26.根据权利要求20至23任一所述的方法,其特征在于,所述方法还包括:
每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并对于在规定时间内没收到返回的检测应答TLP报文的目的PEIC,更新相应TLP传输队列的发送链路。
27.一种高速外围组件互连交换网络报文传输系统,包括:至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每一个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第一PCIE节点设备,用于发送第一TLP报文给相连的所述至少两个PCIE接口控制器中的第一PCIE接口控制器;
所述第一PCIE接口控制器,用于接收所述第一TLP报文,根据接收的所述第一TLP报文确定与所述两个PCIE交换单元连接的发送链路,封装所述第一TLP报文,在所述第一TLP报文的端到端TLP前缀中添加源PEIC编号和TLP报文发送序号,通过所述发送链路同时发送所述第一TLP报文给所述两个PCIE交换单元;所述两个PCIE交换单元中的每个PCIE交换单元,用于转发所述第一TLP报文给所述至少两个PCIE接口控制器中的第二PCIE接口控制器,所述第二PCIE接口控制器为所述第一TLP报文的目的PCIE接口控制器;
所述第二PCIE接口控制器,用于根据所述第一TLP报文中的所述源PEIC编号和所述TLP报文发送序号选收所述PCIE交换单元转发的所述第一TLP报文并发送给所述至少两个PCIE节点设备中的第二PCIE节点设备,所述第二PCIE节点设备为所述第一TLP报文的目的PCIE节点设备;
所述第二PCIE节点设备,用于接收所述第二PCIE接口控制器转发的所述第一TLP报文;
所述第一PCIE接口控制器,用于根据接收的所述第一TLP报文确定与所述两个PCIE交换单元连接的发送链路,具体为:
所述第一PCIE接口控制器,用于根据所述第一TLP报文,查找地址转发表或者ID转发表,确定所述第一TLP报文对应的目的PEIC编号,从而确定所述第一TLP报文对应的与所述两个PCIE交换单元相连的发送链路。
28.根据权利要求27所述的系统,其特征在于,所述TLP报文发送序号是所述第一PEIC向所述第二PEIC发送的TLP报文的顺序编号,所述根据根据所述第一TLP报文中的所述源PEIC编号和所述TLP报文发送序号对所述第一TLP报文进行选收为针对相同PEIC编号和所述TLP报文发送序号的所述第一TLP报文仅接收先到达的所述第一TLP报文。
29.根据权利要求27或28所述的系统,其特征在于:
所述PCIE节点设备为根联合体RC或端点设备EP,所述每个PCIE接口控制器与一个RC或至少一个EP连接。
30.一种高速外围组件互连交换网络报文传输系统,包括:
至少两个PCIE节点设备,至少两个PCIE接口控制器PEIC和两个PCIE交换单元,其中,所述至少两个PCIE节点设备中的每个PCIE节点设备与所述至少两个PCIE接口控制器中的一个PCIE接口控制器相连,所述至少两个PCIE接口控制器中的每个PCIE接口控制器与所述两个PICE交换单元分别相连;
所述至少两个PCIE节点设备中的第三PCIE节点设备,用于发送第三TLP报文给相连的所述至少两个PCIE接口控制器中的第三PCIE接口控制器;
所述第三PCIE接口控制器,用于接收所述第三TLP报文,根据接收的所述第三TLP报文确定与所述两个PCIE交换单元中的每一个PCIE交换单元连接的发送链路,封装所述第三TLP报文,在所述第三TLP报文的端到端TLP前缀中添加源PEIC编号SPEIC和TLP报文发送序号,通过所述发送链路同时发送所述第三TLP报文给所述两个PCIE交换单元,并在超时未收到所述两个PCIE交换单元转发的所述至少两个PCIE接口控制器中的第四PCIE接口控制器返回的第一确认消息TLP报文时,通过与所述两个PCIE交换单元连接的发送链路重新发送所述第三TLP报文给所述第四PCIE接口控制器,其中所述第四PCIE接口控制器为所述第三TLP报文的目的PCIE接口控制器;
所述两个PCIE交换单元,用于转发所述第三TLP报文给所述第四PCIE接口控制器,并转发所述第四PCIE接口控制器返回的所述第一确认消息TLP报文给所述第三PCIE接口控制器;
所述第四PCIE接口控制器,用于根据源PEIC编号SPEIC和TLP报文发送序号选收所述两个PCIE交换单元转发的所述第三TLP报文并发送给所述至少两个PCIE节点设备中的第四PCIE节点设备,所述第四PCIE节点设备为所述第三TLP报文的目的PCIE节点设备,并根据所述第三TLP报文携带的源PEIC编号和TLP报文发送序号返回所述第一确认消息TLP报文给所述第三PCIE接口控制器以确认收到所述第三TLP报文;其中,所述返回的第一确认消息TLP报文的端到端TLP前缀中携带源PEIC编号和确认的TLP报文发送序号;
所述第四PCIE节点设备,用于接收所述第四PCIE接口控制器转发的所述第三TLP报文。
31.根据权利要求30所述的系统,其特征在于:
所述第三PEIC,还用于接收所述PCIE交换单元转发的所述第四PEIC返回的所述第一确认消息TLP报文,并根据所述第一确认消息TLP报文中携带的TLP报文的发送序号信息和源PEIC编号,删除已确认的所述第三TLP报文。
32.根据权利要求30或31所述的系统,其特征在于:
所述TLP报文发送序号是所述第三PEIC到所述第四PEIC发送的TLP报文的顺序编号,所述确认的TLP报文发送序号是所述第四PEIC已接收的所述第三PEIC的TLP报文发送序号。
33.根据权利要求32所述的系统,其特征在于:
所述第三PEIC,还用于维护到其他PEIC的TLP报文发送序号和TLP报文发送链路。
34.根据权利要求30至31任一所述的系统,其特征在于:
所述每个PCIE接口控制器,还用于每隔一个时间间隔给所有其它PEIC发送定时检测TLP报文,并更新在规定时间内没收到返回的检测应答TLP报文的PEIC的对应发送链路。
35.根据权利要求30至31任一所述的系统,其特征在于:
所述PCIE节点设备为根联合体RC或端点设备EP,所述每个PCIE接口控制器与一个RC或至少一个EP连接。
36.一种高速外围组件互连接口控制器PEIC,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述高速外围组件互连接口控制器PEIC运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述高速外围组件互连接口控制器PEIC执行如权利要求14至18任一所述的方法。
37.一种高速外围组件互连接口控制器PEIC,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述高速外围组件互连接口控制器PEIC运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述高速外围组件互连接口控制器PEIC执行如权利要求19至26任一所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/083631 WO2014063370A1 (zh) | 2012-10-27 | 2012-10-27 | 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103098428A CN103098428A (zh) | 2013-05-08 |
CN103098428B true CN103098428B (zh) | 2016-03-09 |
Family
ID=48208641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280001718.1A Active CN103098428B (zh) | 2012-10-27 | 2012-10-27 | 一种实现pcie交换网络的报文传输方法、设备和系统 |
Country Status (9)
Country | Link |
---|---|
US (3) | US9535867B2 (zh) |
EP (2) | EP2741456B1 (zh) |
JP (1) | JP5828966B2 (zh) |
KR (1) | KR101579917B1 (zh) |
CN (1) | CN103098428B (zh) |
AU (1) | AU2012384904B2 (zh) |
CA (1) | CA2838836C (zh) |
IN (1) | IN2013KN03842A (zh) |
WO (1) | WO2014063370A1 (zh) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003090B1 (en) * | 2014-03-25 | 2015-04-07 | DSSD, Inc. | PCI express fabric routing for a fully-connected mesh topology |
US9501442B2 (en) * | 2014-04-30 | 2016-11-22 | Freescale Semiconductor, Inc. | Configurable peripheral componenent interconnect express (PCIe) controller |
CN104102605B (zh) * | 2014-06-25 | 2018-03-09 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
US9747245B2 (en) * | 2014-12-17 | 2017-08-29 | Intel Corporation | Method, apparatus and system for integrating devices in a root complex |
CN104579772B (zh) * | 2014-12-30 | 2018-12-14 | 华为技术有限公司 | 计算机设备与计算机设备的配置管理方法 |
US9990327B2 (en) * | 2015-06-04 | 2018-06-05 | Intel Corporation | Providing multiple roots in a semiconductor device |
CN106502944B (zh) * | 2015-09-08 | 2019-05-07 | 杭州华为数字技术有限公司 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
EP3166257B1 (en) * | 2015-11-05 | 2018-09-26 | Robert Bosch Gmbh | Start-up triggering in an ethernet-based in-vehicle network |
US11216396B2 (en) * | 2016-09-29 | 2022-01-04 | Intel Corporation | Persistent memory write semantics on PCIe with existing TLP definition |
CN108008657B (zh) * | 2016-10-28 | 2020-07-21 | 北京计算机技术及应用研究所 | 一种控制板和交换板总线直连的负载均衡冗余交换系统 |
US10482050B2 (en) * | 2016-11-09 | 2019-11-19 | Qualcomm Incorporated | Link role determination in a dual-mode Peripheral Component Interconnect express (PCIe) device |
CN106656852B (zh) * | 2016-12-30 | 2019-02-15 | 国网浙江省电力公司绍兴供电公司 | 一种实现报文二选一的电路结构 |
CN108990125B (zh) * | 2017-06-01 | 2020-12-22 | 华为技术有限公司 | 数据传输的方法、终端设备和网络设备 |
US10866934B1 (en) * | 2017-07-28 | 2020-12-15 | EMC IP Holding Company LLC | Token-based data flow control in a clustered storage system |
US10884650B1 (en) | 2017-10-25 | 2021-01-05 | EMC IP Holding Company LLC | Opportunistic compression of replicated data in a content addressable storage system |
KR102446733B1 (ko) | 2017-11-30 | 2022-09-23 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
KR102406340B1 (ko) * | 2018-02-26 | 2022-06-13 | 에스케이하이닉스 주식회사 | 전자 장치 및 그것의 동작 방법 |
US10956078B2 (en) | 2018-03-27 | 2021-03-23 | EMC IP Holding Company LLC | Storage system with loopback replication process providing object-dependent slice assignment |
US10866969B2 (en) * | 2018-03-28 | 2020-12-15 | EMC IP Holding Company LLC | Storage system with loopback replication process providing unique identifiers for collision-free object pairing |
US11609883B2 (en) | 2018-05-29 | 2023-03-21 | EMC IP Holding Company LLC | Processing device configured for efficient generation of compression estimates for datasets |
US10983962B2 (en) | 2018-05-29 | 2021-04-20 | EMC IP Holding Company LLC | Processing device utilizing polynomial-based signature subspace for efficient generation of deduplication estimate |
US11593313B2 (en) | 2018-05-29 | 2023-02-28 | EMC IP Holding Company LLC | Processing device configured for efficient generation of data reduction estimates for combinations of datasets |
US10977216B2 (en) | 2018-05-29 | 2021-04-13 | EMC IP Holding Company LLC | Processing device utilizing content-based signature prefix for efficient generation of deduplication estimate |
US10826990B2 (en) | 2018-07-23 | 2020-11-03 | EMC IP Holding Company LLC | Clustered storage system configured for bandwidth efficient processing of writes at sizes below a native page size |
US10684915B2 (en) | 2018-07-25 | 2020-06-16 | EMC IP Holding Company LLC | Efficient packing of compressed data in storage system implementing data striping |
US10635533B2 (en) | 2018-07-30 | 2020-04-28 | EMC IP Holding Company LLC | Efficient computation of parity data in storage system implementing data striping |
US11614986B2 (en) * | 2018-08-07 | 2023-03-28 | Marvell Asia Pte Ltd | Non-volatile memory switch with host isolation |
US11544000B2 (en) | 2018-08-08 | 2023-01-03 | Marvell Asia Pte Ltd. | Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services |
CN109144904A (zh) * | 2018-08-30 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种sgpio信号缓冲电路 |
CN109684269B (zh) * | 2018-12-26 | 2020-06-02 | 成都九芯微科技有限公司 | 一种pcie交换芯片内核及工作方法 |
US10754559B1 (en) | 2019-03-08 | 2020-08-25 | EMC IP Holding Company LLC | Active-active storage clustering with clock synchronization |
US11137929B2 (en) | 2019-06-21 | 2021-10-05 | EMC IP Holding Company LLC | Storage system configured to support cascade replication |
CN112181887B (zh) * | 2019-07-05 | 2023-05-26 | 迈普通信技术股份有限公司 | 数据传输方法及装置 |
CN110688332B (zh) * | 2019-09-12 | 2021-01-15 | 无锡江南计算技术研究所 | 一种面向高速消息传输的pcie数据传输系统及计算机 |
CN110851376A (zh) * | 2019-10-21 | 2020-02-28 | 天津大学 | 一种基于FPGA的PCIe接口设计方法 |
US11566868B2 (en) | 2019-11-21 | 2023-01-31 | Hornady Manufacturing Company | Firearm storage device |
US11055028B1 (en) | 2020-02-03 | 2021-07-06 | EMC IP Holding Company LLC | Storage system with reduced read latency |
US11079961B1 (en) | 2020-02-03 | 2021-08-03 | EMC IP Holding Company LLC | Storage system with write-via-hash functionality for synchronous replication of logical storage volumes |
US11360712B2 (en) | 2020-02-03 | 2022-06-14 | EMC IP Holding Company LLC | Storage system with continuous data verification for synchronous replication of logical storage volumes |
US11249654B2 (en) | 2020-02-18 | 2022-02-15 | EMC IP Holding Company LLC | Storage system with efficient data and parity distribution across mixed-capacity storage devices |
US11144232B2 (en) | 2020-02-21 | 2021-10-12 | EMC IP Holding Company LLC | Storage system with efficient snapshot pair creation during synchronous replication of logical storage volumes |
US11281386B2 (en) | 2020-02-25 | 2022-03-22 | EMC IP Holding Company LLC | Disk array enclosure with metadata journal |
US11079969B1 (en) | 2020-02-25 | 2021-08-03 | EMC IP Holding Company LLC | Disk array enclosure configured for metadata and data storage processing |
US11061618B1 (en) | 2020-02-25 | 2021-07-13 | EMC IP Holding Company LLC | Disk array enclosure configured to determine metadata page location based on metadata identifier |
US11144461B2 (en) | 2020-03-09 | 2021-10-12 | EMC IP Holding Company LLC | Bandwidth efficient access to persistent storage in a distributed storage system |
US11010251B1 (en) | 2020-03-10 | 2021-05-18 | EMC IP Holding Company LLC | Metadata update journal destaging with preload phase for efficient metadata recovery in a distributed storage system |
US11126361B1 (en) | 2020-03-16 | 2021-09-21 | EMC IP Holding Company LLC | Multi-level bucket aggregation for journal destaging in a distributed storage system |
US11194664B2 (en) | 2020-04-20 | 2021-12-07 | EMC IP Holding Company LLC | Storage system configured to guarantee sufficient capacity for a distributed raid rebuild process |
US11169880B1 (en) | 2020-04-20 | 2021-11-09 | EMC IP Holding Company LLC | Storage system configured to guarantee sufficient capacity for a distributed raid rebuild process |
US11494301B2 (en) | 2020-05-12 | 2022-11-08 | EMC IP Holding Company LLC | Storage system journal ownership mechanism |
US11392295B2 (en) | 2020-05-27 | 2022-07-19 | EMC IP Holding Company LLC | Front-end offload of storage system processing |
US11093161B1 (en) | 2020-06-01 | 2021-08-17 | EMC IP Holding Company LLC | Storage system with module affinity link selection for synchronous replication of logical storage volumes |
US11513882B2 (en) | 2020-06-08 | 2022-11-29 | EMC IP Holding Company LLC | Dynamic modification of IO shaping mechanisms of multiple storage nodes in a distributed storage system |
US11886911B2 (en) | 2020-06-29 | 2024-01-30 | EMC IP Holding Company LLC | End-to-end quality of service mechanism for storage system using prioritized thread queues |
US11327812B1 (en) | 2020-10-19 | 2022-05-10 | EMC IP Holding Company LLC | Distributed storage system with per-core rebalancing of thread queues |
US11436138B2 (en) | 2020-10-21 | 2022-09-06 | EMC IP Holding Company LLC | Adaptive endurance tuning of solid-state storage system |
US11853568B2 (en) | 2020-10-21 | 2023-12-26 | EMC IP Holding Company LLC | Front-end offload of storage system hash and compression processing |
US11531470B2 (en) | 2020-10-21 | 2022-12-20 | EMC IP Holding Company LLC | Offload of storage system data recovery to storage devices |
US11616722B2 (en) | 2020-10-22 | 2023-03-28 | EMC IP Holding Company LLC | Storage system with adaptive flow control using multiple feedback loops |
US11314416B1 (en) | 2020-10-23 | 2022-04-26 | EMC IP Holding Company LLC | Defragmentation of striped volume in data storage system |
US11435921B2 (en) | 2020-11-19 | 2022-09-06 | EMC IP Holding Company LLC | Selective deduplication in a distributed storage system |
US11687245B2 (en) | 2020-11-19 | 2023-06-27 | EMC IP Holding Company LLC | Dynamic slice assignment in a distributed storage system |
US11494405B2 (en) | 2020-12-21 | 2022-11-08 | EMC IP Holding Company LLC | Lock contention resolution for active-active replication performed in conjunction with journal recovery |
US11481291B2 (en) | 2021-01-12 | 2022-10-25 | EMC IP Holding Company LLC | Alternative storage node communication channel using storage devices group in a distributed storage system |
KR102496994B1 (ko) * | 2021-03-23 | 2023-02-09 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102521902B1 (ko) | 2021-03-23 | 2023-04-17 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102529761B1 (ko) | 2021-03-18 | 2023-05-09 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
US11875198B2 (en) | 2021-03-22 | 2024-01-16 | EMC IP Holding Company LLC | Synchronization object issue detection using object type queues and associated monitor threads in a storage system |
US11593294B2 (en) | 2021-05-20 | 2023-02-28 | Pensando Systems Inc. | Methods and systems for loosely coupled PCIe service proxy over an IP network |
US11895027B2 (en) * | 2021-05-20 | 2024-02-06 | Pensando Systems Inc. | Methods and systems for service distribution using data path state replication and intermediate device mapping |
US11949589B2 (en) | 2021-05-20 | 2024-04-02 | Pensando Systems Inc. | Methods and systems for service state replication using original data packets |
US11902184B2 (en) | 2021-05-20 | 2024-02-13 | Pensando Systems Inc. | Methods and systems for providing a virtualized NVMe over fabric service |
US11520527B1 (en) | 2021-06-11 | 2022-12-06 | EMC IP Holding Company LLC | Persistent metadata storage in a storage system |
US11775202B2 (en) | 2021-07-12 | 2023-10-03 | EMC IP Holding Company LLC | Read stream identification in a distributed storage system |
CN115514682B (zh) * | 2022-09-23 | 2024-03-22 | 浪潮商用机器有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN116909639B (zh) * | 2023-09-13 | 2023-12-12 | 珠海星云智联科技有限公司 | 一种挂载系统、方法、集群以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547706A (zh) * | 2001-08-24 | 2004-11-17 | ض� | 提供同步信道的通用输入/输出体系结构、协议和方法 |
CN101501660A (zh) * | 2006-08-09 | 2009-08-05 | 日本电气株式会社 | 因特网连接交换机和因特网连接系统 |
US7917681B2 (en) * | 2006-02-17 | 2011-03-29 | Nec Corporation | Switch and network bridge apparatus |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0670676B2 (ja) * | 1989-08-17 | 1994-09-07 | 九州電力株式会社 | 襲雷予知装置 |
KR100534052B1 (ko) * | 2003-07-10 | 2005-12-07 | 한국전자통신연구원 | 확장가능한 범용 스위치 패브릭 장치 |
US7058738B2 (en) * | 2004-04-28 | 2006-06-06 | Microsoft Corporation | Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices |
US8285907B2 (en) * | 2004-12-10 | 2012-10-09 | Intel Corporation | Packet processing in switched fabric networks |
US7525957B2 (en) * | 2005-09-01 | 2009-04-28 | Emulex Design & Manufacturing Corporation | Input/output router for storage networks |
US7676625B2 (en) * | 2006-08-23 | 2010-03-09 | Sun Microsystems, Inc. | Cross-coupled peripheral component interconnect express switch |
JP4501916B2 (ja) | 2006-09-20 | 2010-07-14 | 日本電気株式会社 | I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法 |
US7756123B1 (en) * | 2006-12-21 | 2010-07-13 | Nvidia Corporation | Apparatus, system, and method for swizzling of a PCIe link |
CN101102177B (zh) * | 2007-08-20 | 2010-11-10 | 杭州华三通信技术有限公司 | 一种主备控制器倒换的实现方法及设备 |
WO2009025381A1 (ja) | 2007-08-23 | 2009-02-26 | Nec Corporation | I/oシステムおよびi/o制御方法 |
JP2009163633A (ja) * | 2008-01-09 | 2009-07-23 | Ricoh Co Ltd | 情報処理装置およびデータ通信方法 |
US7707346B2 (en) * | 2008-03-12 | 2010-04-27 | Lsi Corporation | PCI express multi-root IOV endpoint retry buffer controller |
JP2010205216A (ja) * | 2009-03-06 | 2010-09-16 | Fujitsu Ltd | バス変換装置、情報処理装置、制御方法 |
WO2011001508A1 (ja) * | 2009-06-30 | 2011-01-06 | 株式会社日立製作所 | 電子機器接続装置、電子計算機、電子機器接続装置の記憶部割当方法 |
US8335884B2 (en) | 2009-07-10 | 2012-12-18 | Brocade Communications Systems, Inc. | Multi-processor architecture implementing a serial switch and method of operating same |
CN101604299B (zh) * | 2009-07-13 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种访问pcie ram的方法、存储控制器和存储系统 |
JP2011081769A (ja) | 2009-09-14 | 2011-04-21 | Ricoh Co Ltd | データ転送装置、データ転送デバイスおよびデータ転送方法 |
WO2011141963A1 (en) | 2010-05-13 | 2011-11-17 | Hitachi, Ltd. | Information processing apparatus and data transfer method |
JP5565141B2 (ja) | 2010-06-28 | 2014-08-06 | 富士通株式会社 | 制御装置、切替装置、光伝送装置、及び制御方法 |
US8402307B2 (en) | 2010-07-01 | 2013-03-19 | Dell Products, Lp | Peripheral component interconnect express root port mirroring |
JP5316502B2 (ja) | 2010-09-16 | 2013-10-16 | 日本電気株式会社 | I/oブリッジ装置、応答通知方法、及びプログラム |
CN102014076B (zh) * | 2010-12-24 | 2012-04-18 | 北京航天测控技术有限公司 | 一种PCIe重试缓冲区及其实现方法 |
US20140112131A1 (en) | 2011-06-17 | 2014-04-24 | Hitachi, Ltd. | Switch, computer system using same, and packet forwarding control method |
US8995302B1 (en) | 2013-01-16 | 2015-03-31 | Pmc-Sierra Us, Inc. | Method and apparatus for translated routing in an interconnect switch |
-
2012
- 2012-10-27 EP EP12879152.2A patent/EP2741456B1/en active Active
- 2012-10-27 KR KR1020147000908A patent/KR101579917B1/ko active IP Right Grant
- 2012-10-27 AU AU2012384904A patent/AU2012384904B2/en active Active
- 2012-10-27 EP EP15202849.4A patent/EP3032787B1/en active Active
- 2012-10-27 JP JP2014542690A patent/JP5828966B2/ja active Active
- 2012-10-27 CN CN201280001718.1A patent/CN103098428B/zh active Active
- 2012-10-27 CA CA2838836A patent/CA2838836C/en active Active
- 2012-10-27 IN IN3842KON2013 patent/IN2013KN03842A/en unknown
- 2012-10-27 WO PCT/CN2012/083631 patent/WO2014063370A1/zh active Application Filing
-
2013
- 2013-12-30 US US14/143,996 patent/US9535867B2/en active Active
- 2013-12-30 US US14/144,328 patent/US9652426B2/en active Active
-
2016
- 2016-11-28 US US15/361,750 patent/US10204070B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547706A (zh) * | 2001-08-24 | 2004-11-17 | ض� | 提供同步信道的通用输入/输出体系结构、协议和方法 |
US7917681B2 (en) * | 2006-02-17 | 2011-03-29 | Nec Corporation | Switch and network bridge apparatus |
CN101501660A (zh) * | 2006-08-09 | 2009-08-05 | 日本电气株式会社 | 因特网连接交换机和因特网连接系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2015503154A (ja) | 2015-01-29 |
EP2741456A4 (en) | 2014-07-23 |
EP3032787A1 (en) | 2016-06-15 |
WO2014063370A1 (zh) | 2014-05-01 |
US20170075842A1 (en) | 2017-03-16 |
KR101579917B1 (ko) | 2015-12-23 |
US20140122769A1 (en) | 2014-05-01 |
AU2012384904B2 (en) | 2015-04-16 |
US9535867B2 (en) | 2017-01-03 |
CA2838836C (en) | 2018-05-01 |
CA2838836A1 (en) | 2014-04-27 |
US10204070B2 (en) | 2019-02-12 |
EP3032787B1 (en) | 2018-08-29 |
CN103098428A (zh) | 2013-05-08 |
IN2013KN03842A (zh) | 2015-05-01 |
EP2741456B1 (en) | 2016-01-13 |
US20140122768A1 (en) | 2014-05-01 |
KR20140082630A (ko) | 2014-07-02 |
AU2012384904A1 (en) | 2014-05-15 |
JP5828966B2 (ja) | 2015-12-09 |
EP2741456A1 (en) | 2014-06-11 |
US9652426B2 (en) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103098428B (zh) | 一种实现pcie交换网络的报文传输方法、设备和系统 | |
US5598541A (en) | Node loop port communication interface super core for fibre channel | |
US8954785B2 (en) | Redundancy and load balancing in remote direct memory access communications | |
US9369298B2 (en) | Directed route load/store packets for distributed switch initialization | |
US20150055649A1 (en) | Cell fabric hardware acceleration | |
US20100002714A1 (en) | PCI express network | |
US9122604B2 (en) | External settings that reconfigure the error handling behavior of a distributed PCIe switch | |
CN102185833A (zh) | 一种基于fpga的fc i/o并行处理方法 | |
US11995017B2 (en) | Multi-plane, multi-protocol memory switch fabric with configurable transport | |
US20230421451A1 (en) | Method and system for facilitating high availability in a multi-fabric system | |
CN109286564B (zh) | 一种报文转发方法及装置 | |
US8055818B2 (en) | Low latency queue pairs for I/O adapters | |
US10735310B2 (en) | Controller, method for adjusting flow rule, and network communication system | |
CN109995646B (zh) | 链路切换方法、装置及设备 | |
CN103491079A (zh) | 一种报文生成装置、服务器以及方法 | |
JPH09238163A (ja) | バッファメモリ管理装置 |
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 |