CN114925012A - 一种以太网帧的下发方法、上传方法及相关装置 - Google Patents

一种以太网帧的下发方法、上传方法及相关装置 Download PDF

Info

Publication number
CN114925012A
CN114925012A CN202210190742.XA CN202210190742A CN114925012A CN 114925012 A CN114925012 A CN 114925012A CN 202210190742 A CN202210190742 A CN 202210190742A CN 114925012 A CN114925012 A CN 114925012A
Authority
CN
China
Prior art keywords
ethernet frame
target
descriptor
axi
ethernet
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.)
Withdrawn
Application number
CN202210190742.XA
Other languages
English (en)
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210190742.XA priority Critical patent/CN114925012A/zh
Publication of CN114925012A publication Critical patent/CN114925012A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种以太网帧的下发方法,应用于FPGA异构加速器,该方法包括以下步骤:接收主机端发送的以太网帧下发指令;利用virtqueue模块从环形队列的描述符表中读取目标描述符;根据目标描述符从共享数据缓存区读取待下发的目标以太网帧;通过AXI‑Stream接口将目标以太网帧下发给客户端。应用本发明所提供的以太网帧的下发方法,避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性,实现了以太网帧的高带宽、低时延传输。本发明还公开了一种以太网帧的下发装置、以太网帧的上传方法及装置、电子设备及存储介质,具有相应技术效果。

Description

一种以太网帧的下发方法、上传方法及相关装置
技术领域
本发明涉及通信技术领域,特别是涉及一种以太网帧的下发方法及装置、以太网帧的上传方法及装置、电子设备及计算机可读存储介质。
背景技术
在使用FPGA(Field Programmable Gate Array,现场可编程与门阵列)实现的异构加速器中,一般将FPGA的设计分为外壳(shell)部分和动态内核(dynamic kernel)部分。外壳部分实现主机host对FPGA加速器的基本管理功能和数据通道。基本的管理功能包括管理动态区内核的下载,烧写Flash芯片保存上电使用的shell版本,实现管理权限的驱动和用户权限的驱动之间的消息通信。数据通道实现主机和动态内核之间的PCIe DMA(Peripheral Component Interconnect Express Direct Memory Access,高速串行计算机扩展总线标准直接存储器访问)传输通道。动态内核部分实现用户定义的各种功能,一般为多个内核通过并联或串联的方式构成实现特定功能的***。动态内核部分管理着板载的DDR(双倍速率同步动态随机存储器)内存接口,芯片内的高带宽存储器以及高速串行传输接口。所有的用户功能,***都可以通过FPGA编程的方式实现动态的切换,从而使基于FPGA的异构加速器具有强大的通用性和灵活性。
目前的FPGA加速器主要面向高性能计算的加速,提供的编程接口也是基于内存映射的方式,在进行以太网帧传输时,使用常规的DMA(Direct Memory Access,直接存储器访问)的接口,将FPGA加速器上的存储资源通过内部AXI-MM(AXI-MemoryMap,面向内存映射的AXI接口)的接口方式映射给主机CPU。CPU和动态内核之间的数据交互需要通过FPGA加速器上的存储资源进行周转缓存。但是这种接口方式对于网络编程的支持不够友好,对于以太网帧的传输需要增加缓存的操作,软件层面的数据同步操作,增加了时延,降低了有效带宽。
综上所述,如何有效地解决现有的以太网帧传输方法需要通过FPGA加速器上的存储资源进行周转缓存,增加了时延,降低了有效带宽等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种以太网帧的下发方法,该方法避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性,实现了以太网帧的高带宽、低时延传输;本发明的另一目的是提供一种以太网帧的下发装置、以太网帧的上传方法及装置、电子设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种以太网帧的下发方法,应用于FPGA异构加速器,包括:
接收主机端发送的以太网帧下发指令;
利用virtqueue模块从环形队列的描述符表中读取目标描述符;
根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧;
通过AXI-Stream接口将所述目标以太网帧下发给客户端。
在本发明的一种具体实施方式中,通过AXI-Stream接口将所述目标以太网帧下发给客户端,包括:
通过预设数量的AXI-Stream接口将所述目标以太网帧下发给所述客户端。
在本发明的一种具体实施方式中,根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧,包括:
根据所述目标描述符读取所述主机端调用网卡驱动器写入所述共享数据缓存区的目标以太网帧;其中,所述网卡驱动器为预先虚拟得到。
在本发明的一种具体实施方式中,根据所述目标描述符读取所述主机端调用网卡驱动器写入所述共享数据缓存区的目标以太网帧,包括:
利用多队列直接存储器模块根据所述目标描述符读取虚拟主机调用网卡驱动器写入所述共享数据缓存区的目标以太网帧。
一种以太网帧的上传方法,应用于FPGA异构加速器,包括:
接收客户端待上传的目标以太网帧;
通过AXI-Stream接口将所述目标以太网帧发送至virtqueue模块;
利用所述virtqueue模块将所述目标以太网帧装配至目标描述符中,根据所述目标描述符对描述符表进行更新操作;
将所述描述符表记录至环形队列;
向主机端发送帧接收指令,以使所述主机端从所述环形队列的描述符表读取所述目标描述符,并根据所述目标描述符获取所述目标以太网帧。
在本发明的一种具体实施方式中,根据所述目标描述符获取所述目标以太网帧,包括:
根据所述目标描述符获取预写入共享数据缓存区的目标以太网帧;其中,所述共享数据缓存区为接收所述目标以太网帧之前所述主机端调用网卡驱动程序编程接口进行初始化得到的缓存区。
一种以太网帧的下发装置,应用于FPGA异构加速器,包括:
指令接收单元,用于接收主机端发送的以太网帧下发指令;
描述符读取单元,用于利用virtqueue模块从环形队列的描述符表中读取目标描述符;
以太网帧读取单元,用于根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧;
以太网帧下发单元,用于通过AXI-Stream接口将所述目标以太网帧下发给客户端。
一种以太网帧的上传装置,应用于FPGA异构加速器,包括:
以太网帧接收单元,用于接收客户端待上传的目标以太网帧;
以太网帧发送单元,用于通过AXI-Stream接口将所述目标以太网帧发送至virtqueue模块;
描述符表更新单元,用于利用所述virtqueue模块将所述目标以太网帧装配至目标描述符中,根据所述目标描述符对描述符表进行更新操作;
描述符表记录单元,用于将所述描述符表记录至环形队列;
以太网帧获取单元,用于向主机端发送帧接收指令,以使所述主机端从所述环形队列的描述符表读取所述目标描述符,并根据所述目标描述符获取所述目标以太网帧。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述以太网帧的下发方法或以太网帧的上传方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述以太网帧的下发方法或以太网帧的上传方法的步骤。
本发明所提供的以太网帧的下发方法,应用于FPGA异构加速器,包括:接收主机端发送的以太网帧下发指令;利用virtqueue模块从环形队列的描述符表中读取目标描述符;根据目标描述符从共享数据缓存区读取待下发的目标以太网帧;通过AXI-Stream接口将目标以太网帧下发给客户端。
由上述技术方案可知,通过在FPGA异构加速器中部署virtqueue模块,利用virtqueue模块从环形队列的描述符表中读取目标描述符,根据目标描述符从共享数据缓存区读取待下发的目标以太网帧,并预先设置AXI-Stream接口,通过AXI-Stream接口将目标以太网帧下发给客户端。避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性。高速串行传输接口可以通过用户内核与AXI-Stream接口连接,实现了以太网帧的高带宽、低时延传输。
相应的,本发明还提供了与上述以太网帧的下发方法相对应的以太网帧的下发装置、以太网帧的上传方法及装置、电子设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中以太网帧的下发方法的一种实施流程图;
图2为本发明实施例中以太网帧的下发方法的另一种实施流程图;
图3为本发明实施例中以太网帧的上传方法的一种实施流程图;
图4为本发明实施例中以太网帧的上传方法的另一种实施流程图;
图5为本发明实施例中一种含virtio功能的FPGA异构加速器shell的实现框图;
图6为本发明实施例中一种含virtio功能的FPGA异构加速器的动态区连接示意图;
图7为本发明实施例中一种以太网帧的下发装置的结构框图;
图8为本发明实施例中一种以太网帧的上传装置的结构框图;
图9为本发明实施例中一种电子设备的结构框图;
图10为本实施例提供的一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本发明实施例中以太网帧的下发方法的一种实施流程图,应用于FPGA异构加速器,该方法可以包括以下步骤:
S101:接收主机端发送的以太网帧下发指令。
当主机端需要向客户端下发以太网帧时,向FPGA异构加速器发送以太网帧下发指令,以太网帧下发指令接收主机端发送的以太网帧下发指令。
S102:利用virtqueue模块从环形队列的描述符表中读取目标描述符。
预先在FPGA异构加速器中设置virtqueue模块,用于实现半虚拟化hypervisor中位于设备之上的抽象层virtio中对环形虚拟队列的管理。FPGA异构加速器在接收到主机端发送的以太网帧下发指令之后,利用virtqueue模块从环形队列的描述符表中读取目标描述符。
目标描述符即为主机端在将目标以太网帧写入共享数据缓存区之后,写入环形队列的描述符。
S103:根据目标描述符从共享数据缓存区读取待下发的目标以太网帧。
在利用virtqueue模块从环形队列的描述符表中读取到目标描述符之后,根据目标描述符从共享数据缓存区读取待下发的目标以太网帧。避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性。
S104:通过AXI-Stream接口将目标以太网帧下发给客户端。
预先在FPGA异构加速器中设置面向流的AXI接口,在根据目标描述符从共享数据缓存区读取到待下发的目标以太网帧之后,通过AXI-Stream接口将目标以太网帧下发给客户端。高速串行传输接口可以通过用户内核与AXI-Stream接口连接,实现了以太网帧的高带宽、低时延传输。
由上述技术方案可知,通过在FPGA异构加速器中部署virtqueue模块,利用virtqueue模块从环形队列的描述符表中读取目标描述符,根据目标描述符从共享数据缓存区读取待下发的目标以太网帧,并预先设置AXI-Stream接口,通过AXI-Stream接口将目标以太网帧下发给客户端。避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性。高速串行传输接口可以通过用户内核与AXI-Stream接口连接,实现了以太网帧的高带宽、低时延传输。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
参见图2,图2为本发明实施例中以太网帧的下发方法的另一种实施流程图,应用于FPGA异构加速器,该方法可以包括以下步骤:
S201:接收主机端发送的以太网帧下发指令。
S202:利用virtqueue模块从环形队列的描述符表中读取目标描述符。
S203:利用多队列直接存储器模块根据目标描述符读取虚拟主机调用网卡驱动器写入共享数据缓存区的目标以太网帧。
其中,网卡驱动器为预先虚拟得到。
预先在FPGA异构加速器中部署PCIe硬核模块,用于实现PCIe链路层及物理层的功能,兼容SR-IOV标准,支持虚拟化的网络接口拓展。
安装到服务器上的FPGA异构加速器,在***启动时,驱动程序识别到支持virtio功能的加速器类型,然后基于virtio的协商机制确定配置参数,并虚拟出可用的网卡驱动器给主机或客户端使用。
主机端需要下发以太网帧时,直接调用网卡驱动器将待发送的目标以太网帧写入共享数据缓存区。FPGA异构加速器在利用virtqueue模块从环形队列的描述符表中读取目标描述符之后,利用多队列直接存储器模块根据目标描述符读取虚拟主机调用网卡驱动器写入共享数据缓存区的目标以太网帧。
加强了FPGA异构加速器对网络虚拟化的支持力度,基于virtio-net的网络设备可以直接映射到虚拟机中使用。
S204:通过预设数量的AXI-Stream接口将目标以太网帧下发给客户端。
预先进行AXI-Stream接口数量扩展,FPGA异构加速器在根据目标描述符读取主机端调用网卡驱动器写入共享数据缓存区的目标以太网帧之后,通过预设数量的AXI-Stream接口将目标以太网帧下发给客户端,从而提高了对目标以太网帧的下发效率。
需要说明的是,预设数量可以根据实际情况进行设定和调整,本发明实施例对此不做赘述。
参见图3,图3为本发明实施例中以太网帧的上传方法的一种实施流程图,应用于FPGA异构加速器,该方法可以包括以下步骤:
S301:接收客户端待上传的目标以太网帧。
当客户端需要向主机端上传以太网帧时,客户端向FPGA异构加速器上传目标以太网帧,FPGA异构加速器接收客户端待上传的目标以太网帧。
S302:通过AXI-Stream接口将目标以太网帧发送至virtqueue模块。
FPGA异构加速器在接收到客户端待上传的目标以太网帧之后,通过预先设置于FPGA异构加速器的AXI-Stream接口将目标以太网帧发送至FPGA异构加速器中预先部署的virtqueue模块。
S303:利用virtqueue模块将目标以太网帧装配至目标描述符中,根据目标描述符对描述符表进行更新操作。
FPGA异构加速器在通过AXI-Stream接口将目标以太网帧发送至virtqueue模块之后,利用virtqueue模块将目标以太网帧装配至可用的目标描述符中,根据目标描述符对描述符表进行更新操作,从而将目标描述符更新到描述符表中。
S304:将描述符表记录至环形队列。
在利用virtqueue模块将目标以太网帧装配至目标描述符中,并根据目标描述符对描述符表进行更新操作之后,将描述符表记录至环形队列,从而将已使用的描述符信息被记录到环形队列中。
S305:向主机端发送帧接收指令,以使主机端从环形队列的描述符表读取目标描述符,并根据目标描述符获取目标以太网帧。
在将描述符表记录至环形队列之后,向主机端发送帧接收指令。主机端在接收到帧接收指令之后,从环形队列的描述符表读取目标描述符,并根据目标描述符获取目标以太网帧,从而释放已使用的缓存区,以便释放得到的缓存区接收新的数据。
参见图4,图4为本发明实施例中以太网帧的上传方法的另一种实施流程图,应用于FPGA异构加速器,该方法可以包括以下步骤:
S401:接收客户端待上传的目标以太网帧。
S402:通过AXI-Stream接口将目标以太网帧发送至virtqueue模块。
S403:利用virtqueue模块将目标以太网帧装配至目标描述符中,根据目标描述符对描述符表进行更新操作。
S404:将描述符表记录至环形队列。
S405:向主机端发送帧接收指令,以使主机端从环形队列的描述符表读取目标描述符,并根据目标描述符获取预写入共享数据缓存区的目标以太网帧。
其中,共享数据缓存区为接收目标以太网帧之前主机端调用网卡驱动程序编程接口进行初始化得到的缓存区。
主机在准备接收以太网帧时,调用网卡驱动程序编程接口对共享数据缓存区进行初始化。FPGA异构加速器在将描述符表记录至环形队列之后,将目标以太网帧写入共享数据缓存区,并向主机端发送帧接收指令。主机端在接收到帧接收指令之后,从环形队列的描述符表读取目标描述符,并根据目标描述符获取预写入共享数据缓存区的目标以太网帧。通过对共享数据缓存区进行初始化,避免了共享数据缓存区中原有数据对本次以太网帧传输的干扰,较大的提升了以太网帧传输的准确性。
参见图5,图5为本发明实施例中一种含virtio功能的FPGA异构加速器shell的实现框图。FPGA异构加速器中现有的静态区包括电邮存储区/闪存/通用输入/输出口(MailBox/Flash/GPIO)、虚拟内存解复用器(PF-demux)、简化的AXI总线接口(AXI-Lite)、面向内存映射的AXI接口(AXI-MM)、多队列直接存储器(Queue-DMA)、PCIe硬核模块(PCIe_Hard_Block)。本发明实施例对多队列直接存储器进行了重新设计,其中重新设计得到的多队列直接存储器、面向流的AXI接口(AXI-ST)、以太网适配器(Basenic)、Virtqueue模块构成了新增的Virtio模块。virtio是一种I/O半虚拟化解决方案,是一套通用I/O设备虚拟化的程序,是对半虚拟化Hypervisor中的一组通用I/O设备的抽象。提供了一套上层应用与各Hypervisor虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。新增的virtio模块特指virtio-net协议(virtio的网络部分协议)在FPGA异构加速器中的实现。
图5中各模块的功能介绍如下:
PCIe硬核模块:FPGA异构加速器提供的PCIe硬核模块,实现PCIe链路层及物理层的功能,兼容SR-IOV标准,支持虚拟化的网络接口拓展。
多队列直接存储器模块:实现一个多队列的直接存储器访问功能,同时分离出面向内存映射的AXI接口和简化的AXI总线接口两种接口,保持shell原有功能和接口。
简化的AXI总线接口及相关模块:实现基本shell中对管理和用户PF解复用接口的支持,管理电邮存储区(MailBox)消息队列、闪存(Flash)读写、通用输入/输出口控制。
面向内存映射的AXI接口:实现基本shell中对片内外存储器的读写通道。
Virtqueue模块:实现virtio中对环形虚拟队列的管理。收发方向各有一个环形队列。
以太网适配器:实现网络数据包到环形队列的映射和收发调度,以及virtio中定义的checksum(总和校验码)卸载、TSO(TCP Segmentation Offload,TCP分段卸载)等功能。
面向流的AXI接口:形成带有包长和队列号的信息的AXI-ST总结接口,并基于shell的需要扩展出需要的接口数量。
参见图6,图6为本发明实施例中一种含virtio功能的FPGA异构加速器的动态区连接示意图。其中,简化的AXI总线接口(AXI-Lite)、面向内存映射的AXI接口(AXI-MM)、面向流的AXI接口(AXI-ST)、双倍速率同步动态随机存储器内存子***(DDR内存子***)、片内高带宽内存子***、高速串行传输接口为与静态区的接口或相应存储子***、物理网络接口。用户内核1(kernel1)、用户内核2(kernel2)、用户内核3(kernel3)、用户内核4(kernel4)为用户需要开发的内核模块,动态区的设计最终将各个模块实现连接。用户内核1和用户内核2展示了原有接口的互联关系,用户内核的管理配置由简化的AXI总线接口下发,用户接口的大带宽的数据传输由内存子***进行周转。用户内核之间或者和高速串行传输接口之间可是使用面向流的AXI接口连接。用户内核3和用户内核4展示了在shell增加面向流的AXI接口后与内核连接方式。高速串行传输接口可以通过用户内核与面向流的AXI接口连接,实现网路数据的高带宽、低时延传输。
相应于上面的方法实施例,本发明还提供了一种以太网帧的下发装置,应用于FPGA异构加速器,下文描述的以太网帧的下发装置与上文描述的以太网帧的下发方法可相互对应参照。
参见图7,图7为本发明实施例中一种以太网帧的下发装置的结构框图,该装置可以包括:
指令接收单元71,用于接收主机端发送的以太网帧下发指令;
描述符读取单元72,用于利用virtqueue模块从环形队列的描述符表中读取目标描述符;
以太网帧读取单元73,用于根据目标描述符从共享数据缓存区读取待下发的目标以太网帧;
以太网帧下发单元74,用于通过AXI-Stream接口将目标以太网帧下发给客户端。
由上述技术方案可知,通过在FPGA异构加速器中部署virtqueue模块,利用virtqueue模块从环形队列的描述符表中读取目标描述符,根据目标描述符从共享数据缓存区读取待下发的目标以太网帧,并预先设置AXI-Stream接口,通过AXI-Stream接口将目标以太网帧下发给客户端。避免了内部的存储器周转,减少了传输时延,简化了内核接口设计的复杂性。高速串行传输接口可以通过用户内核与AXI-Stream接口连接,实现了以太网帧的高带宽、低时延传输。
在本发明的一种具体实施方式中,以太网帧读取单元73具体为根据目标描述符读取主机端调用网卡驱动器写入共享数据缓存区的目标以太网帧的单元;其中,网卡驱动器为预先虚拟得到。
在本发明的一种具体实施方式中,以太网帧读取单元具体为利用多队列直接存储器模块根据目标描述符读取虚拟主机调用网卡驱动器写入共享数据缓存区的目标以太网帧的单元。
相应于上面的方法实施例,本发明还提供了一种以太网帧的上传装置,应用于FPGA异构加速器,下文描述的以太网帧的长传装置与上文描述的以太网帧的上传方法可相互对应参照。
参见图8,图8为本发明实施例中一种以太网帧的上传装置的结构框图,该装置可以包括:
以太网帧接收单元81,用于接收客户端待上传的目标以太网帧;
以太网帧发送单元82,用于通过AXI-Stream接口将目标以太网帧发送至virtqueue模块;
描述符表更新单元83,用于利用virtqueue模块将目标以太网帧装配至目标描述符中,根据目标描述符对描述符表进行更新操作;
描述符表记录单元84,用于将描述符表记录至环形队列;
以太网帧获取单元85,用于向主机端发送帧接收指令,以使主机端从环形队列的描述符表读取目标描述符,并根据目标描述符获取目标以太网帧。
在本发明的一种具体实施方式中,以太网帧获取单元85具体为根据目标描述符获取预写入共享数据缓存区的目标以太网帧的单元;其中,共享数据缓存区为接收目标以太网帧之前主机端调用网卡驱动程序编程接口进行初始化得到的缓存区。
相应于上面的方法实施例,参见图9,图9为本发明所提供的设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的以太网帧的下发方法或以太网帧的上传方法方法的步骤。
具体的,请参考图10,图10为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341。
上文所描述的以太网帧的下发方法或以太网帧的上传方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
接收主机端发送的以太网帧下发指令;利用virtqueue模块从环形队列的描述符表中读取目标描述符;根据目标描述符从共享数据缓存区读取待下发的目标以太网帧;通过AXI-Stream接口将目标以太网帧下发给客户端。
或:
接收客户端待上传的目标以太网帧;通过AXI-Stream接口将目标以太网帧发送至virtqueue模块;利用virtqueue模块将目标以太网帧装配至目标描述符中,根据目标描述符对描述符表进行更新操作;将描述符表记录至环形队列;向主机端发送帧接收指令,以使主机端从环形队列的描述符表读取目标描述符,并根据目标描述符获取目标以太网帧。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种以太网帧的下发方法,其特征在于,应用于FPGA异构加速器,包括:
接收主机端发送的以太网帧下发指令;
利用virtqueue模块从环形队列的描述符表中读取目标描述符;
根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧;
通过AXI-Stream接口将所述目标以太网帧下发给客户端。
2.根据权利要求1所述的以太网帧的下发方法,其特征在于,通过AXI-Stream接口将所述目标以太网帧下发给客户端,包括:
通过预设数量的AXI-Stream接口将所述目标以太网帧下发给所述客户端。
3.根据权利要求1所述的以太网帧的下发方法,其特征在于,根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧,包括:
根据所述目标描述符读取所述主机端调用网卡驱动器写入所述共享数据缓存区的目标以太网帧;其中,所述网卡驱动器为预先虚拟得到。
4.根据权利要求3所述的以太网帧的下发方法,其特征在于,根据所述目标描述符读取所述主机端调用网卡驱动器写入所述共享数据缓存区的目标以太网帧,包括:
利用多队列直接存储器模块根据所述目标描述符读取虚拟主机调用网卡驱动器写入所述共享数据缓存区的目标以太网帧。
5.一种以太网帧的上传方法,其特征在于,应用于FPGA异构加速器,包括:
接收客户端待上传的目标以太网帧;
通过AXI-Stream接口将所述目标以太网帧发送至virtqueue模块;
利用所述virtqueue模块将所述目标以太网帧装配至目标描述符中,根据所述目标描述符对描述符表进行更新操作;
将所述描述符表记录至环形队列;
向主机端发送帧接收指令,以使所述主机端从所述环形队列的描述符表读取所述目标描述符,并根据所述目标描述符获取所述目标以太网帧。
6.根据权利要求5所述的以太网帧的上传方法,其特征在于,根据所述目标描述符获取所述目标以太网帧,包括:
根据所述目标描述符获取预写入共享数据缓存区的目标以太网帧;其中,所述共享数据缓存区为接收所述目标以太网帧之前所述主机端调用网卡驱动程序编程接口进行初始化得到的缓存区。
7.一种以太网帧的下发装置,其特征在于,应用于FPGA异构加速器,包括:
指令接收单元,用于接收主机端发送的以太网帧下发指令;
描述符读取单元,用于利用virtqueue模块从环形队列的描述符表中读取目标描述符;
以太网帧读取单元,用于根据所述目标描述符从共享数据缓存区读取待下发的目标以太网帧;
以太网帧下发单元,用于通过AXI-Stream接口将所述目标以太网帧下发给客户端。
8.一种以太网帧的上传装置,其特征在于,应用于FPGA异构加速器,包括:
以太网帧接收单元,用于接收客户端待上传的目标以太网帧;
以太网帧发送单元,用于通过AXI-Stream接口将所述目标以太网帧发送至virtqueue模块;
描述符表更新单元,用于利用所述virtqueue模块将所述目标以太网帧装配至目标描述符中,根据所述目标描述符对描述符表进行更新操作;
描述符表记录单元,用于将所述描述符表记录至环形队列;
以太网帧获取单元,用于向主机端发送帧接收指令,以使所述主机端从所述环形队列的描述符表读取所述目标描述符,并根据所述目标描述符获取所述目标以太网帧。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述以太网帧的下发方法或权利要求5至6任一项所述以太网帧的上传方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述以太网帧的下发方法或权利要求5至6任一项所述以太网帧的上传方法的步骤。
CN202210190742.XA 2022-02-28 2022-02-28 一种以太网帧的下发方法、上传方法及相关装置 Withdrawn CN114925012A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210190742.XA CN114925012A (zh) 2022-02-28 2022-02-28 一种以太网帧的下发方法、上传方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210190742.XA CN114925012A (zh) 2022-02-28 2022-02-28 一种以太网帧的下发方法、上传方法及相关装置

