CN116594715B - 基于fpga的数据处理卸载方法、fpga、cpu及系统 - Google Patents
基于fpga的数据处理卸载方法、fpga、cpu及系统 Download PDFInfo
- Publication number
- CN116594715B CN116594715B CN202310870029.4A CN202310870029A CN116594715B CN 116594715 B CN116594715 B CN 116594715B CN 202310870029 A CN202310870029 A CN 202310870029A CN 116594715 B CN116594715 B CN 116594715B
- Authority
- CN
- China
- Prior art keywords
- fpga
- data packet
- data
- cpu
- packet
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种基于FPGA的数据处理卸载方法、FPGA、CPU及基于FPGA的数据处理卸载系统,属于通信技术领域。该方法在FPGA中,在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以由FPGA对第一数据包进行加密处理,第一包类型是由CPU在符合第一硬件卸载条件的情况下对数据包的类型进行更改获得的,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
Description
技术领域
本公开属于通信技术领域,具体涉及一种基于FPGA的数据处理卸载方法、FPGA、CPU及基于FPGA的数据处理卸载系统。
背景技术
HTTP/3协议(HyperText Transfer Protocol/3,第三代超文本传输协议)采用基于UDP协议(User Datagram Protocol,用户数据报协议)的QUIC(Quick UDP InternetConnections,快速UDP网络连接)协议,在多路复用的情况下所传输的单个数据流可以保证有序交付而不影响其他数据流的传输,从而避免了HTTP/2协议基于TCP协议的单个数据流传输出现问题而重传时对后续数据流造成队头阻塞的问题,可以有效提高数据流传输效率。
但是,HTTP/3协议下基于QUIC协议进行数据传输,虽然避免了队头阻塞,也造成了CPU的高负载运行,导致资源占用高,可能会增加任务处理时间,进而影响了整体数据网络通信效率。
发明内容
本公开实施例的目的是提供一种基于FPGA的数据处理卸载方法、FPGA、CPU及基于FPGA的数据处理卸载系统,能够将QUIC协议的数据处理异步动态地卸载到FPGA,从而缓解CPU的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
为了解决上述技术问题,本公开是这样实现的:
第一方面,本公开提供了一种基于FPGA的数据处理卸载方法,该方法应用于现场可编程门阵列FPGA,该方法可以包括:接收CPU发送的第一数据包,CPU基于QUIC协议通信;在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
可选地,接收CPU发送的第一数据包之前,方法还包括:在确定CPU建立QUIC连接时,向CPU发送通知参数,通知参数用于指示FPGA的卸载可用。
可选地,方法还包括:接收第二数据包;在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并更改第二数据包为第二包类型;向CPU发送解密后的第二数据包。
可选地,第一硬件卸载条件包括以下至少一个:
第一数据包被配置为强制卸载;
CPU的负载大于或等于卸载阈值。
可选地,第一硬件卸载条件还包括:
FPGA的卸载可用。
第二方面,本公开还提供了一种基于FPGA的数据处理卸载方法,该方法可以应用于CPU,该方法可以包括:在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型;向FPGA发送第一数据包,CPU基于QUIC协议通信。
可选地,在符合硬件卸载条件的情况下更改第一数据包为第一包类型之前还包括:在接收到通知参数的情况下,确定FPGA的卸载可用。
可选地,方法还包括:接收FPGA发送的第二数据包;在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理。
第三方面,本公开还提供了一种FPGA,该FPGA可以包括:第一数据接收模块,用于接收CPU发送的第一数据包,CPU基于QUIC协议通信;第一数据卸载模块,用于在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
可选地,该FPGA还可以包括第二数据发送模块,用于在确定CPU建立QUIC连接时,向CPU发送通知参数,通知参数用于指示FPGA的卸载可用。
可选地,该第一数据接收模块,还用于接收第二数据包;
该第一数据卸载模块,还用于在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并更改第二数据包为第二包类型;
该第二数据发送模块,还用于向CPU发送解密后的第二数据包。
可选地,第一硬件卸载条件包括以下至少一个:
第一数据包被配置为强制卸载;
CPU的负载大于或等于卸载阈值。
可选地,第一硬件卸载条件还包括:
FPGA的卸载可用。
第四方面,本公开还提供了一种CPU,该CPU可以包括:第二数据卸载模块,用于在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型;第一数据发送模块,用于向FPGA发送第一数据包,CPU基于QUIC协议通信。
可选地,该CPU还可以包括第二数据接收模块,用于在接收到通知参数的情况下,确定FPGA的卸载可用。
可选地,该第二数据接收模块,还用于接收FPGA发送的第二数据包;
第二数据接收模块,还用于在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理。
第五方面,本公开还提供了一种基于FPGA的数据处理卸载系统,该系统可以包括FPGA与CPU,CPU基于QUIC协议通信,其中, 该CPU包括:第二数据卸载模块,用于在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型;第一数据发送模块,用于向FPGA发送第一数据包;
该FPGA包括:第一数据接收模块,用于接收CPU发送的第一数据包;第一数据卸载模块,用于在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
第六方面,本公开提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的程序或指令,该程序或指令被该处理器执行时实现如前述的基于FPGA的数据处理卸载方法的步骤。
第七方面,本公开提供了一种可读存储介质,可读存储介质上存储程序或指令,该程序或指令被处理器执行时实现如前述的基于FPGA的数据处理卸载方法的步骤。
第八方面,本公开提供了一种芯片,该芯片包括处理器和通信接口,通信接口和处理器耦合,该处理器用于运行程序或指令,实现如前述的基于FPGA的数据处理卸载方法的步骤。
第九方面,本公开提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如实现如前述的基于FPGA的数据处理卸载方法的步骤。
本公开提供的基于FPGA的数据处理卸载方法,应用于FPGA,在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以由FPGA对第一数据包进行加密处理,第一包类型是由CPU在符合第一硬件卸载条件的情况下对数据包的类型进行更改获得的,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
附图说明
图1为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之一。
图2为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之二。
图3为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之三。
图4为本公开实施例提供的基于FPGA的数据处理卸载方法的交互流程示意图。
图5为本公开实施例提供的一种FPGA的结构框图。
图6为本公开实施例提供的一种CPU的结构框图。
图7为本公开实施例提供的一种基于FPGA的数据处理卸载系统中数据发送的协作流程示例图。
图8为本公开实施例提供的一种基于FPGA的数据处理卸载系统中初始化数据的协作流程示例图。
图9为本公开实施例提供的一种基于FPGA的数据处理卸载系统中数据接收的协作流程示例图。
图10为本公开实施例提供的一种电子设备的结构示意图。
图11为本公开实施例提供的一种电子设备的硬件示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中所提及的QUIC协议目前在应用中还存在标准不一,连接库性能差异较大的问题,尤其是QUIC协议还在内部实现了TLS1.3加密协议,使得数据包在传输时几乎均需要加解密,造成CPU负载压力较高的问题。在网络业务需求日益增长的背景下,数据流传输量增多,对CPU的效率和性能也提出了更高的要求。
因此,本公开提供了一种基于FPGA的数据处理卸载方法(Field ProgrammableGate Array,现场可编程门阵列),以及支持该方法的FPGA、CPU和包含该FPGA与CPU的系统,采用软硬结合的方式,由FPGA基于CPU所提供的包类型动态地卸载QUIC协议,以合理地降低CPU消耗,提高数据传输效率,加强通信网络质量。
下面结合附图,通过具体的实施例及其应用场景对本公开实施例提供的基于FPGA的数据处理卸载方法进行详细地说明。
图1为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之一。该方法可以应用于FPGA。
其中,FPGA是一种具有可编程特性的集成电路,能够灵活地满足设计需求,从而能够更好地适应通信网络的发展进程,满足QUIC协议的标准化现状,从而匹配协议的变化,在生产环境中可复用、成本低。
如图1所示,该方法可以包括如下步骤101至步骤102。
步骤101、接收CPU发送的第一数据包,CPU基于QUIC协议通信。
本公开实施例中,FPGA可以对基于QUIC协议通信的CPU进行数据处理的任务卸载,数据处理可以包括数据包的加密、解密工作,或者拆包、装包工作等。FGPA可以接收CPU发送的第一数据包,并进一步确定第一数据包是否在FGPA进行处理。
步骤102、在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
本公开实施例中,可以通过包类型区分不同处理方式的数据包,如在第一数据包为第一包类型时,FGPA执行卸载,可以对第一数据包进行加密处理,在第一数据包为其他包类型时,FGPA可以执行其他动作,或不对第一数据包进行处理。
其中,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得,第一硬件卸载条件可以是对CPU状态、通信状态、数据类型等各种参数的独立或综合评估条件,在符合第一硬件卸载条件的情况下,表示由FGPA执行卸载对第一数据包进行处理能够提升整体通信效率,从而CPU可以将第一数据包的包类型更改为第一包类型,以使FGPA在接收到第一数据包时,能够根据第一数据包的包类型确定执行卸载,对第一数据包加密后发出。
在本公开一可选的方法实施例中,在网络节点间进行数据传输的过程中,发送端所配置的FGPA在发出加密的第一数据包时,可以进一步更改第一数据包的包类型,以使接收端配置的FGPA在接收到第一数据包时可以确定对第一数据包执行卸载,由接收端配置的FGPA进行解密处理。
在本公开实施例中,也可能第一数据包不符合第一硬件卸载条件,此时采用FGPA执行卸载可能对整体通信效率没有提升或可能造成效率降低,或者还可能造成能耗升高等影响。此时,CPU可以对第一数据包进行加密,并对第一数据包的包类型不作更改,从而FGPA在接收到包类型为初始包类型且加密的第一数据包时,可以直接将第一数据包发出,而不执行卸载对第一数据包进行处理。
图2为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之二。该方法可以应用于FPGA,如图2所示,该方法可以包括如下步骤201至步骤206:
步骤201、在确定CPU建立QUIC连接时,向CPU发送通知参数,通知参数用于指示FPGA的卸载可用。
本公开实施例中,配置该CPU的网络节点可以基于QUIC协议与另一网络节点进行数据传输,在网络节点间建立通信连接时,可以由CPU向另一网络节点发起QUIC连接建立的流程,此时该网络节点配置的FPGA可以透传QUIC连接的相关数据包。FPGA不对QUIC连接的相关数据包作处理,但是可以基于QUIC连接的相关数据包确定CPU建立QUIC连接,从而触发向CPU发送通知参数,以向CPU指示该FPGA的卸载可用。
本公开实施例中,在实际应用中可能存在网络节点未配置FPGA而不能执行硬件卸载功能的情况,因此可以在建立QUIC连接时由FPGA发送通知参数,以便CPU可以确定FPGA的卸载是否可用。在QUIC协议的硬件卸载可用时,CPU可以及时启用相关功能以整体提升通信效率;而在网络节点发生硬件更改导致QUIC协议的硬件卸载不可用时,也无需修改CPU执行逻辑,可以在确定硬件卸载不可用的基础上正常进行数据处理,提高了网络节点硬件更替、升级的效率。
如,FPGA在接收到连接初始化Init数据包时,可以检查连接初始化Init数据包的包类型(Package Type)。在确定该包类型指示CPU建立QUIC连接,而非其他协议连接或非连接初始化数据包时,向CPU发送通知参数。
步骤202、接收CPU发送的第一数据包,CPU基于QUIC协议通信。
本公开实施例中,步骤202可对应参照前述步骤101的相关描述,为避免重复,在此不再赘述。
步骤203、在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
本公开实施例中,步骤203可对应参照前述步骤102的相关描述,为避免重复,在此不再赘述。
在本公开一可选的方法实施例中,第一硬件卸载条件可以包括以下至少一个:
第一数据包被配置为强制卸载。
CPU的负载大于或等于卸载阈值。
本公开实施例中,第一硬件卸载条件可以是独立的一个条件,也可以是综合的多个条件,可以基于CPU状态设置,也可以基于数据类型设置。如,第一硬件卸载条件可以是第一数据包被配置为强制卸载,如针对较为复杂的请求或响应,可以卸载到FPGA进行处理,以降低CPU的负载压力,此时可以将该请求或响应的第一数据包配置为强制卸载,以在CPU任意状态下都将该第一数据包卸载到FPGA进行处理;也可以是CPU的负载大于或等于卸载阈值,其中,卸载阈值可以是根据网络节点配置参数、通信质量等设置的CPU在期望效率下运行的最大负载阈值,可以认为当CPU的负载超过该卸载阈值时,将影响整体通信效率,因此在不同网络节点、不同配置参数、不同通信业务下卸载阈值的大小可能不同。卸载阈值的大小不应过大,以避免CPU可能处于较高负载运行,造成高能耗、低效率的问题,影响整体通信质量;而由于FPGA在局部性、重复性的数据处理中效率更高,在其他数据处理中可能反而会影响处理效率,导致硬件能耗升高,因此卸载阈值也不应过小,导致不适宜FPGA处理的任务卸载到FPGA处理,具体可以根据应用环境、业务需求等进行实际测量配置。
在本公开一可选的方法实施例中,第一硬件卸载条件还可以包括:
FPGA的卸载可用。
本公开实施例中,由于网络环境复杂,且可能处于变化中,因此网络节点可能配置有智能网卡(SmartNIC),并以智能网卡内置的FPGA支持对CPU进行QUIC协议的卸载,也可能未配置智能网卡,从而不支持执行前述FPGA的数据处理卸载功能。因此,在CPU建立QUIC连接时,可以通过是否接收到FPGA主动发送的通知参数确定FPGA的卸载是否可用,并在FPGA的卸载可用的情况下,初步确定符合第一硬件卸载条件。在此基础上,CPU可以进一步确定CPU负载状态、第一数据包是否强制卸载等。
在本公开一可选的方法实施例中,该方法还可以包括:
步骤204、接收第二数据包。
本公开实施例中,FPGA还可以接收由网络节点中另一端发送的第二数据包,该第二数据包基于QUIC协议发送。
步骤205、在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并更改第二数据包为第二包类型。
步骤206、向CPU发送解密后的第二数据包。
本公开实施例中,第二硬件卸载条件可以是第二数据包的包类型指示卸载到FPGA进行解密处理,CPU负载大于或等于卸载阈值等,可以参照前述第一硬件卸载条件的相关描述,为避免重复,在此不再赘述。
本公开实施例中,在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,表示由FGPA执行卸载对第二数据包进行解密处理能够提升整体通信效率,从而FGPA可以对第二数据包进行解密处理,并将第一数据包的包类型更改为第二包类型,以使CPU在接收到第二数据包时,能够根据第二数据包的第二包类型确定解密工作已卸载到FGPA完成。
本公开提供的基于FPGA的数据处理卸载方法,应用于FPGA,在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以由FPGA对第一数据包进行加密处理,第一包类型是由CPU在符合第一硬件卸载条件的情况下对数据包的类型进行更改获得的,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
图3为本公开实施例提供的基于FPGA的数据处理卸载方法的步骤流程图之三。该方法可以应用于CPU,如图3所示,该方法可以包括:
步骤301、在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型。
本公开实施例中,CPU可以通过确定自身状态、确定第一数据包是否被配置为强制卸载等,确定FPGA的卸载是否可用等,确定是否符合第一硬件卸载条件,并在符合第一硬件卸载条件的情况下更改第一数据包的包类型为第一包类型,具体可参照前述图1至图2的相关描述,为避免重复,在此不再赘述。
如,CPU基于QUIC协议打包第一数据包后,可以先判断FPGA_offload_ready(FPGA卸载可用)是否为True,在FPGA_offload_ready为true时确定FPGA的卸载可用,进而在第一数据包被配置为强制卸载或CPU的负载超过卸载阈值时,将第一数据包的包类型更改为第一包类型。
在本公开的一方法实施例中,步骤301之前还包括如下步骤A:
步骤A、在接收到通知参数的情况下,确定FPGA的卸载可用。
本公开实施例中,在CPU建立QUIC连接时,可以接收FPGA发送的通知参数,以根据通知参数确定FPGA的卸载可用,具体可参照前述图1至图2的相关描述,为避免重复,在此不再赘述。
如,CPU在接收到FPGA的卸载可用的通知参数时,设置FPGA_offload_ready 为True。
步骤302、向FPGA发送第一数据包,CPU基于QUIC协议通信。
本公开实施例中,CPU可以向FPGA发送第一数据包,以便FPGA基于第一数据包所对应的第一包类型,对第一数据包进行加密处理,具体可参照前述图1至图2的相关描述,为避免重复,在此不再赘述。
需要说明的是,在第一数据包不符合第一硬件卸载条件的情况下,可以由CPU对第一数据包进行加密,并将加密的第一数据包向FPGA发送,此时第一数据包的包类型为初始包类型。
在本公开的一方法实施例中,该方法还可以包括如下步骤B1至步骤B2:
步骤B1、接收FPGA发送的第二数据包。
步骤B2、在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理。
本公开实施例中,第二数据包可以是FPGA接收的加密数据包,CPU接收到FPGA发送的第二数据包后,第二数据包可能已解密,也可能未解密。在第二数据包为解密数据包,且为第二包类型的情况下,表示该第二数据包卸载到FGPA进行解密工作,此时可以由CPU进行解包处理,获得第二数据包中的有效载荷(payload);或者,在第二数据包为加密状态下,可以由CPU对第二数据包进行解密处理。
本公开提供的基于FPGA的数据处理卸载方法,应用于CPU,在发送第一数据包时,符合第一硬件卸载条件时将第一数据包更改为第一包类型,并向FPGA发送,该CPU基于QUIC协议通信,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
图4为本公开实施例提供的基于FPGA的数据处理卸载方法的交互流程示意图,如图4所示,该方法可以应用于HOST(主机,配置有CPU)、FPGA on HOST(配置在主机上的FPGA)、PEER(另一端网络节点),则该交互流程如下步骤C1至步骤CX所示:
步骤C1、HOST向PEER发起QUIC连接建立流程,在HOST与PEER间建立QUIC连接。
步骤C2、FPGA on HOST向HOST发送通知参数,以指示FPGA的卸载可用。
步骤C3、HOST基于通知参数设置使用FPGA卸载。
步骤C4、HOST打包第一数据包,并在符合第一硬件卸载条件的情况下将第一数据包的包类型更改为第一包类型。
步骤C5、HOST将第一数据包向FPGA on HOST发送。
步骤C6、FPGA on HOST检查第一数据包,在第一数据包为第一包类型时对第一数据包进行加密处理。
步骤C7、FPGA on HOST将加密处理后的第一数据包向PEER发送。
步骤C8、PEER对第一数据包进行解密,并从第一数据包中获取有效载荷。
步骤C9、PEER打包第二数据包,并对第二数据包进行加密处理。
步骤C10、PEER将加密处理后的第二数据包向FPGA on HOST发送。
步骤C11、FPGA on HOST在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并将第二数据包的包类型更改为第二包类型。
步骤C12、FPGA on HOST向HOST发送解密处理后的第二数据包。
步骤C13、HOST在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理,获取有效载荷。
本公开提供的基于FPGA的数据处理卸载方法,应用于CPU及FPGA的交互流程,在CPU发送第一数据包时,符合第一硬件卸载条件时将第一数据包更改为第一包类型,并向FPGA发送,FPGA在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以对第一数据包进行加密处理,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
图5为本公开实施例提供的一种FPGA 500的结构框图,如图5所示,该FPGA 500可以包括:
第一数据接收模块501,用于接收CPU发送的第一数据包,CPU基于QUIC协议通信。
第一数据卸载模块502,用于在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
在本公开的一实施例中,该FPGA 500还可以包括第二数据发送模块,用于在确定CPU建立QUIC连接时,向CPU发送通知参数,通知参数用于指示FPGA的卸载可用。
在本公开的一实施例中,该第一数据接收模块501,还用于接收第二数据包;
该第一数据卸载模块502,还用于在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并更改第二数据包为第二包类型;
该第二数据发送模块,还用于向CPU发送解密后的第二数据包。
在本公开的一实施例中,第一硬件卸载条件包括以下至少一个:
第一数据包被配置为强制卸载;
CPU的负载大于或等于卸载阈值。
在本公开的一实施例中,第一硬件卸载条件还包括:
FPGA的卸载可用。
本公开提供的FPGA可以执行数据处理卸载方法,在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以由FPGA对第一数据包进行加密处理,第一包类型是由CPU在符合第一硬件卸载条件的情况下对数据包的类型进行更改获得的,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
图6为本公开实施例提供的一种CPU 600的结构框图,如图6所示,该CPU 600可以包括:
第二数据卸载模块601,用于在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型。
第一数据发送模块602,用于向FPGA发送第一数据包,CPU基于QUIC协议通信。
可选地,该CPU还可以包括第二数据接收模块,用于在接收到通知参数的情况下,确定FPGA的卸载可用。
可选地,该第二数据接收模块,还用于接收FPGA发送的第二数据包;
第二数据接收模块,还用于在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理。
本公开提供的CPU可以执行数据处理的卸载方法,在发送第一数据包时,符合第一硬件卸载条件时将第一数据包更改为第一包类型,并向FPGA发送,该CPU基于QUIC协议通信,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
本公开实施例中,还提供了一种基于FPGA的数据处理卸载系统,该系统可以包括FPGA与CPU,CPU基于QUIC协议通信,其中,该CPU可以包括:第二数据卸载模块,用于在符合第一硬件卸载条件的情况下更改第一数据包为第一包类型;第一数据发送模块,用于向FPGA发送第一数据包;
该FPGA包括:第一数据接收模块,用于接收CPU发送的第一数据包;第一数据卸载模块,用于在第一数据包为第一包类型的情况下对第一数据包进行加密处理,第一包类型由CPU在符合第一硬件卸载条件的情况下更改获得。
图7为本公开实施例提供的一种基于FPGA的数据处理卸载系统中数据发送的协作流程示例图,该系统包括CPU、FPGA。如图7所示,开始(Start)时,CPU打包第一数据包(Packdata),并确定系统的CPU负载(system CPU_load);进一步的,CPU确定FPGA卸载是否可用(FPGA_offload_ready是否为true),以及CPU负载是否大于或等于卸载阈值(system CPU_load≥70%)或第一数据包被配置为强制卸载(FPGA_offload_force);
在判断为是(Y)的情况下,对第一数据包更改包类型(Update Packet Type)为第一包类型,并将第一数据包向FPGA发送;
在判断为否(N)的情况下,对第一数据包进行加密(encrypt package),并将第一数据包向FPGA发送。
FPGA接收到第一数据包时,检查第一数据包的包类型确定是否需要卸载到FPGA进行加密处理(Check Packet Type if need encrypt);
在判断为是(Y)的情况下,对第一数据包进行加密(encrypt package),对加密处理后的第一数据包更改包类型(Update Packet Type),并将第一数据包向QUIC连接的另一端发送(Send package);
在判断为否(N)的情况下,将第一数据包向QUIC连接的另一端发送(Sendpackage)。
在本公开可选的一系统实施例中,该FPGA还可以包括第二数据发送模块,用于在确定CPU建立QUIC连接时,向CPU发送通知参数,通知参数用于指示FPGA的卸载可用。
该CPU还可以包括第二数据接收模块,用于在接收到通知参数的情况下,确定FPGA的卸载可用。
图8为本公开实施例提供的一种基于FPGA的数据处理卸载系统中初始化数据的协作流程示例图,该系统包括CPU、FPGA。如图8所示,FPGA接收Init数据包(Receive InitPackage)时,确定Init数据包的包类型(Check Packet Type Init),在确定CPU建立QUIC连接的基础上,向CPU发送通知参数;
CPU接收通知参数,确定FPGA卸载可用,则设置FPGA卸载可用(FPGA_offload_ready = True)。
在本公开可选的一系统实施例中,该第一数据接收模块,还用于接收第二数据包;
该第一数据卸载模块,还用于在第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对第二数据包进行解密处理,并更改第二数据包为第二包类型;
该第二数据发送模块,还用于向CPU发送解密后的第二数据包。
该第二数据接收模块,还用于接收FPGA发送的第二数据包;
第二数据接收模块,还用于在第二数据包为解密数据包且第二数据包为第二包类型的情况下,对第二数据包进行解包处理。
图9为本公开实施例提供的一种基于FPGA的数据处理卸载系统中数据接收的协作流程示例图,该系统包括CPU、FPGA。如图9所示,FPGA接收到来自QUIC连接另一端的第二数据包(receive packet),以及确定系统的CPU负载(system CPU_load)后,检查第二数据包是否为加密数据包(Is encrypted packet)以及CPU负载是否大于或等于卸载阈值(systemCPU_load≥70%);
在判断为是(Y)的情况下,对第二数据包进行解密(decrypt package),对解密处理后的第二数据包更改包类型(Update Packet Type)为第二包类型,并将第一数据包向CPU发送;
在判断为否(N)的情况下,将第二数据包向CPU发送。
CPU接收第二数据包,并检查第二数据包的包类型确定是否需要进行加密处理(Check Packet encrypt type);
在判断为是(Y)的情况下,对第二数据包进行解密(decrypt package),在对解密处理后的第二数据包进行解包(unpackage data),获得有效载荷;
在判断为否(N)的情况下,对解密处理后的第二数据包进行解包(unpackagedata),获得有效载荷。
本公开提供的基于FPGA的数据处理卸载系统,该系统包括CPU及FPGA,在CPU发送第一数据包时,符合第一硬件卸载条件时将第一数据包更改为第一包类型,并向FPGA发送,FPGA在接收CPU发送的第一数据包时,在第一数据包为第一包类型的情况下可以对第一数据包进行加密处理,从而FPGA可以将第一包类型的第一数据包相关处理任务卸载到硬件执行,通过软硬结合的方式有效降低CPU在数据处理过程中的负载压力,能够合理分配资源占用,减少任务处理时间,进而提升整体数据网络通信效率。
图10为本公开实施例提供的一种电子设备1000的结构示意图,如图10所示,该电子设备1000可以包括处理器1001,存储器1002,存储在存储器1002上并可在处理器1001上运行的程序或指令,该程序或指令被处理器1001执行时实现上述如图1至4,7至9任一所述的基于FPGA的数据处理卸载方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,图10示出的电子设备1000仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
图11为本公开实施例提供的一种电子设备1100的硬件示意图,如图11所示,电子设备1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在ROM(Read Only Memory,只读存储器,)1102中的程序或者从存储部分1108加载到RAM(RandomAccess Memory,随机访问存储器)1103中的程序而执行各种适当的动作和处理。在RAM1103中,还存储有系统操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。I/O(Input /Output,输入/输出)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如CRT(Cathode Ray Tube,阴极射线管)、LCD(Liquid Crystal Display,液晶显示器)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN(Local AreaNetwork,无线网络)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行如图1至4,7至9任一所述的基于FPGA的数据处理卸载方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU1101)执行时,执行本申请的系统中限定的各种功能。
本公开实施例还发送一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述如图1至4,7至9任一所述的基于FPGA的数据处理卸载方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如ROM、RAM、磁碟或者光盘等。
本公开实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述如图1至4,7至9任一所述的基于FPGA的数据处理卸载方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本公开实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本公开实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上述如如图1至4,7至9任一所述的基于FPGA的数据处理卸载方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本公开实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,电子设备,空调器,或者网络设备等)执行本公开各个实施例的方法。
上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本公开的保护之内。
Claims (11)
1.一种基于FPGA的数据处理卸载方法,其特征在于,所述方法应用于现场可编程门阵列FPGA,所述方法包括:
接收CPU发送的第一数据包,所述CPU基于QUIC协议通信;
在所述第一数据包为第一包类型的情况下对所述第一数据包进行加密处理,所述第一包类型由所述CPU在符合第一硬件卸载条件的情况下对所述第一数据包的包类型由初始包类型更改获得;所述初始包类型用于指示所述FPGA不执行数据处理卸载。
2.根据权利要求1所述的方法,其特征在于,所述接收CPU发送的第一数据包之前,所述方法还包括:
在确定与所述CPU建立QUIC连接时,向所述CPU发送通知参数,所述通知参数用于指示所述FPGA的卸载可用。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二数据包;
在所述第二数据包为加密数据包,且符合第二硬件卸载条件的情况下,对所述第二数据包进行解密处理,并更改所述第二数据包为第二包类型;
向所述CPU发送解密后的所述第二数据包。
4.根据权利要求1所述的方法,其特征在于,所述第一硬件卸载条件包括以下至少一个:
所述第一数据包被配置为强制卸载;
所述CPU的负载大于或等于卸载阈值。
5.根据权利要求4所述的方法,其特征在于,所述第一硬件卸载条件还包括:
所述FPGA的卸载可用。
6.一种基于FPGA的数据处理卸载方法,其特征在于,所述方法应用于CPU,所述方法包括:
在符合第一硬件卸载条件的情况下将第一数据包的包类型由初始包类型更改为第一包类型,以指示所述FPGA对所述第一数据包卸载处理;所述初始包类型用于指示所述FPGA不执行数据处理卸载;
向FPGA发送所述第一数据包,所述CPU基于QUIC协议通信。
7.根据权利要求6所述的方法,其特征在于,所述在符合硬件卸载条件的情况下更改第一数据包为第一包类型之前还包括:
在接收到通知参数的情况下,确定所述FPGA的卸载可用。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述FPGA发送的第二数据包;
在所述第二数据包为解密数据包且所述第二数据包为第二包类型的情况下,对所述第二数据包进行解包处理。
9.一种FPGA,其特征在于,所述FPGA包括:
第一数据接收模块,用于接收CPU发送的第一数据包,所述CPU基于QUIC协议通信;
第一数据卸载模块,用于在所述第一数据包为第一包类型的情况下对所述第一数据包进行加密处理,所述第一包类型由所述CPU在符合第一硬件卸载条件的情况下对所述第一数据包的包类型由初始包类型更改获得;所述初始包类型用于指示所述FPGA不执行数据处理卸载。
10.一种CPU,其特征在于,所述CPU包括:
第二数据卸载模块,用于在符合第一硬件卸载条件的情况下将第一数据包的包类型由初始包类型更改为第一包类型,以指示FPGA对所述第一数据包卸载处理;所述初始包类型用于指示所述FPGA不执行数据处理卸载;
第一数据发送模块,用于向FPGA发送所述第一数据包,所述CPU基于QUIC协议通信。
11.一种基于FPGA的数据处理卸载系统,其特征在于,所述系统包括FPGA与CPU,所述CPU基于QUIC协议通信,其中,所述CPU包括:
第二数据卸载模块,用于在符合第一硬件卸载条件的情况下将第一数据包的包类型由初始包类型更改为第一包类型,以指示所述FPGA对所述第一数据包卸载处理;所述初始包类型用于指示所述FPGA不执行数据处理卸载;
第一数据发送模块,用于向FPGA发送所述第一数据包;
所述FPGA包括:
第一数据接收模块,用于接收CPU发送的第一数据包;
第一数据卸载模块,用于在所述第一数据包为第一包类型的情况下对所述第一数据包进行加密处理,所述第一包类型由所述CPU在符合第一硬件卸载条件的情况下对所述第一数据包的包类型由初始包类型更改获得;所述初始包类型用于指示所述FPGA不执行数据处理卸载。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310870029.4A CN116594715B (zh) | 2023-07-14 | 2023-07-14 | 基于fpga的数据处理卸载方法、fpga、cpu及系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310870029.4A CN116594715B (zh) | 2023-07-14 | 2023-07-14 | 基于fpga的数据处理卸载方法、fpga、cpu及系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116594715A CN116594715A (zh) | 2023-08-15 |
| CN116594715B true CN116594715B (zh) | 2023-10-27 |
Family
ID=87604796
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310870029.4A Active CN116594715B (zh) | 2023-07-14 | 2023-07-14 | 基于fpga的数据处理卸载方法、fpga、cpu及系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116594715B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118590327B (zh) * | 2024-08-06 | 2024-11-19 | 江苏元信网安科技有限公司 | 基于fpga卸载的新型高速加密解密系统及方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016161555A1 (zh) * | 2015-04-07 | 2016-10-13 | 华为技术有限公司 | 通信方法和通信装置 |
| CN114238187A (zh) * | 2022-02-24 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种基于fpga的全栈网卡任务处理系统 |
| CN115774616A (zh) * | 2021-09-07 | 2023-03-10 | 英特尔公司 | 用来卸载工作负载执行的技术 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10785020B2 (en) * | 2018-01-19 | 2020-09-22 | Microsoft Technology Licensing, Llc | Hardware offload for QUIC connections |
-
2023
- 2023-07-14 CN CN202310870029.4A patent/CN116594715B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016161555A1 (zh) * | 2015-04-07 | 2016-10-13 | 华为技术有限公司 | 通信方法和通信装置 |
| CN115774616A (zh) * | 2021-09-07 | 2023-03-10 | 英特尔公司 | 用来卸载工作负载执行的技术 |
| CN114238187A (zh) * | 2022-02-24 | 2022-03-25 | 苏州浪潮智能科技有限公司 | 一种基于fpga的全栈网卡任务处理系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116594715A (zh) | 2023-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11196677B2 (en) | Heterogeneous multi-protocol stack method, apparatus, and system | |
| JP2015130199A (ja) | ウェブソケット通信の分散エミュレーションを通してウェブアプリケーションサポートを提供する企業クライアント/サーバーシステム及び方法 | |
| KR20040034398A (ko) | 무선 통신 시스템에서 무선 링크 제어 중지시 트리거된리세트 처리방법 및 이 방법을 구현하기 위한 무선 장치 | |
| CN116594715B (zh) | 基于fpga的数据处理卸载方法、fpga、cpu及系统 | |
| Guitart et al. | Session-based adaptive overload control for secure dynamic web applications | |
| CN114301996A (zh) | 传输数据处理方法及装置 | |
| CN112822724A (zh) | 一种报文转发方法及装置 | |
| WO2021051673A1 (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
| CN107529186A (zh) | 多通道传输上行数据的方法及系统、客户端、服务器 | |
| US10171634B2 (en) | State transition method and apparatus based on ROHC, and storage medium | |
| US9094259B2 (en) | Networking method and device via network interface of data card equipment | |
| CN110708234A (zh) | 消息发送的处理方法、消息发送的处理装置及存储介质 | |
| CN112491903B (zh) | 多系统间对账方法、装置及系统 | |
| CN113163025B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
| CN117615042B (zh) | 数据通信方法、装置、计算机设备及存储介质 | |
| CN107612957A (zh) | 多通道传输下行数据的方法及系统、客户端、服务器 | |
| US20180032302A1 (en) | Remoting client having gpu off-loader | |
| CN116367308B (zh) | 确定终端数据传输方式的方法、装置以及电子设备 | |
| US20230344894A1 (en) | Packet based in-line processing for data center environments | |
| CN111092888A (zh) | 数据同时互通方法、装置、设备及存储介质 | |
| CN109587087B (zh) | 一种报文处理方法及系统 | |
| CN115982084A (zh) | 数据传输方法及装置、通信设备、及存储介质 | |
| CN116467249A (zh) | 一种基于cpu和fpga的数据传输处理方法及装置 | |
| WO2023179019A1 (zh) | 支持低时延业务的用户面配置方法、系统、基站及介质 | |
| CN110730126B (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| EE01 | Entry into force of recordation of patent licensing contract | ||
| EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20230815 Assignee: Tianyiyun Technology Co.,Ltd. Assignor: CHINA TELECOM Corp.,Ltd. Contract record no.: X2024110000040 Denomination of invention: Data processing offloading method based on FPGA, FPGA, CPU and system Granted publication date: 20231027 License type: Common License Record date: 20240914 |