CN110311843B - 基于PCIe链路的通信方法、装置、电子设备、存储介质 - Google Patents

基于PCIe链路的通信方法、装置、电子设备、存储介质 Download PDF

Info

Publication number
CN110311843B
CN110311843B CN201810260786.9A CN201810260786A CN110311843B CN 110311843 B CN110311843 B CN 110311843B CN 201810260786 A CN201810260786 A CN 201810260786A CN 110311843 B CN110311843 B CN 110311843B
Authority
CN
China
Prior art keywords
virtual network
network interface
devices
forwarding service
pcie link
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
Application number
CN201810260786.9A
Other languages
English (en)
Other versions
CN110311843A (zh
Inventor
李毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to CN201810260786.9A priority Critical patent/CN110311843B/zh
Publication of CN110311843A publication Critical patent/CN110311843A/zh
Application granted granted Critical
Publication of CN110311843B publication Critical patent/CN110311843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于PCIe链路的通信方法、装置、电子设备、存储介质。该基于PCIe链路的通信装置分别安装在经由PCIe链路相互连接的第一设备和第二设备上,并且,该通信装置包括虚拟网络接口,用于在第一设备和第二设备中的至少一个上,将对于所述PCIe链路的操作转化为对所述虚拟网络接口的操作。实现了在底层经由PCIe链路相互通信的两个或多个设备端之间的数据透明传输,从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。

Description

基于PCIe链路的通信方法、装置、电子设备、存储介质
技术领域
本公开涉及深度学习技术领域,尤其涉及基于PCIe链路的通信方法、装置、电子设备、存储介质。
背景技术
随着深度学习相关技术的快速发展,针对深度学习计算特性设计的专用硬件—深度学习加速卡(以下称加速卡)开始出现,并逐渐应用于视频结构化服务器、人脸识别服务器等系统中。这类服务器通常需要满足多路并行、低延时的要求,因此,在一个系统中通常会安装多个加速卡协同作业,来提高应用的效果。
目前,常用的服务器系统中可用的加速卡扩展接口一般至少包括PCIe(Peripheral Component Interconnect-Express,外围部件互联总线)插槽和其它接口(例如RJ45网络接口)两种接口形式。为了满足不同形式的接口的接入需求,加速卡通常会同时提供这些接口(至少两种接口)。另外,在一些场景下,由于服务器系统的扩展接入能力有限,这至少两种接口还会混合使用。然而,这至少两种接口在使用上是存在差异的。例如,对于使用PCIe插槽形式的接口的加速卡,需要在服务器端安装专用的驱动之后,服务器系统才能与该加速卡进行交互,该专用的驱动一般是自定义的、无标准的。而对于使用RJ45网络接口形式的加速卡,服务器系统可以直接利用服务器端的网络驱动与该加速卡进行交互,这部分的网络驱动是统一的、通用的。由此,至少两种的硬件接口形式导致至少两种软件接口的存在,无疑增加了系统的复杂度,降低了系统的可维护性。
发明内容
鉴于上述技术问题,本发明提供了一种基于PCIe链路的通信方法、装置、电子设备、存储介质,实现在底层经由PCIe链路相互通信的两个或多个设备端之间的数据透明传输。
为了解决以上问题之一,发明人提出了本发明。
根据本发明的实施例的一种基于PCIe链路的通信装置,所述PCIe链路连接第一设备和第二设备,各自作为所述通信装置的第一通信装置和第二通信装置分别安装在所述第一设备和第二设备上,所述第一和第二通信装置分别包括在底层PCIe链路之上的第一和第二虚拟网络接口,用于在第一设备和第二设备中的至少一个上,将对于所述PCIe链路的操作转化为对所述第一和第二虚拟网络接口的操作。
可选地,上述第一和第二通信装置分别经由第一和第二虚拟网络接口与包含在第一和第二中间服务提供装置中的、分别在所述第一设备端和第二设备端提供第一和第二转发服务的第一和第二转发模块进行通信,通过由所述第一和第二转发模块提供的第一和第二转发服务,在PCIe链路与第一和第二虚拟网络接口间进行数据转发。
可选地,通过在所述第一设备端和所述第二设备端加载TUN/TAP驱动来分别建立所述第一和第二通信装置的TAP类型的相应的第一和第二虚拟网络接口。
可选地,所述PCIe链路连接第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,其中所述N个设备中的每个设备具有一个含有相应的虚拟网络接口的通信装置,并且,所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备中的每个设备。
可选地,由第一设备端的第一转发模块统一管理所述N个设备。
可选地,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
根据本发明的实施例的一种基于PCIe链路的通信方法,所述PCIe链路连接第一设备和第二设备,所述通信方法包括:在底层PCIe链路之上,在第一设备端和第二设备端分别提供第一和第二虚拟网络接口,用于将对于所述PCIe链路的操作转化为对所述第一和第二虚拟网络接口的操作。
可选地,上述通信方法还包括:在所述第一设备端和第二设备端分别提供第一和第二转发服务,以在所述第一设备端和所述第二设备端分别建立第一设备和第二设备之间的数据转发进程,所述第一和第二转发服务在PCIe链路与所述第一和第二虚拟网络接口间进行数据转发。
可选地,在上述通信方法中,提供第一和第二虚拟网络接口包括在所述第一设备端和所述第二设备端加载TUN/TAP驱动,以分别建立TAP类型的相应的第一和第二虚拟网络接口。
可选地,在上述通信方法中,所述PCIe链路连接第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,并且,所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
可选地,在上述通信方法中,第一设备端的第一转发服务统一管理所述所述N个设备。
可选地,上述的第一设备是主机或服务器,N个设备是一个或多个加速卡。
根据本发明的实施例的一种基于PCIe链路的通信方法,所述PCIe链路连接第一设备和第二设备,该通信方法包括:在第二设备端提供第二虚拟网络接口;在第二设备端提供第二转发服务,所述第二转发服务用于在所述PCIe链路和所述第二虚拟网络接口之间进行数据转发,在第二设备端提供的应用程序能够使用标准的网络通信接口对所述第二虚拟网络接口进行操作;在第一设备端提供与所述第二虚拟网络接口相对应的第一虚拟网络接口;以及在第一设备端提供第一转发服务,所述第一转发服务用于在所述PCIe链路和所述第一虚拟网络接口间进行数据转发,在第一设备端提供的应用程序能够使用标准的网络通信接口对所述第一虚拟网络接口进行操作。
可选地,在上述通信方法中,提供第一和第二虚拟网络接口包括在所述第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的第一和第二虚拟网络接口。
可选地,所述PCIe链路连接所述第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
可选地,所述第一设备端的第一转发服务统一管理所述N个设备。
可选地,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
根据本发明的实施例的一种基于PCIe链路的通信装置,所述PCIe链路连接第一设备和第二设备,该通信装置包括:用于在第二设备端提供第二虚拟网络接口的部件;用于在第二设备端提供第二转发服务的部件,所述第二转发服务用于在所述PCIe链路和所述第二虚拟网络接口之间进行数据转发,在第二设备端提供的应用程序能够使用标准的网络通信接口对所述第二虚拟网络接口进行操作;用于在第一设备端提供与第二设备端的所述第二虚拟网络接口相对应的第一虚拟网络接口的部件;以及用于在第一设备端提供第一转发服务的部件,所述第一转发服务用于在所述PCIe链路和所述第一虚拟网络接口间进行数据转发,在第一设备端提供的应用程序能够使用标准的网络通信接口对所述第一虚拟网络接口进行操作。
可选地,提供第一和第二虚拟网络接口包括在所述第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的第一和第二虚拟网络接口。
可选地,所述PCIe链路连接所述第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,并且,第一设备建立用于使所述N个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
可选地,由第一设备端的第一转发服务统一管理所述N个设备。
可选地,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
根据本发明的实施例的一种电子设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行本发明要求保护的通信方法中的任何一个。
根据本发明的实施例的一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行本发明要求保护的通信方法中的任何一个。
通过本发明,可以使得在底层经由PCIe链路相互通信的两个或多个设备端(例如服务器端和加速卡端)之间的数据的收发对于这两个或多个设备端的应用程序完全透明,从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。
具体地,通过在底层经由PCIe链路相互通信的两个或多个设备端,利用虚拟网络接口(例如通过TUN/TAP驱动来建立)和转发服务程序,可以使得PCIe设备驱动只需提供基本的读写功能,便可实现所有对于PCIe链路的读写操作都转化为对虚拟网络接口的读写操作,从而使得数据的传输控制、错误恢复等机制都可通过网络协议栈来实现,由此,可以无差别地兼容RJ45网络接口形式。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了经由PCIe链路进行的设备间的通信。
图2示出了通过根据本发明的一个实施方式的基于PCIe链路的通信装置来进行设备间的通信。
图3示出了通过根据本发明的基于PCIe链路的通信装置与转发服务提供装置之间的交互来进行设备间的通信。
图4示出了根据本发明的一个实施方式的设备间的一种通信模式示例。
图5示出了根据本发明的一个实施方式的基于PCIe链路的通信方法。
图6示出了根据本发明的另一实施方式的基于PCIe链路的通信方法。
图7示出了根据本发明的再一实施方式的基于PCIe链路的通信方法。
图8示出了根据本发明的一个实施方式的基于PCIe链路的通信装置。
图9示出了本发明的一个应用场景示例下的系统结构实例。
图10示出了根据本发明的一个实施方式的电子设备。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。这里需要说明的是,本申请中的附图标记和数字以及序号仅是为了方便描述起见而出现的,对于本发明的步骤、顺序等等均不构成任何限制,除非在说明书中明确指出了步骤的先后顺序。
图1示出了经由PCIe链路进行的设备间的通信。所谓的PCIe(外围部件互联总线)是一种采用点到点的串行方式进行数据传输的高速接口,其广泛存在于各种PC、服务器等计算机系统中。PCIe总线上通常包含有三种设备:根组件(Root Complex)、交换器(Switch)、终端设备(Endpoint),其中根组件一般作为整个PCIe总线的管理者,对所有挂载在总线上的交换器和终端设备进行管理;终端设备一般是指挂载在PCIe总线上的实现特定功能的设备等。
如图1所示,第一设备100和第二设备200通过PCIe总线的链路来相互通信。作为一个示例,第一设备100和第二设备200之一可以是服务器,也可以是主机,两者中的另一个可以是加速卡。需要注意,这里的设备100和设备200也可以是其它的任何能够通过PCIe链路进行通信的设备,换而言之,可以是具备PCIe接口的任何设备,这里PCIe接口可以是固定安装的,也可以是可移除式的。另外,第一设备和第二设备之间可以是对等的关系,也可以是主从的关系,本发明对此没有任何限制,另外,第一和第二这样的序号仅仅是为了方便描述而使用的,并不代表任何顺序或其它依赖关系。
根据本发明的一种实施方式,提供一种基于PCIe链路的通信装置。
图2示出了通过根据本发明的一个实施方式的基于PCIe链路的通信装置来进行设备间的通信。如图2所示,第一设备100和第二设备200上分别安装有一个基于PCIe链路的作为本发明的通信装置的第一通信装置101和第二通信装置201,并且,第一和第二通信装置101和201分别各自包括一个虚拟网络接口1010和2010,在本发明中,通过第一和第二通信装置101和201的第一和第二虚拟网络接口1010和2010,能够在第一设备和第二设备中的至少一个上,将对于第一设备100和第二设备200之间的底层(物理层)的PCIe链路的操作转化为对所述第一和第二虚拟网络接口(在物理层之上)的操作。
在根据本发明的上述实施方式中,通过在相互通信的两个设备端的底层PCIe链路之上分别提供虚拟网络接口,能够将对于PCIe链路的操作转换为对上层的相应虚拟网络接口的操作,由此可以避免在这两个设备中的某个设备端安装PCIe链路所需的专用的(非通用的)驱动,从而降低了系统的复杂度,同时提高了系统的可维护性。
根据本发明的另一种实施方式,如图3所示,第一设备100的第一通信装置101经由第一虚拟网络接口1010与在第一设备端提供转发服务的第一中间服务提供装置102中的第一转发模块1020进行通信。类似地,第二设备200的第二通信装置201经由第二虚拟网络接口2010与在第二设备端提供转发服务的第二中间服务提供装置202的第二转发模块2020进行通信。通过第一和第二中间服务提供装置102和202中的第一和第二转发模块1020和2020各自提供的转发服务,第一设备和第二设备中的任一个能够在底层的PCIe链路和在底层之上的各自的相应的第一和第二虚拟网络接口间进行数据转发。
请注意,图3中所示的第一和第二中间服务模块除了各自包含第一转发模块和第二转发模块之外,还可以包含例如调度模块、管理模块、解析模块等等,也就是说,根据本发明的中间服务模块除了能够提供转发服务,还能够提供例如调度、管理、解析等等很多中间服务,作为设备之间的例如虚拟网络接口之类的模块之间相互交互的桥梁。
在根据本发明的上述实施方式中,通过在相互通信的两个设备端的底层PCIe链路之上分别提供虚拟网络接口以及转发服务,能够将对于PCIe链路的操作转换为对上层的虚拟网络接口的操作,对上层而言,无需专门考虑PCIe链路的独特性和不通用性。由此,可以无差别地兼容其它的接口形式,例如兼容RJ45网络接口形式,从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。
这里,上述的用于提供中间服务的第一/第二中间服务提供装置与上述的第一/第二通信装置可以是各自单独设立的,也可以是在每个设备上的同一个部件中(例如,101和102可以组合为一个部件,201与202也可以组合为一个部件),本发明对此不作任何限制。
此外,对于上述的通信装置的虚拟网络接口,作为一个例子,可以通过分别在第一设备端和第二设备端加载TUN/TAP驱动,来分别建立TAP类型的相应的第一和第二虚拟网络接口,即,用于第一设备端的第一虚拟网络接口和用于第二设备端的第二虚拟网络接口。这里,本领域技术人员可知,所谓的TUN/TAP驱动是在操作系统内核中实现的一种虚拟的网络设备。不同于普通的硬件网络设备,这些虚拟的网络设备可以全部由软件来实现,并可以提供与硬件的网络设备完全相同的功能。其中TAP等同于一个以太网设备,它工作在二层网络上,具有直接处理以太帧的能力。利用TUN/TAP驱动,可以将网络协议栈处理好的网络分包传给任何一个使用TUN/TAP驱动的进程(例如,用于提供转发服务的转发服务进程,本申请中也称“转发模块”),再由该进程进行进一步的处理。后续将通过一个实例对此进行详细的描述。
这里,本领域技术人员应当理解,以上例子仅用于说明如何在本发明中提供虚拟网络接口,而本领域中用于提供虚拟网络接口的方式不限于此。
在本发明中,第一设备和第二设备间的通信可以是一对一,也可以是一对多,如图4所示的根据本发明的一个实施方式的设备间的一对多通信模式。在图4中,第一设备经由PCIe链路与包含第1’设备、第2’设备,......第N’设备的N个设备(N为自然数,即至少一个设备)相连。此时,该N个设备中的每个设备可以具有一个含有相应的虚拟网络接口的通信装置。在该情况下,第一设备需要建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理该N个设备。这样,通过使用网桥的结构,第一设备可以方便地统一管理这N个设备。在此,作为一个例子,可以由第一设备端的第一中间服务提供装置中的转发模块(转发服务进程)统一管理这N个设备。
请注意,上述的N个设备中的每个设备不一定是同样的设备,它们可以是不同的设备,例如,加速卡、终端机、主机、平板电脑等等。
另外,前述的第二设备200可以包含在这N个设备中,也可以不包含在这N个设备中。
这里,作为例子,第一设备100可以是主机或服务器,第二设备200可以是加速卡,所述N个设备可以是一个或多个加速卡。需要注意,本发明的应用场景不应局限于上述的作为例子的主机或服务器与一个或多个加速卡通信,而是只要通过PCIe总线进行的设备间通信,都可以应用本发明。
根据本发明的一种实施方式,提供一种基于PCIe链路的通信方法。
如图5所示,在根据本发明的一个实施方式的基于PCIe链路的通信方法中,在第一设备和第二设备之间具有PCIe总线的链路,在步骤S1,在第一设备端和第二设备端分别提供第一和第二虚拟网络接口,用于将对于该PCIe链路的操作转化为对第一设备和第二设备的第一和第二虚拟网络接口的操作。
通过这种方式,能够将对于PCIe链路的操作转换为对上层的虚拟网络接口的操作,由此可以避免在这两个设备中的某个设备端安装PCIe链路所需的专用的(非通用的)驱动,从而降低了系统的复杂度,同时提高了系统的可维护性。
这里需要说明,本申请中“在第一设备端和第二设备端分别提供第一和第二虚拟网络接口”的描述不限定在每一端提供接口的顺序,换而言之,既可以先在第一设备端或第二设备端提供虚拟网络接口,然后在第二设备端或第一设备端提供虚拟网络接口;也可以在两端同时提供虚拟网络接口,本发明对提供虚拟网络接口的顺序不作任何限制。
根据本发明的另一种实施方式,还提供一种基于PCIe链路的通信方法。
如图6所示,在根据本发明的一个实施方式的基于PCIe链路的通信方法中,在第一设备和第二设备之间具有PCIe总线的链路,图6先执行的步骤S1与图5的类似,在此不再赘述。在步骤S2,在第一设备端和第二设备端分别提供第一和第二转发服务,以在第一设备端和第二设备端分别建立第一设备100和第二设备200之间的数据转发进程(第一和第二中间服务模块102和202中的转发模块1020和2020),其中,第一设备和第二设备上的第一和第二转发服务在PCIe链路和第一与第二设备的各自的第一和第二虚拟网络接口之间进行数据转发(如图3所示)。
在根据本发明的上述实施方式中,通过在相互通信的两个设备端的底层PCIe链路之上分别提供虚拟网络接口以及转发服务,能够将对于PCIe链路的操作转换为对上层的虚拟网络接口的操作,对上层而言,无需专门考虑PCIe链路的独特性和不通用性。由此,可以无差别地兼容其它的接口形式,例如兼容RJ45网络接口形式,从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。
对于上述的虚拟网络接口,作为一个例子,可以通过分别在第一设备端和第二设备端加载TUN/TAP驱动,来分别建立TAP类型的相应的第一和第二虚拟网络接口,即,用于第一设备端的第一虚拟网络接口和用于第二设备端的第二虚拟网络接口。
这里,本领域技术人员应当理解,以上例子仅用于说明如何在本发明中建立虚拟网络接口,而本领域中用于建立虚拟网络接口的方式不限于此。
在本发明中,第一设备和第二设备间的通信可以是一对一,也可以是一对多,如图4所示的根据本发明的一个实施方式的设备间的一对多通信模式。在图4中,第一设备经由PCIe链路与N个(N为自然数)设备相连。此时,该N个设备中的每个设备可以具有一个含有相应的虚拟网络接口的通信装置。在该情况下,第一设备需要建立用于使该N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理这N个设备。在此,通过使用网桥的结构,第一设备可以方便地统一管理这N个设备。在此,作为一个例子,可以由第一设备端的中间服务提供装置中的转发模块(转发服务进程)统一管理这N个设备。
通过采用网桥的方式来管理多个设备,可以带来很大的便利。这里请注意,上述的网桥的结构仅是一个例子,本发明对于网桥的结构和管理方式不作任何限制。
另外,作为例子,第一设备可以是主机或服务器,第二设备可以是加速卡,上述的N个设备可以是一个或多个加速卡。需要注意,本发明的应用场景不应局限于上述的作为例子的主机或服务器与一个或多个加速卡通信,而是只要通过PCIe总线进行的设备间通信,都可以应用本发明。
根据本发明的另一种实施方式,还提供一种基于PCIe链路的通信方法。
在根据本发明的实施方式的基于PCIe链路的通信方法中,在第一设备和第二设备之间具有PCIe链路。如图7所示,在步骤S1’中,在第二设备端提供第二虚拟网络接口,该步骤与图5和图6的步骤S1类似。在步骤S2’中,在第二设备端提供第二转发服务,该第二转发服务用于在PCIe链路和第二设备端的第二虚拟网络接口之间进行数据转发,以使得在第二设备端提供的应用程序能够使用标准的网络通信接口对第二设备端的第二虚拟网络接口进行操作,该步骤与图6的步骤S2类似。在步骤S3’中,在第一设备端建立与第二设备的第二虚拟网络接口相对应的第一虚拟网络接口,以便实现第一设备与第二设备的第一和第二虚拟网络接口之间的通信。在步骤S4’中,在第一设备端提供第一转发服务,该第一转发服务用于在PCIe链路和第一设备的第一虚拟网络接口间进行数据转发,以使得在第一设备端提供的应用程序能够使用标准的网络通信接口对第一虚拟网络接口进行操作,该步骤与图6的步骤S2类似。
通过根据本发明的上述实施方式的基于PCIe链路的通信方法,借助于在两设备端设立的虚拟网络接口和在两设备端启动的转发服务程序,能够实现将对于底层的PCIe链路的操作(例如读写操作)转化为对底层之上的虚拟网络接口的操作(例如读写操作),并且数据的收发对于两个设备端的应用程序完全透明,由此可以无差别的兼容不同于PCIe接口的其它的接口形式(例如RJ45网络接口形式),从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。
与前面的例子类似,本方法中提供虚拟网络接口的方式也包括在第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的相应的第一和第二虚拟网络接口。同样,本领域技术人员应当理解,该例子仅用于说明如何在本发明中建立虚拟网络接口,而本领域中用于建立虚拟网络接口的方式不限于此。
类似地,在本发明中,第一设备和第二设备间的通信可以是一对一,也可以是一对多,如图4所示。在图4中,第一设备经由PCIe链路与N个(N为自然数)设备相连。此时,该N个设备中的每个设备可以具有一个含有相应的虚拟网络接口的通信装置。在该情况下,第一设备需要建立用于使该N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理这N个设备。在此,通过使用网桥的结构,第一设备可以方便地统一管理这N个设备。在此,作为一个例子,可以由第一设备端的中间服务提供装置中的转发模块(转发服务进程)统一管理这N个设备。
通过采用网桥的方式来管理多个设备,可以带来很大的便利。这里请注意,上述的网桥的结构仅是一个例子,本发明对于网桥的结构和管理方式不作任何限制。
另外,作为例子,第一设备可以是主机或服务器,第二设备可以是加速卡,该N个设备可以是一个或多个加速卡。需要注意,本发明的应用场景不应局限于上述的作为例子的主机或服务器与一个或多个加速卡通信,而是只要通过PCIe总线进行的设备间通信,都可以应用本发明。
根据本发明的一种实施方式,提供一种基于PCIe链路的通信装置。
如图8所示,已知在图1所示的第一设备100和第二设备200之间连接有PCIe链路,根据本发明的该实施方式的基于该PCIe链路的通信装置1000包括:用于在第二设备端提供第二虚拟网络接口的第二虚拟网络接口提供部件1001;用于在第二设备端提供第二转发服务的第二转发服务提供部件1002,该第二转发服务用于在PCIe链路和第二设备端的第二虚拟网络接口之间进行数据转发,在第二设备端提供的应用程序能够使用标准的网络通信接口对第二虚拟网络接口进行操作;用于在第一设备端提供与第二设备的第二虚拟网络接口相对应的第一虚拟网络接口的第一虚拟网络接口提供部件1003;以及用于在第一设备端提供第一转发服务的第一转发服务提供部件1004,该第一转发服务用于在PCIe链路和第一虚拟网络接口间进行数据转发,在第一设备端提供的应用程序能够使用标准的网络通信接口对第一虚拟网络接口进行操作。
如上所述,提供第一和第二虚拟网络接口包括在所述第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的第一和第二虚拟网络接口。同样,本领域技术人员应当理解,该例子仅用于说明如何在本发明中建立虚拟网络接口,而本领域中用于建立虚拟网络接口的方式不限于此。
类似地,在本发明中,第一设备和第二设备间的通信可以是一对一,也可以是一对多,同样如图4所示。在图4中,第一设备经由PCIe链路与N个(N为自然数)设备相连。此时,该N个设备中的每个设备可以具有一个含有相应的虚拟网络接口的通信装置。在该情况下,第一设备需要建立用于使该N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理这N个设备。在此,通过使用网桥的结构,第一设备可以方便地统一管理这N个设备。在此,作为一个例子,可以由第一设备端的中间服务提供装置中的转发模块(转发服务进程)统一管理这N个设备。
通过采用网桥的方式来管理多个设备,可以带来很大的便利。这里请注意,上述的网桥的结构仅是一个例子,本发明对于网桥的结构和管理方式不作任何限制。
另外,作为例子,第一设备可以是主机或服务器,第二设备可以是加速卡,该N个设备可以是一个或多个加速卡。需要注意,本发明的应用场景不应局限于上述的作为例子的主机或服务器与一个或多个加速卡通信,而是只要通过PCIe总线进行的设备间通信,都可以应用本发明。
另外,为了让本发明更容易理解,将在下面举出一个应用实例(仅是应用场景的实例,不应被理解为对本发明的限制)来进一步地描述根据本发明的一种基于PCIe链路的通信方法的可能相关的步骤的很多具体细节。需要注意,该应用实例的这些相关的步骤和步骤的很多细节仅是为了让本发明更容易理解而提供的,这些相关的步骤和细节不应被理解为对本发明的限制。
如图9所示,该应用实例的应用场景是服务器和一个或多个加速卡通信,在这样的通信所涉及的应用本发明的通信方法之中的一种实现方式中,可以包括(但并非一定要包括,因为其中的某些步骤和细节可以跳过或省略或采用其他方式等)以下的步骤。再次说明,本实例中的这些步骤是为了全面和真实地反映本发明的思想和实施过程而作为示例来提供的,里面某些步骤和细节并非一定是必须的,而且本领域技术人员可以在此基础上进行各种替换和变换,这些变换和替换也都应该在本发明的保护范围之内。另外,需要注意,在本实例的应用场景中,加速卡虽然从上层看起来像是作为从设备运作的,但是实际上在对于虚拟网络接口的设置和操作以及对于转发服务的设置和操作中,加速卡端和服务器端是对等的,从图9可以看出这一点。实际上,本发明并不局限于主从通信模式,对等通信模式一样可以应用本发明。
1)在加速卡端,预留供PCIe可以访问的内存空间,并加载处理PCIe DMA(DirectMemory Access,直接内存访问)传输的从设备驱动,该驱动提供基本的read(读)、write(写)等操作接口。
2)在加速卡端,加载TUN/TAP驱动,建立一个TAP类型的虚拟网络接口(以下简称TAP接口),并为这个虚拟网络接口分配独立的唯一的IP地址。
3)在加速卡端,启动转发服务。该转发服务将利用上述的从设备驱动所提供的基本操作接口在PCIe链路和加速卡端得TAP接口进行数据转发。
4)在加速卡端,启动应用程序。应用程序使用标准的网络通信接口读写加速卡端的TAP接口,等待主机发送待处理的数据。
5)在服务器端,加载加速卡主设备驱动,该驱动可以利用PCIe DMA访问加速卡预留的内存空间,并提供基本的read、write等操作接口,主设备驱动加载后,服务器端完成对加速卡设备的识别和管理,基本的PCIe通信链路建立完成。
6)在服务器端,加载TUN/TAP驱动,为每个加速卡设备建立对应的TAP类型的虚拟网络接口,并分配独立的唯一的IP地址。此时,如果有多个加速卡设备与服务器相连,可以考虑建立网桥,以将服务器端的与每个加速卡设备相对应的各虚拟网络接口加入到同一网桥中,并为该网桥分配IP地址,来作为服务器与各加速卡通信的主机IP地址。
7)在服务器端,启动转发服务,转发服务将利用主设备驱动提供的基本操作接口在PCIe链路和服务端的各TAP接口间进行数据转发。同时,如果有多个加速卡设备,则由转发服务统一管理这些加速卡设备。
8)在服务器端,启动应用程序,利用标准的网络通信接口向加速卡发送要处理的数据。如果有网桥,则应用程序直接使用网桥的网络接口,利用标准的网络通信接口向加速卡发送要处理的数据。
通过上面的该实例的通信方法,PCIe设备驱动只需提供基本的读写功能,而不需要专门的非通用的PCIe驱动。在该方法中,利用通过在经由PCIe链路相互通信的两设备端的TUN/TAP驱动来构建的虚拟网络接口和转发服务进程,所有对于PCIe链路的读写操作都转化为对虚拟网络接口的读写操作,数据的传输控制、错误恢复等机制都可通过网络协议栈来实现,最重要的是数据的收发对于服务器端和加速卡端的应用程序完全透明,可以无差别的兼容RJ45网络接口形式,从而减少了代码的编写和维护,降低了系统的复杂度,提高了系统的可维护性。
在上述的实例中,应用的场景是一个服务器和多个加速卡,其中本实例使用的服务器例如可以是运行Linux系统的常见服务器,可以通过例如PCIe扩展来增加多个加速卡。加速卡的数据通信部分例如可以使用带有PCIe终端设备控制模块的CPU/DSP类的ASIC芯片或FPGA芯片来实现,在本实例中,加速卡的PCIe数据通信可以使用例如ASIC芯片Hi3536来进行处理。作为例子,整个系统的结构可以例如是如图4所示的一对多通信方式。
更具体来说,对于上述实例,将加速卡接入服务器系统后,随着系统上电启动,加速卡会预留好用于数据传输内存空间,并加载控制PCIe DMA传输的从设备驱动。从设备驱动可以根据服务器端通过PCIe总线发送的DMA任务描述来启动DMA传输,将数据写入预留好的内存空间,也可以利用DMA将预留空间中的数据通过PCIe总线发送给服务器端。同时,从设备驱动创建设备节点pcie_buff,提供read、write接口读取或写入PCIe总线上的数据;进一步地,TUN/TAP驱动加载,建立虚拟网络设备节点tap0,并为tap0分配IP地址。相关的驱动加载完成后,加速卡端的转发服务程序启动,建立上述的虚拟网络设备节点tap0和上述的由从设备驱动创建的设备节点pcie_buff的数据转发进程。最后,应用程序启动,直接以标准的网络通信接口操作虚拟网络设备节点tap0,等待需要处理的数据。对于一个服务器扩展多个加速卡的情况(一对多的通信模式),上述过程会同时进行,只是在IP地址分配时会为每个加速卡分配同一网段的不同IP地址。
同样,随着系统上电启动,服务器首先加载主设备驱动,主设备驱动可以例如通过PCIe总线向加速卡发送DMA传输任务描述以及读取加速卡通过PCIe总线发来的数据。主设备驱动还会管理PCIe总线上的所有加速卡,并为接入到服务器端的加速卡建立对应的设备节点pcie0,如果有多个加速卡,例如会以0开始依次编号,如pcie0、pcie1……,然后TUN/TAP驱动加载,建立虚拟网络设备节点tap0,并分配好IP地址,该IP地址与加速卡端的IP地址位于同一网段。如果有多个加速卡,则例如也以0开始依次编号,如tap0、tap1……,所有的虚拟网络设备节点建立完成后,转发服务启动,依次建立tap*设备节点和pcie*设备节点(这里“*”表示设备节点的序号,比如tap*设备节点和pcie*设备节点表示相对应的tap设备节点和pcie设备节点)之间的数据转发进程。为方便多个加速卡的管理,此时例如可以建立一个网桥dc0,将所有的tap*设备加入到dc0中,并为网桥分配IP地址。最后,应用程序启动,例如可以直接通过网桥设备dc0向加速卡端的IP地址发送数据。以服务端对应一个加速卡为例,整个流程建立起的系统如图9所示。本领域技术人员应当理解,对于一个服务端对应多个加速卡的情况,系统结构与图9类似。
图10示出了根据本发明一实施例可用于实现上述基于PCIe链路的通信方法的处理的电子设备的结构示意图。
参见图10,电子设备1包括存储器10和处理器20。
处理器20可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器20可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器20可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器10可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器20或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器10可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器10可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器10上存储有可处理代码,当可处理代码被处理器20处理时,可以使处理器20执行上文述及的基于PCIe链路的通信方法。
上文中已经参考附图详细描述了根据本发明的基于PCIe链路的通信方法。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (22)

