CN111399973A - Fpga远程挂载结构、网络管控方法、装置及电子设备 - Google Patents

Fpga远程挂载结构、网络管控方法、装置及电子设备 Download PDF

Info

Publication number
CN111399973A
CN111399973A CN201910005784.XA CN201910005784A CN111399973A CN 111399973 A CN111399973 A CN 111399973A CN 201910005784 A CN201910005784 A CN 201910005784A CN 111399973 A CN111399973 A CN 111399973A
Authority
CN
China
Prior art keywords
virtual machine
fpga
data
data exchange
board card
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.)
Granted
Application number
CN201910005784.XA
Other languages
English (en)
Other versions
CN111399973B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910005784.XA priority Critical patent/CN111399973B/zh
Publication of CN111399973A publication Critical patent/CN111399973A/zh
Application granted granted Critical
Publication of CN111399973B publication Critical patent/CN111399973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明实施例提供一种FPGA远程挂载结构、网络管控方法、装置及电子设备,其中,FPGA远程挂载结构包括:在网络计算机上创建的虚拟机,数据交换设备,以及通过所述数据交换设备与所述虚拟机挂载连接的FPGA板卡;所述虚拟机通过透传技术与所述数据交换设备实现数据交互。本发明实施例的方案,能够将FPGA远程挂载到任何一个VM上,使得FPGA作为VM的异构硬件对外提供服务。

Description

FPGA远程挂载结构、网络管控方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种FPGA远程挂载结构、网络管控方法、装置及电子设备。
背景技术
在现场可编程门阵列(Field-Programmable Gate Array,FPGA)上云的背景下,FPGA的虚拟化越来越备受关注。目前,主流FPGA的虚拟化方案都是通过PCIe直通实现,即通过Pass-through技术将PCI/PCIe设备绕过虚拟机(Virtual Machine,VM)平台直接分配给VM使用,目前在云产品中,FPGA板卡都是通过该技术挂载到VM的。
但是,这种方法不灵活且无法池化计算资源,受限于服务器的PCIe插槽,如果FPGA板卡不插在本地插槽上,就无法挂载到VM上,而且也无法做到在不迁移VM到其他物理机的条件下,维修FPGA板卡。因此,实现FPGA的远程加载(remote attach)成为目前迫切的需求。
发明内容
本发明提供了一种FPGA远程挂载结构、网络管控方法、装置及电子设备,能够将FPGA远程挂载到任何一个VM上,使得FPGA作为VM的异构硬件对外提供服务。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种FPGA远程挂载结构,包括:在网络计算机上创建的虚拟机,数据交换设备,以及通过所述数据交换设备与所述虚拟机挂载连接的FPGA板卡;
所述虚拟机通过透传技术与所述数据交换设备实现数据交互。
第二方面,提供了一种网络管控方法,包括:
在网络计算机上创建虚拟机,并确定远程挂载到所述虚拟机的FPGA板卡的地址;
配置用于连接所述虚拟机以及所述FPGA板卡的数据交换设备的路由表,建立所述虚拟机到所述FPGA的数据通道;
向所述FPGA加载配置数据。
第三方面,提供了一种网络管控装置,包括:
创建模块,用于在网络计算机上创建虚拟机,并确定远程挂载到所述虚拟机的FPGA板卡的地址;
路由配置模块,用于配置用于连接所述虚拟机以及所述FPGA板卡的数据交换设备的路由表,建立所述虚拟机到所述FPGA的数据通道;
FPGA配置模块,用于向所述FPGA加载配置数据。
第四方面,提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行本发明提供的网络管控方法。
本发明提供了一种FPGA远程挂载结构、网络管控方法、装置及电子设备,通过搭建由在网络计算机上创建的虚拟机,数据交换设备,以及通过数据交换设备与虚拟机挂载连接的FPGA板卡,可形成FPGA远程挂载结构;其中,虚拟机通过透传技术与数据交换设备实现数据交互。通过在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址;配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,从而建立虚拟机到FPGA的数据通道;在向FPGA加载配置数据后,FPGA可作为虚拟机的异构硬件对外提供业务服务。本方案中的FPGA远程挂载结构,通过远程加载的方式实现了FPGA资源的池化,解耦了FPGA板卡和物理机,当FPGA板卡发生物理损坏的时候,换修不影响业务。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的FPGA远程挂载结构示意图;
图2为本发明实施例的网络管控方法流程图;
图3为本发明实施例的数据传输方法流程图一;
图4为本发明实施例的数据传输方法流程图二;
图5为本发明实施例的网络管控装置结构图一;
图6为本发明实施例的网络管控装置结构图二;
图7为本发明实施例的网络管控装置结构图三;
图8为本发明实施例的电子设备的结构示意。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例改善了现有技术在解决FPGA虚拟化的方案中,由于是通过PCIe直通实现,即FPGA板卡直接插接在PCIe插槽后挂载到VM,从而导致FPGA资源无法池化,以及维修不方便的缺陷,其核心思想在于,通过搭建由在网络计算机上创建的虚拟机,数据交换设备,以及通过数据交换设备与虚拟机挂载连接的FPGA板卡,从而形成FPGA远程挂载结构;其中,虚拟机通过透传技术与数据交换设备实现数据交互。在进行网络管控时,通过在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址;配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,从而建立虚拟机到FPGA的数据通道;在向FPGA加载配置数据后,FPGA可作为虚拟机的异构硬件对外提供业务服务。本方案可通过远程加载的方式实现了FPGA资源的池化,解耦了FPGA板卡和物理机,当FPGA板卡发生物理损坏的时候,换修不影响业务。
进一步的,在利用上述FPGA远程挂载结构进行业务处理时,包含两个方向的业务请求的传输:
VM→FPGA板卡:
虚拟机通过透传技术可向与其直接连接的第一数据交换设备发送业务请求,其中该第一数据交换设备可以是插接在物理机上的虚拟交换机(vSwitch);第一数据交换设备对业务请求加载标签,并将加载标签后的业务请求通过至少一个第二数据交换设备发送至远程挂载于虚拟机的FPGA板卡;其中,该第二数据交换设备可以是物理交换机(Switch),vSwitch与Switch之间,Switch与Switch之间可通过串行总线连接,实现通信互联;FPGA板卡将接收到的业务请求中的标签去除,获取原始的业务请求,以对业务请求进行处理。其中,上述标签内容至少包括用于指示FPGA板卡作为目标地址的信息。
FPGA板卡→VM:
FPGA板卡对待发送至虚拟机的业务请求加载标签,并将加载标签后的业务请求通过至少一个第二数据交换设备发送至通过透传技术与虚拟机连接的第一数据交换设备;FPGA板卡远程挂载于虚拟机;第一数据交换设备将接收到的业务请求中的标签去除,获取原始的业务请求,并将其转发至虚拟机;其中,标签内容至少包括用于指示虚拟机作为目标地址的信息。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述FPGA远程挂载至VM的方案思想,图1为本发明实施例提供的FPGA远程挂载结构示意图。如图1所示,该FPGA远程挂载结构包括:
在网络计算机NC上创建的虚拟机VM,数据交换设备(如图中所示的虚拟交换机vSwitch和物理交换机Switch),以及通过数据交换设备与虚拟机VM挂载连接的FPGA板卡;虚拟机VM通过透传技术与数据交换设备实现数据交互。
本方案提供的FPGA远程挂载结构与现有技术的区别在于,FPGA板卡不再通过PCIe直接插接在VM所在的NC上,而是通过数据交换设备作为中间桥梁,远程挂载于VM上,即VM和FPGA板卡被分别部署在两个机器设备上。实际上,FPGA板卡可以直接设置在机房的机架上,或者插接在另一台物理机上,只需要保证FPGA板卡能上电工作即可。
本方案中的数据交换设备,其作用是在VM与FPGA板卡之间形成数据传输通道,而针对该数据传输通道上采用何种的数据传输协议,以及数据交换设备本身的结构,在本方案中并不进行严格限定。比如,可以采用如图1中所示的具体结构方案:
数据交换设备可为多个,如图1中所示的虚拟交换机vSwitch和物理交换机Switch,这些数据交换设备相互连通形成数据交换网络。
其中,数据交换设备具体可包括:与虚拟机VM通过透传技术实现数据交互的第一数据交换设备(如图中的虚拟交换机vSwitch);与FPGA板卡实现数据交互的第二数据交换设备(如图中的物理交换机Switch)。
FPGA板卡顺序通过至少一个第二数据交换设备以及一个第一数据交换设备连接后,挂载连接到与该第一数据交互设备连接的虚拟机VM上。
具体地,由于虚拟机VM创设在虚拟架构下,所以需要先通过透传技术与实体外接设备直连实现数据交互,该实体外接设备即为上述的第一数据交换设备。而第一数据交换设备与第二数据交换设备之间可通过物理总线如串行总线连接,进而与FPGA板卡互联实现数据交互,从而将FPGA板卡远程挂载于VM上,作为VM的异构硬件向外提供服务。
在实际应用场景中,可以通过搭建上述FPGA远程挂载结构,以将任意一个FPGA板卡通过数据交换设备远程挂载到任一VM。
本发明提供的FPGA远程挂载结构,通过远程加载的方式实现了FPGA资源的池化,解耦了FPGA板卡和物理机,当FPGA板卡发生物理损坏的时候,换修不影响业务。
实施例二
基于上述FPGA远程挂载至VM的方案思想,如图2所示,其为本发明实施例示出的网络管控方法流程图,该方法应用于实施例一所示的FPGA远程挂载结构中。如图2所示,该网络管控方法包括如下步骤:
S210,在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址。
在根据用户请求在NC上创建虚拟机的时候,后台管控服务器可通过用户订单信息,在上述的FPGA远程挂载结构中为用户分配虚拟机和FPGA板卡,并确定FPGA板卡的地址。
S220,配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,建立虚拟机到FPGA的数据通道。
在确定虚拟机和FPGA板卡的位置之后,后台管控服务器配置相关路径上的数据交换设备如Switch和NC上的vSwitch的路由表,建立虚拟机到FPGA板卡的数据通道。
其中:vSwitch是一种虚拟化设备,首先通过PCIe的sriov(一种透传技术)将vSwitch直通至虚拟机,然后vSwitch与Switch之间通过serdes(串行总线)互联。vSwitch会为发送的数据加上标签(被发送的数据所对应的源地址和目标地址),以及将收到的数据去掉标签,恢复数据原貌。
其中,Switch是一种互联设备,可以实现vSwitch和Switch、Switch和Switch、Switch和FPGA之间互联。
以图1中所示的数据交换设备为例,待配置路由表的数据交换设备可包括:与虚拟机VM通过透传技术实现数据交互的第一数据交换设备(如vSwitch);与FPGA板卡实现数据交互(包括直接交互和间接交互)的第二数据交换设备(如Switch)。相应的配置过程为:
基于预制的虚拟机与其被挂载的FPGA板卡之间的路由路径,配置该路径上包含的第一数据交换设备(如vSwitch)以及第二数据交换设备(如Switch)的路由表,该路由表指示了在第一数据交换设备、第二数据交换接收到以FPGA板卡为目标地址或者以虚拟机为目标地址的报文时该报文对应的接口,该接口指向该报文在路径传输的下一跳的设备地址。
具体地,在确定虚拟机与其被挂载的FPGA板卡之间的路由路径后,可以按照路径中包含的第一数据交换设备以及第二数据交换设备的路由顺序,在各设备中配置目标地址与各设备中接口的关系(路由表),从而使得在设备接收到包含目标地址的信息的报文后,通过指定接口进行转发。比如,当某设备接收到以虚拟机为目标地址的报文后,根据路由表,当前设备会把该报文通过指定的接口转发,而该接口指向该报文在通向虚拟机的路径传输的下一跳的设备地址;下一跳的设备接收到该报文后重复转发操作,直至报文被发送至目标地址即虚拟机。
S230,向FPGA加载配置数据。
用户可管理FPGA板卡,向FPGA板卡加载FPGA处理逻辑(fpga bitstream)和时钟频率(fpga时钟频率)等等。具体地,用户可向管控服务器发起管理请求。管控服务器鉴权后将管理请求发送给指定的fpga,管控请求包括:加载fpga bitstream,配置fpga时钟频率。
执行完成上述网络管控方法后,即可实现将FPGA板卡远程挂载到指定的虚拟机上,作为虚拟机的异构硬件向外提供服务。
本发明提供的网络管控方法,通过在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址;配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,从而建立虚拟机到FPGA的数据通道;在向FPGA加载配置数据后,FPGA可作为虚拟机的异构硬件对外提供业务服务。本方案可通过远程加载的方式实现了FPGA资源的池化,解耦了FPGA板卡和物理机,当FPGA板卡发生物理损坏的时候,换修不影响业务。
实施例三
如图3所示,为本发明实施例的数据传输方法流程图一,本实施例可在实施例二所示方法的基础上,借助创建好的虚拟机到FPGA的数据通道执行完成,具体数据传输方向为从VM→FPGA板卡。如图3所示,该数据传输方法包括如下步骤:
S310,虚拟机通过透传技术向第一数据交换设备发送第一业务请求。
用户向VM发起业务请求,即第一业务请求,该第一业务请求主要包括mmio的request和DMA的response。VM接收到第一业务请求后,通过如sriov透传给到第一数据交换设备如vSwitch。
S320,第一数据交换设备对第一业务请求加载标签,并将加载标签后的第一业务请求通过至少一个第二数据交换设备发送至远程挂载于虚拟机的FPGA板卡;其中,标签内容至少包括用于指示FPGA板卡作为目标地址的信息,比如可以是FPGA板卡的设备ID信息。
第一数据交换设备如vSwitch接收到第一业务请求后,在请求中添加标签,指示本次数据报文传输对应的源地址和目标地址,然后转发给第二数据交换设备如Switch。Switch根据数据报文中的标签,将第一业务请求路由到指定的FPGA板卡,如具体为FPGA板卡中的shell区,再由shell区交给用户逻辑区。
S330,FPGA板卡将接收到的第一业务请求中的标签去除,获取原始的第一业务请求。
例如,FPGA板卡中的shell区将接收到的第一业务请求中的标签去除,并将去除标签后的原始的第一业务请求交给用户逻辑区,以使其执行相应的业务处理。
本实施例在图2所示方法的基础上,进一步地,虚拟机通过透传技术向第一数据交换设备发送第一业务请求;第一数据交换设备对第一业务请求加载标签,并将加载标签后的第一业务请求通过至少一个第二数据交换设备发送至远程挂载于虚拟机的FPGA板卡;FPGA板卡将接收到的第一业务请求中的标签去除,获取原始的第一业务请求,其中,标签内容至少包括用于指示FPGA板卡作为目标地址的信息;从而实现从VM→FPGA板卡的数据传输过程。
实施例四
如图4所示,为本发明实施例的数据传输方法流程图二,本实施例可在实施例二所示方法的基础上,借助创建好的虚拟机到FPGA的数据通道执行完成,具体数据传输方向为从FPGA板卡→VM。如图4所示,该数据传输方法包括如下步骤:
S410,FPGA板卡对待发送至虚拟机的第二业务请求加载标签,并将加载标签后的第二业务请求通过至少一个第二数据交换设备发送至通过透传技术与虚拟机连接的第一数据交换设备;FPGA板卡远程挂载于虚拟机。其中,标签内容至少包括用于指示虚拟机作为目标地址的信息,比如可以是虚拟机的设备ID信息。
远程挂载于VM的FPGA板卡向VM发起业务请求,即第二业务请求之前,先对第二业务请求加载标签,指示本次数据报文传输对应的源地址和目标地址。该第二业务请求主要包括mmio的response、DMA的request和中断请求。
例如,FPGA板卡中的shell区对待发送的第二业务请求加载标签后,将其转发给第二数据交换设备如Switch,该Switch根据数据报文中的标签,将第二业务请求路由到指定的第一数据交换设备如vSwitch。该第一数据交换设备通过透传技术与目标虚拟机连接。
S420,第一数据交换设备将接收到的第二业务请求中的标签去除,获取原始的第二业务请求,并将其转发至虚拟机。
第一数据交换设备如vSwitch解析标签后,获知本次数据报文对应的目标虚拟机,然后,去除第二业务请求中的标签,并将去除标签后的第二业务请求通过sriov传递给虚拟机。
本实施例在图2所示方法的基础上,进一步地,FPGA板卡对待发送至虚拟机的第二业务请求加载标签,并将加载标签后的第二业务请求通过至少一个第二数据交换设备发送至通过透传技术与虚拟机连接的第一数据交换设备;FPGA板卡远程挂载于所述虚拟机;第一数据交换设备将接收到的第二业务请求中的标签去除,获取原始的第二业务请求,并将其转发至虚拟机;其中,标签内容至少包括用于指示虚拟机作为目标地址的信息;从而实现从FPGA板卡→VM的数据传输过程。
实施例五
如图5所示,为本发明实施例的网络管控装置结构图,该网络管控装置可控制执行如图2中所示的方法步骤,其包括:
创建模块510,用于在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址;
路由配置模块520,用于配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,建立虚拟机到FPGA的数据通道;
FPGA配置模块530,用于向FPGA加载配置数据。
进一步地,上述FPGA配置模块530,可具体用于向FPGA加载配置FPGA处理逻辑和时钟频率。
进一步地,上述数据交换设备可包括:与虚拟机通过透传技术实现数据交互的第一数据交换设备;与FPGA板卡实现数据交互的第二数据交换设备;
相应的,上述路由配置模块520,可具体用于基于预制的虚拟机与其被挂载的FPGA板卡之间的路由路径,配置该路径上包含的第一数据交换设备以及第二数据交换设备的路由表,该路由表指示了在第一数据交换设备、第二数据交换接收到以FPGA板卡为目标地址或者以虚拟机为目标地址的报文时该报文对应的接口,该接口指向该报文在路径传输的下一跳的设备地址。进一步地,如图6所示,在图5所示的网络管控装置中还可包括:
第一请求发送模块610,用于虚拟机通过透传技术向第一数据交换设备发送第一业务请求;
第二请求发送模块620,用于第一数据交换设备对第一业务请求加载标签,并将加载标签后的第一业务请求通过至少一个第二数据交换设备发送至远程挂载于虚拟机的FPGA板卡;
第一请求处理模块630,用于FPGA板卡将接收到的第一业务请求中的标签去除,获取原始的第一业务请求;
其中,标签内容至少包括用于指示FPGA板卡作为目标地址的信息。
进一步地,上述第一业务请求可包括:mmio的request和DMA的response。
图6所示的网络管控装置可用于执行如图3所示的方法步骤。
进一步地,如图7所示,在图5所示的网络管控装置中还可包括:
第二请求处理模块710,用于FPGA板卡对待发送至虚拟机的第二业务请求加载标签;
第三请求发送模块720,用于FPGA板卡将加载标签后的第二业务请求通过至少一个第二数据交换设备发送至通过透传技术与虚拟机连接的第一数据交换设备;FPGA板卡远程挂载于虚拟机;
第四请求发送模块730,用于第一数据交换设备将接收到的第二业务请求中的标签去除,获取原始的第二业务请求,并将其转发至虚拟机;
其中,标签内容至少包括用于指示虚拟机作为目标地址的信息。
进一步地,上述第二业务请求可包括:mmio的response、DMA的request和中断请求。
图7所示的网络管控装置可用于执行如图4所示的方法步骤。
本发明提供的网络管控装置,通过在网络计算机上创建虚拟机,并确定远程挂载到虚拟机的FPGA板卡的地址;配置用于连接虚拟机以及FPGA板卡的数据交换设备的路由表,从而建立虚拟机到FPGA的数据通道;在向FPGA加载配置数据后,FPGA可作为虚拟机的异构硬件对外提供业务服务。本方案可通过远程加载的方式实现了FPGA资源的池化,解耦了FPGA板卡和物理机,当FPGA板卡发生物理损坏的时候,换修不影响业务。
进一步地,虚拟机通过透传技术向第一数据交换设备发送第一业务请求;第一数据交换设备对第一业务请求加载标签,并将加载标签后的第一业务请求通过至少一个第二数据交换设备发送至远程挂载于虚拟机的FPGA板卡;FPGA板卡将接收到的第一业务请求中的标签去除,获取原始的第一业务请求,其中,标签内容至少包括用于指示FPGA板卡作为目标地址的信息;从而实现从VM→FPGA板卡的数据传输过程。
进一步地,FPGA板卡对待发送至虚拟机的第二业务请求加载标签,并将加载标签后的第二业务请求通过至少一个第二数据交换设备发送至通过透传技术与虚拟机连接的第一数据交换设备;FPGA板卡远程挂载于所述虚拟机;第一数据交换设备将接收到的第二业务请求中的标签去除,获取原始的第二业务请求,并将其转发至虚拟机;其中,标签内容至少包括用于指示虚拟机作为目标地址的信息;从而实现从FPGA板卡→VM的数据传输过程。
实施例六
前面实施例描述了网络管控装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图8所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器810和处理器820。
存储器810,用于存储程序。
除上述程序之外,存储器810还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器810可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器820,耦合至存储器810,用于执行存储器810中的程序,所述程序运行时执行如图2-图4所示的任一种所述的网络管控方法。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图8所示,电子设备还可以包括:通信组件830、电源组件840、音频组件850、显示器860等其它组件。图8中仅示意性给出部分组件,并不意味着电子设备只包括图8所示组件。
通信组件830被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件830经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件830还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件840,为电子设备的各种组件提供电力。电源组件840可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件850被配置为输出和/或输入音频信号。例如,音频组件850包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器810或经由通信组件830发送。在一些实施例中,音频组件850还包括一个扬声器,用于输出音频信号。
显示器860包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (12)

1.一种FPGA远程挂载结构,包括:在网络计算机上创建的虚拟机,数据交换设备,以及通过所述数据交换设备与所述虚拟机挂载连接的FPGA板卡;
所述虚拟机通过透传技术与所述数据交换设备实现数据交互。
2.根据权利要求1所述的结构,其中,所述数据交换设备为多个,形成数据交换网络;
所述数据交换设备包括:与所述虚拟机通过透传技术实现数据交互的第一数据交换设备;与所述FPGA板卡实现数据交互的第二数据交换设备;
所述FPGA板卡顺序通过至少一个所述第二数据交换设备以及一个所述第一数据交换设备连接后,挂载连接到与该第一数据交互设备连接的虚拟机上。
3.一种网络管控方法,包括:
在网络计算机上创建虚拟机,并确定远程挂载到所述虚拟机的FPGA板卡的地址;
配置用于连接所述虚拟机以及所述FPGA板卡的数据交换设备的路由表,建立所述虚拟机到所述FPGA的数据通道;
向所述FPGA加载配置数据。
4.根据权利要求3所述的方法,其中,所述向所述FPGA加载配置数据包括:向所述FPGA加载配置FPGA处理逻辑和时钟频率。
5.根据权利要求3所述的方法,其中,所述数据交换设备包括:与所述虚拟机通过透传技术实现数据交互的第一数据交换设备;与所述FPGA板卡实现数据交互的第二数据交换设备;
所述配置用于连接所述虚拟机以及所述FPGA板卡的数据交换设备的路由表,建立所述虚拟机到所述FPGA的数据通道包括:
基于预制的所述虚拟机与其被挂载的所述FPGA板卡之间的路由路径,配置该路径上包含的所述第一数据交换设备以及所述第二数据交换设备的路由表,该路由表指示了在所述第一数据交换设备、所述第二数据交换接收到以所述FPGA板卡为目标地址或者以所述虚拟机为目标地址的报文时该报文对应的接口,该接口指向该报文在所述路径传输的下一跳的设备地址。
6.根据权利要求5所述的方法,其中,所述方法还包括:
虚拟机通过透传技术向第一数据交换设备发送第一业务请求;
所述第一数据交换设备对所述第一业务请求加载标签,并将加载标签后的第一业务请求通过至少一个第二数据交换设备发送至远程挂载于所述虚拟机的FPGA板卡;
所述FPGA板卡将接收到的所述第一业务请求中的所述标签去除,获取原始的所述第一业务请求;
其中,所述标签内容至少包括用于指示所述FPGA板卡作为目标地址的信息。
7.根据权利要求6所述的方法,其中,所述第一业务请求包括:mmio的request和DMA的response。
8.根据权利要求5所述的方法,其中,所述方法还包括:
所述FPGA板卡对待发送至虚拟机的第二业务请求加载标签,并将加载标签后的第二业务请求通过至少一个第二数据交换设备发送至通过透传技术与所述虚拟机连接的第一数据交换设备;所述FPGA板卡远程挂载于所述虚拟机;
所述第一数据交换设备将接收到的所述第二业务请求中的所述标签去除,获取原始的所述第二业务请求,并将其转发至所述虚拟机;
其中,所述标签内容至少包括用于指示所述虚拟机作为目标地址的信息。
9.根据权利要求8所述的方法,其中,所述第二业务请求包括:mmio的response、DMA的request和中断请求。
10.一种网络管控装置,包括:
创建模块,用于在网络计算机上创建虚拟机,并确定远程挂载到所述虚拟机的FPGA板卡的地址;
路由配置模块,用于配置用于连接所述虚拟机以及所述FPGA板卡的数据交换设备的路由表,建立所述虚拟机到所述FPGA的数据通道;
FPGA配置模块,用于向所述FPGA加载配置数据。
11.根据权利要求10所述的装置,其中,所述数据交换设备包括:与所述虚拟机通过透传技术实现数据交互的第一数据交换设备;与所述FPGA板卡实现数据交互的第二数据交换设备;
所述路由配置模块,具体用于基于预制的所述虚拟机与其被挂载的所述FPGA板卡之间的路由路径,配置该路径上包含的所述第一数据交换设备以及所述第二数据交换设备的路由表,该路由表指示了在所述第一数据交换设备、所述第二数据交换接收到以所述FPGA板卡为目标地址或者以所述虚拟机为目标地址的报文时该报文对应的接口,该接口指向该报文在所述路径传输的下一跳的设备地址。
12.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,所述程序运行时执行权利要求3-9中任意一项权利要求所述的网络管控方法。
CN201910005784.XA 2019-01-03 2019-01-03 Fpga远程挂载结构、网络管控方法、装置及电子设备 Active CN111399973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910005784.XA CN111399973B (zh) 2019-01-03 2019-01-03 Fpga远程挂载结构、网络管控方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910005784.XA CN111399973B (zh) 2019-01-03 2019-01-03 Fpga远程挂载结构、网络管控方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111399973A true CN111399973A (zh) 2020-07-10
CN111399973B CN111399973B (zh) 2023-07-28

Family

ID=71432221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910005784.XA Active CN111399973B (zh) 2019-01-03 2019-01-03 Fpga远程挂载结构、网络管控方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111399973B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312142A (zh) * 2021-02-26 2021-08-27 阿里巴巴集团控股有限公司 虚拟化处理系统、方法、装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN202535384U (zh) * 2012-03-12 2012-11-14 杭州海莱电子科技有限公司 基于PCIe总线的网络设备扩展连接和虚拟机互连优化系统
CN103501242A (zh) * 2013-09-18 2014-01-08 华为技术有限公司 资源管理方法和多节点集群设备
CN103905309A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机之间的数据交换方法和系统
CN104348737A (zh) * 2013-08-02 2015-02-11 华为技术有限公司 一种组播报文的传输方法及交换机
CN105808165A (zh) * 2016-03-03 2016-07-27 天津书生云科技有限公司 在云计算管理平台中虚拟机访问存储设备的方法和装置
CN107491340A (zh) * 2017-07-31 2017-12-19 上海交通大学 跨物理机的巨型虚拟机实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419558A (zh) * 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
CN202535384U (zh) * 2012-03-12 2012-11-14 杭州海莱电子科技有限公司 基于PCIe总线的网络设备扩展连接和虚拟机互连优化系统
CN103905309A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机之间的数据交换方法和系统
CN104348737A (zh) * 2013-08-02 2015-02-11 华为技术有限公司 一种组播报文的传输方法及交换机
CN103501242A (zh) * 2013-09-18 2014-01-08 华为技术有限公司 资源管理方法和多节点集群设备
CN105808165A (zh) * 2016-03-03 2016-07-27 天津书生云科技有限公司 在云计算管理平台中虚拟机访问存储设备的方法和装置
CN107491340A (zh) * 2017-07-31 2017-12-19 上海交通大学 跨物理机的巨型虚拟机实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312142A (zh) * 2021-02-26 2021-08-27 阿里巴巴集团控股有限公司 虚拟化处理系统、方法、装置及设备
CN113312142B (zh) * 2021-02-26 2023-12-26 阿里巴巴集团控股有限公司 虚拟化处理系统、方法、装置及设备

Also Published As

Publication number Publication date
CN111399973B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US11005755B2 (en) Packet processing method in cloud computing system, host, and system
CN111614738B (zh) 基于Kubernetes集群的服务访问方法、装置、设备及存储介质
EP3547715B1 (en) Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker
CN111736955B (zh) 一种数据存储方法、装置、设备及可读存储介质
CN109150677B (zh) 跨域访问的处理方法、装置及电子设备
CN102577258B (zh) 配置三级clos网络分组交换机
CN108965092B (zh) 一种数据报文传输方法和装置
CN107360633B (zh) 虚拟现实系统的配对连接方法、设备及虚拟现实系统
CN112866410B (zh) 数据报文的转发控制方法、装置、介质及电子设备
US11177974B2 (en) Consistent provision of member node group information on virtual overlay network
CN109194589B (zh) 一种mdc实现方法及装置
CN104426816B (zh) 一种虚拟机通信方法及装置
CN110768903A (zh) 优化网络连接的方法、装置、终端及存储介质
CN111399973B (zh) Fpga远程挂载结构、网络管控方法、装置及电子设备
CN112328318B (zh) 专有云平台自动规划的方法、装置及存储介质
CN109976832A (zh) 一种提供寄宿程序的方法与设备
CN106063169B (zh) 一种数据处理方法及装置
CN103986660A (zh) 加载微码的装置以及加载微码的方法
CN114374614B (zh) 网络拓扑配置方法及装置
CN109656467B (zh) 云网络的数据传输系统、数据交互方法、装置及电子设备
EP3059909B1 (en) Method, apparatus and system for controlling forwarding of service data in virtual network
CN115268951A (zh) 一种操作系统的安装方法、装置、设备及存储介质
CN112511440B (zh) 报文转发方法、系统、存储介质和电子设备
CN110198269B (zh) 分布式机群的路由同步系统、方法及相关装置
CN104572172B (zh) 加载无盘计算节点的操作系统的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40033173

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant