CN106027423A - PCIe设备共享网络及其数据传输方法 - Google Patents
PCIe设备共享网络及其数据传输方法 Download PDFInfo
- Publication number
- CN106027423A CN106027423A CN201610341595.6A CN201610341595A CN106027423A CN 106027423 A CN106027423 A CN 106027423A CN 201610341595 A CN201610341595 A CN 201610341595A CN 106027423 A CN106027423 A CN 106027423A
- Authority
- CN
- China
- Prior art keywords
- pcie
- main frame
- pcie device
- layer switch
- switch
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了PCIe设备共享网络及其数据传输方法。所述网络的一具体实施方式包括:PCIe主机连接层交换机组、PCIe设备连接层交换机组和配置主机,PCIe主机连接层交换机组包括至少一个PCIe主机连接层交换机,PCIe设备连接层交换机组包括至少一个PCIe设备连接层交换机,配置主机用于配置PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径。该实施方式能够增加PCIe主机与PCIe设备之间及PCIe设备相互之间的数据传输路径,在不改变上述连接的前提下能够避免网络拥塞,提高PCIe主机与PCIe设备之间及PCIe设备相互之间的通信带宽。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及网络数据处理技术领域,尤其涉及PCIe设备共享网络及其数据传输方法。
背景技术
PCIe(Peripheral Component Interconnect-Express,外围部件互联总线)设备是指通过PCIe接口与其他设备(如计算机主板)连接,进行数据处理的设备,常见的PCIe设备有显卡、网卡、固态硬盘。PCIe接口属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,其主要优势就是数据传输速率高,而且还有相当大的发展潜力。将多个PCIe设备连接起来可以构成PCIe设备网络,提高了PCIe设备的利用率。
现有的PCIe设备网络通过PCIe主机、交换机和PCIe设备进行连接,并且根据连接关系确定PCIe主机到PCIe设备及PCIe设备相互之间的数据传输路径,因此数据传输路径和连接关系相对固定,无法利用PCIe设备网络的结构提高访问PCIe设备的带宽。
发明内容
本申请提供了PCIe设备共享网络及其数据传输方法,以解决背景技术中提到的问题。
第一方面,本申请提供了一种PCIe设备共享网络,所述网络包括:PCIe主机连接层交换机组、PCIe设备连接层交换机组和配置主机,所述PCIe主机连接层交换机组包括至少一个PCIe主机连接层交换机,所述PCIe设备连接层交换机组包括至少一个PCIe设备连接层交换机,所述PCIe主机连接层交换机与PCIe设备连接层交换机连接,所述PCIe主机连接层交换机用于连接PCIe主机,所述PCIe设备连接层交换机用于连接PCIe设备,所述配置主机用于配置所述PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径。
第二方面,本申请提供了一种PCIe设备共享网络的数据传输方法,所述方法包括:接收PCIe主机发来的PCIe设备访问申请报文,所述PCIe设备访问申请报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址;从所述PCIe设备访问申请报文中解析出设备信息和任务信息;通过所述设备信息确定所述PCIe设备的虚拟内存地址,建立虚拟内存地址与本地内存地址之间的转换关系信息;配置从所述PCIe主机到PCIe设备的第一数据转发信息,所述第一数据转发信息用于确定PCIe主机访问PCIe设备的数据传输路径;将所述转换关系信息和第一数据转发信息发送给PCIe交换机。
第三方面,本申请提供了一种PCIe设备共享网络的数据传输方法,所述方法包括:接收PCIe主机发来的PCIe设备访问报文,所述PCIe设备访问报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址;查询与所述PCIe主机连接的PCIe交换机上的转换关系信息,通过所述转换关系信息将所述设备信息中的本地内存地址替换为虚拟内存地址,所述转换关系信息用于表征本地内存地址和虚拟内存地址的对应关系;根据所述虚拟内存地址和第一数据转发信息将所述任务信息发送至所述PCIe设备,所述第一数据转发信息用于确定所述PCIe主机访问PCIe设备的数据传输路径。
第四方面,本申请提供了一种PCIe设备共享网络的数据传输方法,所述方法包括:从PCIe设备访问申请报文中解析出PCIe设备的设备信息和任务信息;通过所述设备信息确定所述PCIe设备的虚拟内存地址;查询对应所述虚拟内存地址的第二数据转发信息,所述第二数据转发信息用于确定PCIe设备访问PCIe设备的数据传输路径;按照所述第二数据转发信息将所述任务信息发送给PCIe设备。
本申请提供的PCIe设备共享网络及其数据传输方法,首先建立PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备的连接,然后通过配置主机基于上述连接来配置PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径,能够增加PCIe主机与PCIe设备之间及PCIe设备相互之间的数据传输路径,在不改变上述连接的前提下能够避免网络拥塞,提高PCIe主机与PCIe设备之间及PCIe设备相互之间的通信带宽。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的PCIe设备共享网络的结构图;
图2是根据本申请的PCIe设备共享网络的应用场景的一个示意图;
图3是根据本申请的PCIe主机-1读取PCIe设备D1的信息的流程图;
图4是根据本申请的PCIe主机-1写入PCIe设备D1的信息的流程图;
图5是根据本申请的包含传递层交换机组的3层PCIe设备共享网络的一个结构示意图;
图6是根据本申请的PCIe设备共享网络的数据传输方法一个流程图;
图7是根据本申请的PCIe设备共享网络的数据传输方法另一个流程图;
图8是根据本申请的PCIe设备共享网络的数据传输方法又一个流程图;
图9是根据本申请的PCIe设备D1读取PCIe设备D5的信息的流程图;
图10是根据本申请的PCIe设备D1写入PCIe设备D5的信息的流程图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了PCIe设备共享网络的结构图100。如图1所示,本实施例的PCIe设备共享网络包括:PCIe主机连接层交换机组、PCIe设备连接层交换机组和配置主机。其中,所述PCIe主机连接层交换机组包括至少一个PCIe主机连接层交换机;所述PCIe设备连接层交换机组包括至少一个PCIe设备连接层交换机;所述PCIe主机连接层交换机与PCIe设备连接层交换机连接,所述PCIe主机连接层交换机用于连接PCIe主机,所述PCIe设备连接层交换机用于连接PCIe设备,所述配置主机用于配置所述PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径。
图1中,PCIe主机连接层交换机组包括n个PCIe主机连接层交换机,k个PCIe主机与n个PCIe主机连接层交换机建立连接;PCIe设备连接层交换机组包括m个PCIe设备连接层交换机,每个PCIe设备连接层交换机下连接至少一个PCIe设备。配置主机可以根据PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的连接关系,配置PCIe主机与PCIe主机连接层交换机之间的数据传输路径、PCIe主机连接层交换机与PCIe设备连接层交换机之间的数据传输路径,以及PCIe设备连接层交换机和PCIe设备之间的数据传输路径,进而建立至少一条PCIe主机到PCIe设备及PCIe设备相互之间的数据传输路径。
在本实施例的一些可选的实现方式中,PCIe主机连接层交换机需要分别与PCIe主机、配置主机、其他PCIe主机连接层交换机,以及下层交换机(可以是PCIe设备连接层交换机或传递层交换机组)连接。因此,所述PCIe主机连接层交换机包括PCIe主机连接端口、第一配置主机连接端口、第一其它交换机连接端口,所述PCIe主机连接端口用于连接PCIe主机,所述第一配置主机连接端口用于连接所述配置主机,第一其它交换机连接端口用于连接其他交换机。第一其它交换机连接端口包括第一同层交换机连接端口和/或第一下层交换机连接端口,所述第一同层交换机连接端口用于连接其他PCIe主机连接层交换机,所述第一下层交换机连接端口用于连接下一级连接层的交换机。
在本实施例的一些可选的实现方式中,PCIe设备连接层交换机需要分别与上层交换机(可以是PCIe主机连接层交换机或传递层交换机组)、配置主机、其他PCIe设备连接层交换机,以及PCIe设备连接。因此,所述PCIe设备连接层交换机包括第二其他交换机连接端口、第二配置主机连接端口和PCIe设备连接端口,所述第二其他交换机连接端口用于连接其他交换机,所述第二配置主机连接端口用于连接所述配置主机,所述PCIe设备连接端口用于连接PCIe设备。
所述第二其他交换机连接端口包括第一上层交换机连接端口和/或第二同层交换机连接端口,所述第一上层交换机连接端口用于连接上一级连接层的交换机,所述第二同层交换机连接端口用于连接其他PCIe设备连接层交换机。
在本实施例的一些可选的实现方式中,除了PCIe主机连接层交换机组和PCIe设备连接层交换机组直接连接以外,在PCIe主机连接层交换机组和PCIe设备连接层交换机组之间还可以有传递层交换机组(图中未示出),从而构成多层结构的PCIe设备共享网络。因此,所述PCIe设备共享网络还包括传递层交换机组,所述传递层交换机组包括至少一个传递层交换机,所述传递层交换机分别与所述PCIe主机连接层交换机和PCIe设备连接层交换机连接,所述传递层交换机用于建立PCIe主机连接层交换机和PCIe设备连接层交换机之间的数据传输路径。需要说明的是,传递层交换机组也可以包括多层的传递层交换机,传递层交换机与传递层交换机之间的连接关系和传递层交换机与PCIe主机连接层交换机或PCIe设备连接层交换机的连接关系类似,此处不再赘述。
在本实施例的一些可选的实现方式中,由上述描述可知,传递层交换机需要分别与上层交换机(可以是PCIe主机连接层交换机或上一层的传递层交换机)、配置主机、其他同层传递层交换机和下层交换机(可以是PCIe设备连接层交换机或下一层的传递层交换机)连接。因此,所述传递层交换机包括第二上层交换机连接端口、第三配置主机连接端口和第二下层交换机连接端口,所述第二上层交换机连接端口用于连接上一级连接层的交换机,所述第三配置主机连接端口用于连接所述配置主机,所述第二下层交换机连接端口用于连接下一级连接层的交换机。所述传递层交换机还包括第三同层交换机连接端口,所述第三同层交换机连接端口用于连接其他传递层交换机。
在本实施例的一些可选的实现方式中,配置主机需要根据上述PCIe主机、PCIe主机连接层交换机、传递层交换机组、PCIe设备连接层交换机和PCIe设备之间的连接关系,设定从PCIe主机到PCIe设备的数据传输路径。通常,PCIe主机连接层交换机、传递层交换机组、PCIe设备连接层交换机和PCIe设备之间的连接关系会形成多条数据传输路径。当PCIe主机访问PCIe设备时,需要从多条数据传输路径中选择一条数据传输性能最好的数据传输路径,数据传输性能通常通过带宽来表征。因此,所述配置主机包括带宽监测器,所述带宽监测器分别与所述PCIe主机连接层交换机、PCIe设备连接层交换机和/或传递层交换机连接,用于监测所述PCIe主机连接层交换机、PCIe设备连接层交换机和/或传递层交换机上每个端口的带宽。
在本实施例的一些可选的实现方式中,监测到每个端口上的带宽后,可以确定PCIe主机与PCIe主机连接层交换机之间的数据传输路径的带宽、PCIe主机连接层交换机与PCIe设备连接层交换机之间的数据传输路径的带宽(当存在传递层交换机时,还包括PCIe主机连接层交换机与传递层交换机之间的数据传输路径的带宽,以及传递层交换机与PCIe设备连接层交换机之间的数据传输路径的带宽)、以及PCIe设备连接层交换机和PCIe设备之间的数据传输路径的带宽。进而确定从PCIe主机到PCIe设备之间的带宽最大数据传输路径。因此,所述配置主机还包括路径选择器(图中未示出),用于根据所述带宽选择数据传输路径。
继续参见图2,图2是根据本实施例的PCIe设备共享网络的应用场景的一个示意图。图2中的PCIe设备共享网络为2层网络,即,只包含PCIe主机连接层交换机组、PCIe设备连接层交换机组和配置主机,没有包含传递层交换机组。需要说明的是,图2中每个交换机的f4端口都是用于连接其他交换机的端口,可以连接同层的交换机,也可以连接不同层的交换机,具体需要根据网络结构而定。
图2包括2个PCIe主机:PCIe主机-1和PCIe主机-2;PCIe主机连接层交换机组包括2个PCIe主机连接层交换机:L2-1和L2-2。每个PCIe主机连接层交换机分别包括h0端口、mP端口、f4端口、f8端口、f12端口、f16端口和f20端口。其中,h0端口(即PCIe主机连接端口)用于连接PCIe主机-1或PCIe主机-2,mP端口(即第一配置主机连接端口)用于连接配置主机,f4端口(即第一同层交换机连接端口)用于连接其他的PCIe主机连接层交换机的f4端口,f8端口、f12端口、f16端口和f20端口都是第一下层交换机连接端口,f8端口、f12端口、f16端口和f20端口用于连接PCIe设备连接层交换机。需要说明的是,f4端口可以连接其他的PCIe主机连接层交换机的f4端口,也可以不连接其他的PCIe主机连接层交换机的f4端口,PCIe主机连接层交换机的f4端口之间的连接关系视实际情况而定。
PCIe设备连接层交换机组包括4个PCIe设备连接层交换机:L1-1、L1-2、L1-3和L1-4。每个PCIe设备连接层交换机包括f0端口、mP端口、f4端口、d8端口、d12端口、d16端口和d20端口。其中,f0端口(即第一上层交换机连接端口)用于连接PCIe主机连接层交换机,mP端口(即第二配置主机连接端口)用于连接配置主机,f4端口(即第二同层交换机连接端口)用于连接上一层交换机的f4端口,d8端口、d12端口、d16端口和d20端口都是PCIe设备连接端口,d8端口、d12端口、d16端口和d20端口用于连接PCIe设备。需要说明的是,f4端口可以连接上一层交换机的f4端口,也可以不连接上一层交换机的f4端口,PCIe设备连接层交换机的f4端口之间的连接关系视实际情况而定。
配置主机给PCIe设备分配全局基地址寄存器地址(Global Base AddressRegister Address,简称Global BAR Address,即上述的虚拟内存地址)。当PCIe主机选择PCIe设备后,PCIe主机为PCIe设备分配PCIe主机的本地内存地址,该地址被称为主机基地址寄存器地址(Host Base Address Register Address,简称Host BAR Address)。配置主机还用于建立全局基地址寄存器地址和主机基地址寄存器地址之间的映射关系,便于数据在PCIe设备共享网络和PCIe主机上的传递。配置主机基于PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的连接关系,通过各个PCIe主机连接层交换机和PCIe设备连接层交换机的mP端口来配置从PCIe主机到PCIe设备的数据传输路径。
PCIe设备D1-D16分别与对应的PCIe设备连接层交换机连接。基于图2可知,以PCIe主机-1到PCIe设备D1-D8为例,得到的数据传输路径如表1所示:
表1
(表1中,.表示包含,如L1-1.d8表示PCIe设备连接层交换机L1-1的d8端口)
此外,当某一个器件出现故障时,上述数据传输路径还可以实现通信链路的硬件冗余保护。
可见,图2中,PCIe主机-1到每个PCIe设备的数据传输路径有两条,在PCIe主机-1访问PCIe设备D1-D8时,可以根据带宽对数据传输路径进行选择。以PCIe主机-1通过L2-1、L2-2和L1-1读取PCIe设备D1的信息为例,对应的流程图如图3所示。PCIe主机-1先将读PCIe设备D1的报文发送给PCIe主机连接层交换机,PCIe主机连接层交换机查找PCIe设备D1的全局基地址寄存器地址(即PCIe设备D1在整个PCIe设备共享网络上的地址),进而得到PCIe设备D1的全局总线标识,将报文经过L2-1、L2-2和L1-1发送给PCIe设备D1;PCIe设备D1经过相同的路径,将数据响应报文发送给PCIe主机-1。PCIe主机-1通过L2-1、L2-2和L1-1写入PCIe设备D1信息的流程图如图4所示,其过程与读取PCIe设备D1信息的过程类似,此处不再赘述。
由上述描述可知,配置主机可以根据PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的连接关系来配置数据传输路径。因此,可以利用各个交换机之间的端口形成的数据传输路径来传输数据,提高了通信带宽。
图2中,PCIe主机-1到PCIe设备D1-D16的路径设置如表2所示。
表2
由上述描述可知,表2中的数据传输路径可以充分避免部分数据传输路径的带宽瓶颈,并且可以同时通过L2-1和L2-2与PCIe设备通信,避免了单个PCIe主机连接层交换机的转发瓶颈。
图5是一个包含传递层交换机组的3层PCIe设备共享网络,其数据传输路径的确定及对应的流程图与上述的2层PCIe设备共享网络类似,此处不再赘述。
需要说明的是,针对实际的场景,图2和图5中PCIe主机连接层交换机、PCIe设备连接层交换机和传递层交换机,以及各个交换机的端口不限于图中的数量和类型。
本申请的PCIe设备共享网络,首先建立PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备的连接,然后通过配置主机基于上述连接来配置PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径,能够增加PCIe主机到PCIe设备之间的数据传输路径,在不改变上述连接的前提下提高PCIe主机到PCIe设备之间的带宽。
如图6所示,本实施例的PCIe设备共享网络的数据传输方法包括以下步骤:
步骤601,接收PCIe主机发来的PCIe设备访问申请报文。
当PCIe主机要访问PCIe设备共享网络上的某个PCIe设备时,需要发送用于访问指定PCIe设备的PCIe设备访问申请报文,所述PCIe设备访问申请报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址;所述任务信息用于指示PCIe设备进行对应的操作。
步骤602,从所述PCIe设备访问申请报文中解析出设备信息和任务信息。
PCIe设备访问申请报文中包含了PCIe主机要访问的PCIe设备的设备信息,因此,需要解析出该PCIe设备的设备信息和需要该PCIe设备执行的任务信息。
步骤603,通过所述设备信息确定所述PCIe设备的虚拟内存地址,建立虚拟内存地址与本地内存地址之间的转换关系信息。
所述虚拟内存地址与所述PCIe设备为一一对应关系,根据设备信息能够确定PCIe设备。
在本实施例的一些可选的实现方式中,所述通过所述设备信息确定所述PCIe设备的虚拟内存地址包括:查询对应关系表,得到所述PCIe设备的对应所述本地内存地址的虚拟内存地址,所述对应关系表用于表征本地内存地址与虚拟内存地址之间的映射关系。
在本实施例的一些可选的实现方式中,所述方法还包括构建对应关系表的步骤,可以包括以下步骤:
第一步,获取至少一个PCIe设备的设备信息。
PCIe设备是指通过PCIe接口进行数据传输的设备,如声卡、网卡、测试卡、固态硬盘或其他的PCIe设备。本实施例首先获取PCIe设备的设备信息,其中,所述设备信息包括设备名称、设备类型信息和设备功能信息中的至少一项。
第二步,根据所述设备信息为所述PCIe设备设置虚拟内存地址。
通常,PCIe设备共享网络会包括多个PCIe设备,并且,可能出现多个相同的PCIe设备。为了避免造成对PCIe设备访问的混乱,需要在PCIe设备共享网络内对每一个PCIe设备设置唯一的内存地址。当PCIe设备的数量较多时,通常为每个PCIe设备分配虚拟内存地址,以保证给每个PCIe设备都分配到内存地址,所述PCIe设备与虚拟内存地址之间为一一对应关系。
第三步,从所述PCIe设备访问申请报文中提取对应所述PCIe设备的本地内存地址,建立所述PCIe设备的本地内存地址与虚拟内存地址的对应关系表。
PCIe设备在PCIe设备共享网络有唯一的虚拟内存地址,当PCIe设备被分配给PCIe主机时,PCIe主机为PCIe设备分配PCIe主机的本地内存地址,这样,同一个PCIe设备就同时具有了虚拟内存地址(在PCIe设备共享网络上的地址)和本地内存地址(在PCIe主机上的地址)。为了实现PCIe设备能够在PCIe设备共享网络和PCIe主机上进行数据传递,需要在PCIe设备共享网络上使用PCIe设备的虚拟内存地址,在PCIe主机上使用本地内存地址。因此,需要从PCIe设备访问申请报文中提取对应PCIe设备的本地内存地址,建立本地内存地址与虚拟内存地址的对应关系表,以实现PCIe设备的数据在PCIe设备共享网络和PCIe主机上的传递。
在本实施例的一些可选的实现方式中,所述确定PCIe主机访问PCIe设备的数据传输路径可以包括以下步骤:
第一步,查询与所述PCIe主机连接的PCIe主机连接层交换机。
根据PCIe设备连接层交换机与PCIe主机的连接关系,能够确定与所述PCIe主机连接的PCIe设备连接层交换机。
第二步,查询与所述虚拟内存地址对应的PCIe设备连接的PCIe设备连接层交换机。
查询每个PCIe设备连接层交换机的基地址列表,所述基地址列表用于显示PCIe设备连接层交换机所连接的PCIe设备;根据所述基地址列表确定与所述虚拟内存地址对应的PCIe设备连接的PCIe设备连接层交换机。
第三步,根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径。
找到PCIe设备连接层交换机和PCIe设备连接层交换机后,通过PCIe设备共享网络能够确定PCIe设备连接层交换机和PCIe设备连接层交换机的连接关系,进而确定数据传输路径。
在本实施例的一些可选的实现方式中,所述根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径包括:当所述PCIe交换机网络包括传递层交换机组时,根据所述PCIe主机连接层交换机和PCIe设备连接层交换机分别与所述传递层交换机的连接关系,确定所述PCIe主机访问所述PCIe设备的数据传输路径,否则,根据所述PCIe主机连接层交换机和PCIe设备连接层交换机之间的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径。其中,所述传递层交换机组包括至少一个传递层交换机,所述传递层交换机分别与PCIe主机连接层交换机和PCIe设备连接层交换机连接,所述传递层交换机用于建立PCIe主机连接层交换机和PCIe设备连接层交换机之间的数据传输路径。
在本实施例的一些可选的实现方式中,所述根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径还可以包括:根据第一数据转发信息确定所述PCIe主机访问PCIe设备的数据传输路径数量;查看每条所述数据传输路径的带宽,选择带宽最大的数据传输路径作为PCIe主机访问PCIe设备的数据传输路径。
PCIe设备共享网络可以根据实际需要构建多条到达PCIe设备的路径,为了保证数据传输效率,可以从到达PCIe设备的多条路径中选择带宽最大的数据传输路径进行数据传递。
图7示出了PCIe设备共享网络的数据传输方法的一个实施例的流程图700。
如图7所示,本实施例的PCIe设备共享网络的数据传输方法包括以下步骤:
步骤701,接收PCIe主机发来的PCIe设备访问报文。
当PCIe主机访问某个PCIe设备共享网络上的PCIe设备时,会将PCIe设备访问报文发给与PCIe主机自身直接连接的PCIe交换机。其中,所述PCIe设备访问申请报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址,所述任务信息用于指示PCIe设备进行相应的操作。
步骤702,查询与所述PCIe主机连接的PCIe交换机上的转换关系信息,通过所述转换关系信息将所述设备信息中的本地内存地址替换为虚拟内存地址。
与所述PCIe主机连接的PCIe交换机上的转换关系信息可以将PCIe设备访问报文中的PCIe设备在PCIe主机上的本地内存地址转换为PCIe设备在PCIe设备共享网络上的虚拟内存地址,以便于对应PCIe设备的任务信息在PCIe设备共享网络上的转发。所述转换关系信息用于表征本地内存地址和虚拟内存地址的对应关系。
在本实施例的一些可选的实现方式中,本实施例方法还包括接收转换关系信息和第一数据转发信息的步骤,包括:
第一步,接收PCIe主机发来的PCIe设备访问申请报文,并将所述PCIe设备访问申请报文转发给PCIe配置主机。
在PCIe主机访问PCIe设备共享网络上的PCIe设备之前,需要先向PCIe设备共享网络提出PCIe设备访问申请,即PCIe设备访问申请报文。PCIe配置主机根据PCIe设备访问申请报文为PCIe主机配置相应的信息,以使得PCIe主机实现对PCIe设备共享网络上的PCIe设备的访问。其中,所述PCIe设备访问申请报文包括对应PCIe主机的访问关系表中的PCIe设备的设备信息,所述访问关系表用于确定PCIe主机访问的PCIe设备,包括PCIe设备的设备信息。
第二步,接收PCIe配置主机发来的对应所述PCIe设备访问申请报文的转换关系信息和第一数据转发信息,并将所述转换关系信息和第一数据转发信息保存到与所述PCIe主机连接的PCIe交换机。
PCIe配置主机根据接收到的PCIe设备访问申请报文确定PCIe设备在PCIe设备共享网络上的虚拟内存地址,并配置从PCIe主机到PCIe设备的第一数据转发信息,以使得从PCIe主机到PCIe设备所经过的PCIe交换机能够将任务信息逐级发送给PCIe设备。
步骤703,根据所述虚拟内存地址和第一数据转发信息将所述任务信息发送至所述PCIe设备。
通过虚拟内存地址能够确定PCIe设备在PCIe设备共享网络上的位置,然后根据第一数据转发信息将任务信息发送给PCIe设备。其中,所述第一数据转发信息用于确定所述PCIe主机访问PCIe设备的数据传输路径。
在本实施例的一些可选的实现方式中,所述根据所述虚拟内存地址和第一数据转发信息将所述任务信息发送至所述PCIe设备包括:
第一步,通过虚拟内存地址查看与所述PCIe主机连接的PCIe交换机是否与所述PCIe设备连接,若是,则将所述任务信息发送至所述PCIe设备,否则,按照所述数据传输路径将所述任务信息发送至与所述PCIe主机连接的PCIe交换机的下一级PCIe交换机。
PCIe设备访问报文会首先发送给与所述PCIe主机连接的PCIe交换机,该交换机通过查看虚拟内存地址来确定PCIe设备是否与自身连接,如是,则直接将对应的任务信息发送给所述PCIe设备,否则,说明PCIe设备不与自身连接,则根据数据传输路径将任务信息发送给与所述PCIe主机连接的PCIe交换机的下一级PCIe交换机。
第二步,通过虚拟内存地址查看所述下一级PCIe交换机是否与所述PCIe设备连接,若是,则将所述任务信息发送至所述PCIe设备,否则,按照所述数据传输路径,将所述任务信息发送至所述下一级PCIe交换机的下一级PCIe交换机,直至将所述任务信息发送至所述PCIe设备。
下一级PCIe交换机执行上述相同的过程,即,先查看PCIe设备是否与自身连接,如果是,则将任务信息发送给PCIe设备,否则,继续通过数据传输路径将任务信息往下一级PCIe交换机发送,直至将所述任务信息发送至所述PCIe设备。
在本实施例的一些可选的实现方式中,任务信息通常可分为两种,第一种是读操作,要求将任务信息发送给PCIe设备后,PCIe设备返回对应的结果信息;第二种是写操作,将任务信息发送给PCIe设备后,不要求PCIe设备返回对应的结果信息。因此,本实施例方法还包括:若所述任务信息需要所述PCIe设备反馈对应所述任务信息的结果信息,则接收所述PCIe设备发来的结果信息,将所述结果信息封装成PCIe设备访问反馈报文,并将所述PCIe设备访问反馈报文发送给PCIe主机。
图8示出了PCIe设备共享网络的数据传输方法的一个实施例的流程图800。
如图8所示,本实施例的PCIe设备共享网络的数据传输方法包括以下步骤:
步骤801,从PCIe设备访问申请报文中解析出PCIe设备的设备信息和任务信息;
上述描述了从PCIe主机访问PCIe设备的方法,除此以外,PCIe设备共享网络还可以实现PCIe设备访问PCIe设备。PCIe设备在收到PCIe设备访问申请报文(PCIe设备访问申请报文可以是PCIe主机发出,也可以是其他设备发出)后,首先从PCIe设备访问申请报文中解析出PCIe设备的设备信息和任务信息。
步骤802,通过所述设备信息确定所述PCIe设备的虚拟内存地址;
由上述可知,每个PCIe设备在PCIe设备共享网络都有唯一的,因此,需要先找到被访问的PCIe设备的虚拟内存地址。
步骤803,查询对应所述虚拟内存地址的第二数据转发信息,所述第二数据转发信息用于确定PCIe设备访问PCIe设备的数据传输路径;
上述的第一数据转发信息用于确定PCIe主机访问PCIe设备的数据传输路径,此处的第二数据转发信息用于确定PCIe设备访问PCIe设备的数据传输路径,第二数据转发信息同样由配置主机确定。
步骤804,按照所述第二数据转发信息将所述任务信息发送给PCIe设备。
以PCIe设备D1到PCIe设备D5-D8的访问为例,数据传输路径如表3所示。
表3
由于PCIe设备之间的数据通信和PCIe主机与PCIe设备之间的数据通信类似,也不需要配置主机的处理,所以能够降低配置主机的数据处理量,降低了对配置主机的部分组件(如处理器)的要求。
以下通过PCIe设备D1-D4和PCIe设备D5-D8访问其他PCIe设备为例,确定的数据传输线路如表4所示。
表4
图9为PCIe设备D1读取D5的流程图;图10为PCIe设备D1写入D5的流程图;图9和图10的过程与图3和图4的过程类似,此处不再赘述。此外,还可以从表4看出,D2到D5的路径与D5到D2的路径可以不同(根据数据传输的带宽等调整)。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种PCIe设备共享网络,其特征在于,所述网络包括:PCIe主机连接层交换机组、PCIe设备连接层交换机组和配置主机,所述PCIe主机连接层交换机组包括至少一个PCIe主机连接层交换机,所述PCIe设备连接层交换机组包括至少一个PCIe设备连接层交换机,所述PCIe主机连接层交换机与PCIe设备连接层交换机连接,所述PCIe主机连接层交换机用于连接PCIe主机,所述PCIe设备连接层交换机用于连接PCIe设备,所述配置主机用于配置所述PCIe主机、PCIe主机连接层交换机、PCIe设备连接层交换机和PCIe设备之间的数据传输路径。
2.根据权利要求1所述的网络,其特征在于,所述PCIe主机连接层交换机包括PCIe主机连接端口、第一配置主机连接端口、第一其它交换机连接端口,所述PCIe主机连接端口用于连接PCIe主机,所述第一配置主机连接端口用于连接所述配置主机,所述第一其它交换机连接端口用于连接其他交换机。
3.根据权利要求2所述的网络,其特征在于,所述第一其它交换机连接端口包括第一同层交换机连接端口和/或第一下层交换机连接端口,所述第一同层交换机连接端口用于连接其他PCIe主机连接层交换机,所述第一下层交换机连接端口用于连接下一级连接层的交换机。
4.根据权利要求1所述的网络,其特征在于,所述PCIe设备连接层交换机包括第二其他交换机连接端口、第二配置主机连接端口和PCIe设备连接端口,所述第二其他交换机连接端口用于连接其他交换机,所述第二配置主机连接端口用于连接所述配置主机,所述PCIe设备连接端口用于连接PCIe设备。
5.根据权利要求4所述的网络,其特征在于,所述第二其他交换机连接端口包括第一上层交换机连接端口和/或第二同层交换机连接端口,所述第一上层交换机连接端口用于连接上一级连接层的交换机,所述第二同层交换机连接端口用于连接其他PCIe设备连接层交换机。
6.根据权利要求1所述的网络,其特征在于,所述网络还包括传递层交换机组,所述传递层交换机组包括至少一个传递层交换机,所述传递层交换机分别与所述PCIe主机连接层交换机和PCIe设备连接层交换机连接,所述传递层交换机用于建立PCIe主机连接层交换机和PCIe设备连接层交换机之间的数据传输路径。
7.根据权利要求6所述的网络,其特征在于,所述传递层交换机包括第二上层交换机连接端口、第三配置主机连接端口和第二下层交换机连接端口,所述第二上层交换机连接端口用于连接上一级连接层的交换机,所述第三配置主机连接端口用于连接所述配置主机,所述第二下层交换机连接端口用于连接下一级连接层的交换机。
8.根据权利要求7所述的网络,其特征在于,所述传递层交换机还包括第三同层交换机连接端口,所述第三同层交换机连接端口用于连接其他传递层交换机。
9.根据权利要求6所述的网络,其特征在于,所述配置主机包括带宽监测器,所述带宽监测器分别与所述PCIe主机连接层交换机、PCIe设备连接层交换机和/或传递层交换机连接,用于监测所述PCIe主机连接层交换机、PCIe设备连接层交换机和/或传递层交换机上每个端口的带宽。
10.根据权利要求9所述的网络,其特征在于,所述配置主机还包括路径选择器,用于根据所述带宽选择数据传输路径。
11.一种PCIe设备共享网络的数据传输方法,其特征在于,所述方法包括:
接收PCIe主机发来的PCIe设备访问申请报文,所述PCIe设备访问申请报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址;
从所述PCIe设备访问申请报文中解析出设备信息和任务信息;
通过所述设备信息确定所述PCIe设备的虚拟内存地址,建立虚拟内存地址与本地内存地址之间的转换关系信息;
配置从所述PCIe主机到PCIe设备的第一数据转发信息,所述第一数据转发信息用于确定PCIe主机访问PCIe设备的数据传输路径;
将所述转换关系信息和第一数据转发信息发送给PCIe交换机。
12.根据权利要求11所述的方法,其特征在于,所述通过所述设备信息确定所述PCIe设备的虚拟内存地址包括:
查询对应关系表,得到所述PCIe设备的对应所述本地内存地址的虚拟内存地址,所述对应关系表用于表征本地内存地址与虚拟内存地址之间的映射关系。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括构建对应关系表的步骤,包括:
获取至少一个PCIe设备的设备信息,所述设备信息包括设备名称、设备类型信息和设备功能信息中的至少一项;
根据所述设备信息为所述PCIe设备设置虚拟内存地址,所述PCIe设备与虚拟内存地址之间为一一对应关系;
从所述PCIe设备访问申请报文中提取对应所述PCIe设备的本地内存地址,建立所述PCIe设备的本地内存地址与虚拟内存地址的对应关系表。
14.根据权利要求11所述的方法,其特征在于,所述确定PCIe主机访问PCIe设备的数据传输路径包括:
查询与所述PCIe主机连接的PCIe主机连接层交换机;
查询与所述虚拟内存地址对应的PCIe设备连接的PCIe设备连接层交换机;
根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径。
15.根据权利要求14所述的方法,其特征在于,所述查询与所述虚拟内存地址对应的PCIe设备连接的PCIe设备连接层交换机包括:
查询每个PCIe设备连接层交换机的基地址列表,所述基地址列表用于显示PCIe设备连接层交换机所连接的PCIe设备;
根据所述基地址列表确定与所述虚拟内存地址对应的PCIe设备连接的PCIe设备连接层交换机。
16.根据权利要求14所述的方法,其特征在于,所述根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径包括:
当所述PCIe交换机网络包括传递层交换机组时,根据所述PCIe主机连接层交换机和PCIe设备连接层交换机分别与所述传递层交换机的连接关系,确定所述PCIe主机访问所述PCIe设备的数据传输路径,否则,根据所述PCIe主机连接层交换机和PCIe设备连接层交换机之间的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径,其中,所述传递层交换机组包括至少一个传递层交换机,所述传递层交换机分别与PCIe主机连接层交换机和PCIe设备连接层交换机连接,所述传递层交换机用于建立PCIe主机连接层交换机和PCIe设备连接层交换机之间的数据传输路径。
17.根据权利要求14所述的方法,其特征在于,所述根据所述PCIe主机连接层交换机和所述PCIe设备连接层交换机的连接关系确定所述PCIe主机访问所述PCIe设备的数据传输路径还包括:
根据所述第一数据转发信息确定所述PCIe主机访问PCIe设备的数据传输路径数量;
查看每条所述数据传输路径的带宽,选择带宽最大的数据传输路径作为PCIe主机访问PCIe设备的数据传输路径。
18.一种PCIe设备共享网络的数据传输方法,其特征在于,所述方法包括:
接收PCIe主机发来的PCIe设备访问报文,所述PCIe设备访问报文包括所述PCIe主机访问的PCIe设备的设备信息和任务信息,所述设备信息包括所述PCIe设备在所述PCIe主机上的本地内存地址;
查询与所述PCIe主机连接的PCIe交换机上的转换关系信息,通过所述转换关系信息将所述设备信息中的本地内存地址替换为虚拟内存地址,所述转换关系信息用于表征本地内存地址和虚拟内存地址的对应关系;
根据所述虚拟内存地址和第一数据转发信息将所述任务信息发送至所述PCIe设备,所述第一数据转发信息用于确定所述PCIe主机访问PCIe设备的数据传输路径。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
接收转换关系信息和第一数据转发信息的步骤,包括:
接收PCIe主机发来的PCIe设备访问申请报文,并将所述PCIe设备访问申请报文转发给PCIe配置主机,所述PCIe设备访问申请报文包括对应PCIe主机的访问关系表中的PCIe设备的设备信息,所述访问关系表用于确定PCIe主机访问的PCIe设备,包括PCIe设备的设备信息;
接收PCIe配置主机发来的对应所述PCIe设备访问申请报文的转换关系信息和第一数据转发信息,并将所述转换关系信息和第一数据转发信息保存到与所述PCIe主机连接的PCIe交换机。
20.根据权利要求18所述的方法,其特征在于,所述根据所述虚拟内存地址和第一数据转发信息将所述任务信息发送至所述PCIe设备包括:
通过虚拟内存地址查看与所述PCIe主机连接的PCIe交换机是否与所述PCIe设备连接,若是,则将所述任务信息发送至所述PCIe设备,否则,按照所述数据传输路径将所述任务信息发送至与所述PCIe主机连接的PCIe交换机的下一级PCIe交换机;
通过虚拟内存地址查看所述下一级PCIe交换机是否与所述PCIe设备连接,若是,则将所述任务信息发送至所述PCIe设备,否则,按照所述数据传输路径将所述任务信息发送至所述下一级PCIe交换机的下一级PCIe交换机,直至将所述任务信息发送至所述PCIe设备。
21.根据权利要求18所述的方法,其特征在于,所述方法包括:
若所述任务信息需要所述PCIe设备反馈对应所述任务信息的结果信息,则接收所述PCIe设备发来的结果信息,将所述结果信息封装成PCIe设备访问反馈报文,并将所述PCIe设备访问反馈报文发送给PCIe主机。
22.一种PCIe设备共享网络的数据传输方法,其特征在于,所述方法包括:
从PCIe设备访问申请报文中解析出PCIe设备的设备信息和任务信息;
通过所述设备信息确定所述PCIe设备的虚拟内存地址;
查询对应所述虚拟内存地址的第二数据转发信息,所述第二数据转发信息用于确定PCIe设备访问PCIe设备的数据传输路径;
按照所述第二数据转发信息将所述任务信息发送给PCIe设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610341595.6A CN106027423A (zh) | 2016-05-20 | 2016-05-20 | PCIe设备共享网络及其数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610341595.6A CN106027423A (zh) | 2016-05-20 | 2016-05-20 | PCIe设备共享网络及其数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106027423A true CN106027423A (zh) | 2016-10-12 |
Family
ID=57096606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610341595.6A Pending CN106027423A (zh) | 2016-05-20 | 2016-05-20 | PCIe设备共享网络及其数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027423A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737608A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
WO2023179714A1 (zh) * | 2022-03-24 | 2023-09-28 | 苏州浪潮智能科技有限公司 | 数据传输方法、系统、装置、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722458A (zh) * | 2012-05-29 | 2012-10-10 | 中国科学院计算技术研究所 | 一种用于多根共享系统的i/o重映射方法和装置 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
CN104657317A (zh) * | 2015-03-06 | 2015-05-27 | 北京百度网讯科技有限公司 | 服务器 |
-
2016
- 2016-05-20 CN CN201610341595.6A patent/CN106027423A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722458A (zh) * | 2012-05-29 | 2012-10-10 | 中国科学院计算技术研究所 | 一种用于多根共享系统的i/o重映射方法和装置 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
CN104657317A (zh) * | 2015-03-06 | 2015-05-27 | 北京百度网讯科技有限公司 | 服务器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737608A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
CN110737608B (zh) * | 2018-07-03 | 2024-03-15 | 阿里巴巴集团控股有限公司 | 一种数据操作方法、装置及系统 |
WO2023179714A1 (zh) * | 2022-03-24 | 2023-09-28 | 苏州浪潮智能科技有限公司 | 数据传输方法、系统、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7219183B2 (en) | Switching apparatus and method for providing shared I/O within a load-store fabric | |
US7188209B2 (en) | Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets | |
US8102843B2 (en) | Switching apparatus and method for providing shared I/O within a load-store fabric | |
US7174413B2 (en) | Switching apparatus and method for providing shared I/O within a load-store fabric | |
JP5792894B2 (ja) | ポート拡張トポロジ情報の取得用方法、システム及び制御ブリッジ並びにアップリンクポートの処理方法及びシステム | |
US6988161B2 (en) | Multiple port allocation and configurations for different port operation modes on a host | |
CN103117929B (zh) | 一种基于PCIe数据交换的通信方法及系统 | |
CN101442493B (zh) | Ip报文分发方法、集群系统和负载均衡器 | |
CN103353861B (zh) | 实现分布式i/o资源池化的方法及装置 | |
CN102216920B (zh) | 先进可扩展接口总线以及相应的数据传输方法 | |
CN116501681B (zh) | Cxl数据传输板卡及控制数据传输的方法 | |
US9219695B2 (en) | Switch, information processing apparatus, and communication control method | |
EP3506562B1 (en) | Method for registering single board, single board, and forwarding device | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
JP2008228150A (ja) | スイッチ装置及びフレーム交換方法とそのプログラム | |
CN103634225A (zh) | 云计算网络虚拟化中的业务带宽扩展方法 | |
CN102185833A (zh) | 一种基于fpga的fc i/o并行处理方法 | |
US7836211B2 (en) | Shared input/output load-store architecture | |
CN118193408A (zh) | 内存资源的访问系统和方法、存储介质及电子设备 | |
CN106027423A (zh) | PCIe设备共享网络及其数据传输方法 | |
CN108959134B (zh) | 用于现场可编程门阵列设备的通信 | |
CN109286564A (zh) | 一种报文转发方法及装置 | |
CN106100953A (zh) | PCIe 设备共享网络的生成方法、装置及系统 | |
US7313146B2 (en) | Transparent data format within host device supporting differing transaction types | |
CN104601494B (zh) | 一种fc-ae交换机和交换方法 |
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: 20161012 |