CN103200128B - 一种网络包处理的方法、装置和系统 - Google Patents

一种网络包处理的方法、装置和系统 Download PDF

Info

Publication number
CN103200128B
CN103200128B CN201310112331.XA CN201310112331A CN103200128B CN 103200128 B CN103200128 B CN 103200128B CN 201310112331 A CN201310112331 A CN 201310112331A CN 103200128 B CN103200128 B CN 103200128B
Authority
CN
China
Prior art keywords
task
gpu
network packet
video memory
instruction message
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
CN201310112331.XA
Other languages
English (en)
Other versions
CN103200128A (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.)
Guojiu Big Data Co ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310112331.XA priority Critical patent/CN103200128B/zh
Publication of CN103200128A publication Critical patent/CN103200128A/zh
Application granted granted Critical
Publication of CN103200128B publication Critical patent/CN103200128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种网络包处理的方法、装置和系统,能够减少系统的响应时间,节省系统资源,提高网络包处理的效率。所述方法包括:接收网络包,并将其缓存在内存缓冲区的第一地址中;根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;发送第一指示消息,以使通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。本发明适用于计算机领域。

Description

一种网络包处理的方法、装置和系统
技术领域
本发明涉及计算机领域,尤其涉及一种网络包处理的方法、装置和系统。
背景技术
随着网络服务和应用的多样化,网络包处理的方法也呈现多样化。传统的利用CPU(Central Processing Unit,中央处理器)处理网络包的方法已经不能满足网络传输速度的需求。
与此同时,GPU(Graphics Processing Unit,图形处理器)正在以超过摩尔定律的速度高速发展,浮点运算能力远远超过CPU,同时GPU访问显存的带宽也超过CPU访问内存的带宽,不仅在速度方面大大提高,且具有流处理、高密度并行运算、可编程流水线等特性,软件层面上利用GPU进行通用计算的平台也日益成熟,尤其是提出面向异构系统并行编程的开放式统一标准OpenCL(Open Computing Language,开放运算语言),大大简化了编程难度和开发工作量。
正是由于GPU具有高效的并行性和灵活的可编程性,基于GPU的网络包处理的方法成为人们研究的热点。现有技术中存在一种基于CPU+GPU异构系统来处理网络包的方案,具体如下:
网络包由多个网络协议任务构成,当内核中有需要GPU处理的任务,创建GPU任务请求放入CPU内存的请求队列中,接着CPU的用户态程序读取所述请求队列中的GPU任务请求,然后调度GPU线程将所述GPU任务请求所请求的任务从内存拷贝到显存报文缓存区,在所述GPU完成相应的任务后,将执行结果从GPU的显存拷贝到CPU内存的响应队列中,通知内核继续处理。
该方案虽然可以加速内核中的网络协议任务,如路由查找、SSL(Secure Sockets Layer,安全套接层)、IPSec(Internet ProtocolSecurity,网络协议安全性)、DPI(Deep Packet Inspection,深度包检测)、加密文件系统、重复数据块查找等任务,但是整个过程系统的响应时间较长,导致网络包处理的效率较低,并且整个过程消耗资源较多。
发明内容
本发明的实施例提供一种网络包处理的方法、装置和系统,能够减少系统的响应时间,节省系统资源,提高网络包处理的效率。为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种网络包处理的方法,所述方法包括:
接收网络包,并将其缓存在内存缓冲区的第一地址中;
根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;
控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;
发送第一指示消息,以使通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
第二方面,提供一种网络包处理的方法,所述方法包括:
接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址;
根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;
根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;
判断所述任务是否为所述GPU所支持的任务;
若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务;
若所述任务不是所述GPU所支持的任务,执行所述任务。
在第一种可能的实现方式中,根据第二方面,所述判断所述任务是否为所述GPU所支持的任务,具体包括:
确定所述任务是否为读取完整网络包做计算的任务;
若所述任务是读取完整网络包做计算的任务,确定所述任务是所述GPU所支持的任务;
若所述任务不是读取完整网络包做计算的任务,确定所述任务不是所述GPU所支持的任务。
在第二种可能的实现方式中,根据第二方面或第一种可能的实现方式,若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
在第三种可能的实现方式中,根据第二种可能的实现方式,所述第一条件具体为所述任务队列满;
所述第一条件具体为所述任务队列的定时器超时。
第三方面,提供一种网络包处理的装置,所述装置包括接收单元、存储单元、确定单元、控制单元、发送单元;
所述接收单元,用于接收网络包;
所述存储单元,用于将所述网络包缓存在内存缓冲区的第一地址中;
所述确定单元,用于根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;
所述控制单元,用于控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;
所述发送单元,用于发送第一指示消息,以使得通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
第四方面,提供一种网络包处理的装置,所述装置包括接收单元、读取单元、确定单元、判断单元、控制单元、执行单元;
所述接收单元,用于接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址;
所述读取单元,用于根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;
所述确定单元,用于根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;
所述判断单元,用于判断所述任务是否为所述GPU所支持的任务;
所述控制单元,用于若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务;
所述执行单元,用于若所述任务不是所述GPU所支持的任务,执行所述任务。
在第一种可能的实现方式中,根据第四方面,所述判断单元判断所述任务是否为所述GPU所支持的任务,具体包括:
确定所述任务是否为需要读取完整网络包做计算的任务;
若所述任务是读取完整网络包做计算的任务,确定所述任务是所述GPU所支持的任务;
若所述任务不是读取完整网络包做计算的任务,确定所述任务不是所述GPU所支持的任务。
在第二种可能的实现方式中,根据第四方面或第一种可能的实现方式,若所述任务是所述GPU所支持的任务,所述控制单元控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
在第三种可能的实现方式中,根据第二种可能的实现方式,所述第一条件具体为所述任务队列满;
所述第一条件具体为所述任务队列的定时器超时。
第五方面,提供了一种网络包处理的系统,所述系统包括网卡、中央处理器CPU、显卡、内存、直接内存访问DMA控制器、芯片组、PCIe总线,其中,所述显卡包括图像处理器GPU和显存,所述网卡和所述显卡连接到同一个PCIe总线,通过芯片组和CPU通信,包括:
网卡接收网络包,并将其缓存在内存缓冲区的第一地址中;网卡根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;网卡控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;网卡发送第一指示消息给中央处理器CPU,以使所述CPU根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址;CPU接收所述网卡发送的所述第一指示消息;CPU根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;CPU根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;CPU判断所述任务是否为所述GPU所支持的任务;若所述任务是所述GPU所支持的任务,CPU控制所述GPU执行所述任务;若所述任务不是所述GPU所支持的任务,CPU执行所述任务
本发明实施例基于上述方案,利用统一虚拟地址空间UVA技术和图形处理器GPU直连技术实现网卡和GPU的显存的直通,可以将网络包从网卡直接写入GPU的显存,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
附图说明
图1为本发明实施例提供的一种数据包处理的方法;
图2为本发明实施例提供的另一种数据包处理的方法;
图3为本发明实施例提供的一种网络包处理的系统;
图4为本发明实施例提供的又一种网络包处理的方法;
图5为本发明实施例提供的又一种网络包处理的方法;
图6为本发明实施例提供的一种CPU的模块框架图;
图7为本发明实施例提供的一种网络包处理的装置;
图8为本发明实施例提供的另一种网络包处理的装置。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
本发明实施例提供一种网络包处理的方法,具体如图1所示,所述方法包括:
101、接收网络包,并将其缓存在内存缓冲区的第一地址中。
需要说明的是,所述第一地址中的“第一”不具有任何特殊的含义,仅说明是内存缓冲区中的一个具体的地址。
102、根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址。
具体的,本发明实施例基于统一虚拟地址空间UVA(Unifiedvirtual addressing,统一虚拟地址空间)技术,将内存资源和显卡上的显存资源当做一块统一的存储器池,存储器地址统一编码,操作系统可像访问内存般对显存读写。所以所述网络包处理的装置中存储了内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,在接收到网络包后,可以根据缓存所述网络数据包的第一地址,通过查找预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址。
需要说明的是,所述网络包处理的装置具体可以是网卡,本发明实施例对此不作具体限定。
需要说明的是,所述GPU的显存实质上是指显卡上与GPU相连接的显存,而并非GPU内部包含的显存。因为每个GPU都有与其连接的显存,所以可以称与GPU相连接的显存为“GPU的显存”。
103、控制直接内存访问DMA(Direct Memory Access,直接内存访问)控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中。
具体的,本发明还利用GPU直连技术,允许其他PCIe(PeripheralComponent Interconnect Express,高速外设元件互联方式,一种最新的总线和接口标准)设备,如网络适配器、固态硬盘等通过DMA直接读写显存,就像以前通过DMA直接读写内存一样。所以,所述网络包处理的装置可以控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中。
正是基于所述UVA技术和所述GPU直连技术,所述网络包处理的装置在接收到网络包后,才最终将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中,实现所述网络包处理的装置和GPU的显存的直通。
104、发送第一指示消息,以使通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
具体的,在所述控制所述DMA将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中后,可能会产生硬中断通知通信对端处理所述数据包,即发送第一指示消息给所述通信对端,所述第一指示消息指示所述CPU处理所述数据包。
具体的,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
本发明实施例还提供一种网络包处理的方法,具体如图2所示,所述方法包括:
201、接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址。
202、根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息。
具体的,所述第一指示消息可能由通信对端的硬中断产生,所述网络包处理的装置在接收到所述第一指示消息后,可能会产生软中断启动对网络包的处理,然后从所述GPU的显存中读取所述网络包的包头信息,也可能是直接根据所述第一指示消息携带的所述物理地址,从所述GPU的显存中读取所述网络包的包头信息,本发明实施例对此不作具体限定,仅说明在接收第一指示消息后,还从所述GPU的显存中读取所述网络包的包头信息。
具体的,因为存在如图1所示的实施例,在接收到网络包后,将所述网络包写入所述GPU的显存中的物理地址中,故本发明实施例中,在所述数据包处理的装置接收到第一指示消息后,可以直接从所述GPU的显存中读取所述网络包的包头信息。
具体的,本发明实施例中,所述网络包处理的装置具体可以为中央处理器CPU,本发明实施例对此不作具体限定。
203、根据所述网络包的包头信息,确定当前要对所述网络包执行的任务。
具体的,所述网络包的包头信息指示了当前要对所述网络包执行的任务,因此可以根据所述网络包的包头信息,确定当前要对网络包执行的任务。
204、判断所述任务是否为所述GPU所支持的任务。
具体的,因为所述GPU的浮点运算能力远远超过CPU,同时GPU访问显存的带宽也超过CPU访问内存的带宽,不仅在速度方面大大提高,且具有流处理、高密度并行运算、可编程流水线等特性,所以对于计算量大的网络协议任务,可以确定是所述GPU所支持的任务,由GPU处理;而对于计算量小的网络协议任务,可以确定不是所述GPU所支持的任务,可由所述网络包处理的装置处理。
具体的,一般将需要读取完整网络包做计算的任务视为计算量大的网络协议任务,比如网络层的IPSec加/解密任务、传输层的SSL加/解密任务、应用层的DPI深度包检测任务;而对于仅需读取包头数据的轻量级协议的任务,可视为计算量小的网络协议任务。
本发明实施例对如何判断所述任务是否为所述GPU所支持的任务不作具体限定,仅说明因为所述任务可以通过所述网络包处理的装置处理,也可以通过GPU处理,故此时首先判断所述任务是否为所述GPU所支持的任务。
若所述任务是所述GPU所支持的任务,执行步骤205;
若所述任务不是所述GPU所支持的任务,执行步骤206。
205、若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务。
具体的,若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务可以包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务。
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
具体的,所述第一条件可以为任务队列满或所述任务队列的定时器超时。
当然,控制所述GPU执行所述任务的方法还可以有其它,本发明实施例对此不作具体限定。
206、若所述任务不是所述GPU所支持的任务,执行所述任务。
具体的,若所述任务不是所述GPU所支持的任务,则所述网络包处理的装置可以直接读显存执行所述任务。
本发明实施例基于上述方案,利用统一虚拟地址空间UVA技术和图形处理器GPU直连技术,实现网卡和GPU的显存的直通,可以将网络包从网卡直接写入GPU的显存,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
实施例二、
本发明实施例提供一种网络包处理的方法,具体在如图3所示的网络包处理的系统300下进行说明,所述网络包处理的系统具体可以包括网卡301、显卡302、CPU303、内存304、芯片组305、PCIe总线306、DMA控制器307,其中,所述显卡302包括GPU3021和显存3022。网卡301和显卡302连接到同一个PCIe总线306,通过芯片组305和CPU303通信。所述方法如图4所示,包括:
401、网卡接收网络包,并将其缓存在内存缓冲区的第一地址中。
402、网卡根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址。
具体的,本发明实施例基于统一虚拟地址空间UVA(Unifiedvirtual addressing,统一虚拟地址空间)技术,将内存资源和显卡上的显存资源当做一块统一的存储器池,存储器地址统一编码,操作系统可像访问内存般对显存读写。所以,所述网卡中存储了内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,在接收到网络包后,可以根据所述网络包携带的所述第一地址,通过查找地址映射关系,确定所述网络包在所述GPU的显存中的物理地址。
需要说明的是,所述GPU的显存实质上是指显卡上与GPU相连接的显存,而并非GPU内部包含的显存。因为每个GPU都有与其连接的显存,所以可以称与GPU相连接的显存为“GPU的显存”。
403、网卡控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中。
具体的,本发明还利用所述GPU直连技术,允许其他PCIe设备,如网络适配器、固态硬盘等通过DMA直接读写显存,就像以前通过DMA直接读写内存一样。所以,所述网卡可以控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中。
正是基于所述UVA技术和所述GPU直连技术,所述网卡在接收到网络包后,才最终将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中,实现所述网卡和GPU的显存的直通。
404、网卡发送第一指示消息给中央处理器CPU,以使通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
具体的,在所述网卡控制所述DMA将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中后,可能会产生硬中断通知通信对端处理所述数据包,即发送第一指示消息给所述CPU,所述第一指示消息指示所述CPU处理所述数据包。
具体的,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
405、CPU接收所述网卡发送的第一指示消息。
406、CPU根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息。
具体的,所述第一指示消息可能由网卡的硬中断产生,所述CPU在接收到所述第一指示消息后,可能会产生软中断启动对网络包的处理进程,然后从所述GPU的显存中读取所述网络包的包头信息,也可能是直接根据所述第一指示消息携带的所述物理地址,从所述GPU的显存中读取所述网络包的包头信息,本发明实施例对此不作具体限定,仅说明在接收第一指示消息后,还从所述GPU的显存中读取所述网络包的包头信息。
具体的,因为网卡在接收到网络包后,将所述网络包写入所述GPU的显存中的物理地址中,故在所述CPU接收第一指示消息后,可以直接从所述GPU的显存中读取所述网络包的包头信息。
407、CPU根据所述网络包的包头信息,确定当前要对所述网络包执行的任务。
具体的,所述网络包的包头信息指示了当前要对所述网络包执行的任务,因此可以根据所述网络包的包头信息,确定当前要对网络包执行的任务。
408、CPU判断所述任务是否为所述GPU所支持的任务。
具体的,因为所述GPU的浮点运算能力远远超过CPU,同时GPU访问显存的带宽也超过CPU访问内存的带宽,不仅在速度方面大大提高,且具有流处理、高密度并行运算、可编程流水线等特性,所以对于计算量大的网络协议任务可以确定是所述GPU所支持的任务,由GPU处理;而对于计算量小的网络协议任务,可以确定不是所述GPU所支持的任务,可由所述CPU处理。
具体的,一般将需要读取完整网络包做计算的任务视为计算量大的网络协议任务,比如网络层的IPSec加/解密任务、传输层的SSL加/解密任务、应用层的DPI深度包检测任务。而对于仅需读取包头数据的轻量级协议的任务,可视为计算量小的网络协议任务。
本发明实施例对如何判断所述任务是否为所述GPU所支持的任务不作具体限定,仅说明因为所述任务可以通过所述CPU处理,也可以通过GPU处理,故此时首先判断所述任务是否为所述GPU所支持的任务。
若所述任务是所述GPU所支持的任务,执行步骤409;
若所述任务不是所述GPU所支持的任务,执行步骤410。
409、若所述任务是所述GPU所支持的任务,CPU控制所述GPU执行所述任务。
具体的,若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务可以包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务。
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
具体的,所述第一条件可以为任务队列满或所述任务队列的定时器超时。
410、若所述任务不是所述GPU所支持的任务,CPU执行所述任务。
需要说明的是,网络包由多个网络协议任务构成,上述步骤406-410是网络包处理过程中,一个网络协议任务的处理方法,下面以所述GPU所支持的任务仅为网络协议栈的网络层的IPSec加/解密、传输层的SSL加/解密、应用层的DPI深度包检测这几个典型协议任务为例,描述CPU接收网卡发送的第一指示消息后,对网络包进行处理的过程,具体如图5所示,包括:
501、CPU接收所述网卡发送的第一指示消息,其中,所述第一指示消息携带网络包在GPU的显存中的物理地址。
502、CPU根据所述第一指示消息,从所述GPU的显存中读取所述网络包的网络层的包头信息。
具体的,因为网卡在接收到网络包后,将所述网络包写入所述GPU的显存中的物理地址中,故在所述CPU接收第一指示消息后,可以直接从所述GPU的显存中读取所述网络包的包头信息。
503、CPU根据所述网络层的包头信息,确定当前要对所述网络包执行的网络层任务。
若所述网络层任务是IPSec加/解密,执行步骤504;
若所述网络层任务不是IPSec加/解密,执行步骤508。
504、若所述网络层任务是IPSec加/解密,确定所述任务为所述GPU所支持的任务。
需要说明的是,本发明实施例仅以所述GPU所支持的任务为网络层的IPSec加/解密、传输层的SSL加/解密、应用层的DPI深度包检测这几个典型协议任务为例做示例性说明,所以若所述网络层是IPSec加密,确定所述IPSec任务为所述GPU所支持的任务,即由所述GPU处理该任务。
当然,所述GPU所支持的任务包括但不限于上述列举的网络协议任务,本发明实施例仅是示例性的说明,对所述GPU支持的网络协议任务不作具体限定。
505、将所述任务放入所述任务对应的任务队列。
具体的,如图6所示,所述CPU包括网络协议栈和GPU调度模块。
若所述CPU判断当前要对网络包执行的任务不是所述GPU所支持的任务,直接通过网络协议栈对所述任务进行处理;
若所述CPU判断当前要对网络包执行的任务是所述GPU所支持的任务,则通过GPU调用模块对所述任务进行处理。
其中,所述GPU调用模块由3个子模块组成,分别是队列管理、GPU线程调度和协议代理。
CPU为每个网络协议任务创建了相应的任务队列,队列管理模块负责管理这些任务队列,其中,在确定当前要对网络包执行的任务为所述GPU所支持的任务后,,将所述任务放入对应的任务队列。
若是网络层的IPSec任务,则放入CPU的IPSec任务队列;
若是传输层的SSL任务,则放入CPU的SSL任务队列;
若是应用层的DPI任务,则放入CPU的DPI任务队列。
506、若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理,执行所述任务队列中的任务。
具体的,所述第一条件可以为任务队列满,或任务队列的定时器超时,也可以是任务队列中的任务达到预设的某个数值,本发明实施例对所述第一条件不作具体限定,仅说明在所述任务队列满足第一条件后,发送第二指示消息给GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务。
其中,步骤506由图6所示的GPU线程调度模块执行。
507、获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
具体的,在所述GPU执行完成任务队列中的任务后,还需要返回CPU的网络协议栈继续处理网络协议任务,图6所示的协议代理持有每个CPU任务队列执行完成后下一步协议处理的接口函数地址,它负责获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在显存中的存储地址后,交给协议栈继续处理。
若获取的是IPSec任务队列的执行结果,此时根据下一步协议处理的接口函数地址,转去执行步骤510;
若获取的是SSL任务队列的执行结果,此时根据下一步协议处理的接口函数地址,转去执行步骤515;
若获取的是DPI任务队列的执行结果,此时根据下一步协议处理的接口函数地址,转去执行步骤520。
508、若所述网络层任务不是IPSec加/解密,确定所述任务不是所述GPU所支持的任务。
509、CPU执行所述网络层的所述任务。
需要说明的是,网络层任务可能包含多个,在将对所述网络包要执行的网络层任务全部执行完毕后,才会继续处理上层传输层的任务,本发明实施例中步骤503-509仅是示例性的说明CPU确定当前对网络包执行的网络层任务后所执行的动作,并不对CPU对所述网络包的网络层的所有任务的处理过程一一描述。
510、CPU从GPU的显存中读取所述网络包的传输层的包头信息。
511、CPU根据所述传输层的包头信息,确定当前要对所述网络包执行的传输层任务。
若所述传输层任务是SSL加/解密,执行步骤512;
若所述传输层任务不是SSL加/解密,执行步骤513。
512、若所述任务是SSL加/解密,确定所述SSL任务为所述GPU所支持的任务。
具体的,此时转去执行步骤505-507。
513、若所述传输层任务不是SSL加/解密,确定所述任务为不是所述GPU所支持的任务。
514、CPU执行所述传输层的所述任务。
需要说明的是,传输层任务可能包含多个,在将对所述网络包要执行的传输层任务全部执行完毕后,才会继续处理上层应用层的任务,本发明实施例中步骤511-514仅是示例性的说明CPU确定当前对网络包执行的传输层任务后所执行的动作,并不对CPU对所述网络包的传输层所有任务的处理过程一一描述。
515、CPU从GPU的显存中读取所述网络包的应用层的包头信息。
516、CPU根据所述应用层的包头信息,确定当前对所述网络包执行的应用层任务。
具体的,若所述应用层任务是DPI深度包检测,执行步骤517;
若所述应用层不是DPI深度包检测,执行步骤518。
517、若所述应用层任务是DPI深度包检测,确定所述任务是所述GPU所支持的任务。
具体的,此时转去执行步骤505-507。
518、若所述应用层任务不是DPI深度包检测,确定所述DPI任务不是所述GPU所支持的任务。
519、CPU执行所述应用层的所述任务。
需要说明的是,应用层任务可能包含多个,在将对所述网络包执行的应用层任务全部执行完毕后,才会继续执行网络包的用户处理,本发明实施例中步骤516-519仅是示例性的说明CPU确定当前对网络包执行的应用层任务后所执行的动作,并不对CPU对所述网络包的应用层所有任务的处理过程一一描述。
520、CPU执行网络包的用户数据处理。
具体的,在完成上述的网络协议任务处理后,CPU按照应用业务逻辑对所述网络包的用户数据进行处理,比如报文统计,包转发等。如果是包转发业务,所述CPU传递所述网络包在显存中的存储地址给网卡,由网卡控制所述DMA直接从显存读取网络包,进而转发出去。
需要说明的是,若所述GPU所支持的任务为网络协议栈的网络层的IPSec加/解密、传输层的SSL加/解密、应用层的DPI深度包检测之外的其它任务时,可以依据上述实施例的思想处理网络数据包,本发明实施例对此不作具体限定。
本发明实施例提供一种网络包处理的方法,所述方法包括:网卡接收网络包,并将其缓存在内存缓冲区的第一地址中;网卡根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;网卡控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;网卡发送第一指示消息给中央处理器CPU,以使所述CPU根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址;CPU接收所述网卡发送的所述第一指示消息;CPU根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;CPU根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;CPU判断所述任务是否为所述GPU所支持的任务;若所述任务是所述GPU所支持的任务,CPU控制所述GPU执行所述任务;若所述任务不是所述GPU所支持的任务,CPU执行所述任务。
基于本发明实施例提供的网络包处理的方法,利用统一虚拟地址空间UVA技术和图形处理器GPU直连技术,实现网卡和GPU的显存的直通,可以将网络包从网卡直接写入GPU的显存,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
实施例三、
本发明实施例提供一种网络包处理的装置700,具体如图7所示,包括接收单元701、存储单元702、确定单元703、控制单元704、发送单元705。
所述接收单元701,用于接收网络包。
所述存储单元702,用于将所述网络包缓存在内存缓冲区的第一地址中。
所述确定单元703,用于根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址。
所述控制单元704,用于控制直接内存访问DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中。
所述发送单元705,用于发送第一指示消息,以使得通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
具体的,所述网络包处理的装置700可以为网卡,本发明实施例对此不作具体限定。
具体的,通过所述网络包处理的装置700进行网络包处理的方法可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
基于本发明实施例提供的网络包处理的装置,利用统一虚拟地址空间UVA技术和图形处理器GPU直连技术,可以实现网卡和GPU的显存的直通,可以将网络包从网卡直接写入GPU的显存,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
实施例四、
本发明实施例提供一种网络包处理的装置800,具体如图8所示,所述装置800包括接收单元801、读取单元802、确定单元803、判断单元804、控制单元805、执行单元806。
所述接收单元801,用于接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址。
所述读取单元802,用于根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息。
所述确定单元803,用于根据所述网络包的包头信息,确定当前要对所述网络包执行的任务。
所述判断单元804,用于判断所述任务是否为所述GPU所支持的任务。
所述控制单元805,用于若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务。
所述执行单元806,用于若所述任务不是所述GPU所支持的任务,执行所述任务。
进一步的,所述判断单元804判断所述任务是否为所述GPU所支持的任务,具体包括:
确定所述任务是否为需要读取完整网络包做计算的任务。
若所述任务是读取完整网络包做计算的任务,确定所述任务是所述GPU所支持的任务;
若所述任务不是读取完整网络包做计算的任务,确定所述任务不是所述GPU所支持的任务。
进一步的,若所述任务是所述GPU所支持的任务,所述控制单元805控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
进一步的,所述第一条件具体为所述任务队列满;
所述第一条件具体为所述任务队列的定时器超时。
具体的,所述网络包处理的装置800具体可以为中央处理器CPU,本发明实施例对此不作具体限定。
具体的,通过所述网络包处理的装置800进行网络包处理的方法可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
基于本发明实施例提供的所述网络包处理的装置,由于对网络包进行处理时,均可以直接访问所述GPU的显存处理所述网络包,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
实施例五、
本发明实施例提供一种网络包处理的系统300,具体如图3所示,所述系统300包括网卡301、中央处理器CPU303、显卡302、内存304、芯片组305、PCIe总线306、DMA控制器307,其中所述显卡302包括图形处理器GPU3021和显存3022,所述网卡301和所述显卡302连接到同一个PCIe总线306,通过芯片组305和CPU303通信,包括:
网卡301接收网络包,并将其缓存在内存缓冲区的第一地址中。
网卡301根据所述内存缓冲区的第一地址和预存储的内存304缓冲区的地址与图形处理器GPU3021的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU3021的显存中的物理地址。
网卡301控制直接内存访问DMA控制器307,将所述网络包写入所述确定的所述网络包在所述GPU3021的显存中的物理地址中。
网卡301发送第一指示消息给中央处理器CPU303,以使所述CPU303根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU3021的显存中的物理地址。
CPU303接收所述网卡301发送的所述第一指示消息。
CPU303根据所述第一指示消息,从所述GPU3021的显存中读取所述网络包的包头信息。
CPU303根据所述网络包的包头信息,确定当前要对所述网络包执行的任务。
CPU303判断所述任务是否为所述GPU3021所支持的任务。
若所述任务是所述GPU3021所支持的任务,CPU303控制所述GPU3021执行所述任务。
若所述任务不是所述GPU3021所支持的任务,CPU303执行所述任务。
具体的,通过所述网卡301和所述CPU303进行网络包处理的方法可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
基于本发明实施例提供的网络包处理的系统,利用统一虚拟地址空间UVA技术和图形处理器GPU直连技术可以实现网卡和GPU的显存的直通,可以将网络包从网卡直接写入GPU的显存,减少了GPU处理网络协议任务时数据的拷贝次数,节省了系统资源,提高了网络包处理的效率,同时避免了将网络包写入内存时通过系统的桥接芯片组所带来的系统延时,在一定程度上降低了网卡的丢包率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (9)

1.一种网络包处理的方法,其特征在于,所述方法包括:
接收网络包,并将其缓存在内存缓冲区的第一地址中;
根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;其中,所述GPU的显存为显卡上与所述GPU相连接的显存;所述地址映射关系为基于统一虚拟地址空间UVA技术,将内存资源和所述显卡上的显存资源作为统一的存储器池统一编码得到;
基于GPU直连技术,允许其他高速外设元件互联方式PCIe设备通过直接内存访问DMA直接读写显存,控制DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;
发送第一指示消息,以使通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
2.一种网络包处理的方法,其特征在于,所述方法包括:
接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址;所述GPU的显存为显卡上与所述GPU相连接的显存;
根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;
根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;
根据所述任务的计算量大小,判断所述任务是否为所述GPU所支持的任务;
若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务;
若所述任务不是所述GPU所支持的任务,执行所述任务;
其中,若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
3.根据权利要求2所述的方法,其特征在于,所述判断所述任务是否为所述GPU所支持的任务,具体包括:
确定所述任务是否为读取完整网络包做计算的任务;
若所述任务是读取完整网络包做计算的任务,确定所述任务是所述GPU所支持的任务;
若所述任务不是读取完整网络包做计算的任务,确定所述任务不是所述GPU所支持的任务。
4.根据权利要求2或3所述的方法,其特征在于,所述第一条件具体为所述任务队列满;
所述第一条件具体为所述任务队列的定时器超时。
5.一种网络包处理的装置,其特征在于,所述装置包括接收单元、存储单元、确定单元、控制单元、发送单元;
所述接收单元,用于接收网络包;
所述存储单元,用于将所述网络包缓存在内存缓冲区的第一地址中;
所述确定单元,用于根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;其中,所述GPU的显存为显卡上与所述GPU相连接的显存;所述地址映射关系为基于统一虚拟地址空间UVA技术,将内存资源和所述显卡上的显存资源作为统一的存储器池统一编码得到;
所述控制单元,用于基于GPU直连技术,允许其他高速外设元件互联方式PCIe设备通过直接内存访问DMA直接读写显存,控制DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;
所述发送单元,用于发送第一指示消息,以使得通信对端根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址。
6.一种网络包处理的装置,其特征在于,所述装置包括接收单元、读取单元、确定单元、判断单元、控制单元、执行单元;
所述接收单元,用于接收第一指示消息,其中,所述第一指示消息携带网络包在图形处理器GPU的显存中的物理地址;所述GPU的显存为显卡上与所述GPU相连接的显存;
所述读取单元,用于根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;
所述确定单元,用于根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;
所述判断单元,用于根据所述任务的计算量大小,判断所述任务是否为所述GPU所支持的任务;
所述控制单元,用于若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务;
所述执行单元,用于若所述任务不是所述GPU所支持的任务,执行所述任务;
其中,若所述任务是所述GPU所支持的任务,所述控制单元控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
7.根据权利要求6所述的装置,其特征在于,所述判断单元判断所述任务是否为所述GPU所支持的任务,具体包括:
确定所述任务是否为需要读取完整网络包做计算的任务;
若所述任务是读取完整网络包做计算的任务,确定所述任务是所述GPU所支持的任务;
若所述任务不是读取完整网络包做计算的任务,确定所述任务不是所述GPU所支持的任务。
8.根据权利要求6或7所述的装置,其特征在于,所述第一条件具体为所述任务队列满;
所述第一条件具体为所述任务队列的定时器超时。
9.一种网络包处理的系统,其特征在于,所述系统包括网卡、中央处理器CPU、显卡、内存、直接内存访问DMA控制器、芯片组、PCIe总线,其中,所述显卡包括图像处理器GPU和显存,所述网卡和所述显卡连接到同一个PCIe总线,通过芯片组和CPU通信,包括:
网卡接收网络包,并将其缓存在内存缓冲区的第一地址中;网卡根据所述内存缓冲区的第一地址和预存储的内存缓冲区的地址与图形处理器GPU的显存中的物理地址的地址映射关系,确定所述网络包在所述GPU的显存中的物理地址;网卡基于GPU直连技术,允许其他高速外设元件互联方式PCIe设备通过直接内存访问DMA直接读写显存,控制DMA控制器,将所述网络包写入所述确定的所述网络包在所述GPU的显存中的物理地址中;网卡发送第一指示消息给中央处理器CPU,以使所述CPU根据所述第一指示消息处理所述网络包,其中,所述第一指示消息携带所述确定的所述网络包在所述GPU的显存中的物理地址;CPU接收所述网卡发送的所述第一指示消息;CPU根据所述第一指示消息,从所述GPU的显存中读取所述网络包的包头信息;CPU根据所述网络包的包头信息,确定当前要对所述网络包执行的任务;CPU根据所述任务的计算量大小,判断所述任务是否为所述GPU所支持的任务;若所述任务是所述GPU所支持的任务,CPU控制所述GPU执行所述任务;若所述任务不是所述GPU所支持的任务,CPU执行所述任务;
其中,所述GPU的显存为显卡上与所述GPU相连接的显存;所述地址映射关系为基于统一虚拟地址空间UVA技术,将内存资源和所述显卡上的显存资源作为统一的存储器池统一编码得到;
若所述任务是所述GPU所支持的任务,控制所述GPU执行所述任务具体包括:
将所述任务放入所述任务对应的任务队列;
若所述任务队列满足第一条件,发送第二指示消息给所述GPU,所述第二指示消息指示所述GPU并发执行所述任务队列中的任务,其中,所述第二指示消息携带所述任务队列中的任务在所述GPU的显存中的物理地址,以使得所述GPU根据所述任务队列中的任务在所述GPU的显存中的物理地址,执行所述任务队列中的任务;
获取所述GPU执行所述任务队列中的任务后的执行结果和所述执行结果在所述GPU的显存中的物理地址。
CN201310112331.XA 2013-04-01 2013-04-01 一种网络包处理的方法、装置和系统 Active CN103200128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310112331.XA CN103200128B (zh) 2013-04-01 2013-04-01 一种网络包处理的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310112331.XA CN103200128B (zh) 2013-04-01 2013-04-01 一种网络包处理的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN103200128A CN103200128A (zh) 2013-07-10
CN103200128B true CN103200128B (zh) 2016-12-28

Family

ID=48722491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310112331.XA Active CN103200128B (zh) 2013-04-01 2013-04-01 一种网络包处理的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN103200128B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559078B (zh) * 2013-11-08 2017-04-26 华为技术有限公司 Gpu虚拟化实现方法以及顶点数据缓存方法和相关装置
CN104063344B (zh) 2014-06-20 2018-06-26 华为技术有限公司 一种存储数据的方法及网络接口卡
CN104239121B (zh) * 2014-08-28 2017-11-21 浙江云巢科技有限公司 显卡重定向系统和利用该系统实现图形显示的方法
CN104363402B (zh) * 2014-10-27 2017-11-24 同辉佳视(北京)信息技术股份有限公司 一种快速显示视频的方法及设备
CN104539540A (zh) * 2015-01-15 2015-04-22 浪潮(北京)电子信息产业有限公司 一种基于图形处理单元gpu的路由方法和设备
WO2017035813A1 (zh) * 2015-09-02 2017-03-09 华为技术有限公司 一种数据访问方法、装置及系统
CN107102957A (zh) * 2016-02-22 2017-08-29 深圳市知穹科技有限公司 一种基于gpu与nic之间的内存高速直接交换的方法及系统
CN107124286B (zh) * 2016-02-24 2020-05-26 深圳市知穹科技有限公司 一种海量数据高速处理、交互的系统及方法
WO2018035856A1 (zh) * 2016-08-26 2018-03-01 华为技术有限公司 实现硬件加速处理的方法、设备和系统
CN108009008B (zh) * 2016-10-28 2022-08-09 北京市商汤科技开发有限公司 数据处理方法和系统、电子设备
CN108206937B (zh) * 2016-12-20 2020-05-19 浙江宇视科技有限公司 一种提升智能分析性能的方法和装置
CN108228309B (zh) * 2016-12-21 2021-11-23 腾讯科技(深圳)有限公司 基于虚拟机的数据包发送和接收方法及装置
CN109509139B (zh) * 2017-09-14 2023-06-27 龙芯中科技术股份有限公司 顶点数据处理方法、装置及设备
CN108762922A (zh) * 2018-05-23 2018-11-06 郑州云海信息技术有限公司 一种Linux下通过改善网卡亲和性提升性能的方法及系统
US10795840B2 (en) 2018-11-12 2020-10-06 At&T Intellectual Property I, L.P. Persistent kernel for graphics processing unit direct memory access network packet processing
CN109828940A (zh) * 2019-01-31 2019-05-31 郑州云海信息技术有限公司 一种智能网卡及数据处理系统和方法
CN112817772B (zh) * 2019-11-15 2023-12-29 深信服科技股份有限公司 一种数据通信方法、装置、设备及存储介质
CN110928695B (zh) * 2020-02-12 2020-05-22 南京芯瞳半导体技术有限公司 一种关于显存的管理方法、装置及计算机存储介质
CN112801856A (zh) * 2021-02-04 2021-05-14 西安万像电子科技有限公司 数据处理方法和装置
CN114500398A (zh) * 2022-01-26 2022-05-13 中国农业银行股份有限公司 一种处理器协同加速的方法、装置、设备及介质
CN114827151A (zh) * 2022-05-20 2022-07-29 合肥边缘智芯科技有限公司 一种异构服务器集群以及数据转发方法、装置和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
CN101271584A (zh) * 2008-04-11 2008-09-24 威盛电子股份有限公司 可编程图形处理单元计算核心的常量缓冲的方法和系统
CN102857819A (zh) * 2012-09-12 2013-01-02 广东威创视讯科技股份有限公司 一种纹理图片的加载方法及显示终端、服务器和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
CN101271584A (zh) * 2008-04-11 2008-09-24 威盛电子股份有限公司 可编程图形处理单元计算核心的常量缓冲的方法和系统
CN102857819A (zh) * 2012-09-12 2013-01-02 广东威创视讯科技股份有限公司 一种纹理图片的加载方法及显示终端、服务器和系统

Also Published As

Publication number Publication date
CN103200128A (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
CN103200128B (zh) 一种网络包处理的方法、装置和系统
CA2898053C (en) Deep packet inspection method, device, and coprocessor
US6876561B2 (en) Scratchpad memory
EP2486715B1 (en) Smart memory
CN103412786B (zh) 一种高性能服务器架构系统及数据处理方法
CN103827842B (zh) 向控制器存储器空间写入消息
US9900090B1 (en) Inter-packet interval prediction learning algorithm
US11265235B2 (en) Technologies for capturing processing resource metrics as a function of time
CN105095109B (zh) 缓存访问方法、缓存访问路由器和计算机系统
CA2241994A1 (en) System and method for efficient remote disk i/o
CN110224943B (zh) 基于url的流量服务限流方法、电子设备及计算机存储介质
US20100020818A1 (en) Sharing buffer space in link aggregation configurations
US20230080588A1 (en) Mqtt protocol simulation method and simulation device
WO2013097793A1 (zh) 一种片上多核数据传输方法和装置
CN107797848A (zh) 进程调度方法、装置和主机设备
JP2009123201A (ja) データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法
CN103986585A (zh) 报文预处理方法及其装置
CN105579952B (zh) 利用伪停顿的高速通道上的emi抑制
US9344384B2 (en) Inter-packet interval prediction operating algorithm
JP2009123202A (ja) データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法
CN106131162A (zh) 一种基于iocp机制实现网络服务代理的方法
CN207424866U (zh) 一种基于异构多核处理器的内核之间的数据通讯系统
CN102495764A (zh) 数据分流的实现方法和装置
CN110011909A (zh) 存储网关及存储网关数据发送、接收方法和装置
CN105912273A (zh) 一种报文共享储存管理的fpga实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200901

Address after: Four, 646000 section, wine Valley Avenue, hi tech Development Zone, Sichuan, Luzhou

Patentee after: GUOJIU BIG DATA Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Effective date of registration: 20200901

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Four, 646000 section, wine Valley Avenue, hi tech Development Zone, Sichuan, Luzhou

Patentee after: Guojiu big data Co.,Ltd.

Address before: Four, 646000 section, wine Valley Avenue, hi tech Development Zone, Sichuan, Luzhou

Patentee before: GUOJIU BIG DATA Co.,Ltd.