CN103701680A - 一种跨PCIe域报文传输的方法、设备及系统 - Google Patents
一种跨PCIe域报文传输的方法、设备及系统 Download PDFInfo
- Publication number
- CN103701680A CN103701680A CN201310698947.XA CN201310698947A CN103701680A CN 103701680 A CN103701680 A CN 103701680A CN 201310698947 A CN201310698947 A CN 201310698947A CN 103701680 A CN103701680 A CN 103701680A
- Authority
- CN
- China
- Prior art keywords
- packet
- terminal
- bridge interface
- equipment
- virtual terminal
- 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.)
- Pending
Links
- 238000005538 encapsulation Methods 0.000 claims abstract description 32
- 230000000875 corresponding Effects 0.000 claims description 82
- 230000005540 biological transmission Effects 0.000 claims description 46
- 238000000034 method Methods 0.000 description 31
- WOZQBERUBLYCEG-UHFFFAOYSA-N SWEP Chemical compound COC(=O)NC1=CC=C(Cl)C(Cl)=C1 WOZQBERUBLYCEG-UHFFFAOYSA-N 0.000 description 12
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006011 modification reaction Methods 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 210000003128 Head Anatomy 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000977 initiatory Effects 0.000 description 1
Abstract
本申请公开了一种跨PCIe域报文传输的方法、设备及系统,该方法包括:第一下行桥接口接收第一终端设备发送的第一数据包,第一数据包中携带第二终端设备的地址信息;第一虚拟终端根据第二终端设备的地址信息获取第二虚拟终端的标识信息,第二终端设备为第一数据包的目的设备;第一虚拟终端对第一数据包进行封装获得第二数据包,第二数据包的封装头中包含第二虚拟终端的标识信息,将第二数据包发送到内部交换电路;内部交换电路根据封装头将第二数据包发送到第二虚拟终端,通过第二虚拟终端解封装第二数据包获得第一数据包后通过第二下行桥接口发送给第二终端设备。
Description
一种跨PCIe域报文传输的方法、设备及系统
技术领域
[0001] 本申请涉及电子技术领域,特别涉及一种跨PCIe域报文传输的方法、设备及系统。
背景技术
[0002] 随着电子技术的快速发展,I/O局部总线标准不断改进,目前,在PCI/PC1-X总线基础上发展出来了第三代总线标准,即PC1-Express总线,简称“PCIe”,PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享资源,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能,PCIe标准全面取代现行的PCI和AGP,最终实现总线标准的统一。
[0003] 标准的PCIe系统是Tree型的拓扑结构,主要组件包括一个RC (根联合体),若干Switch (交换器)和若干EP (终端设备),其中,RC包括若干RP (根节点),即一个基本PCIe系统由RP、Switch、EP组成。在RP与Switch之间,以及Switch与EP之间的报文传输都是遵循PCIe报文传输协议。对于数据报文的写命令,是基于地址来传输;对于数据报文的读命令的发起也是基于地址传输。
[0004] 由于PCIe系统报文基于地址传输的特性,因此一个PCIe系统报文要跨过另一个PCIe系统进行报文传输时,根据地址判断会造成报文在传输途中延时增加。并且由于是两个PCIe系统的地址,容易造成地址分配困难,地址映射关系复杂。因为地址一般由基址与偏移组成,偏移的设置没有相应参考值,造成下个基址不容易分配,而地址的总大小是固定的,不能超出范围。这个原因造成基于地址传输的报文的收发有局限性。最后,基于地址转化需要的信息较多,占用较多逻辑资源。
[0005] 当然,一个非PCIe系统报文要跨过一个PCIe系统进行报文传输时,同样会面临这个问题。
[0006] 综上,由于现有的PCIe系统基于地址来传输报文的特性,在跨PCIe系统进行报文传输时,会存在数据传输延时较大,对报文收发有局限性的问题。
发明内容
[0007] 本申请实施例通过提供一种跨PCIe域报文传输的方法、设备及系统,用以解决现有技术中PCIe系统基于地址来传输报文,造成数据传输延时较大,对报文收发有局限性以及占用逻辑资源量大的技术问题。
[0008] 第一方面,提供一种跨PCIe域报文传输的方法,所述方法应用于PCIe系统中,所述PCIe系统包括PCIe交换设备,第一终端设备与第二终端设备,所述PCIe交换设备包括第一下行桥接口,第二下行桥接口,第一虚拟终端,第二虚拟终端以及内部交换电路,其中,所述第一虚拟终端与所述第一下行桥接口连接,所述第二虚拟终端与所述第二下行桥接口连接,所述方法包括:所述第一下行桥接口接收所述第一终端设备发送的第一数据包,所述第一数据包中携带所述第二终端设备的地址信息;所述第一虚拟终端根据所述第二终端设备的地址信息获取所述第二虚拟终端的标识信息,所述第二终端设备为所述第一数据包的目的设备;所述第一虚拟终端对所述第一数据包进行封装获得第二数据包,所述第二数据包的封装头中包含所述第二虚拟终端的标识信息,将所述第二数据包发送到所述内部交换电路;所述内部交换电路根据所述封装头将所述第二数据包发送到所述第二虚拟终端,通过所述第二虚拟终端解封装所述第二数据包获得所述第一数据包后通过第二下行桥接口发送给所述第二终端设备。
[0009] 结合第一方面,在第一种可能的实现方式中,所述方法还包括:所述第一下行桥接口接收所述内部交换电路发送来的第三数据包,所述第三数据包的封装头中包含所述第一虚拟终端的标识信息;所述第一虚拟终端将所述第三数据包进行解封装,获得第四数据包,将所述第四数据包发送至所述第一终端设备。
[0010] 结合第一方面,在第二种可能的实现方式中,所述第一虚拟终端根据所述第二终端设备的地址信息获取所述第二虚拟终端的标识信息,具体包括:所述第一虚拟终端根据所述第二终端设备的地址信息查询第一对应关系,获得所述第二下行桥接口,所述第二下行桥接口与所述第二终端设备连接;所述第一虚拟终端根据所述第二下行桥接口查询第二对应关系,获得与所述第二下行桥接口连接的第二虚拟终端的标识信息。
[0011] 结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一对应关系包括终端设备与下行桥接口之间的对应关系;所述第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
[0012] 结合第一方面,在第四种可能的实现方式中,所述虚拟终端的标识信息是由所述PCIe交换设备的管理处理器通过所述PCIe交换设备的上行桥接口配置的。
[0013] 第二方面,提供一种PCIe交换设备,包括:下行桥接口,虚拟终端和内部交换电路;其中:第一下行桥接口,用于接收连接于所述第一下行桥接口的第一终端设备发送的第一数据包;第一虚拟终端,与所述第一下行桥接口一一对应连接,用于根据所述第一数据包中携带的第二终端设备的地址信息获取连接于所述第二终端设备的第二下行桥接口所连接的第二虚拟终端的标识信息,所述第二终端设备为所述第一数据包的目的设备,对所述第一数据包进行封装获得第二数据包,所述第二数据包的封装头中包含所述第二下行桥接口所连接的第二虚拟终端的标识信息,将所述第二数据包发送到所述内部交换电路;所述内部交换电路,用于接收所述第一虚拟终端发送来的第二数据包,根据所述第二数据包的封装头将所述第二数据包发送到所述第二虚拟终端,以通过所述第二下行桥接口将所述第一数据包发送给所述第二终端设备。
[0014] 结合第二方面,在第一种可能的实现方式中,所述第一下行桥接口还用于,接收所述内部交换电路发送来的第三数据包,所述第三数据包的封装头中包含所述第一虚拟终端的标识信息;所述第一虚拟终端还用于,将所述第三数据包进行解封装,获得第四数据包,以通过所述第一下行桥接口将所述第四数据包发送至所述第一终端设备。
[0015] 结合第二方面,在第二种可能的实现方式中,所述第一虚拟终端还用于,根据所述第二终端设备的地址信息查询第一对应关系,获得所述第二下行桥接口,所述第二下行桥接口与所述第二终端设备连接;以及根据所述第二下行桥接口查询第二对应关系,获得与所述第二下行桥接口连接的第二虚拟终端的标识信息。
[0016] 结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述PCIe交换设备还包括:存储模块,用于存储所述第一对应关系,以及存储所述第二对应关系,其中,所述第一对应关系包括终端设备与下行桥接口之间的对应关系,所述第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
[0017] 结合第二方面,在第四种可能的实现方式中,所述PCIe交换设备还包括上行桥接口以及管理处理器,其中,所述管理处理器通过所述上行桥接口为所述PCIe交换设备的每个下行桥接口所对应的虚拟终端配置标识信息。
[0018] 第三方面,提供一种PCIe系统,包括:第二方面提供的PCIe交换设备,以及与所述PCIe交换设备的下行桥接口连接的终端设备。
[0019] 本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0020] 在本申请实施例中,由于在能够进行数据传输的第一终端设备与第二终端设备间设置PCIe交换设备,当第一终端设备与第二终端设备要进行数据包传输时,采用PCIe对第一终端设备发送的数据包基于标识信息重新封装后再转发至第二终端设备的技术手段,从而使得将数据包基于地址转发转变为基于标识信息转发,使得转发过程对第一终端设备与第二终端设备不可见,防止了由于第一终端设备与PCIe间的传输系统以及第二终端设备与PCIe间的传输系统不一致而导致在基于地址转发过程中地址分配困难,地址映射关系复杂而造成报文在传输系统中停留,转发过程延时长,占用资源的技术问题,同时又由于PCIe对数据包基于标识信息重新封装后转发,还解决了基于地址转发方案中终端设备对报文类型收发有局限的问题,实现了提高报文传输效率,减少资源占用,以及转发过程不再对报文类型有局限性的有益效果。
附图说明
[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1为本申请实施例提供的一种PCIe系统的结构示意图;
[0023] 图2为本申请实施例提供的一种跨PCIe域报文传输的方法的流程图;
[0024]图3为本申请实施例提供的第一终端设备与第二终端设备基于PCIe交换设备相互传输数据包的示意图;
[0025] 图4为本申请实施例提供的PCIe交换设备的结构示意图;
[0026]图5为本申请实施例提供的原数据包在PCIe交换设备中重新封装后获得的新数据包的组成示意图;
[0027] 图6为本申请实施例提供的在PCIe系统中具有主备两个PCIe交换设备的示意图。
具体实施方式
[0028] 本申请实施例通过提供一种跨PCIe域报文传输的方法,一种PCIe交换设备及一种PCIe系统,解决了现有的PCIe系统基于地址来传输报文,造成数据传输延时较大,对报文收发有局限性以及占用逻辑资源量大的技术问题。[0029] 为了更好的理解本申请提供的技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
[0030] 本申请实施例中提供的跨PCIe(PCI Express总线标准系统)域报文传输的方法应用在一套PCIe系统中,该PCIe系统包括PCIe交换设备,以及能够连接在该PCIe交换设备上的至少两个终端设备,分别连接在PCIe交换设备的两侧,通过PCIe交换设备,两侧的终端设备能够相互进行报文传输,在实际应用中终端设备具体指的是服务器(主机host)与用户终端(Endpoint,简称EP), PCIe交换设备还包括RC (Root Complex根联合体)和switch交换电路,其中,RC与主机连接,一个RC可以支持一个或多个PCIe下行桥端口,即一个主机下面可以接多个用户终端,比如,一个intel CPU处理器可以接多个andriod安卓终端。
[0031] 因此,本申请实施例中提供的方法就是建立在主机与用户终端之间设置有PCIe交换设备的数据链路上的基础上,通过PCIe交换设备实现对主机与用户终端之间的数据包的转发,如图1所示,服务器侧100与用户终端侧200通过PCIe交换设备300连接,在服务器侧100与PCIe交换设备300之间形成有上行域301,在PCIe交换设备300与用户终端侧200之间形成有下行域302,并且在PCIe系统300中包括有至少两个下行桥接口,通过这些下行桥接口,PCIe交换设备300能够分别与上行域301以及下行域302连接,从而与服务器侧100以及用户终端侧200连接。在服务器侧100可以包括多个主机,每个主机下面连接的上行域301中包括多个P2P,因此,每个主机下面可以接多个用户终端。
[0032] 由于在服务器侧可以有多个主机,而每个主机与用户终端(以下简称“终端”)之间的数据传输方式是一样的,因此,下面具体以主机I与多个终端进行数据传输为例来详细说明,又由于主机与每个终端之间进行数据传输是相互的(即主机可以发送数据包到终端,终端也可以发送数据包到主机),对于位于主机与终端之间的PCIe系统来说,主机与终端的地位可以理解为相等的,因此,在本申请实施例中第一终端设备和第二终端设备可以分别理解为主机与终端,即具体以第一终端设备为服务器侧中的一个主机,第二终端设备为用户终端侧的中的一个终端设备来说明。
[0033] 如图2所示,本申请实施例提供的跨PCIe域报文传输的方法,具体包括步骤:
[0034] S1:第一下行桥接口接收第一终端设备发送的第一数据包,第一数据包中携带的第二终端设备的地址信息;
[0035] S2:第一虚拟终端根据第二终端设备的地址信息获取第二虚拟终端的标识信息,第二终端设备为第一数据包的目的设备;
[0036] 在具体实施过程中,本申请实施例中提供的PCIe交换设备包括downstream下行桥接口与upstream上行桥接口这两种物理接口,其中,下行桥接口主要用于连接各个终端设备,上行桥接口主要用于将各个下行桥接口连接至PCIe交换设备中的MCPU管理处理器,另外,每一个下行桥接口还对应有一个逻辑接口 swEP (switch Endpoint交换电路中的终端),swEP也可以理解为在PCIe交换设备的内部交换电路中的虚拟终端,虚拟终端swEP主要用于实现各个物理下行桥接口的逻辑功能,比如,对数据包的封装处理和解封装处理。前面已经介绍了在PCIe系统中至少包括两个终端设备,因此,在PCIe交换设备的两侧分别与至少一个终端设备连接,因此,如图3所示,PCIe交换设备300中至少有两个下行桥接口,分别通向第一终端设备101及第二终端设备201,PCIe交换设备300中的第一下行桥接口10通过上行域301与第一终端设备101连接,第二下行桥接口 20通过下行域302与第二终端设备201连接,其中,第一下行桥接口 10对应有第一虚拟终端swEPl,第二下行桥接口 20对应有第二虚拟终端swEP2,当第一终端设备101要向第二终端设备201发送数据包时,第一下行桥接口 10会通过上行域301中的一条P2P点对点传输通路接收到第一终端设备101发送的第一数据包。对于第一终端设备101来说,它发出的每一个数据包都是事先封装好的,且在封装头中带有该数据包要被发送到的目的设备的地址信息,因此,既然第一数据包是第一终端设备101要发送给第二终端设备201的数据包,在第一数据包的封装头中就包括有第二终端设备201的地址信息,当第一下行桥接口 10接收到的第一数据包后,作为第一下行桥接口 10的逻辑处理接口,第一虚拟终端swEPl会根据其封装头中携带的第二终端设备201的地址信息,获取到在PCIe交换设备300中的与第二终端设备201相连接的第二下行桥接口 20所对应的第二虚拟终端swEP2的标识信息,以便于在后续步骤中PCIe交换设备300能够基于第二虚拟终端swEP2的标识信息将该数据包转发至第二下行桥接口 20,从而通过第二下行桥接口 20将数据包发送到第二终端设备中。
[0037] 进一步的,第一虚拟终端根据第二终端设备的地址信息获取第二虚拟终端的标识信息的过程具体包括:
[0038] 该第一虚拟终端根据第二终端设备的地址信息查询第一对应关系,获得第二下行桥接口,第二下行桥接口与第二终端设备连接;
[0039] 该第一虚拟终端根据第二下行桥接口查询第二对应关系,获得与第二下行桥接口连接的第二虚拟终端的标识信息。
[0040] 进一步的,第一对应关系包括终端设备与下行桥接口之间的对应关系;第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
[0041 ] 在具体实施过程中,在PCIe交换设备中保存有两个对应关系,弟一对应关系为终端设备与下行桥接口之间的对应关系,第二对应关系为下行桥接口,虚拟终端,以及标识信息之间的对应关系,这两个对应关系可以分别以映射表的形式被保存,PCIe交换设备内部交换电路中的每一个虚拟终端(逻辑接口)都通过查询映射表来获取这两个对应关系中的信息。比如,根据图3所示的连接情况,第一终端设备101与第一下行桥接口 10连接,第二终端设备201与第二下行桥接口 20连接,第一对应关系可以配置出表1所示的映射关系:
[0042]
[0043]表1
[0044] 因此,第一虚拟终端在知道了第二终端设备201的地址信息后,通过查询表1,就可以确定在PCIe交换设备的内部交换电路中与第二终端设备201相连接的下行桥接口是第二下行桥接口 20,进而第一虚拟终端可以通过查询第二对应关系获取第二下行桥接口所连接的虚拟终端的标识信息。
[0045] 前面已经提到upstream上行桥接口主要用于将各个downstream下行桥接口连接至PCIe交换设备中的MCPU管理处理器,如图4所示,通过上行桥接口,MCPU对PCIe交换设备中的每个downstream下行桥接口进行管理,MCPU为每个下行桥接口所对应的swEP虚拟终端(即每个下行桥接口的逻辑接口)配置标识信息。标识信息具体包括对每个swEP分配的Bus ID总线标识、Device ID设备标识、Fuction ID功能标识,可以简称BDF,由于下行桥接口与swEP—一对应,因此,BDF标识信息也可以理解为是下行桥接口的标识信息。可
见,第二对应关系具体指downstream下行桥接口、swEP虚拟终端、BDF标识信息的--对应
关系。比如,根据图4中所示的各个downstream下行桥接口与swEP虚拟终端以及标识信息的对应情况,MCPU可以为第二对应关系配置出表2所示的映射关系:
[0046]
[0047]表 2
[0048] 因此,第一虚拟终端在知道了第二下行桥接口之后,通过查询表2中的映射关系,就可以确定第二下行桥接口所对应的虚拟终端为第二虚拟终端,从而获取第二虚拟终端的第二标识信息,从而第一虚拟终端建立与第二虚拟终端的电路连接。
[0049] 综上所述,通过步骤SI与步骤S2实现的其实是一个打通PCIe交换设备的内部交换电路的过程,将原本要从第一终端设备发送到第二终端设备的数据包,转交给内部交换电路来转发。
[0050] 事实上,服务器侧与用户终端设备侧以及中间的对等网(即上行域与下行域中的点对点P2P传输通路)也可以理解是一个PCIe系统,其中,服务器侧的每个主机也会为与其连接的每个用户终端设备配置BDF标识信息以及BAR空间地址等资源,同时每个主机还要为与其连接的每条点对点P2P通路配置标识信息以及BAR,因此,在第一对应关系中记录的是各个终端设备的BDF标识信息以及BAR空间地址等资源,同时还记录了每条点对点P2P通路与各个终端设备的对应关系。
[0051] 另外,虽然在上述事实例中是将第一对应关系与第二对应关系分开记录在两张映射表中,但本申请实施例中对于两个对应关系的记载形式并不做具体限定,在实际应用中,也可以记录在同一张映射表中,即记录为终端设备-下行桥接口 -虚拟终端-标识信息。并且对映射表的存放位置也不做具体限定,可以将映射表统一放在一个地方,供所有的虚拟终端访问,也可以在每个虚拟终端下放一张。
[0052] S3:第一虚拟终端对第一数据包进行封装获得第二数据包,该第二数据包的封装头中包含第二虚拟终端的标识信息,将第二数据包发送到内部交换电路;
[0053] S4:内部交换电路根据封装头将第二数据包发送到第二虚拟终端,通过第二虚拟终端解封装第二数据包获得第一数据包后通过第二下行桥接口发送给所述第二终端设备。
[0054] 在具体实施过程中,当通过步骤SI与S2在第一虚拟终端与第二虚拟终端之间建立了通路之后,第一虚拟终端基于获得第二虚拟终端标识信息将第一下行桥接口从第一终端设备处获得的第一数据包发送给第二虚拟终端,执行步骤S3与S4,如图4所示,该两个步骤具体又分为以下3步:
[0055] 1、再封装:第一下行桥接口 10所对应的第一虚拟终端swEPl基于第二下行桥接口20所对应的第二虚拟终端swEP2的标识信息对第一数据包重新封装,获得一个新的数据包为第二数据包,在第二数据包的封装头中携带有第二虚拟终端swEP2的标识信息,然后将第二数据包交给PCIe交换设备300的内部交换电路;
[0056] 2、发送:对于内部交换电路来说,第二数据包的发送方是第一下行桥接口 10所对应的第一虚拟终端swEPl,接收方为第二下行桥接口 20所对应的第二虚拟终端swEP2,因此,内部交换电路会基于第一虚拟终端swEPl的标识信息以及第二虚拟终端swEP2的标识信息在这两个下行桥接口之间建立通信,根据第二数据包的封装头将第二数据包发送至第二虚拟终端swEP2 ;
[0057] 3、解封装:当第二虚拟终端swEP2接收到第二数据包之后,对第二数据包进行解封装,从而获得第一数据包。然后,通过第二虚拟终端swEP2对应的第二下行桥接口 20将第一数据包转发给第二终端设备200。
[0058] 通过以上描述可知,由于第二数据包是新发送方(第一虚拟终端swEPl)重新封装后数据包,封装头中携带的是新接收方(第二虚拟终端swEP2)的标识信息,因此,第二数据包在PCIe系统中的内部交换电路中传输时对原来的发送方(第一终端设备)与接收方(第二终端设备)来说是不可见的,对于原来的发送方来说只需将数据包发出即可,第二数据包在PCIe系统的内部交换电路中的传输过程不会停留,只需要做打包解包处理(再封装与解封装),数据包的发送过程流水式完成,整个传输过程延时大大减小,并且由于统一转换成读完成包格式,可传输任何类型的报文,转换包格式方式实现的逻辑简单,占用资源少。
[0059] 可见,在本申请实施例中,由于在能够进行数据传输的第一终端设备与第二终端设备间的传输系统中采用PCIe设备,将整个传输系统分成了上行域与下行域,PCIe通过不同的下行桥接口与第一终端设备以及第二终端设备连接,并且为每个下行桥接口都分配唯一的标识信息,当PCIe通过一个下行桥接口获得了第一终端设备的数据包后,对该数据包重新打包,且获得新数据包的目的下行桥接口的标识信息,从而基于标识信息对数据包进行转发,使得转发过程对第一终端设备与第二终端设备来说不可见的技术手段,解决了现有的PCIe系统基于地址来传输报文,造成数据传输延时较大,对报文收发有局限性以及占用逻辑资源量大的技术问题,实现了待发送的报文在上行域或下行域中不停留,通过PCIe系统流水式的输出,在整个数据链路中的延时小,而且逻辑实现简单,只需一个配置表(对应关系),资源占用少的技术效果。
[0060] 进一步的,第一下行桥接口接收内部交换电路发送来的第三数据包,该第三数据包的封装头中包含第一虚拟终端的标识信息;
[0061] 该第一虚拟终端将第三数据包进行解封装,获得第四数据包,将该第四数据包发送至第一终端设备。
[0062] 在具体实施过程中,通过步骤SI,S2,S3,S4可以实现PCIe交换设备将第一终端设备发送的数据包转发到第二终端设备中,那么当第二终端设备发送数据包到第一终端设备中时,PCIe系统的转发过程与以上4个步骤中描述的过程一致,只是第二下行桥接口所对应的第二虚拟终端成为了要对第二终端设备发送来的数据包进行重新封装的一方,获得新数据包,而第一下行桥接口所对应的第一虚拟终端对新数据包进行解封装后再发给第一终端设备。
[0063] 因此,当第二下行桥接口接收到了第二终端设备发送的数据包后,就获得与第一终端设备连接的第一下行桥接口所对应的第一虚拟终端的标识信息,并对该数据包进行重新封装,从而获得第三数据包,在第三数据包的封装头中携带有第一虚拟终端的标识信息,当PCIe系统的内部交换电路将第三数据包发送至第一下行桥接口后,第一下行桥接口所对应的第一虚拟终端对其进行解封装,获得原始数据包,此处称为第四数据包,并且第一下行桥接口将第四数据包发送到与其相连接的第一终端设备中。
[0064] 下面具体以一个应用场景来描述一下本申请实施例中的报文传输方法:
[0065] 当host (主机I)要向EP (终端设备I)发送报文时,系统首先对PCIe交换网上电,由PCIe系统中的MCPU完成对所有swEP分配BDF (Bus ID,Device ID,Fuction ID)标识信息,然后host板和EP板上电,在系统初始化枚举阶段,host为下挂的EP设备分配BDF号及BAR空间地址等资源,同时host也需要为对应的P2P分配BDF号及BAR空间地址。
[0066] 上行域P2P逻辑接收到host发出的一个PCIe数据包后,解析TLP Header(Transaction Layer Packet Header处理层数据包的封装头)中的路由信息确定目标设备,然后将数据包中的TLP Header封装头、TLP payload数据内容、ECRC校验码作为一个TLPpayload,并封装上新的TLP Header (读完成包格式)和ECRC,完成PCIe数据包的组包过程。
[0067] 新的TLP Header (读完成包格式头)中含有目标设备对应的swEP设备的路由BDF信息,PCIe交换网根据这些BDFJf PCIe数据包发到对应的swEP。
[0068] 下行域P2P逻辑的swEP收到PCIe数据包后,提取TLP payload,将其还原成Host发出的原始的 TLP Header、TLP payload、ECRC,送至 EP。
[0069] 如图5所示的是原数据包在PCIe系统中重新封装后获得的新数据包的组成示意图,其中,原数据包400中的TLP Header>TLP payload、ECRC作为新数据包的payload被封装在新数据包中。这里要说明的是,在以上过程中,在重新封装处理是ECRC校验码是一个可选项,将原数据包中携带的ECRC校验码封装到新的数据包中,只是为了当EP端接收到解封装后的原数据包时,能够检验获得的原数据包是否准确,因此,ECRC校验码只是为了确保接收到数据包的准备性。
[0070] 基于同一发明构思,如图4所示,本申请实施例提供的一种PCIe交换设备300,具体包括:
[0071] 下行桥接口 50,虚拟终端60和内部交换电路70 ;其中:
[0072] 第一下行桥接口,用于接收连接于所述第一下行桥接口的第一终端设备发送的第一数据包;
[0073] 第一虚拟终端,与所述第一下行桥接口一一对应连接,用于根据所述第一数据包中携带的第二终端设备的地址信息获取连接于所述第二终端设备的第二下行桥接口所对应的第二虚拟终端的标识信息,所述第二终端设备为所述第一数据包的目的设备,对所述第一数据包进行封装获得第二数据包,所述第二数据包的封装头中包含所述第二下行桥接口所对应的第二虚拟终端的标识信息,将所述第二数据包发送到所述内部交换电路;
[0074] 所述内部交换电路,用于接收所述第一虚拟终端发送来的第二数据包,根据所述第二数据包的封装头将所述第二数据包发送到所述第二虚拟终端,以通过所述第二下行桥接口将所述第一数据包发送给所述第二终端设备。
[0075] 在具体实施过程中,PCIe交换设备的内部交换电路指的是各个下行桥接口之间的交换电路,比如,图4中,在第一下行桥接口与第二下行桥接口,第一下行桥接口与第五下行桥接口,第三下行桥接口与第四下行桥接口之间分别具有通路70,这3条通路70就属于内部交换电路。由于在本申请实施例中前面介绍了的一种跨PCIe总线标准系统域报文传输的方法,其中对PCIe交换设备中的结构以及功能都已经进行了描述,为了申请文件不累赘,这里就不再重复阐述了。
[0076] 进一步的,所述第一下行桥接口还用于,接收所述内部交换电路发送来的第三数据包,所述第三数据包的封装头中包含所述第一虚拟终端的标识信息;
[0077] 所述第一虚拟终端还用于,将所述第三数据包进行解封装,获得第四数据包,以通过所述第一下行桥接口将所述第四数据包发送至所述第一终端设备。
[0078] 进一步的,所述PCIe交换设备还包括存储模块;
[0079] 所述第一虚拟终端还用于,根据所述第二终端设备的地址信息查询第一对应关系,获得所述第二下行桥接口,所述第二下行桥接口与所述第二终端设备连接;
[0080] 以及根据所述第二下行桥接口查询第二对应关系,获得与所述第二下行桥接口连接的第二虚拟终端的标识信息。
[0081] 进一步的,所述PCIe交换设备还包括:
[0082] 存储模块,用于存储所述第一对应关系,以及存储所述第二对应关系,其中,所述第一对应关系包括终端设备与下行桥接口之间的对应关系,所述第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
[0083] 进一步的,所述PCIe交换设备还包括上行桥接口以及管理处理器,其中,所述管理处理器通过所述上行桥接口为所述PCIe交换设备的每个下行桥接口所对应的虚拟终端配置标识信息。
[0084] 基于同一发明构思,本申请实施例提供的一种PCIe系统,具体包括:
[0085] 前面所描述的一种PCIe交换设备,以及与该PCIe交换设备的下行桥接口连接的终端设备。
[0086] 在具体实施过程,对于整个传输系统来说,为了保证主机与终端之间能够始终保持有通路,在本申请实施例中优化的方案中,采用在主机与终端之间设置有主备两个PCIe交换设备,如图6所不,在上行域301与下行域302之间设置有主PCIe交换设备300与备PCIe交换设备400,两个PCIe设备并列连接在上行域301与下行域302之间。虽然称为主备两个PCIe交换设备,但在应用中两PCIe的地位可以是平等的,比如,当有主机通过上行域301发送数据包下来时,主机可以选择两个PCIe中的任意一个电路板中的交换电路,或者是主机同时向这两个电路板都发送该数据包,终端接收最先到达到一个电路板中的数据包。当然,系统也可以将两PCIe的地位设置为不平等的,即当主机要发送数据包时,先通过主PCIe交换设备300发送该数据包,当主PCIe交换设备300瘫痪不能顺利将数据包传输到中断时,再选用备PCIe交换设备400重新发送该数据包。总之,不论将两个PCIe交换设备的使用先后顺序怎样设置,采用两个PCIe交换设备都能起到提高数据包传输的成功率的效果。
[0087] 可见,在本申请实施例中,由于采用设置主备两个PCIe交换设备的技术手段,增加了服务侧器与终端设备侧之间的通信道路条数,当主机与终端进行通信时,可以任意选取主备PCIe交换设备的内部交换电路来进行数据包的传输,当在数据包传输过程中,一个PCIe交换设备瘫痪时,可以选择另一个PCIe交换设备将数据包重新发送,保证数据包能从发送方顺利到达接收方,减少了主机与终端之间数据包不能发送到的可能性,提高了数据包传输的成功率。
[0088] 本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0089] 在本申请实施例中,由于在能够进行数据传输的第一终端设备与第二终端设备间的传输系统中采用PCIe设备,将整个传输系统分成了上行域与下行域,PCIe通过不同的下行桥接口与第一终端设备以及第二终端设备连接,并且为每个下行桥接口都分配唯一的标识信息,当PCIe通过一个下行桥接口获得了第一终端设备的数据包后,对该数据包重新打包,且获得新数据包的目的下行桥接口的标识信息,从而基于标识信息对数据包进行转发,使得转发过程对第一终端设备与第二终端设备来说不可见的技术手段,解决了现有的PCIe系统基于地址来传输报文,造成数据传输延时较大,对报文收发有局限性以及占用逻辑资源量大的技术问题,实现了待发送的报文在上行域或下行域中不停留,通过PCIe系统流水式的输出,在整个数据链路中的延时小,而且逻辑实现简单,只需一个配置表,资源占用少的技术效果。
[0090] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种跨PCIe域报文传输的方法,其特征在于,所述方法应用于PCIe系统中,所述PCIe总线标准系统包括PCIe交换设备,第一终端设备与第二终端设备,所述PCIe交换设备包括第一下行桥接口,第二下行桥接口,第一虚拟终端,第二虚拟终端以及内部交换电路,其中,所述第一虚拟终端与所述第一下行桥接口连接,所述第二虚拟终端与所述第二下行桥接口连接,所述方法包括: 所述第一下行桥接口接收所述第一终端设备发送的第一数据包,所述第一数据包中携带所述第二终端设备的地址信息; 所述第一虚拟终端根据所述第二终端设备的地址信息获取所述第二虚拟终端的标识信息,所述第二终端设备为所述第一数据包的目的设备; 所述第一虚拟终端对所述第一数据包进行封装获得第二数据包,所述第二数据包的封装头中包含所述第二虚拟终端的标识信息,将所述第二数据包发送到所述内部交换电路; 所述内部交换电路根据所述封装头将所述第二数据包发送到所述第二虚拟终端,通过所述第二虚拟终端解封装所述第二数据包获得所述第一数据包后通过第二下行桥接口发送给所述第二终端设备。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 所述第一下行桥接口接收所述内部交换电路发送来的第三数据包,所述第三数据包的封装头中包含所述第一虚拟终端的标识信息; 所述第一虚拟终端将所述第三数据包进行解封装,获得第四数据包,将所述第四数据包发送至所述第一终端设备。
3.如权利要求1所述的方法,其特征在于,所述第一虚拟终端根据所述第二终端设备的地址信息获取所述第二虚拟终端的标识信息,具体包括: 所述第一虚拟终端根据所述第二终端设备的地址信息查询第一对应关系,获得所述第二下行桥接口,所述第二下行桥接口与所述第二终端设备连接; 所述第一虚拟终端根据所述第二下行桥接口查询第二对应关系,获得与所述第二下行桥接口连接的第二虚拟终端的标识信息。
4.如权利要求3所述的方法,其特征在于,所述第一对应关系包括终端设备与下行桥接口之间的对应关系; 所述第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
5.如权利要求1所述的方法,其特征在于,所述虚拟终端的标识信息是由所述PCIe交换设备的管理处理器通过所述PCIe交换设备的上行桥接口配置的。
6.一种PCIe交换设备,其特征在于,包括:下行桥接口,虚拟终端和内部交换电路;其中: 第一下行桥接口,用于接收连接于所述第一下行桥接口的第一终端设备发送的第一数据包; 第一虚拟终端,与所述第一下行桥接口一一对应连接,用于根据所述第一数据包中携带的第二终端设备的地址信息获取连接于所述第二终端设备的第二下行桥接口所连接的第二虚拟终端的标识信息,所述第二终端设备为所述第一数据包的目的设备,对所述第一数据包进行封装获得第二数据包,所述第二数据包的封装头中包含所述第二下行桥接口所连接的第二虚拟终端的标识信息,将所述第二数据包发送到所述内部交换电路;所述内部交换电路,用于接收所述第一虚拟终端发送来的第二数据包,根据所述第二数据包的封装头将所述第二数据包发送到所述第二虚拟终端,以通过所述第二下行桥接口将所述第一数据包发送给所述第二终端设备。
7.如权利要求6所述的PCIe交换设备,其特征在于, 所述第一下行桥接口还用于,接收所述内部交换电路发送来的第三数据包,所述第三数据包的封装头中包含所述第一虚拟终端的标识信息; 所述第一虚拟终端还用于,将所述第三数据包进行解封装,获得第四数据包,以通过所述第一下行桥接口将所述第四数据包发送至所述第一终端设备。
8.如权利要求6所述的PCIe交换设备,其特征在于, 所述第一虚拟终端还用于,根据所述第二终端设备的地址信息查询第一对应关系,获得所述第二下行桥接口,所述第二下行桥接口与所述第二终端设备连接; 以及根据所述第二下行桥接口查询第二对应关系,获得与所述第二下行桥接口连接的第二虚拟终端的标识信息。
9.如权利要求8所述的PCIe交换设备,其特征在于,所述PCIe交换设备还包括: 所述存储模块,用于存储所述第一对应关系,以及存储所述第二对应关系,其中,所述第一对应关系包括终端设备与下行桥接口之间的对应关系,所述第二对应关系包括下行桥接口,虚拟终端,以及标识信息之间的对应关系。
10.如权利要求6所述的PCIe交换设备,其特征在于,所述PCIe交换设备还包括上行桥接口以及管理处理器,其中,所述管理处理器通过所述上行桥接口为所述PCIe交换设备的每个下行桥接口所对应的虚拟终端配置标识信息。
11.一种PCIe系统,其特征在于,包括: 如权利要求6-10中任一权项所述的PCIe交换设备,以及与所述PCIe交换设备的下行桥接口连接的终端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698947.XA CN103701680A (zh) | 2013-12-17 | 2013-12-17 | 一种跨PCIe域报文传输的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698947.XA CN103701680A (zh) | 2013-12-17 | 2013-12-17 | 一种跨PCIe域报文传输的方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103701680A true CN103701680A (zh) | 2014-04-02 |
Family
ID=50363082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310698947.XA Pending CN103701680A (zh) | 2013-12-17 | 2013-12-17 | 一种跨PCIe域报文传输的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103701680A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011891A (zh) * | 2018-01-05 | 2019-07-12 | 北京视联动力国际信息技术有限公司 | 一种跨网络的业务处理方法和系统 |
US10372340B2 (en) | 2014-12-27 | 2019-08-06 | Huawei Technologies Co., Ltd. | Data distribution method in storage system, distribution apparatus, and storage system |
CN110519312A (zh) * | 2018-05-21 | 2019-11-29 | 视联动力信息技术股份有限公司 | 一种基于视联网的资源同步方法和装置 |
CN110519313A (zh) * | 2018-05-21 | 2019-11-29 | 视联动力信息技术股份有限公司 | 一种基于视联网的资源同步方法和装置 |
CN110691139A (zh) * | 2019-10-11 | 2020-01-14 | 北京字节跳动网络技术有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN113498595A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821082A (zh) * | 2011-06-10 | 2012-12-12 | 成都市华为赛门铁克科技有限公司 | 一种数据传输方法、装置和系统 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
-
2013
- 2013-12-17 CN CN201310698947.XA patent/CN103701680A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821082A (zh) * | 2011-06-10 | 2012-12-12 | 成都市华为赛门铁克科技有限公司 | 一种数据传输方法、装置和系统 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372340B2 (en) | 2014-12-27 | 2019-08-06 | Huawei Technologies Co., Ltd. | Data distribution method in storage system, distribution apparatus, and storage system |
CN110011891A (zh) * | 2018-01-05 | 2019-07-12 | 北京视联动力国际信息技术有限公司 | 一种跨网络的业务处理方法和系统 |
CN110011891B (zh) * | 2018-01-05 | 2021-08-20 | 视联动力信息技术股份有限公司 | 一种跨网络的业务处理方法和系统 |
CN110519312A (zh) * | 2018-05-21 | 2019-11-29 | 视联动力信息技术股份有限公司 | 一种基于视联网的资源同步方法和装置 |
CN110519313A (zh) * | 2018-05-21 | 2019-11-29 | 视联动力信息技术股份有限公司 | 一种基于视联网的资源同步方法和装置 |
CN110691139A (zh) * | 2019-10-11 | 2020-01-14 | 北京字节跳动网络技术有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN110691139B (zh) * | 2019-10-11 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN113498595A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103701680A (zh) | 一种跨PCIe域报文传输的方法、设备及系统 | |
TWI407313B (zh) | 統一多重傳送媒體連接器架構 | |
EP3172870B1 (en) | Non-transparent bridge method and apparatus for configuring high-dimensional pci-express networks | |
CN102624738B (zh) | 一种串口服务器、协转芯片及数据传输方法 | |
CN101552785B (zh) | 基于消息机制的用于海量数据传输的can总线通信方法 | |
CN102685017A (zh) | 一种基于fpga的片上网络路由器 | |
CN106534178B (zh) | RapidIO网络通用套接字的实现系统及方法 | |
CN104104616A (zh) | 数据调度和交换的方法、装置及系统 | |
CN107079017B (zh) | 一种报文转换方法及装置 | |
CN103490961A (zh) | 一种网络设备 | |
CN103716092A (zh) | 一种总线型网络中双向光纤通信的组网系统及通信方法 | |
CN105635176A (zh) | 一种基于RapidIO的网络数据传输方法 | |
CN107332794B (zh) | 一种面向时间触发通信的动态锁定时槽方法 | |
CN106657377B (zh) | 一种wia-pa/全互联制造网络信息服务适配器及实现方法 | |
CN107819659A (zh) | 一种基于spi的智能级联通信网络 | |
CN103581228A (zh) | 一种物联网中设备通信的方法及系统 | |
CN101277244B (zh) | Atm同步以太网及其收发数据的方法 | |
CN103686079B (zh) | 一种终端设备 | |
CN108959134B (zh) | 用于现场可编程门阵列设备的通信 | |
CN104601423B (zh) | Spi总线节点设备及其通信方法以及spi总线系统 | |
CN101895560A (zh) | 一种开放性二级拓扑结构的现场总线dp-net | |
CN101334763B (zh) | 主机与设备之间的数据传送方法 | |
CN108834153A (zh) | 一种小区无线覆盖系统及方法 | |
CN102325126B (zh) | 一种VoIP系统穿越无线传感器网络的语音网关及网络 | |
CN108011795A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140402 |