1.一种基于PCIe链路的通信装置,所述PCIe链路连接第一设备和第二设备,其特征在于,
各自作为所述通信装置的第一通信装置和第二通信装置分别安装在所述第一设备和第二设备上,所述第一和第二通信装置分别包括在底层PCIe链路之上位于驱动层的第一和第二虚拟网络接口,用于在第一设备和第二设备上,将对于所述PCIe链路的操作转化为对所述第一和第二虚拟网络接口的操作,所述第一和第二虚拟网络接口分别由第一设备和第二设备上的应用程序进行读写,
其中,所述第一和第二通信装置分别经由第一和第二虚拟网络接口与包含在第一和第二中间服务提供装置中的、分别在所述第一设备端和第二设备端提供第一和第二转发服务的第一和第二转发模块进行通信,通过由所述第一和第二转发模块提供的第一和第二转发服务,在PCIe链路位于驱动层的读写接口与第一和第二虚拟网络接口间进行数据转发,其中,所述第一和第二转发服务位于应用层。
2.如权利要求1所述的通信装置,其特征在于,通过在所述第一设备端和所述第二设备端加载TUN/TAP驱动来分别建立所述第一和第二通信装置的TAP类型的相应的第一和第二虚拟网络接口。
3.如权利要求1所述的通信装置,其特征在于,所述PCIe链路连接第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,其中所述N个设备中的每个设备具有一个含有相应的虚拟网络接口的通信装置,并且,所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备中的每个设备。
4.如权利要求3所述的通信装置,其特征在于,由第一设备端的第一转发模块统一管理所述N个设备。
5.如权利要求3所述的通信装置,其特征在于,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
6.一种基于PCIe链路的通信方法,所述PCIe链路连接第一设备和第二设备,其特征在于,所述通信方法包括:
在底层PCIe链路之上,在第一设备端和第二设备端分别提供位于驱动层的第一和第二虚拟网络接口,用于将对于所述PCIe链路的操作转化为对所述第一和第二虚拟网络接口的操作,并分别由第一设备和第二设备上的应用程序进行读写;以及
在所述第一设备端和第二设备端分别提供第一和第二转发服务,以在所述第一设备端和所述第二设备端分别建立第一设备和第二设备之间的数据转发进程,所述第一和第二转发服务在PCIe链路位于驱动层的读写接口与所述第一和第二虚拟网络接口间进行数据转发,其中,所述第一和第二转发服务位于应用层。
7.如权利要求6所述的通信方法,其特征在于,提供第一和第二虚拟网络接口包括在所述第一设备端和所述第二设备端加载TUN/TAP驱动,以分别建立TAP类型的相应的第一和第二虚拟网络接口。
8.如权利要求6所述的通信方法,其特征在于,所述PCIe链路连接第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,并且,所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
9.如权利要求8所述的通信方法,其特征在于,第一设备端的第一转发服务统一管理所述所述N个设备。
10.如权利要求8所述的通信方法,其特征在于,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
11.一种基于PCIe链路的通信方法,所述PCIe链路连接第一设备和第二设备,其特征在于,所述通信方法包括:
在第二设备端提供第二虚拟网络接口;
在第二设备端提供第二转发服务,所述第二转发服务用于在所述PCIe链路的读写接口和所述第二虚拟网络接口之间进行数据转发,在第二设备端提供的应用程序能够使用标准的网络通信接口对所述第二虚拟网络接口进行操作;
在第一设备端提供与所述第二虚拟网络接口相对应的第一虚拟网络接口;以及
在第一设备端提供第一转发服务,所述第一转发服务用于在所述PCIe链路的读写接口和所述第一虚拟网络接口间进行数据转发,在第一设备端提供的应用程序能够使用标准的网络通信接口对所述第一虚拟网络接口进行操作,其中,所述第一转发服务和所述第二转发服务位于应用层,所述第一虚拟网络接口和所述第二虚拟网络接口位于驱动层。
12.如权利要求11所述的通信方法,其特征在于,提供第一和第二虚拟网络接口包括在所述第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的第一和第二虚拟网络接口。
13.如权利要求11所述的通信方法,其特征在于,所述PCIe链路连接所述第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,
所述第一设备建立用于使所述N个设备中的每个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
14.如权利要求13所述的通信方法,其特征在于,所述第一设备端的第一转发服务统一管理所述N个设备。
15.如权利要求13所述的通信方法,其特征在于,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
16.一种基于PCIe链路的通信装置,所述PCIe链路连接第一设备和第二设备,其特征在于,所述通信装置包括:
用于在第二设备端提供第二虚拟网络接口的部件;
用于在第二设备端提供第二转发服务的部件,所述第二转发服务用于在所述PCIe链路的读写接口和所述第二虚拟网络接口之间进行数据转发,在第二设备端提供的应用程序能够使用标准的网络通信接口对所述第二虚拟网络接口进行操作;
用于在第一设备端提供与第二设备端的所述第二虚拟网络接口相对应的第一虚拟网络接口的部件;以及
用于在第一设备端提供第一转发服务的部件,所述第一转发服务用于在所述PCIe链路的读写接口和所述第一虚拟网络接口间进行数据转发,在第一设备端提供的应用程序能够使用标准的网络通信接口对所述第一虚拟网络接口进行操作,其中,所述第一转发服务和所述第二转发服务位于应用层,所述第一虚拟网络接口和所述第二虚拟网络接口位于驱动层。
17.如权利要求16所述的通信装置,其特征在于,提供第一和第二虚拟网络接口包括在所述第一设备端和第二设备端加载TUN/TAP驱动,以分别建立TAP类型的第一和第二虚拟网络接口。
18.如权利要求16所述的通信装置,其特征在于,所述PCIe链路连接所述第一设备和N个设备,这里,N是自然数,所述N个设备包含或者不包含所述第二设备,所述N个设备中的每个设备具有一个虚拟网络接口,并且,第一设备建立用于使所述N个设备的虚拟网络接口加入的网桥,以便管理所述N个设备。
19.如权利要求18所述的通信装置,其特征在于,由第一设备端的第一转发服务统一管理所述N个设备。
20.如权利要求18所述的通信装置,其特征在于,所述第一设备是主机或服务器,所述N个设备是一个或多个加速卡。
21.一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求6-15中任一项所述的方法。
22.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求6-16中任一项所述的方法。
CN201810260786.9A 2018-03-27 2018-03-27 基于PCIe链路的通信方法、装置、电子设备、存储介质 Active CN110311843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810260786.9A CN110311843B (zh) 2018-03-27 2018-03-27 基于PCIe链路的通信方法、装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810260786.9A CN110311843B (zh) 2018-03-27 2018-03-27 基于PCIe链路的通信方法、装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN110311843A CN110311843A (zh) 2019-10-08
CN110311843B true CN110311843B (zh) 2022-06-28

Family

ID=68073795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810260786.9A Active CN110311843B (zh) 2018-03-27 2018-03-27 基于PCIe链路的通信方法、装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN110311843B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468090B (zh) * 2020-03-30 2024-04-05 浙江宇视科技有限公司 一种PCIe通信方法、装置、电子设备及可读存储介质
CN111581050B (zh) * 2020-04-13 2023-06-27 加弘科技咨询(上海)有限公司 机箱、机箱监控系统及监控方法
CN112100111B (zh) * 2020-09-15 2022-04-26 浪潮集团有限公司 一种多awg板卡的控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812225A (zh) * 2016-05-04 2016-07-27 烽火通信科技股份有限公司 与接口无关的虚拟以太网通信部件及其实现通信的方法
CN106933753A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 智能接口卡的控制方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873068B2 (en) * 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US10333865B2 (en) * 2015-08-21 2019-06-25 Cisco Technology, Inc. Transformation of peripheral component interconnect express compliant virtual devices in a network environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933753A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 智能接口卡的控制方法及装置
CN105812225A (zh) * 2016-05-04 2016-07-27 烽火通信科技股份有限公司 与接口无关的虚拟以太网通信部件及其实现通信的方法

Also Published As

Publication number Publication date
CN110311843A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
US11829309B2 (en) Data forwarding chip and server
US11960430B2 (en) Remote mapping method, apparatus and device for computing resources, and storage medium
US8812758B2 (en) Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
CN110311843B (zh) 基于PCIe链路的通信方法、装置、电子设备、存储介质
CN114138702B (zh) 计算系统、pci设备管理器及其初始化方法
US10394723B2 (en) Data accessing method and PCIe storage device
US9396101B2 (en) Shared physical memory protocol
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US20050071514A1 (en) Autonomic configuration of interconnection cable speeds
CN102263698B (zh) 虚拟通道的建立方法、数据传输的方法及线卡
CN115599502B (zh) 基于虚拟机监控器的rtos网络共享方法
US11726938B2 (en) Communications for field programmable gate array device
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
JP2015166959A (ja) 情報処理装置、リソース割当て方法、及び、プログラム
CN113535319A (zh) 一种实现多rdma网卡虚拟化的方法、设备及存储介质
CN112035393A (zh) 一种节约双片上系统存储资源的方法、双片上系统
CN105786398A (zh) 存储器映射方法和存储器映射系统
US11003616B1 (en) Data transfer using point-to-point interconnect
WO2022218434A1 (zh) 一种计算节点管理系统及针对多个计算节点的管理方法
US11386031B2 (en) Disaggregated switch control path with direct-attached dispatch
CN116418848A (zh) 网络节点的配置和访问请求的处理方法、装置
CN113721995B (zh) 一种智能子卡的加载方法、装置及存储介质
CN106547713B (zh) 一种分配地址的方法和装置
CN116743587B (zh) 一种基于异构计算加速卡的虚拟网络接口实现方法及装置
US20240345980A1 (en) Chip Management Apparatus and Related Method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190925

Address after: 2100 San Jose Rojack Avenue, California, USA

Applicant after: XILINX INC

Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing Shenjian Intelligent Technology Co., Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant