CN105874757B - 一种数据处理方法及多核处理器系统 - Google Patents
一种数据处理方法及多核处理器系统 Download PDFInfo
- Publication number
- CN105874757B CN105874757B CN201480038084.6A CN201480038084A CN105874757B CN 105874757 B CN105874757 B CN 105874757B CN 201480038084 A CN201480038084 A CN 201480038084A CN 105874757 B CN105874757 B CN 105874757B
- Authority
- CN
- China
- Prior art keywords
- data packet
- network
- interface card
- address
- network interface
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的一种数据处理方法及多核处理器系统,涉及多核处理器领域,解决了现有技术中由于网卡资源申请步骤过长,而造成的部分数据包由于处理不及时所导致的网络数据中断的问题。该方法具体包括:网卡控制器获取待发送队列中的第一数据包(201),网卡控制器根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡互联网协议(IP)地址(202),网卡控制器将第一数据包转换为第二数据包(203),网卡控制器通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络(204)。本发明应用于多核处理器系统。
Description
技术领域
本发明涉及多核处理器领域,尤其涉及一种数据处理方法及多核处理器系统。
背景技术
目前,为了提高多核处理器的并行计算能力以及该多核处理器的性能,技术人员提出了众核解耦的概念,即通过将多核计算机系统中的内存、输入输出(英文:Input/Output,简称IO)设备等硬件设备的解耦,形成各自管理硬件的网络,从而使得该多核计算机系统的高性能计算能力得到有效的提高。
现在常用的一种典型的基于众核解耦的多核处理器系统,是由集成有多个中央处理器(英文:Central Processing Unit,简称CPU)的CPU板、集成了各种IO设备的设备板、以及用于管理该系统中的所有硬件资源的资源管理中心等分离部件组成。其中,上述的CPU板上通常接入多个CPU(上千个CPU内核(core)),可以同时运行多个操作系统(英文:Operating System,简称OS),而上述设备板中集成的IO设备中包括网卡,磁盘等。现有技术中,在该众核解耦架构下,当CPU板上的操作系统需要网卡提供网络服务时,该操作系统会向资源管理中心发送网卡分配请求,资源管理中心在接收到网卡分配请求后,会根据现有的设备信息和管理分配策略,从空闲的网卡中选择相应的网卡分配给运行该操作系统的CPU内核,并将该CPU内核与该分配的网卡绑定,然后,设备板中的控制器会控制该分配的网卡与该CPU内核对应的CPU控制器建立一个用于转发数据的IO通道。
但是,发明人发现,在众核解耦架构中,资源管理中心在为操作系统配置对应的网卡后,该操作系统便无法察觉到外部的其他网卡,这样运行该操作系统的CPU内核便只能处理与之绑定的网卡对应网段的数据,而与该CPU内核绑定的网卡便也无法处理其他CPU内核中的数据。同时,CPU板上运行的操作系统向资源管理中心申请网卡时,由于需要资源管理中心介入管理,使得整个网卡资源申请步骤过长,从而造成部分数据包处理不及时,进而导致网络数据的中断。
发明内容
本发明的实施例提供一种数据处理方法及多核处理器系统,解决了现有技术中基于众核解耦的多核处理器系统无法跨网卡、跨网段处理数据,以及由于网卡资源申请步骤过长,而造成的部分数据包由于处理不及时所导致的网络数据中断的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种数据处理方法,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,所述方法包括:
所述网卡控制器获取待发送队列中的第一数据包,其中,所述第一数据包是所述CPU控制器对运行在所述第一CPU内核上的操作系统的进程的数据进行封装得到的,所述第一数据包包括所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,所述第一数据包的源地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
根据所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址;
将所述第一数据包转换为第二数据包,其中,所述第二数据包中的源地址为所述网卡IP地址;
通过所述网卡IP地址对应的物理网卡将所述第二数据包发送至外部网络。
在第一方面的第一种可能的实现方式中,所述待发送队列中存储的第一数据包是所述CPU板中的CPU控制器通过预定协议来进行收发的;
所述预定协议包括mail box邮箱协议;
所述第一数据包所需网络服务的网络参数包括所述网络服务连接的网段和所述网络服务所需的带宽;
所述第一数据包的内部地址包括所述CPU板标识ID、所述操作系统ID或所述的进程号中的至少一个。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一数据包的源地址和目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址具体包括:
在信息映射表中检索所述第一数据包所需网络服务的网络参数,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中未检索到与所述网络参数相匹配的历史记录,则根据所述网络参数从所述M个物理网卡中,选择与所述网络参数相匹配的目标物理网卡;
将所述与所述网络参数相匹配的目标物理网卡对应的网卡IP地址分配给所述第一数据包。
结合第一方面或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述第一数据包所需网络服务的网络参数与网卡数据库中的信息映射表中的历史记录进行匹配之后,所述方法还包括:
若在所述信息映射表中检索到与所述网络参数相匹配的历史记录,则在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址;
若在所述与所述网络参数相匹配的历史记录中检索到所述第一数据包的目的地址,则将所述包含所述第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
结合第一方面或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述第一数据包的目的地址,检索所述与所述第一数据包所需网络服务的网络参数相匹配的历史记录之后,所述方法还包括:
若在所述与所述网络参数相匹配的历史记录中未检索到所述第一数据包的目的地址,则将与所述网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给所述第一数据包。
第二方面,提供一种数据处理方法,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,所述方法包括:
所述网卡控制器接收第一数据包,其中,所述第一数据包包括所述第一数据包的源地址和接收所述第一数据包的物理网卡的网卡IP地址;
根据所述第一数据包的源地址和所述网卡IP地址,为所述第一数据包分配目的地址,其中,所述目的地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
将所述第一数据包中的所述网卡IP地址替换为所述目的地址,以得到第二数据包;
将所述第二数据包转发至待接收队列,以便CPU控制器指示所述第二数据包的目的地址对应的第一CPU内核处理所述第二数据包。
在第二方面的第一种可能的实现方式中,所述待接收队列中的第二数据包是所述CPU板中的CPU控制器通过预定协议进行收发的,所述预定协议包括mail box邮箱协议;
所述目的地址包括在所述第一CPU内核中运行的操作系统的ID、所述操作系统中处理所述第二数据包的进程的ID以及所述第一CPU内核所在的CPU板的ID中的至少一个。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据所述第一数据包的源地址和网卡IP地址,为所述第一数据包分配目的地址具体包括:
在信息映射表中检索所述第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中检索到所述第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索所述第一数据包的源地址;
若在所述检索到的历史记录中检索到所述第一数据包的源地址,则将包含所述第一数据包的源地址的历史记录中的内部地址分配给所述第一数据包。
结合第二方面或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述方法还包括:
若在所述检索到的历史记录中未检索到所述第一数据包的源地址,则将所述第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给所述第一数据包。
第三方面,提供一种网卡控制器,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,所述网卡控制器包括:
获取模块,用于获取待发送队列中的第一数据包,其中,所述第一数据包是所述CPU控制器对运行在所述第一CPU内核上的操作系统的进程的数据进行封装得到的,所述第一数据包包括所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,所述第一数据包的源地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
分配模块,用于根据所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址;
转换模块,用于将所述第一数据包转换为第二数据包,其中,所述第二数据包中的源地址为所述网卡IP地址;
发送模块,用于通过所述网卡IP地址对应的物理网卡将所述第二数据包发送至外部网络。
在第三方面的第一种可能的实现方式中,所述待发送队列中存储的第一数据包是所述CPU板中的CPU控制器通过预定协议来进行收发的;
所述预定协议包括mail box邮箱协议;
所述第一数据包所需网络服务的网络参数包括所述网络服务连接的网段和所述网络服务所需的带宽;
所述第一数据包的内部地址包括所述CPU板标识ID、所述操作系统ID或所述的进程号中的至少一个。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述分配模块具体用于:
在信息映射表中检索所述第一数据包所需网络服务的网络参数,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括所述通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中未检索到与所述网络参数相匹配的历史记录,则根据所述网络参数从所述M个物理网卡中,选择与所述网络参数相匹配的目标物理网卡;
将所述与所述网络参数相匹配的目标物理网卡对应的网卡IP地址分配给所述第一数据包。
结合第三方面或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述分配模块在信息映射表中的历史记录中检索所述第一数据包所需网络服务的网络参数之后,还用于:
若在所述信息映射表中检索到与所述网络参数相匹配的历史记录,则在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址;
若在所述与所述网络参数相匹配的历史记录中检索到所述第一数据包的目的地址,则将所述包含所述第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
结合第三方面或第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述分配模块在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址之后,还用于:
若在所述与所述网络参数相匹配的历史记录中未检索到所述第一数据包的目的地址,则将与所述网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给所述第一数据包。
第四方面,提供一种网卡控制器,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,所述网卡控制器,包括:
接收模块,用于接收第一数据包,其中,所述第一数据包包括所述第一数据包的源地址和接收所述第一数据包的网卡的网卡IP地址;
分配模块,用于根据所述第一数据包的源地址和所述网卡IP地址,为所述第一数据包分配目的地址,其中,所述目的地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
转换模块,用于将所述第一数据包中的网卡IP地址替换为所述目的地址,以得到第二数据包;
发送模块,用于将所述第二数据包转发至待接收队列,以便CPU控制器指示所述第二数据包的目的地址对应的第一CPU内核处理所述第二数据包。
在第四方面的第一种可能的实现方式中,所述待接收队列中的第二数据包是所述CPU板中的CPU控制器通过预定协议进行收发的,所述预定协议包括mail box邮箱协议;
所述目的地址包括在所述第一CPU内核中运行的操作系统的ID、所述操作系统中处理所述第二数据包的进程的ID以及所述第一CPU内核所在的CPU板的ID中的至少一个。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述分配模块具体用于:
在信息映射表中检索所述第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括所述通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中检索到所述第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索所述第一数据包的源地址;
若在所述检索到的历史记录中检索到所述第一数据包的源地址,则将包含所述第一数据包的源地址的历史记录中的内部地址分配给所述第一数据包。
结合第四方面或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述分配模块还用于:
若在所述检索到的历史记录中未检索到所述第一数据包的源地址,则将所述第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给所述第一数据包。
本发明实施例提供的数据处理方法,网卡控制器获取待发送队列中的第一数据包后,根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址,然后网卡控制器将第一数据包转换为第二数据包,并通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络;或者,网卡控制器接收第一数据包后,根据该第一数据包的源地址和网卡IP地址为该第一数据包分配目的地址,然后网卡控制器将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包,网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图。
图1为本发明的实施例提供的一种多核处理器系统的结构示意图;
图2为本发明的实施例提供的一种数据处理方法的流程示意图;
图3为本发明的实施例提供的另一种数据处理方法的流程示意图;
图4为本发明的实施例提供的又一种数据处理方法的流程示意图;
图5为本发明实施例提供的一种数据处理方法的流程示意图;
图6为本发明实施例提供的另一种数据处理方法的流程示意图;
图7为本发明实施例提供的一种网卡控制器的结构示意图;
图8为本发明实施例提供的另一种网卡控制器的结构示意图;
图9为本发明实施例提供的一种网卡控制设备的结构示意图;
图10为本发明实施例提供的另一种网卡控制设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的实施例所应用的基于众核解耦的多核处理器系统的系统架构如图1所示。其中,众核解耦构架是指将现有的计算机中的硬件分离,形成各自管理的硬件网络,即可以将计算机中的硬件解耦为:计算资源池、输入输出(英文:Input/Output,简称IO)设备池、内存池、连接网络和资源管理中心等部分。具体的,图1对应的多核处理器系统1的计算资源池,即图1中的多个中央处理器(英文:Central Processing Unit,简称CPU)板11(如图1中的CPU#1板、CPU#2板,......,CPU#n板,每个CPU板11中包括多个CPU core)组成的CPU资源池,这些CPU板11内包含多个CPU core,这些CPU core可以集成在一个CPU板11上,也可以集成在多个CPU板11上。该多核处理器系统1的IO设备池即图1中的设备板,该设备板中集成有多个IO设备(如,磁盘,网卡、视频传输标准(英文:Video Graphics Array,简称VGA)显示卡等),具体的,该设备板中集成有M个物理网卡12(如图1的网卡1,网卡2......,网卡M)。需要说明的是,该多核处理器系统1中的每个板上都集成有一个用于控制该板中硬件资源的控制器(如,云控制芯片(英文:cloud controller)),例如,用于控制CPU板11中各CPU core的CPU控制器以及用于控制设备板中物理网卡12的网卡控制器14。而该多核处理器系统1的资源管理中心13则通过各个板中的控制器来控制硬件资源的分配及互联,管理该多核处理器系统1中的所有硬件资源。
在现有技术中,当该多核处理器系统1中的某个运行的操作系统提出网络服务请求时,资源管理中心13会从CPU板上选择一部分CPU core,从内存池上选择一段内存,从IO设备板上选择一些IO设备,然后通过各个板中的控制器将选定的部分连接起来,并与其它部分相互隔离,即形成一台完备的小型计算机。即CPU板在根据该CPU板中的CPU内核上运行的操作系统的网络服务需求向资源管理中心申请相应的网卡设备时,需要资源管理中心介入管理,使得资源管理中心根据现有的设备信息和管理分配策略,为该操作系统分配相应的硬件资源,从而使得整个网卡资源申请步骤过长,进而造成了部分数据包由于处理不及时,而导致的网络数据中断的问题。同时资源管理中心在为该操作系统分配好网卡后,该操作系统会调用该网卡的网卡设备驱动和网络通信协议来实现通信,这需要有完整的网络通信协议软件来管理网络通信链接状态等数据,这样使得整个网卡资源申请过程步骤繁多复杂。因此,为了解决上述问题,本发明的实施例提供了一种新的数据处理方法。
基于图1对应的多核处理器系统,本发明的实施例提供一种数据处理方法,该方法可以由图1的网卡控制器14来执行。如图2所示,该方法具体包括如下步骤:
201、网卡控制器获取待发送队列中的第一数据包。
其中,上述的第一数据包是CPU控制器对运行在第一CPU内核上的操作系统的进程的数据进行封装得到的,该第一数据包包括该第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数;上述的第一数据包的源地址为该第一数据包在多核处理器系统中使用的内部地址;该第一数据包的内部地址包括CPU板标识(英文:Identity,简称ID)、操作系统ID或进程号中的至少一个。
具体的,上述的待发送队列中存储的第一数据包是CPU板中的CPU控制器通过预定协议收发的,该预定协议包括mail box邮箱协议。
示例性的,以mail box协议为例,当第一CPU内核中运行的操作系统的进程需要发送数据时,该操作系统会先向mail box协议注册,申请一个自己的mali box,并将待发送的数据放到mail box的发送队列中,然后CPU控制器会将该待发送的数据进行封装,封装成携带有内部数据的第一数据包。
202、网卡控制器根据第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址。
其中,上述的第一数据包所需网络服务的网络参数包括该网络服务连接的网段和该网络服务所需的带宽。上述的目的地址是指数据包中用于指明该数据包发送的最终目的互联网网关的互联网协议地址(英文:Internet Protocol Address,简称IP地址)。
具体的,网卡控制器在为第一数据包分配网卡IP地址时,可以先根据该第一数据包所需网络服务的网络参数,从M个物理网卡中选出可以满足该网络服务参数的物理网卡,并获取这些满足该网络服务参数的物理网卡对应的网卡IP地址,然后,该网卡控制器根据分配策略从这些网卡IP地址中选择一个网卡IP地址分配给该第一数据包。示例性的,该分配策略可以是数据包的源地址、目的地址和网卡IP地址间的映射关系,该映射关系可以是网卡控制器预先设定的,也可以是该网卡控制器根据每个物理网卡传输数据包时的历史记录进行设置的。
203、网卡控制器将第一数据包转换为第二数据包。
其中,上述的第二数据包中的源地址为网卡IP地址。该网卡IP地址是该多核处理器系统对外的网卡IP地址。
具体的,网卡控制器为了将该第一数据包发送至外部网络,可以将该第一数据包进行解封,获取该第一数据包中的数据,然后将该第一数据包中的数据与分配的网卡IP地址重新封装,成为一个可以向外部网络发送的第二数据包;网卡控制器也可以利用网络地址转换(英文:Network Address Translation,简称NAT)的方法直接将第一数据包中的源地址替换为网卡IP地址,成为一个可以向外部网络发送的第二数据包。
204、网卡控制器通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。
需要说明的是,在实现本实施例中描述的过程之前,还需要对CPU板和设备板进行初始化。
具体的,CPU板上的CPU控制器控制CPU板上的操作系统完成初始化,CPU板中的操作系统通过预定协议来使用CPU控制器提供的网络服务接口,从该预定协议对应的收发队列接收或发送数据。而设备板上的网卡控制器负责初始化所有的网卡,使网卡处于待工作状态,然后该网卡控制器收集所有的网卡设备信息,例如,网卡硬件信息、寄存器设置和网段带宽等。
本发明实施例提供的数据处理方法,网卡控制器获取待发送队列中的第一数据包后,根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址,然后网卡控制器将第一数据包转换为第二数据包,并通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
基于图1对应的多核处理器系统,本发明的实施例提供一种数据处理方法,如图3所示,该方法具体包括如下步骤:
301、网卡控制器获取待发送队列中的第一数据包。
具体的,步骤301的描述可以参照图2对应实施例中的步骤201中的详细描述,这里不再赘述。
302、网卡控制器根据第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址。
可选的,步骤302具体包括如下步骤:
302a、网卡控制器在信息映射表中检索第一数据包所需网络服务的网络参数。
其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
具体的,当网卡控制器在信息映射表中未检索到与网络参数相匹配的历史记录,则转向步骤302b1;当网卡控制器在信息映射表中检索到与网络参数相匹配的历史记录,则转向步骤302c1。
302b1、若网卡控制器在信息映射表中未检索到与网络参数相匹配的历史记录,则网卡控制器根据网络参数从M个物理网卡中,选择与该网络参数相匹配的目标物理网卡。
302b2、网卡控制器将与网络参数相匹配的目标物理网卡对应的网卡IP地址分配给第一数据包。
302c1、若网卡控制器在信息映射表中检索到与网络参数相匹配的历史记录,则网卡控制器在与网络参数相匹配的历史记录中检索第一数据包的目的地址。
示例性的,若第一数据包所需网络服务需要连接的网段是网段1,则网卡控制器在信息映射表中检索与该网段1相匹配的历史记录。当网卡控制器在信息映射表中未检索到与网段1相匹配的历史记录,则说明网段1是第一次发送数据,网卡控制器根据M个物理网卡中选出网段号为网段1的物理网卡作为目标物理网卡,并将该目标物理网卡对应的网卡IP地址分配给第一数据包,将该第一数据包的目的地址、网卡IP地址及源地址间的对应关系存入信息映射表中的历史记录中;当网卡控制器在信息映射表中检索到了与网段1相匹配的历史记录,则网卡控制器在与网段1相匹配的历史记录中继续检索第一数据包的目的地址(202.108.22.5)。
进一步的,基于步骤302c1,当网卡控制器在与网络参数相匹配的历史记录中检索到第一数据包的目的地址,则转向步骤a1;当网卡控制器在与网络参数相匹配的历史记录未检索到第一数据包的目的地址,则转向步骤b2。
a1、若网卡控制器在与网络参数相匹配的历史记录中检索到第一数据包的目的地址,则网卡控制器将包含第一数据包目的地址的历史记录中的网卡IP地址分配给第一数据包。
b1、若网卡控制器在与网络参数相匹配的历史记录中未检索到第一数据包的目的地址,则网卡控制器将与网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给第一数据包。
示例性的,若网卡控制器在与网段1相匹配的历史记录中检索到第一数据包的目的地址(202.108.22.5),则说明第一数据包中所存的数据对应的进程已经向该目的地址发送过数据,则网卡控制器将包含该目的地址的历史记录中的网卡IP地址分配给第一数据包;若网卡控制器在与网段1相匹配的历史记录中未检索到该目的地址,则说明第一数据包中所存的数据对应的进程没有向该目的地址发送过数据,则网卡控制器将与网段1相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给第一数据包。
303、网卡控制器将第一数据包转换为第二数据包。
304、网卡控制器通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。
具体的,步骤303、304的描述可以参照图2对应实施例中的步骤203、204中的详细描述,这里不再赘述.
示例性的,由于本发明实施例不需要借助资源管理中心的管理功能,便可实现网卡的分配和数据的处理,因此,参照图4所示本发明的实施例所应用的多核处理器系统不包含资源管理中心,具体的,该多核处理器系统中包括:N个中央处理器CPU板,即CPU#1板、CPU#2板,......,CPU#n板、M个物理网卡。若以CPU#1板中的第一CPU内核上运行的操作系统的进程X为例,且设备板中包含3个网卡:网卡1、网卡2、网卡3时,本发明实施例所提供的方法具体实现过程如下:
(1)、CPU板和设备板进行初始化,具体过程参照图1对应实施例中的描述。
(2)、进程X对应数据的发送过程。
当CPU#1板中的第一CPU内核上运行的操作系统的进程X需要使用网络时,会在mail box上注册自己的信息,然后使用mail box提供的发送接口将数据放在mail box的发送队列上。CPU控制器对数据进行封装,成为带有内部地址的第一数据包。如果该进程对于网络有其他需求时,mail box的第一数据包里会附带这些信息。
网卡控制器获取待发送队列中的第一数据包,对该第一数据包包头进行解析,获取该第一数据包的源地址、目的地址以及存储的进程X所需网络服务的网络服务参数,并根据该网络服务参数中该进程X所需网络服务需要连接的网段1,在信息映射表中进行检索。若网卡控制器在该信息映射表中检索到与网段1相匹配的历史记录,则网卡控制器继续在与网段1相匹配的历史记录中检索第一数据包的目的地址(202.108.22.5)。若网卡控制器在与网段1相匹配的历史记录中检索到了该目的地址,则说明进程X已经向该目的地址发送过数据,网卡控制器将包含该目的地址的历史记录中的网卡IP地址(233.255.14.151)分配给第一数据包。然后,网卡控制器将第一数据包解封,将该第一数据包中的源地址(即进程X的进程号1)替换为分配的网卡IP地址(233.255.14.151)重新封装,从而得到一个源地址为(233.255.14.151)的第二数据包。
最后,网卡控制器将该第二数据包从网卡IP地址(233.255.14.151)对应的物理网卡(如网卡1)的网卡端口发送至外部网络。
本发明实施例提供的数据处理方法,网卡控制器获取待发送队列中的第一数据包后,根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址,然后网卡控制器将第一数据包转换为第二数据包,并通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
基于图1对应的多核处理器系统,本发明的实施例提供一种数据处理方法,如图5所示,该方法具体包括如下步骤:
401、网卡控制器接收第一数据包。
其中,上述的第一数据包包括该第一数据包的源地址和接收该第一数据包的物理网卡的网卡IP地址。
402、网卡控制器根据第一数据包的源地址和网卡IP地址,为该第一数据包分配目的地址。
其中,上述的第一数据包中的源地址是发送该第一数据包的互联网网关的IP地址;上述的网卡IP地址是指接收该第一数据包的物理网卡的网卡IP地址;上述的目的地址为该第一数据包在多核处理器系统中使用的内部地址,该内部地址包括在第一CPU内核中运行的操作系统的ID、操作系统中处理该第二数据包的进程的ID以及第一CPU内核所在的CPU板的ID中的至少一个。
具体的,网卡控制器为第一数据包分配目的地址时,该网卡控制器可以根据分配策略,以及该第一数据包的网卡IP地址和源地址,为该第一数据包分配对应的目的地址(即内部地址)。示例性的,该分配策略可以是数据包的源地址、目的地址以及网卡IP地址间的映射关系,该映射关系可以是网卡控制器预先设定的,也可以是该网卡控制器根据每个物理网卡传输数据包时的历史记录进行设置的。
403、网卡控制器将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包。
具体的,为了使得CPU板中的CPU控制器可以识别该第一数据包,该网卡控制器可以该第一数据包进行解封,获取该第一数据包中的数据,然后将该第一数据包中的数据与分配的目的地址进行重新封装,成为一个可以被CPU控制器识别的第二数据包;网卡控制器也可以利用NAT的方法直接将第一数据包中的源地址替换为目的地址,成为一个可以被CPU控制器识别的第二数据包。
404、网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。
其中,上述的待接收队列中的第二数据包是CPU板中的CPU控制器通过预定协议进行收发的,该预定协议包括mail box邮箱协议。
具体的,网卡控制器在将第二数据包发送至待接收队列后,该待接收队列会触发一个中断,并将该中断发送至CPU控制器,而该CPU控制器会根据该中断指示第二数据包的目的地址对应的第一CPU内核来处理该第二数据包。
示例性的,以mail box协议为例,当mail box的待接收队列接收到网卡控制器发送的第二数据包时,会触发一个中断,CPU控制器将该中断转发至第二数据包的目的地址对应的第一CPU内核,从而将该第一CPU内核中注册过的进程唤醒,让该进程处理这个第二数据包。
本发明实施例提供的数据处理方法,网卡控制器接收第一数据包后,根据该第一数据包的源地址和网卡IP地址为该第一数据包分配目的地址,然后网卡控制器将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包,网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
基于图1对应的多核处理器系统,本发明的实施例提供一种数据处理方法,如图6所示,该方法具体包括如下步骤:
501、网卡控制器接收第一数据包。
具体的,步骤501的描述可以参照图5对应实施例中的步骤401中的详细描述,这里不再赘述。
502、网卡控制器根据第一数据包的源地址和网卡IP地址,为该第一数据包分配目的地址。
可选的,步骤502具体包括:
502a、网卡控制器在信息映射表中检索第一数据包的网卡IP地址对应的物理网卡的历史记录。
其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
具体的,当网卡控制器在信息映射表中未检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则转向步骤502b1;当网卡控制器在信息映射表中检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则转向步骤502c1。
502b1、若网卡控制器在信息映射表中未检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则网卡控制器丢弃该第一数据包。
502c1、若网卡控制器在信息映射表中检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则网卡控制器在检索到的历史记录中检索第一数据包的源地址。
示例性的,若网卡控制器在信息映射表中未检索到第一数据包的网卡IP地址(233.255.14.151)对应的物理网卡的历史记录,则说明该第一数据包并不是该多核处理器系统所请求的数据包,网卡控制器丢弃该第一数据包;若网卡控制器在信息映射表中检索到该网卡IP地址对应的物理网卡1的历史记录,则网卡控制器在检索到物理网卡1的历史记录中检索第一数据包的源地址(202.108.22.5)。
进一步的,基于步骤502c1,当网卡控制器在检索到的历史记录检索到第一数据包的源地址,则转向步骤a1;当网卡控制器在检索到的历史记录中未检索到第一数据包的源地址,则转向步骤b1。
a1、若网卡控制器在检索到的历史记录中检索到第一数据包的源地址,则网卡控制器将包含第一数据包的源地址的历史记录中的内部地址分配给第一数据包。
b1、若网卡控制器在检索到的历史记录中未检索到第一数据包的源地址,则网卡控制器将第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给第一数据包。
示例性的,若网卡控制器在检索到的历史记录中检索到第一数据包的源地址(202.108.22.5),则说明该物理网卡1之前接收过从该源地址发送的数据,则网卡控制器将包含该源地址的历史记录中的内部地址(如进程X的进程号1)分配给第一数据包;若网卡控制器在检索到的历史记录中未检索到第一数据包的源地址,则说明该物理网卡没有接收过该源地址发送的数据,则网卡控制器将第一数据包的网卡IP地址(233.255.14.151)对应的物理网卡1的历史记录中的任一条历史记录中的内部地址分配给第一数据包。
503、网卡控制器将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包。
504、网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。
具体的,步骤503、504的描述可以参照图5对应实施例中的步骤403、404中的详细描述,这里不再赘述。
示例性的,由于本发明实施例不需要借助资源管理中心的管理功能,便可实现网卡的分配和数据的处理,因此,参照图4所示本发明的实施例所应用的多核处理器系统不包含资源管理中心,具体的,该多核处理器系统中包括:N个中央处理器CPU板,即CPU#1板、CPU#2板,......,CPU#n板、M个物理网卡。若以CPU#1板中的第一CPU内核上运行的操作系统的进程X为例,且设备板中包含3个网卡:网卡1、网卡2、网卡3时,本发明实施例所提供的方法具体实现过程如下:
1)、当网卡控制器从物理网卡1接收到第一数据包时,该网卡控制器会对该第二数据包包头进行解析,获取该第二数据包的源地址(202.108.22.5)及网卡IP地址(233.255.14.151)。接着,网卡控制器在信息映射表中的历史记录中检索上述的网卡IP地址对应的物理网卡1的历史记录。若网卡控制器在检索到的历史记录中检索到该源地址,则网卡控制器将包含该源地址的历史记录中的内部地址(即进程X的进程号1)分配给第一数据包。然后,网卡控制器通过NAT方法将第一数据包中的网卡IP地址(233.255.14.151)替换为该进程X的进程号1,从而得到一个第二数据包。
2)、网卡控制器将上述过程得到的第二数据包发送至待接收队列,而该待接收队列在接收到该第二数据包后会触发一个中断,并将该中断发送到该第二数据包的目的地址所指向的CPU板中的CPU控制器,以便该CPU控制器指示该CPU板中的第一CPU内核上运行的进程X处理该第二数据包。
本发明实施例提供的数据处理方法,网卡控制器接收第一数据包后,根据该第一数据包的源地址和网卡IP地址为该第一数据包分配目的地址,然后网卡控制器将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包,网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
本发明的实施例提供一种网卡控制器,应用于多核处理器系统,基于图1对应的多核处理器系统,具体的,如图7所示,该多核处理器系统中的网卡控制器6包括:获取模块61、分配模块62、转换模块63和发送模块64,其中:
获取模块61,用于获取待发送队列中的第一数据包,其中,上述的第一数据包是CPU控制器对运行在第一CPU内核上的操作系统的进程的数据进行封装得到的,该第一数据包包括该第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,上述的第一数据包的源地址为该第一数据包在多核处理器系统中使用的内部地址。
分配模块62,用于根据上述的第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址。
转换模块63,用于将上述的第一数据包转换为第二数据包,其中,上述的第二数据包中的源地址为网卡IP地址。
发送模块64,用于通过上述的网卡IP地址对应的物理网卡将第二数据包发送至外部网络。
可选的,上述的待发送队列中存储的第一数据包是CPU板中的CPU控制器通过预定协议来进行收发的。
上述的预定协议包括mail box邮箱协议。
上述的第一数据包所需网络服务的网络参数包括该网络服务连接的网段和该网络服务所需的带宽。
上述的第一数据包的内部地址包括CPU板标识ID、操作系统ID或进程号中的至少一个。
可选的,上述的分配模块62具体用于:
在信息映射表中检索第一数据包所需网络服务的网络参数,其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
若在信息映射表中未检索到与网络参数相匹配的历史记录,则根据上述的网络参数从M个物理网卡中,选择与该网络参数相匹配的目标物理网卡。
将上述的与网络参数相匹配的目标物理网卡对应的网卡IP地址分配给第一数据包。
可选的,上述的分配模块62在信息映射表中的历史记录中检索第一数据包所需网络服务的网络参数之后,还用于:
若在信息映射表中检索到与网络参数相匹配的历史记录,则在上述的与网络参数相匹配的历史记录中检索第一数据包的目的地址。
若在上述的与网络参数相匹配的历史记录中检索到第一数据包的目的地址,则将包含第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
可选的,分配模块62在上述的与网络参数相匹配的历史记录中检索第一数据包的目的地址之后,还用于:
若在上述的与网络参数相匹配的历史记录中未检索到第一数据包的目的地址,则将与网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给第一数据包。
本发明实施例提供的网卡控制器,网卡控制器获取待发送队列中的第一数据包后,根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址,然后网卡控制器将第一数据包转换为第二数据包,并通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
本发明的实施例提供一种网卡控制器,应用于多核处理器系统,基于图1对应的多核处理器系统,具体的,如图8所示,该多核处理器系统中的网卡控制器7包括:接收模块71、分配模块72、转换模块73和发送模块74,其中:
接收模块71,用于接收第一数据包,其中,上述的第一数据包包括该第一数据包的源地址和接收该第一数据包的网卡的网卡IP地址。
分配模块72,用于根据第一数据包的源地址和网卡IP地址,为该第一数据包分配目的地址,其中,上述的目的地址为第一数据包在多核处理器系统中使用的内部地址。
转换模块73,用于将上述的第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包。
发送模块74,用于将上述的第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。
可选的,上述的待接收队列中的第二数据包是CPU板中的CPU控制器通过预定协议进行收发的,该预定协议包括mail box邮箱协议。
上述的目的地址包括在第一CPU内核中运行的操作系统的ID、该操作系统中处理第二数据包的进程的ID以及第一CPU内核所在的CPU板的ID中的至少一个。
可选的,分配模块72具体用于:
在信息映射表中检索第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
若在上述的信息映射表中检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索第一数据包的源地址。
若在检索到的历史记录中检索到第一数据包的源地址,则将包含该第一数据包的源地址的历史记录中的内部地址分配给该第一数据包。
可选的,上述的分配模块72还用于:
若在检索到的历史记录中未检索到第一数据包的源地址,则将该第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给第一数据包。
本发明实施例提供的网卡控制器,网卡控制器接收第一数据包后,根据该第一数据包的源地址和网卡IP地址为该第一数据包分配目的地址,然后网卡控制器将第一数据包中的网卡IP地址替换为目的地址,得到第二数据包,网卡控制器将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
本发明的实施例提供一种网卡控制设备,应用于多核处理器系统,基于图1对应的多核处理器系统,具体的,如图9所示,该多核处理器系统中的网卡控制设备8包括:通信接口81和处理器82,其中:
处理器82,用于通过通信接口81获取待发送队列中的第一数据包,其中,上述的第一数据包是CPU控制器对运行在第一CPU内核上的操作系统的进程的数据进行封装得到的,该第一数据包包括该第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,上述的第一数据包的源地址为该第一数据包在多核处理器系统中使用的内部地址。
处理器82,还用于根据上述的第一数据包的源地址、目的地址以及该第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址。
处理器82,还用于将上述的第一数据包转换为第二数据包,其中,上述的第二数据包中的源地址为网卡IP地址。
处理器82,还用于通过上述的网卡IP地址对应的物理网卡将第二数据包发送至外部网络。
可选的,上述的待发送队列中存储的第一数据包是CPU板中的CPU控制器通过预定协议来进行收发的。
上述的预定协议包括mail box邮箱协议。
上述的第一数据包所需网络服务的网络参数包括该网络服务连接的网段和该网络服务所需的带宽。
上述的第一数据包的内部地址包括CPU板标识ID、操作系统ID或进程号中的至少一个。
可选的,该网卡控制设备8还包括:存储器83,其中:
上述的处理器82具体用于:在存储器83中的信息映射表中检索第一数据包所需网络服务的网络参数,其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
若在存储器83中的信息映射表中未检索到与网络参数相匹配的历史记录,则根据上述的网络参数从M个物理网卡中,选择与该网络参数相匹配的目标物理网卡。
将上述的与网络参数相匹配的目标物理网卡对应的网卡IP地址分配给第一数据包。
可选的,上述的处理器82在存储器83中的信息映射表中的历史记录中检索第一数据包所需网络服务的网络参数之后,还用于:
若在存储器83中的信息映射表中检索到与网络参数相匹配的历史记录,则在上述的与网络参数相匹配的历史记录中检索第一数据包的目的地址。
若在上述的与网络参数相匹配的历史记录中检索到第一数据包的目的地址,则将包含第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
可选的,处理器82在上述的与网络参数相匹配的历史记录中检索第一数据包的目的地址之后,还用于:
若在上述的与网络参数相匹配的历史记录中未检索到第一数据包的目的地址,则将与网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给第一数据包。
本发明实施例提供的网卡控制设备,网卡控制设备获取待发送队列中的第一数据包后,根据该第一数据包的源地址、目的地址以及第一数据包所需网络服务的网络参数,为该第一数据包分配网卡IP地址,然后网卡控制设备将第一数据包转换为第二数据包,并通过网卡IP地址对应的物理网卡将第二数据包发送至外部网络。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
本发明的实施例提供一种网卡控制设备,应用于多核处理器系统,基于图1对应的多核处理器系统,具体的,如图10所示,该多核处理器系统中的网卡控制设备9包括:通信接口91和处理器92,其中:
处理器92,用于通过通信接口91接收第一数据包,其中,上述的第一数据包包括该第一数据包的源地址和接收该第一数据包的物理网卡的网卡IP地址。
处理器92,还用于根据第一数据包的源地址和网卡IP地址,为该第一数据包分配目的地址,其中,上述的目的地址为第一数据包在多核处理器系统中使用的内部地址。
处理器92,还用于将上述的第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包。
处理器92,还用于通过通信接口91将上述的第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。
可选的,上述的待接收队列中的第二数据包是CPU板中的CPU控制器通过预定协议进行收发的,该预定协议包括mail box邮箱协议。
上述的目的地址包括在第一CPU内核中运行的操作系统的ID、该操作系统中处理第二数据包的进程的ID以及第一CPU内核所在的CPU板的ID中的至少一个。
可选的,该网卡控制设备9还包括:存储器93,其中:
处理器92具体用于:在存储器93中的信息映射表中检索第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,上述的信息映射表用于存储网卡控制器通过M个物理网卡收发的数据包的历史记录,该历史记录包括通过M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系。
若在上述的存储器93中的信息映射表中检索到第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索第一数据包的源地址。
若在检索到的历史记录中检索到第一数据包的源地址,则将包含该第一数据包的源地址的历史记录中的内部地址分配给该第一数据包。
可选的,上述的处理器92还用于:
若在检索到的历史记录中未检索到第一数据包的源地址,则将该第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给第一数据包。
本发明实施例提供的网卡控制设备,网卡控制设备接收第一数据包后,根据该第一数据包的源地址和网卡IP地址为该第一数据包分配目的地址,然后网卡控制设备将第一数据包中的网卡IP地址替换为目的地址,以得到第二数据包,网卡控制设备将第二数据包转发至待接收队列,以便CPU控制器指示第二数据包的目的地址对应的第一CPU内核处理该第二数据包。相比现有技术,本发明通过网卡控制器管理所有物理网卡并提供网络服务,不需要资源管理中心的介入管理,从而减少了网卡资源的申请步骤,解决了由于整个网卡资源申请步骤过长,造成的部分数据包由于处理不及时,而导致的网络数据中断的问题,并降低了CPU板的管理负载。同时,网卡控制器通过为数据包灵活的分配网卡IP地址,使得数据包不受网卡、网段的限制进行发送,从而实现了众核解耦的多核处理器系统跨网卡、跨网段处理数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,以上实施例仅用以说明本申请的技术方案,而非对其限制。
Claims (18)
1.一种数据处理方法,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,其特征在于,所述方法包括:
所述网卡控制器获取待发送队列中的第一数据包,其中,所述第一数据包是所述CPU控制器对运行在所述第一CPU内核上的操作系统的进程的数据进行封装得到的,所述第一数据包包括所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,所述第一数据包的源地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
根据所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址;
将所述第一数据包转换为第二数据包,其中,所述第二数据包中的源地址为所述网卡IP地址;
通过所述网卡IP地址对应的物理网卡将所述第二数据包发送至外部网络。
2.根据权利要求1所述的方法,其特征在于:
所述待发送队列中存储的第一数据包是所述CPU板中的CPU控制器通过预定协议来进行收发的;
所述预定协议包括mail box邮箱协议;
所述第一数据包所需网络服务的网络参数包括所述网络服务连接的网段和所述网络服务所需的带宽;
所述第一数据包的内部地址包括所述CPU板标识ID、所述操作系统ID或所述的进程号中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一数据包的源地址和目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址具体包括:
在信息映射表中检索所述第一数据包所需网络服务的网络参数,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中未检索到与所述网络参数相匹配的历史记录,则根据所述网络参数从所述M个物理网卡中,选择与所述网络参数相匹配的目标物理网卡;
将所述与所述网络参数相匹配的目标物理网卡对应的网卡IP地址分配给所述第一数据包。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一数据包所需网络服务的网络参数与网卡数据库中的信息映射表中的历史记录进行匹配之后,所述方法还包括:
若在所述信息映射表中检索到与所述网络参数相匹配的历史记录,则在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址;
若在所述与所述网络参数相匹配的历史记录中检索到所述第一数据包的目的地址,则将包含所述第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
5.根据权利要求4所述的方法,其特征在于,所述在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址之后,所述方法还包括:
若在所述与所述网络参数相匹配的历史记录中未检索到所述第一数据包的目的地址,则将与所述网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给所述第一数据包。
6.一种数据处理方法,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,其特征在于,所述方法包括:
所述网卡控制器接收第一数据包,其中,所述第一数据包包括所述第一数据包的源地址和接收所述第一数据包的物理网卡的网卡IP地址;
根据所述第一数据包的源地址和所述网卡IP地址,为所述第一数据包分配目的地址,其中,所述目的地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
将所述第一数据包中的所述网卡IP地址替换为所述目的地址,以得到第二数据包;
将所述第二数据包转发至待接收队列,以便CPU控制器指示所述第二数据包的目的地址对应的第一CPU内核处理所述第二数据包。
7.根据权利要求6所述的方法,其特征在于:
所述待接收队列中的第二数据包是所述CPU板中的CPU控制器通过预定协议进行收发的,所述预定协议包括mail box邮箱协议;
所述目的地址包括在所述第一CPU内核中运行的操作系统的ID、所述操作系统中处理所述第二数据包的进程的ID以及所述第一CPU内核所在的CPU板的ID中的至少一个。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一数据包的源地址和网卡IP地址,为所述第一数据包分配目的地址具体包括:
在信息映射表中检索所述第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中检索到所述第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索所述第一数据包的源地址;
若在所述检索到的历史记录中检索到所述第一数据包的源地址,则将包含所述第一数据包的源地址的历史记录中的内部地址分配给所述第一数据包。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若在所述检索到的历史记录中未检索到所述第一数据包的源地址,则将所述第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给所述第一数据包。
10.一种网卡控制器,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,其特征在于,所述网卡控制器包括:
获取模块,用于获取待发送队列中的第一数据包,其中,所述第一数据包是所述CPU控制器对运行在所述第一CPU内核上的操作系统的进程的数据进行封装得到的,所述第一数据包包括所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,所述第一数据包的源地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
分配模块,用于根据所述第一数据包的源地址、目的地址以及所述第一数据包所需网络服务的网络参数,为所述第一数据包分配网卡IP地址;
转换模块,用于将所述第一数据包转换为第二数据包,其中,所述第二数据包中的源地址为所述网卡IP地址;
发送模块,用于通过所述网卡IP地址对应的物理网卡将所述第二数据包发送至外部网络。
11.根据权利要求10所述的网卡控制器,其特征在于:
所述待发送队列中存储的第一数据包是所述CPU板中的CPU控制器通过预定协议来进行收发的;
所述预定协议包括mail box邮箱协议;
所述第一数据包所需网络服务的网络参数包括所述网络服务连接的网段和所述网络服务所需的带宽;
所述第一数据包的内部地址包括所述CPU板标识ID、所述操作系统ID或所述的进程号中的至少一个。
12.根据权利要求11所述的网卡控制器,其特征在于,所述分配模块具体用于:
在信息映射表中检索所述第一数据包所需网络服务的网络参数,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括所述通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中未检索到与所述网络参数相匹配的历史记录,则根据所述网络参数从所述M个物理网卡中,选择与所述网络参数相匹配的目标物理网卡;
将所述与所述网络参数相匹配的目标物理网卡对应的网卡IP地址分配给所述第一数据包。
13.根据权利要求12所述的网卡控制器,其特征在于,所述分配模块在信息映射表中的历史记录中检索所述第一数据包所需网络服务的网络参数之后,还用于:
若在所述信息映射表中检索到与所述网络参数相匹配的历史记录,则在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址;
若在所述与所述网络参数相匹配的历史记录中检索到所述第一数据包的目的地址,则将包含所述第一数据包的目的地址的历史记录中的网卡IP地址分配给所述第一数据包。
14.根据权利要求13所述的网卡控制器,其特征在于,所述分配模块在所述与所述网络参数相匹配的历史记录中检索所述第一数据包的目的地址之后,还用于:
若在所述与所述网络参数相匹配的历史记录中未检索到所述第一数据包的目的地址,则将与所述网络参数相匹配的历史记录中的任一条历史记录中的网卡IP地址分配给所述第一数据包。
15.一种网卡控制器,应用于多核处理器系统,所述多核处理器系统包括设备板和中央处理器CPU板,所述CPU板中包括多个CPU内核和一个用于管理所述CPU板中CPU内核的CPU控制器,其中,在所述多个CPU内核的第一CPU内核中运行有操作系统,所述设备板中包括M个物理网卡和用于管理所述M个物理网卡的网卡控制器,其特征在于,所述网卡控制器包括:
接收模块,用于接收第一数据包,其中,所述第一数据包包括所述第一数据包的源地址和接收所述第一数据包的物理网卡的网卡IP地址;
分配模块,用于根据所述第一数据包的源地址和所述网卡IP地址,为所述第一数据包分配目的地址,其中,所述目的地址为所述第一数据包在所述多核处理器系统中使用的内部地址;
转换模块,用于将所述第一数据包中的所述网卡IP地址替换为所述目的地址,以得到第二数据包;
发送模块,用于将所述第二数据包转发至待接收队列,以便CPU控制器指示所述第二数据包的目的地址对应的第一CPU内核处理所述第二数据包。
16.根据权利要求15所述的网卡控制器,其特征在于:
所述待接收队列中的第二数据包是所述CPU板中的CPU控制器通过预定协议进行收发的,所述预定协议包括mail box邮箱协议;
所述目的地址包括在所述第一CPU内核中运行的操作系统的ID、所述操作系统中处理所述第二数据包的进程的ID以及所述第一CPU内核所在的CPU板的ID中的至少一个。
17.根据权利要求16所述的网卡控制器,其特征在于,所述分配模块具体用于:
在信息映射表中检索所述第一数据包的网卡IP地址对应的物理网卡的历史记录,其中,所述信息映射表用于存储所述网卡控制器通过所述M个物理网卡收发的数据包的历史记录,所述历史记录包括所述通过所述M个物理网卡收发的数据包的目的地址、网卡IP地址及源地址间的对应关系;
若在所述信息映射表中检索到所述第一数据包的网卡IP地址对应的物理网卡的历史记录,则在检索到的历史记录中检索所述第一数据包的源地址;
若在所述检索到的历史记录中检索到所述第一数据包的源地址,则将包含所述第一数据包的源地址的历史记录中的内部地址分配给所述第一数据包。
18.根据权利要求17所述的网卡控制器,其特征在于,所述分配模块还用于:
若在所述检索到的历史记录中未检索到所述第一数据包的源地址,则将所述第一数据包的网卡IP地址对应的物理网卡的历史记录中的任一条历史记录中的内部地址分配给所述第一数据包。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/090944 WO2016074179A1 (zh) | 2014-11-12 | 2014-11-12 | 一种数据处理方法及多核处理器系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105874757A CN105874757A (zh) | 2016-08-17 |
CN105874757B true CN105874757B (zh) | 2019-04-26 |
Family
ID=55953581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038084.6A Active CN105874757B (zh) | 2014-11-12 | 2014-11-12 | 一种数据处理方法及多核处理器系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105874757B (zh) |
WO (1) | WO2016074179A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022179293A1 (zh) * | 2021-02-24 | 2022-09-01 | 华为技术有限公司 | 网卡、计算设备和获取数据的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714269B (zh) * | 2018-12-19 | 2022-05-17 | 迈普通信技术股份有限公司 | 一种数据处理方法及网络设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398772A (zh) * | 2008-10-21 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种网络数据的中断处理方法及装置 |
CN101610209A (zh) * | 2008-11-28 | 2009-12-23 | 北京网康科技有限公司 | 一种多核并行的网络业务流处理方法及设备 |
CN102984085A (zh) * | 2012-11-21 | 2013-03-20 | 网神信息技术(北京)股份有限公司 | 映射方法及装置 |
CN104008013A (zh) * | 2013-02-26 | 2014-08-27 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533382B2 (en) * | 2010-01-06 | 2013-09-10 | Vmware, Inc. | Method and system for frequent checkpointing |
CN101964749A (zh) * | 2010-09-21 | 2011-02-02 | 北京网康科技有限公司 | 一种基于多核构架的报文转发方法及系统 |
CN102710497A (zh) * | 2012-04-24 | 2012-10-03 | 汉柏科技有限公司 | 多核多线程网络设备的报文处理方法及系统 |
-
2014
- 2014-11-12 WO PCT/CN2014/090944 patent/WO2016074179A1/zh active Application Filing
- 2014-11-12 CN CN201480038084.6A patent/CN105874757B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398772A (zh) * | 2008-10-21 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种网络数据的中断处理方法及装置 |
CN101610209A (zh) * | 2008-11-28 | 2009-12-23 | 北京网康科技有限公司 | 一种多核并行的网络业务流处理方法及设备 |
CN102984085A (zh) * | 2012-11-21 | 2013-03-20 | 网神信息技术(北京)股份有限公司 | 映射方法及装置 |
CN104008013A (zh) * | 2013-02-26 | 2014-08-27 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022179293A1 (zh) * | 2021-02-24 | 2022-09-01 | 华为技术有限公司 | 网卡、计算设备和获取数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016074179A1 (zh) | 2016-05-19 |
CN105874757A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105518620B (zh) | 一种网卡配置方法及资源管理中心 | |
CN107278362B (zh) | 云计算系统中报文处理的方法、主机和系统 | |
CN107078969B (zh) | 实现负载均衡的计算机设备、系统和方法 | |
CN103346981B (zh) | 虚拟交换方法、相关装置和计算机系统 | |
CN105409172B (zh) | 逻辑交换机 | |
CN102124449B (zh) | 用于低开销数据传输的方法和系统 | |
CN106664242B (zh) | 一种网络的配置方法、网络系统和设备 | |
CN107690622A (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN106656846B (zh) | 一种sdn体系架构中协调层的构建方法 | |
EP1892929B1 (en) | A method, an apparatus and a system for message transmission | |
CN107750357A (zh) | 具有硬件加速平面和软件平面的数据处理系统 | |
CN102017544B (zh) | 卸载网络处理的方法和系统 | |
US20060140209A1 (en) | Field device, system and process for multi-protocol field device emulator | |
CN109076029A (zh) | 用于网络i/o访问的技术 | |
US11586575B2 (en) | System decoder for training accelerators | |
CN102576309B (zh) | 当在运行于相同数据处理系统上的应用程序之间通信时,通过旁路网络栈而在逻辑分区系统中的分区之间的通信 | |
CN110221918A (zh) | 一种ns与vnf的关联方法、装置及系统 | |
JP2013539881A (ja) | 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法 | |
CN107533481A (zh) | 在具有硬件加速平面和软件平面的系统中提供服务 | |
CN107209642A (zh) | 存储快速路径 | |
CN106452873A (zh) | 软件定义网络中的控制方法,控制设备和处理器 | |
CN103634145A (zh) | 一种实现云设备中交换机独立管理和集中管理的方法 | |
CN108228309A (zh) | 基于虚拟机的数据包发送和接收方法及装置 | |
EP2551771A1 (en) | Communication abstraction among partitions in integrated modular avionics | |
CN105874757B (zh) | 一种数据处理方法及多核处理器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |