CN114553635B - Dpu网络设备中的数据处理方法、数据交互方法及产品 - Google Patents

Dpu网络设备中的数据处理方法、数据交互方法及产品 Download PDF

Info

Publication number
CN114553635B
CN114553635B CN202210152532.1A CN202210152532A CN114553635B CN 114553635 B CN114553635 B CN 114553635B CN 202210152532 A CN202210152532 A CN 202210152532A CN 114553635 B CN114553635 B CN 114553635B
Authority
CN
China
Prior art keywords
virtual network
physical machine
network device
integrated circuit
chip
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
CN202210152532.1A
Other languages
English (en)
Other versions
CN114553635A (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.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology Co 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 Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202210152532.1A priority Critical patent/CN114553635B/zh
Publication of CN114553635A publication Critical patent/CN114553635A/zh
Application granted granted Critical
Publication of CN114553635B publication Critical patent/CN114553635B/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/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种DPU网络设备中的数据处理方法、数据交互方法及产品,该数据处理方法包括:系统级芯片通过硬件集成电路从物理机获取目标报文,将目标报文存储于系统级芯片的第一存储空间,目标报文包括用于设置第一虚拟网络设备的设备属性的控制报文,控制报文是物理机通过第一虚拟网络设备对应的第一队列资源向系统级芯片发送的,第一虚拟网络设备为至少两个虚拟网络设备中的任一个;系统级芯片对目标报文进行解析和处理,得到处理结果,将处理结果通过硬件集成电路传输给物理机,处理结果用于指示物理机中与第一虚拟网络设备对应的第一队列资源可以被重新利用,第一队列资源用于发送目标报文。实施本申请,可以节省后端的队列资源。

Description

DPU网络设备中的数据处理方法、数据交互方法及产品
技术领域
本申请涉及虚拟化领域,尤其涉及一种DPU网络设备中的数据处理方法、数据交互方法及产品。
背景技术
虚拟化主要包括处理器的虚拟化,内存的虚拟化以及I/O(Input/Output,输入输出)的虚拟化等。virtio是KVM(Kernel-based Virtual Machine,基于内核的虚拟机)虚拟环境下针对I/O虚拟化的一个通用框架。virtio架构中包括前端virtio设备驱动和后端virtio设备,virtio设备实际上是对各种各样的设备(如:网络设备、块设备等)的虚拟,virtio设备驱动可以管理和控制virtio设备,而virtio设备驱动和virtio设备可以按照协商好的一个交互接口进行通信。前后端通信过程中在virtio设备上进行批量数据传输的机制被称为虚拟队列virtqueue,每个virtio设备可以拥有多个虚拟队列,而每个虚拟队列占用一定的物理资源。virtio设备可以包括virtio网络设备(一种虚拟网络设备,可以是虚拟网卡),而virtio网络设备可以利用数据队列来发送/接收数据报文,利用控制队列来进行多种网卡功能特性(如报文接收过滤功能等)的配置和协商。
在使用DPU(Data Processing Unit,数据处理单元)、异构计算等场景下,后端virtio网络设备可以利用网卡(如DPU智能网卡,可称为DPU网络设备)中的硬件资源来实现。而virtio网络设备被用于虚拟机/容器和外部(如网络服务器)之间的通信,物理机中包括大量的虚拟机/容器,每个虚拟机/容器(处于前端)对应一个virtio网络设备,每个virtio网络设备通过控制队列传输控制报文时都会占用网卡(处于后端)中的一个硬件队列资源,且占用硬件队列资源后只在网卡功能配置阶段进行信息传输,而在正常网络通信过程中处于休眠状态,因此大量的虚拟机/容器最终将会消耗网卡中大量的硬件队列资源,导致后端资源浪费。
发明内容
本申请实施例公开了一种DPU网络设备中的数据处理方法、数据交互方法及产品,可以节省后端的队列资源。
第一方面,本申请提供一种DPU网络设备中的数据处理方法,所述DPU网络设备包括硬件集成电路和系统级芯片,以及至少两个虚拟网络设备,所述系统级芯片通过所述硬件集成电路与物理机连接,所述方法包括:
所述系统级芯片通过所述硬件集成电路从所述物理机获取目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,所述目标报文包括用于设置第一虚拟网络设备的设备属性的控制报文,所述控制报文是所述物理机通过所述第一虚拟网络设备对应的第一队列资源向所述系统级芯片发送的,所述第一虚拟网络设备为所述至少两个虚拟网络设备中的任一个;
所述系统级芯片对所述目标报文进行解析和处理,得到处理结果,将所述处理结果通过所述硬件集成电路传输给所述物理机,所述处理结果用于指示所述物理机中与所述第一虚拟网络设备对应的第一队列资源可以被重新利用,所述第一队列资源用于发送所述目标报文。
本申请实施例中,系统级芯片通过硬件集成电路从物理机中获取目标报文后,将该目标报文存储于该系统级芯片的第一存储空间,而目标报文可以是用于设置DPU网络设备包括的任一个虚拟网络设备的设备属性的控制报文,该系统级芯片对目标报文进行解析后处理,并将处理结果传输至物理机中以使得物理机中与目标报文相关的第一队列资源可以被重新利用,因而保证了通信结束后物理机能及时释放通信时占用的资源,提高了资源利用效率。而由于目标报文是通过前端控制队列(也即利用第一队列资源)发送至DPU网络设备中的,第一存储空间是与上述前端控制队列对应的后端控制队列所占用的后端队列资源,因而实现了将后端控制队列的实现从硬件集成电路推移到系统级芯片中,并利用该后端控制队列与所有的前端控制队列进行通信,实现了后端控制队列的复用,从而在前后端通过控制队列进行通信的过程中,节省了后端队列资源。
在一些实施例中,所述系统级芯片通过所述硬件集成电路从所述物理机获取目标报文之前,还包括:
所述硬件集成电路接收所述物理机发送的通知消息,所述通知消息用于指示所述物理机利用所述第一队列资源发送所述目标报文;
所述硬件集成电路根据所述通知消息,确定所述目标报文是否为用于设置第一虚拟网络设备的设备属性的控制报文;
在确定所述目标报文为所述控制报文的情况下,所述硬件集成电路向所述系统级芯片透传所述通知消息。
在一些实施例中,所述系统级芯片通过所述硬件集成电路从所述物理机获取目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,包括:
在所述硬件集成电路确定接收到所述系统级芯片发送的第一直接内存存取DMA请求的情况下,通过所述硬件集成电路利用DMA技术,将所述目标报文从所述物理机的内存复制至所述系统级芯片的第一存储空间,所述第一DMA请求用于请求通过DMA技术获取所述目标报文。
在一些实施例中,所述方法还包括:
所述系统级芯片通过写寄存器的方式向所述硬件集成电路发送所述第一DMA请求,所述寄存器是所述硬件集成电路中被所述至少两个虚拟网络设备共享的寄存器。
在一些实施例中,所述将所述处理结果通过所述硬件集成电路传输给所述物理机,包括:
在所述硬件集成电路确定接收到所述系统级芯片发送的第二DMA请求的情况下,通过所述硬件集成电路利用DMA技术,将所述处理结果从所述系统级芯片的第一存储空间复制至所述物理机的内存。
第二方面,本申请提供一种数据交互方法,应用于物理机,所述物理机与DPU网络设备通信连接,所述DPU网络设备包括虚拟网络设备,所述方法包括:
在所述物理机中申请第一队列资源,所述第一队列资源用于向所述DPU网络设备发送用于设置所述虚拟网络设备的设备属性的控制报文;
确定所述虚拟网络设备对应的实际数据队列个数;
向所述DPU网络设备发送所述虚拟网络设备对应的实际数据队列个数;
根据所述虚拟网络设备对应的实际数据队列个数,在所述物理机中申请第二队列资源和与所述第二队列资源关联的中断资源,所述第二队列资源用于传输与所述虚拟网络设备关联的数据报文。
在一些实施例中,所述确定所述虚拟网络设备对应的实际数据队列个数,包括:
从所述DPU网络设备中获取所述虚拟网络设备支持的最大数据队列的数目;
获取所述物理机的CPU核心数,根据所述CPU核心数和所述虚拟网络设备支持的最大数据队列的数目,确定所述虚拟网络设备对应的实际数据队列个数。
通过实施上述数据交互方法,先确定虚拟网络设备对应的实际数据队列个数,再根据实际数据队列个数在物理机中申请数据队列相关的资源,可以避免在物理机(即前端)中申请/占用多余的数据队列相关的资源,减少资源浪费,从而节省前端的队列资源和中断资源。
第三方面,本申请提供一种数据交互方法,应用于包括物理机和DPU网络设备的系统,所述物理机与DPU网络设备通信连接,所述DPU网络设备包括至少两个虚拟网络设备,所述方法包括:
所述物理机申请第一队列资源,所述第一队列资源用于向所述DPU网络设备发送用于设置第一虚拟网络设备的设备属性的控制报文,所述第一虚拟网络设备为所述至少两个虚拟网络设备中的任一个;
所述物理机确定所述第一虚拟网络设备对应的实际数据队列个数;
所述物理机向DPU网络设备发送目标报文,所述目标报文包括所述第一虚拟网络设备对应的实际数据队列个数;
所述DPU网络设备中的系统级芯片通过DPU网络设备中的硬件集成电路从所述物理机获取所述目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间;
所述系统级芯片对所述目标报文进行解析和处理,得到处理结果,将所述处理结果通过所述硬件集成电路传输给所述物理机,所述处理结果用于指示所述物理机中与目标报文相关的队列资源可以被重新利用,所述与目标报文相关的队列资源用于发送所述目标报文。
所述系统级芯片将所述目标报文包括的第一虚拟网络设备对应的实际数据队列个数发送给所述硬件集成电路;
所述物理机根据所述第一虚拟网络设备对应的实际数据队列个数,在所述物理机中申请第二队列资源和与第二队列资源关联的中断资源,所述第二队列资源用于传输与所述虚拟网络设备关联的数据报文。
通过实施上述数据交互方法,可以通过DPU网络设备中的系统级芯片实现后端控制队列,来实现后端控制队列的复用,节省后端队列资源,并通过改进前后端协商流程,使得前端物理机申请和占用的资源为需要的资源,避免了资源浪费,从而节省了前端队列资源和中断资源。
第四方面,本申请提供一种DPU网络设备,所述DPU网络设备包括硬件集成电路和系统级芯片,以及至少两个虚拟网络设备,所述系统级芯片通过所述硬件集成电路与物理机连接:
所述系统级芯片,用于通过所述硬件集成电路从所述物理机获取目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,所述目标报文包括用于设置第一虚拟网络设备的设备属性的控制报文,所述第一虚拟网络设备为所述至少两个虚拟网络设备中的任一个;
所述系统级芯片,还用于对所述控制报文进行解析和处理,得到处理结果,将所述处理结果通过所述硬件集成电路传输给所述物理机,所述处理结果用于指示所述物理机中与所述第一虚拟网络设备对应的第一队列资源可以被重新利用,所述第一队列资源用于发送所述目标报文。
第五方面,本申请提供一种电子设备,包括:存储器、处理器,其中所述存储器和所述处理器被相互可通信地连接;其中所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第六方面,本申请提供一种电子设备,包括:存储器、处理器,其中所述存储器和所述处理器被相互可通信地连接;其中所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理的系统架构示意图;
图2为本申请实施例提供的一种DPU网络设备中的数据处理方法的流程示意图;
图3为本申请实施例提供的一种利用系统级芯片实现后端控制队列的示意图
图4为本申请实施例提供的另一种DPU网络设备中的数据处理方法的流程示意图;
图5为本申请实施例提供的一种前端和后端进行数据通信的过程示意图;
图6为本申请实施例提供的一种数据交互方法的流程示意图;
图7为本申请实施例提供的另一种数据交互方法的流程示意图;
图8为本申请实施例提供的一种DPU网络设备的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步详细描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现上述短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
下面结合附图对本发明进行详细描述。
请参阅图1,图1为本申请实施例提供的一种数据处理的系统架构示意图,如图1上述,该系统架构可以包括物理机和DPU网络设备。物理机通过DPU网络设备与外部的存储服务器/网络服务器进行通信,因此物理机和DPU网络设备之间可以通信连接。
本申请中,物理机包括处理器,以及存储器、通信接口等组件。该物理机中通过软件和硬件的结合为用户提供多个独立的用户空间,该多个独立的用户空间对应多个容器/虚拟机,因此物理机包括多个容器/虚拟机,该物理机也称为宿主机(Host)。每个容器/虚拟机与外部进行通信,具体可以通过该容器/虚拟机中包括的虚拟网络设备驱动与DPU网络设备中的虚拟网络设备的通信过程、以及DPU网络设备和外部的通信过程来实现。该物理机可以为服务器等。
本申请中,DPU网络设备可以为基于DPU的网络设备,如DPU智能网卡等,DPU智能网卡和传统智能网卡SmartNIC不同,DPU智能网卡是一种可编程的智能网卡,适用于各种通用任务的卸载和加速以及业务的弹性加速场景,如容器场景、负载均衡、网络安全和高级定制化网络等。其中,上述DPU网络设备包括DPU,而DPU包括硬件集成电路和系统级芯片(Systemon Chip,SoC),因而该DPU网络设备包括硬件集成电路和系统级芯片。其中,硬件集成电路包括现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)或者专用集成电路(Application Specific Integrated Circuit,ASIC)。而系统级芯片可以包括处理器,该处理器上能够运行操作系统,以及用于管理和控制虚拟网络设备的软件程序。可理解的,该处理器和物理机中的处理器存在区别,该处理器能够实现DPU智能网卡的各种功能且功耗很低。示例性的,在虚拟网络设备为virtio网络设备的情况下,系统级芯片中的软件程序包括virtio后端驱动,通过该virtio后端驱动和硬件集成电路可以为Host中的容器/虚拟机提供虚拟网络设备,使得该容器/虚拟机利用该虚拟网络设备完成与外部的通信。
本申请中,以虚拟网络设备为virtio网络设备为例进行介绍,相应的,容器/虚拟机包括的虚拟网络设备驱动为virtio网络设备驱动,而virtio网络设备和virtio网络设备驱动可以通过虚拟队列(包括控制队列和数据队列)进行通信,在具体通信过程中处于前端的物理机和处于后端的DPU网络设备中可以实现相对应的前端队列和后端队列,也就是说,物理机和DPU网络设备通过前端控制队列和后端控制队列传输控制报文,通过前端数据队列和后端数据队列传输数据报文。
请参阅图2,图2为本申请实施例提供的一种DPU网络设备中的数据处理方法的流程示意图,上述DPU网络设备包括硬件集成电路和系统级芯片,以及至少两个虚拟网络设备,上述系统级芯片通过上述硬件集成电路与物理机连接,如图2所示,上述方法可以包括以下步骤:
步骤201,上述系统级芯片通过上述硬件集成电路从上述物理机获取目标报文,将上述目标报文存储于上述系统级芯片的第一存储空间。
其中,上述目标报文包括用于设置第一虚拟网络设备的设备属性的控制报文,上述控制报文是所述物理机通过所述第一虚拟网络设备对应的第一队列资源向所述系统级芯片发送的,上述第一虚拟网络设备为上述至少两个虚拟网络设备中的任一个。本申请实施例中,上述系统级芯片先分配第一存储空间,该第一存储空间用于存储目标报文,然后获取目标报文后将其存储于该第一存储空间。而目标报文包括控制报文,该控制报文可以用于设置第一虚拟网络设备的设备属性,其中,设备属性可以包括虚拟网络设备的功能特性,例如报文接收过滤功能、MAC地址过滤功能、VLAN过滤功能、多队列协商功能、卸载状态配置功能等。物理机中的虚拟网络设备驱动和DPU网络设备中的虚拟网络设备之间通过控制报文的传送,来实现对虚拟网络设备的设备属性设置。
在半虚拟化IO协议(即virtio协议)中,前端(物理机侧)和后端(DPU网络设备侧)通过虚拟队列的机制来传输数据和通信,而传送控制报文的控制队列control queue包括前端控制队列,以及与前端控制队列对应的后端控制队列,因此第一存储空间实际上是为实现后端控制队列而在系统级芯片中申请的存储空间,而将目标报文存储于第一存储空间,也即通过后端控制队列接收目标报文。
可理解的,由于DPU网络设备中包括至少两个虚拟网络设备,相应的物理机中包括至少两个容器/虚拟机,每个容器/虚拟机包括一个虚拟网络设备驱动,利用虚拟网络设备驱动来控制和使用虚拟网络设备,也就是说,目标报文包括用于设置任一个虚拟网络设备的设备属性的控制报文,那么目标报文可以是物理机中任一个容器/虚拟机中的虚拟网络设备驱动通过其前端控制队列发送的,而系统级芯片将目标报文存储于第一存储空间,那么后端通过与第一存储空间关联的后端控制队列来接收目标报文,因此DPU网络设备中通过系统级芯片(而不是硬件集成电路)来实现后端控制队列,该后端控制队列与物理机中的任一个前端控制队列均对应,从而实现了将后端控制队列从硬件集成电路转移到系统级芯片,避免了在硬件集成电路中为每一个前端控制队列对应的后端控制队列均申请硬件队列资源(包括存储资源)造成的资源浪费,在系统级芯片中实现多个后端控制队列的复用,节省了硬件队列资源。
步骤202,上述系统级芯片对上述目标报文进行解析和处理,得到处理结果,将上述处理结果通过上述硬件集成电路传输给上述物理机。
其中,上述处理结果用于指示所述物理机中与所述第一虚拟网络设备对应的第一队列资源可以被重新利用,上述第一队列资源用于发送上述目标报文。本申请实施例中,系统级芯片通过后端控制队列接收到上述目标报文后,可以对目标报文进行解析和处理,得到处理结果。该处理结果用于响应目标报文,具体的,该处理结果可以包括完成对第一虚拟网络设备的设备属性设置的确认信息。系统级芯片通过硬件集成电路将该处理结果传输给物理机中的虚拟网络设备驱动后,物理机根据处理结果中包括的确认信息,释放存储目标报文的内存(该内存资源属于第一队列资源),使得第一队列资源可以重新被利用。
示例性的,在virtio协议中,控制队列具体是通过virtio_ring实现的,virtio_ring中包括多个描述符表项,每个描述符表项中的描述符是对缓存buffer的描述,该描述符包括buffer的地址信息等,而buffer中存储了控制报文的数据内容及其他控制信息。可理解的,上述第一队列资源可以包括与目标报文相关的描述符表项和buffer。物理机利用第一队列资源向系统级芯片发送目标报文,即利用virtio_ring中的描述符表项和buffer完成发送。而系统级芯片获取到目标报文后对目标报文进行解析和处理,得到处理结果,该处理过程具体可以是指对virtio_ring与目标报文相关的描述符表项的目标标志(如used标志和avail标志)进行更改,并将针对目标报文的上述确认信息写入buffer。而系统级芯片将该处理结果传输给物理机,物理机检测上述目标标志的更改,且确定接收到针对目标报文的上述确认信息,则确定该目标报文相关的描述符表项可重新被利用,并释放与目标报文相关的buffer,使得该buffer对应的存储空间也可以被重新利用,这样,物理机中与目标报文相关的第一队列资源可以重新被利用。
如图3所示,前端的物理机包括至少两个虚拟网络设备驱动(图3中以2个为例),相应的,后端的DPU网络设备包括至少两个虚拟网络设备(每个虚拟网络设备对应一个虚拟网络设备驱动),通过实施上述数据处理方法,可以使得后端的系统级芯片实现后端控制队列,并且该后端控制队列可以和前端的任一个虚拟网络设备驱动对应的前端控制队列(如图3中的前端控制队列1或前端控制队列2)进行通信,从而实现了后端控制队列的复用,在前后端通过控制队列进行通信的过程中,可以节省后端队列资源的占用。
本申请实施例中,系统级芯片通过硬件集成电路从物理机中获取目标报文后,将该目标报文存储于该系统级芯片的第一存储空间,而目标报文可以是用于设置DPU网络设备包括的任一个虚拟网络设备的设备属性的控制报文,该系统级芯片对目标报文进行解析后处理,并将处理结果传输至物理机,该处理结果用于指示物理机中与目标报文相关的第一队列资源可以重新被利用,因而保证了通信结束后物理机中能及时释放通信时占用的资源,提高了资源利用效率。而由于目标报文是通过前端控制队列(即利用第一队列资源)发送至DPU网络设备中的,第一存储空间是与上述前端控制队列对应的后端控制队列所占用的后端队列资源,因而实现了将后端控制队列的实现从硬件集成电路推移到系统级芯片中,并利用该后端控制队列与所有的前端控制队列进行通信,实现了后端控制队列的复用,从而在前后端通过控制队列进行通信的过程中,节省了后端队列资源。
请参阅图4,图4为本申请实施例提供的另一种DPU网络设备中的数据处理方法的流程示意图,如图4所示,上述方法可以包括以下步骤:
步骤401,上述硬件集成电路接收上述物理机发送的通知消息。
其中,上述通知消息用于指示上述物理机利用上述第一队列资源发送上述目标报文。具体的,物理机发送通知消息,可以是通过virtio协议中的notify机制发送的。
步骤402,上述硬件集成电路根据上述通知消息,确定上述目标报文是否为用于设置第一虚拟网络设备的设备属性的控制报文。
具体的,硬件集成电路可以根据该通知消息的内容,来确定目标报文是否为上述控制报文。当目标报文为控制报文时,也即目标报文是通过控制队列而不是数据队列发送的,一般通知消息包括用于标识该控制队列的标识信息,因此硬件集成电路可以根据通知消息是否包括用于标识控制队列的标识信息,来确定目标报文是否为控制报文。
步骤403,在确定上述目标报文为上述控制报文的情况下,上述硬件集成电路向上述系统级芯片透传上述通知消息。
本申请中,将控制队列的实现从硬件集成电路推移到系统级芯片中,而数据队列仍由硬件集成电路实现,因此,在确定目标报文为控制报文的情况下,硬件集成电路将该通知消息透传给系统级芯片,通知其对该控制报文进行处理。可理解的,在确定目标报文不为控制报文,而为传输数据的数据报文的情况下,硬件集成电路不再向系统级芯片透传消息,而是根据数据报文对应的处理逻辑对目标报文进行处理。
步骤404,上述系统级芯片通过上述硬件集成电路从上述物理机获取目标报文,将上述目标报文存储于上述系统级芯片的第一存储空间。
具体的,系统级芯片在接收到硬件集成电路透传的通知消息后,可以从物理机中获取目标报文。在一个实施例中,系统级芯片先向硬件集成电路发送第一直接内存存取DMA请求,该第一DMA请求用于请求通过DMA技术获取上述目标报文,而硬件集成电路确定接收到该第一DMA请求的情况下,利用DMA技术,将上述目标报文从上述物理机的内存复制至上述系统级芯片的第一存储空间,从而完成将目标报文的获取。其中,上述系统级芯片通过写寄存器的方式向上述硬件集成电路发送上述第一DMA请求,而上述寄存器是上述硬件集成电路中被上述至少两个虚拟网络设备共享的寄存器。该寄存器可以用于存储DMA请求指令信息,该DMA请求指令信息可以包括进行DMA所需要的起始地址、DMA方向、DMA所复制的内容占用长度、DMA是否完成、虚拟网络设备标识、DMA是否准备完成等信息。上述虚拟网络设备标识是指虚拟网络设备在host中的标识,示例性的,该虚拟网络设备标识可以是bdf(bus/device/function)号。当系统级芯片在该寄存器中写完上述内容,则确定向硬件集成电路发送第一DMA请求,以使得硬件集成电路可以利用DMA引擎进行DMA。由于上述寄存器是DPU网络设备包括的至少两个虚拟网络设备共享的,因此通过寄存器中写入的虚拟网络设备标识,可以确定当前前端中是哪一个(容器/虚拟机中的)虚拟网络设备驱动正在使用后端控制队列,从而可以实现将系统级芯片中的一个后端控制队列与物理机中任一个虚拟网络设备驱动的前端控制队列进行通信,进而实现后端控制队列的复用,节省后端队列资源。
可理解的,该寄存器可以是硬件集成电路在接收上述物理机发送的通知消息之前,预先申请获得的,该寄存器为硬件集成电路和系统级芯片之间的DMA控制通道。
步骤405,上述系统级芯片对上述目标报文进行解析和处理,得到处理结果。
该步骤的具体描述可以参见上述步骤202,在此不再赘述。
步骤406,将上述处理结果通过上述硬件集成电路传输给上述物理机。
在一个实施例中,系统级芯片获得针对目标报文的处理结果后,可以向硬件集成电路发送第二DMA请求,而硬件集成电路确定接收到该第二DMA请求的情况下,利用DMA技术,将上述处理结果从上述系统级芯片的第一存储空间复制至上述物理机的内存。该第二DMA请求用于请求利用DMA传输处理结果。可理解的,系统级芯片可以通过写寄存器的方式向硬件集成电路发送第二DMA请求,该寄存器为上述步骤404中提到的寄存器,被DPU网络设备包括的至少两个虚拟网络设备共享。因此,通过寄存器中写入的虚拟网络设备标识,可以确定当前是物理机中哪一个容器/虚拟机中的虚拟网络设备驱动在使用后端控制队列,从而确定将处理结果传输给物理机中相应的虚拟网络设备驱动进行处理,完成虚拟网络设备和虚拟网络设备驱动之间的通信。
本申请实施例中,硬件集成电路接收到用于指示物理机通过前端控制队列发送目标报文的通知消息,在根据通知消息确定目标报文为控制报文的请况下,将通知消息透传给系统级芯片,从而实现了将后端控制队列的实现从硬件集成电路推移到系统级芯片。而在硬件集成电路中申请所有虚拟网络设备共享的寄存器空间,通过写寄存器的方式,实现目标报文/针对目标报文的处理结果在物理机的相应前端控制队列与系统级芯片的后端控制队列之间的传输,从而完成了系统级芯片的后端控制队列与物理机的任一前端控制队列的通信,实现了后端控制队列的复用,节省了后端队列资源。
下面介绍一个具体场景下实施本申请提供的数据处理方法的流程。在该场景下,前后端通过控制队列进行通信,该控制队列以packed结构的virtio_ring来实现。在该场景中实施的上述数据处理方法可以包括以下过程:(1)在系统级芯片中分配后端控制队列存储空间(简记为V1)、后端有效数据载荷存储空间(简记为P1),并映射成可以DMA的IO地址;相应的,在物理机中虚拟网络设备驱动已经分配好前端控制队列存储空间(简记为V2)、前端有效数据载荷存储空间(简记为P2)。(2)在硬件集成电路中分配DPU网络设备中的所有虚拟网络设备可以共享的寄存器空间,用于系统级芯片和硬件集成电路之间的DMA命令传输;(3)在完成(1)、(2)后,可以实现物理机中的前端控制队列与系统级芯片实现的后端控制队列之间的数据通信,该数据通信过程如图5所示,可以包括如下步骤:
1)前端的虚拟网络设备驱动在P2和V2中填充内容,即通过前端控制队列发送目标报文,目标报文存储于P2中,P2的地址信息存储于V2中。
2)前端的虚拟网络设备驱动发送通知消息Notify,通知后端的虚拟网络设备,即将通知消息通过物理机与硬件集成电路之间的通信接口发送给硬件集成电路。
3)硬件集成电路根据通知消息Notify确定目标报文为控制报文,将该通知消息透传到系统级芯片。
4)系统级芯片写寄存器,DMA:前端V2==>系统级芯片V1,即请求硬件集成电路利用DMA将前端的V2中的内容复制到系统级芯片的V1,也即写寄存器以请求DMA读V2。
5)系统级芯片等待DMA完成,完成DMA读V2,从而实现将V2中内容复制到V1中。然后解析并提取V1中的原来V2的信息,获得P2的起始地址和长度。
6)系统级芯片写寄存器,DMA:前端P2==>系统级芯片P1,即请求硬件集成电路利用DMA将前端的P2中的内容复制到系统级芯片的P1,也即写寄存器以请求DMA读P2。
7)系统级芯片等待DMA完成,完成DMA读P2,从而实现将P2中内容复制到P1中。然后解析P1中的内容,并根据P1中的内容进行相应处理。也即对获得的目标报文进行解析和处理,获得处理结果。可理解的,P1中的内容可以包括控制报文的头部(用于指示发送控制报文的目的,如多队列协商、MAC地址过滤等)、数据段(即payload)、确认信息(即ACK)等多种内容,解析P1中内容后可以根据头部的具体内容,相应对payload和ACK进行处理,仍保存在P1中。
8)系统级芯片写寄存器,DMA:系统级芯片P1==>前端P2,即请求硬件集成电路利用DMA将系统级芯片的P1中的内容复制到前端的P2,也即写寄存器以请求DMA写P2。可理解的,此时系统级芯片的P1中的内容是处理过的,而请求硬件集成电路将P1中的内容复制到前端的P2,可以是将P1中的部分内容复制到前端的P2,例如,将P1中更改过的ACK复制到P2。
9)系统级芯片等待DMA完成,完成DMA写P2。
10)系统级芯片写寄存器,DMA:系统级芯片V1==>前端V2,即请求硬件集成电路利用DMA将系统级芯片的V1中的内容复制到前端的V2,也即写寄存器以请求DMA写V2。可理解的,此时系统级芯片中的V1中的内容包括P2的地址信息和其他信息(如上文中描述符表项的目标标志:used标志、avail标志)等内容,V1中的内容也可以是系统级芯片处理过的,对V1中的内容进行处理后可以获得上述处理结果。而请求硬件集成电路将V1中的内容复制到前端的V2,可以是将V1中的部分内容复制到前端的V2,例如,将V1中更改过的目标标志的信息复制到V2。
11)系统级芯片等待DMA完成,完成DMA写V2,实现将处理结果传输给物理机,物理机接收到处理结果后释放相应内存(例如,释放P2对应的内存)使得与目标报文相关的队列资源可以重新被利用,从而完成了整个数据处理流程。
可理解的,在另一种场景下,控制队列以split结构的virtio_ring来实现时,也可以实现如图2或图4所示的数据处理方法,只是具体通过DMA获取目标报文和通过DMA写处理结果的具体步骤,与上述图5中的步骤4)-步骤11)存在区别,但实现原理均如图2或图4对应的文字所述,在此不再赘述。
请参阅图6,图6为本申请实施例提供的一种数据交互方法的流程示意图,该数据交互方法应用于物理机,物理机与DPU网络设备通信连接,DPU网络设备包括虚拟网络设备。其中,该数据交互方法介绍了在物理机和DPU网络设备通过数据队列进行传输数据之前,处于前端的物理机和处于后端的DPU网络设备进行协商的过程,通过协商前后端完成了对用于配置虚拟网络设备的设备属性的控制队列和用于传输数据的数据队列的资源需求的确定,协商过程完成后,前后端可以利用相应资源(包括队列资源、中断资源等)进行数据传输和处理。如图6所示,该方法包括以下步骤:
步骤601,在物理机中申请第一队列资源。
其中,第一队列资源用于向上述DPU网络设备发送用于设置上述虚拟网络设备的设备属性的控制报文。可理解的,物理机中的虚拟网络设备驱动在通过控制队列向DPU网络设备发送控制报文之前,需要先申请需要的资源,也即在物理机中申请第一队列资源,从而实现之后利用第一队列资源来完成控制报文的发送过程。
步骤602,确定上述虚拟网络设备对应的实际数据队列个数。
其中,确定虚拟网络设备对应的实际数据队列个数M可以包括以下过程:从上述DPU网络设备中获取上述虚拟网络设备支持的最大数据队列的数目N;并获取上述物理机的CPU核心数,根据上述CPU核心数和上述虚拟网络设备支持的最大数据队列的数目,确定上述虚拟网络设备对应的实际数据队列个数。具体的,M=min(N,CPU核心数),M、N均为整数。
步骤603,向上述DPU网络设备发送上述虚拟网络设备对应的实际数据队列个数。
可理解的,物理机中的虚拟网络设备驱动可以通过控制队列向DPU网络设备传输上述虚拟网络设备对应的实际数据队列个数M,以使得DPU网络设备只根据该实际数据队列个数M来申请需要的资源(实际上是指硬件集成电路中的队列资源),而不额外占用其他多余的队列资源,从而减少资源浪费。
步骤604,根据上述虚拟网络设备对应的实际数据队列个数,在上述物理机中申请第二队列资源和与上述第二队列资源关联的中断资源。
其中,第二队列资源用于传输与上述虚拟网络设备关联的数据报文,具体可以用于向上述DPU网络设备发送数据报文,以及接收来自上述DPU网络设备的数据报文。第二队列资源为物理机中的虚拟网络设备驱动通过数据队列发送和接收数据报文所需要的队列资源,上述与虚拟网络设备关联的数据报文可以包括物理机中的容器/虚拟机向外部发送的报文,以及外部向物理机中的容器/虚拟机发送的报文。可理解的,第二队列资源可以包括多个队列资源,从而使得根据第二队列资源可以实现上述虚拟网络设备对应的多个实际数据队列。而与第二队列资源关联的中断资源,可以用于处理外部通过上述虚拟网络设备向物理机发送的报文请求,以及用于处理物理机中的容器/虚拟机通过上述虚拟网络设备向外部发送的报文请求。在本申请实施例中,物理机根据上述虚拟网络设备对应的实际数据队列个数M,在物理机中申请第二队列资源和中断资源,可以保证在物理机中申请的与数据队列相关的资源满足需要且不浪费,从而提高资源利用效率。
为了进一步说明本申请实施例提供的数据交互方法产生的有益效果,下面介绍另一种为实现前后端协商过程的数据交互方法,该方法和本申请中的数据交互方法不同,该方法包括以下步骤:
1)Host中的虚拟网络设备驱动读取DPU网络设备中的虚拟网络设备支持的最大数据队列个数N。
2)Host中的虚拟网络设备驱动在物理机中申请与控制队列有关的第一队列资源,并根据最大队列个数N,在物理机中申请与控制队列有关的第二队列资源,以及与第二队列资源关联的中断资源。
3)Host中的虚拟网络设备驱动根据物理机的CPU核心数和上述虚拟网络设备支持的最大数据队列个数N,来计算上述虚拟网络设备对应的实际数据队列个数M,其中M=M=min(N,CPU核心数)。
4)Host中的虚拟网络设备驱动将上述实际数据队列个数M下发给DPU网络设备,以使得DPU网络设备根据该实际数据队列M来申请需要的资源(实际上是指硬件集成电路中的队列资源)。
可理解的,该数据交互方法和本申请实施例提供的数据交互方法相比,该方法先在物理机中申请数据队列相关的资源,然后确定虚拟网络设备对应的实际数据队列个数,因而在物理机中申请的数据队列相关的资源可能多于数据队列实际需要的资源,从而造成资源浪费。而通过实施本申请实施例提供的数据交互方法,先确定虚拟网络设备对应的实际数据队列个数,再根据实际数据队列个数在物理机中申请数据队列相关的资源,可以解决上述问题,避免在物理机中申请多余的数据队列相关的资源,减少资源浪费。
请参阅图7,图7为本申请实施例提供的另一种数据交互方法的流程示意图,该方法应用于包括物理机和DPU网络设备的系统,物理机与该DPU网络设备通信连接,该DPU网络设备包括至少两个虚拟网络设备,如图7所示,该方法可以包括以下步骤:
步骤701,物理机申请第一队列资源。
本申请实施例中,第一队列资源是上述物理机中的队列资源,第一队列资源用于向上述DPU网络设备发送用于设置第一虚拟网络设备的设备属性的控制报文,第一虚拟网络设备为上述至少两个虚拟网络设备中的任一个。
步骤702,物理机确定第一虚拟网络设备对应的实际数据队列个数。
具体的,可以从上述DPU网络设备中获取第一虚拟网络设备支持的最大数据队列的数目,并获取上述物理机的CPU核心数,根据上述CPU核心数和上述第一虚拟网络设备支持的最大数据队列的数目,确定上述第一虚拟网络设备对应的实际数据队列个数。
步骤703,物理机向DPU网络设备发送目标报文。
具体的,物理机通过控制队列向DPU网络设备发送目标报文,也即物理机利用第一队列资源向DPU网络设备发送目标报文,上述目标报文包括上述第一虚拟网络设备对应的实际数据队列个数。
步骤704,DPU网络设备中的系统级芯片通过DPU网络设备中的硬件集成电路从物理机获取目标报文,将目标报文存储于系统级芯片的第一存储空间。
具体的,第一存储空间可以理解为系统级芯片为了通过控制队列接收目标报文而申请的队列资源,将目标报文存储在第一存储空间即实现接收物理机发送的目标报文。具体获取目标报文的详细描述可以参见如图4的步骤401-步骤404,在此不再赘述。可理解的,当第一虚拟网络设备对应的虚拟网络设备驱动为任一个虚拟网络设备驱动时(如图3中的虚拟网络设备驱动1或2),系统级芯片获取目标报文后均存储在第一存储空间,即无需在后端申请更多的队列资源来分别接收物理机中不同虚拟网络设备驱动发送的目标报文,从而可以节省后端队列资源的占用。
步骤705,系统级芯片对目标报文进行解析和处理,得到处理结果,将处理结果通过硬件集成电路传输给所述物理机。
其中,上述处理结果包括上述DPU网络设备完成设置上述第一虚拟网络设备的设备属性的确认信息,在本实施例中实际上指确认接收到第一虚拟网络设备对应的实际数据队列个数的确认信息。上述处理结果用于指示上述物理机中与目标报文相关的队列资源可以被重新利用,上述与目标报文相关的队列资源用于发送上述目标报文。即系统级芯片确认接收到上述实际数据队列个数后可以向物理机传输包括上述确认信息的处理结果,而物理机接收到处理结果后,根据其中的确认信息,释放用于存储上述目标报文(即实际数据队列个数)的内存,使得与该目标报文相关的队列资源可以在之后前后端利用控制队列进行通信的过程中被重新利用,从而避免浪费资源,提高前端资源利用率。
步骤706,系统级芯片将目标报文包括的第一虚拟网络设备对应的实际数据队列个数发送给硬件集成电路。
具体的,系统级芯片将上述实际数据队列个数发送给硬件集成电路,以使得硬件集成电路根据实际数据队列个数申请和占用需要的队列资源,从而避免申请/占用过多的资源造成资源浪费。
步骤707,物理机根据第一虚拟网络设备对应的实际数据队列个数,在物理机中申请第二队列资源和与第二队列资源关联的中断资源。
具体的,上述第二队列资源用于传输与第一虚拟网络设备关联的数据报文。在本实施例中,物理机根据上述虚拟网络设备对应的实际数据队列个数M,在物理机(即前端)中申请第二队列资源和中断资源,可以保证在物理机中申请的与数据队列相关的资源满足需要且不浪费,从而提高资源利用效率。
通过实施上述数据交互方法,可以通过DPU网络设备中的系统级芯片实现后端控制队列,来实现后端控制队列的复用,节省后端队列资源,并通过改进前后端协商流程,使得前端物理机申请和占用的资源为需要的资源,避免了资源浪费,从而节省了前端队列资源和中断资源。实施本方法,可以节省前端和后端的资源,提高资源利用率。
请参阅图8,图8为本申请实施例提供的一种DPU网络设备的结构示意图。如图8所示,上述DPU网络设备包括硬件集成电路和系统级芯片,硬件集成电路和系统级芯片共同工作以实现上述方法实施例中的数据处理方法。硬件集成电路可以包括现场可编程门阵列或专用集成电路,而系统级芯片包括特定软件(如virtio后端驱动等)以实现上述数据处理方法中的步骤。
请参阅图9,图9为本申请实施例提供的一种电子设备的结构示意图。该电子设备可以对应为上述物理机。如图9所示,上述电子设备包括存储器901、处理器902。进一步可选的,还可以包含通信接口903以及总线904,其中,存储器901、处理器902以及通信接口903通过总线904实现彼此之间的通信连接。
其中,存储器901用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器901包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。
处理器902是进行算术运算和逻辑运算的模块,可以是中央处理器(centralprocessing unit,CPU)、显卡处理器(graphics processing unit,GPU)或微处理器(microprocessor unit,MPU)等处理模块中的一种或者多种的组合。
存储器901中存储有计算机程序,处理器902调用存储器901中存储的计算机程序,以和DPU网络设备共同实现如上述方法实施例中的数据交互方法。实现上述数据交互方法的具体步骤可以参见前述实施例的描述,此处不在赘述。
本申请实施例还提供一种电子设备,包括:存储器、处理器,其中所述存储器和所述处理器被相互可通信地连接;所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如上述方法实施例中的数据处理方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,可以实现上述方法实施例所示的数据处理方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,可以实现上述方法实施例所示的数据交互方法。
本领域普通技术人员可以理解实现所述实施例方法中的全部或部分流程,该流程可以由计算机程序示相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如所述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (10)

1.一种DPU网络设备中的数据处理方法,其特征在于,所述DPU网络设备包括硬件集成电路和系统级芯片,以及至少两个虚拟网络设备,所述系统级芯片通过所述硬件集成电路与物理机连接,所述方法包括:
在确定目标报文为数据报文的情况下,通过所述硬件集成电路对所述目标报文进行处理;
在确定所述目标报文为用于设置第一虚拟网络设备的设备属性的控制报文的情况下,所述系统级芯片通过所述硬件集成电路从所述物理机获取所述目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,所述控制报文是所述物理机通过所述第一虚拟网络设备对应的第一队列资源向所述系统级芯片发送的,所述第一虚拟网络设备为所述至少两个虚拟网络设备中的任一个;
所述系统级芯片对所述目标报文进行解析和处理,得到处理结果,将所述处理结果通过所述硬件集成电路传输给所述物理机,所述处理结果用于指示所述物理机中与所述第一虚拟网络设备对应的第一队列资源可以被重新利用,所述第一队列资源用于发送所述目标报文。
2.如权利要求1所述的方法,其特征在于,所述系统级芯片通过所述硬件集成电路从所述物理机获取目标报文之前,还包括:
所述硬件集成电路接收所述物理机发送的通知消息,所述通知消息用于指示所述物理机利用所述第一队列资源发送所述目标报文;
所述硬件集成电路根据所述通知消息,确定所述目标报文是否为用于设置第一虚拟网络设备的设备属性的控制报文;
在确定所述目标报文为所述控制报文的情况下,所述硬件集成电路向所述系统级芯片透传所述通知消息。
3.如权利要求1或2所述的方法,其特征在于,所述系统级芯片通过所述硬件集成电路从所述物理机获取目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,包括:
在所述硬件集成电路确定接收到所述系统级芯片发送的第一直接内存存取DMA请求的情况下,通过所述硬件集成电路利用DMA技术,将所述目标报文从所述物理机的内存复制至所述系统级芯片的第一存储空间,所述第一DMA请求用于请求通过DMA技术获取所述目标报文。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述系统级芯片通过写寄存器的方式向所述硬件集成电路发送所述第一DMA请求,所述寄存器是所述硬件集成电路中被所述至少两个虚拟网络设备共享的寄存器。
5.如权利要求1-4任一项所述的方法,其特征在于,所述将所述处理结果通过所述硬件集成电路传输给所述物理机,包括:
在所述硬件集成电路确定接收到所述系统级芯片发送的第二DMA请求的情况下,通过所述硬件集成电路利用DMA技术,将所述处理结果从所述系统级芯片的第一存储空间复制至所述物理机的内存。
6.一种数据交互方法,其特征在于,应用于物理机,所述物理机与DPU网络设备通信连接,所述DPU网络设备包括虚拟网络设备,所述方法包括:
在所述物理机中申请第一队列资源,所述第一队列资源用于向所述DPU网络设备发送用于设置所述虚拟网络设备的设备属性的控制报文;
确定所述虚拟网络设备对应的实际数据队列个数;
向所述DPU网络设备发送所述虚拟网络设备对应的实际数据队列个数;
根据所述虚拟网络设备对应的实际数据队列个数,在所述物理机中申请第二队列资源和与所述第二队列资源关联的中断资源,所述第二队列资源用于传输与所述虚拟网络设备关联的数据报文。
7.如权利要求6所述的方法,其特征在于,所述确定所述虚拟网络设备对应的实际数据队列个数,包括:
从所述DPU网络设备中获取所述虚拟网络设备支持的最大数据队列的数目;
获取所述物理机的CPU核心数,根据所述CPU核心数和所述虚拟网络设备支持的最大数据队列的数目,确定所述虚拟网络设备对应的实际数据队列个数。
8.一种DPU网络设备,其特征在于,所述DPU网络设备包括硬件集成电路和系统级芯片,以及至少两个虚拟网络设备,所述系统级芯片通过所述硬件集成电路与物理机连接:
所述硬件集成电路用于在确定目标报文为数据报文的情况下,对所述目标报文进行处理;
所述系统级芯片,用于在确定所述目标报文为用于设置第一虚拟网络设备的设备属性的控制报文的情况下,通过所述硬件集成电路从所述物理机获取目标报文,将所述目标报文存储于所述系统级芯片的第一存储空间,所述目标报文包括用于设置第一虚拟网络设备的设备属性的控制报文,所述控制报文是所述物理机通过所述第一虚拟网络设备对应的第一队列资源向所述系统级芯片发送的,所述第一虚拟网络设备为所述至少两个虚拟网络设备中的任一个;
所述系统级芯片,还用于对所述控制报文进行解析和处理,得到处理结果,将所述处理结果通过所述硬件集成电路传输给所述物理机,所述处理结果用于指示所述物理机中与所述第一虚拟网络设备对应的第一队列资源可以被重新利用,所述第一队列资源用于发送所述目标报文。
9.一种电子设备,其特征在于,包括:存储器、处理器,其中所述存储器和所述处理器被相互可通信地连接;其中所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如权利要求1-7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如权利要求1-7中任一项所述的方法的步骤。
CN202210152532.1A 2022-02-18 2022-02-18 Dpu网络设备中的数据处理方法、数据交互方法及产品 Active CN114553635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210152532.1A CN114553635B (zh) 2022-02-18 2022-02-18 Dpu网络设备中的数据处理方法、数据交互方法及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210152532.1A CN114553635B (zh) 2022-02-18 2022-02-18 Dpu网络设备中的数据处理方法、数据交互方法及产品

Publications (2)

Publication Number Publication Date
CN114553635A CN114553635A (zh) 2022-05-27
CN114553635B true CN114553635B (zh) 2023-03-24

Family

ID=81674905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210152532.1A Active CN114553635B (zh) 2022-02-18 2022-02-18 Dpu网络设备中的数据处理方法、数据交互方法及产品

Country Status (1)

Country Link
CN (1) CN114553635B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658219A (zh) * 2022-07-19 2023-01-31 深圳星云智联科技有限公司 数据通信方法及相关装置、系统、介质和程序产品
CN115222538B (zh) * 2022-08-15 2022-12-13 深圳星云智联科技有限公司 行情快照数据计算方法、装置、电子设备和存储介质
CN115150203B (zh) * 2022-09-02 2022-11-15 珠海星云智联科技有限公司 数据处理的方法、装置、计算机设备和存储介质
CN115185647B (zh) * 2022-09-14 2022-12-20 珠海星云智联科技有限公司 virtio设备直通方法及相关装置
CN115858102B (zh) * 2023-02-24 2023-05-16 珠海星云智联科技有限公司 一种用于部署支持虚拟化硬件加速的虚拟机的方法
CN117215730B (zh) * 2023-11-08 2024-02-23 北京火山引擎科技有限公司 数据传输方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112398896A (zh) * 2019-08-19 2021-02-23 上海诺基亚贝尔股份有限公司 用于提供服务的设备、方法、装置和计算机可读存储介质
CN112953797A (zh) * 2014-08-27 2021-06-11 适应性频谱和信号校正股份有限公司 用于实现接入节点功能的虚拟化的系统、方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024962B (zh) * 2016-09-20 2023-04-18 华为技术有限公司 一种数据传输方法及装置
CN110851371B (zh) * 2018-08-20 2023-09-26 华为技术有限公司 报文处理方法及相关设备
CN110519180B (zh) * 2019-07-17 2022-09-13 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 网卡虚拟化队列调度方法及系统
WO2021208092A1 (zh) * 2020-04-17 2021-10-21 华为技术有限公司 一种有状态业务的处理方法及装置
CN112799840B (zh) * 2021-01-29 2024-07-05 北京百度网讯科技有限公司 用于传输数据的方法、装置、设备以及存储介质
CN113810791B (zh) * 2021-09-22 2022-04-29 浙江锐文科技有限公司 一种提高智能网卡/dpu网络遥测技术性能的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953797A (zh) * 2014-08-27 2021-06-11 适应性频谱和信号校正股份有限公司 用于实现接入节点功能的虚拟化的系统、方法和装置
CN112398896A (zh) * 2019-08-19 2021-02-23 上海诺基亚贝尔股份有限公司 用于提供服务的设备、方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
CN114553635A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
CN114553635B (zh) Dpu网络设备中的数据处理方法、数据交互方法及产品
CN109976925B (zh) 一种基于混合多系统核间实时通信的方法和系统
EP3798835B1 (en) Method, device, and system for implementing hardware acceleration processing
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
CN107967225B (zh) 数据传输方法、装置、计算机可读存储介质和终端设备
US8098676B2 (en) Techniques to utilize queues for network interface devices
CN116886751B (zh) 一种异构设备的高速通信方法、装置和异构通信系统
EP2080102A2 (en) Network interface techniques
CN114201268B (zh) 一种数据处理方法、装置、设备及可读存储介质
CN116069711B (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
CN110618956B (zh) 一种bmc云平台资源池化方法与系统
CN115664892B (zh) 虚拟监控器下Linux虚拟网卡的实现方法
CN107870879A (zh) 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN101452430B (zh) 多处理器之间的通信方法与包括多处理器的通信装置
CN114691286A (zh) 服务器系统、虚拟机创建方法及装置
CN112131176A (zh) 一种基于pcie的fpga快速局部重构方法
CN114397999B (zh) 基于非易失内存接口-远程处理消息传递的通信方法、装置及设备
CN117112465B (zh) Dma调度器及方法、片上系统、电子组件及设备
US20230153153A1 (en) Task processing method and apparatus
JP2003316732A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
CN108055186B (zh) 一种主从处理器通信方法及装置
CN115616984A (zh) 基于多核处理器的任务处理方法、数控机和存储介质
CN112328519B (zh) 一种pcie设备、基于sr-iov的数据包有序传输方法和系统
KR102160014B1 (ko) 혼합 네트워크상에서의 태스크 간 통신 방법 및 시스템

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
GR01 Patent grant
GR01 Patent grant