Publications (1)

Publication Number Publication Date
CN114925012A true CN114925012A (zh) 2022-08-19

Family

ID=82805292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210190742.XA Withdrawn CN114925012A (zh) 2022-02-28 2022-02-28 一种以太网帧的下发方法、上传方法及相关装置

Country Status (1)

Country Link
CN (1) CN114925012A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550104A (zh) * 2022-12-06 2022-12-30 北京华环电子股份有限公司 Axi总线扩展方法、装置、电子设备及存储介质
CN116232779A (zh) * 2023-02-24 2023-06-06 无锡沐创集成电路设计有限公司 一种usb网卡、数据传输方法、装置及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550104A (zh) * 2022-12-06 2022-12-30 北京华环电子股份有限公司 Axi总线扩展方法、装置、电子设备及存储介质
CN115550104B (zh) * 2022-12-06 2023-08-15 北京华环电子股份有限公司 Axi总线扩展方法、装置、电子设备及存储介质
CN116232779A (zh) * 2023-02-24 2023-06-06 无锡沐创集成电路设计有限公司 一种usb网卡、数据传输方法、装置及可读存储介质

Similar Documents

Publication Publication Date Title
US10922119B2 (en) Communications between virtual dual control modules in virtual machine environment
US9842075B1 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
US9594718B2 (en) Hardware accelerated communications over a chip-to-chip interface
EP3660686B1 (en) Method and device for transmitting data processing request
US9081709B2 (en) Virtualizable and forward-compatible hardware-software interface
CN105122210B (zh) Gpu虚拟化的实现方法及相关装置和***
EP3982261A1 (en) Method and apparatus for processing io
WO2021244194A1 (zh) 寄存器的读写方法、芯片、子***、寄存器组及终端
CN114925012A (zh) 一种以太网帧的下发方法、上传方法及相关装置
US11829309B2 (en) Data forwarding chip and server
WO2023174146A1 (zh) 卸载卡命名空间管理、输入输出请求处理***和方法
JP2006085400A (ja) データ処理システム
CN116886751B (zh) 一种异构设备的高速通信方法、装置和异构通信***
CN114691286A (zh) 服务器***、虚拟机创建方法及装置
US11029847B2 (en) Method and system for shared direct access storage
CN115840620A (zh) 一种数据通路构建方法、设备及介质
CN108829530B (zh) 一种图像处理方法及装置
CN114397999A (zh) 基于非易失内存接口-远程处理消息传递的通信方法、装置及设备
CN113886019A (zh) 虚拟机创建方法、装置、***、介质和设备
CN116257276B (zh) 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法
WO2022242665A1 (zh) 一种数据存储方法及相关装置
US7930445B2 (en) Computer system using remote I/O and I/O data transfer method
CN112732176B (zh) 基于fpga的ssd访问方法及装置、存储***及存储介质
WO2022222040A1 (zh) 图形处理器的缓存访问方法、图形处理器及电子设备
CN115202808A (zh) 一种用于虚拟化环境中片上***的dma方法及***

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20220819

WW01 Invention patent application withdrawn after publication