CN102158408A - 数据流处理方法和装置 - Google Patents
数据流处理方法和装置 Download PDFInfo
- Publication number
- CN102158408A CN102158408A CN201110082238XA CN201110082238A CN102158408A CN 102158408 A CN102158408 A CN 102158408A CN 201110082238X A CN201110082238X A CN 201110082238XA CN 201110082238 A CN201110082238 A CN 201110082238A CN 102158408 A CN102158408 A CN 102158408A
- Authority
- CN
- China
- Prior art keywords
- kernel
- data
- segmentation
- data flow
- length
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据流处理方法和装置,涉及数据处理技术,能够提高处理数据流的灵活性,能够通过多个内核对不同数据流进行分段并行处理。该方法包括:设置各个内核每次处理数据流分段的长度;向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕;各个内核并行处理接收到的数据流分段。主要应用于数据流的处理。
Description
技术领域
本发明涉及数据处理技术,尤其涉及数据流处理方法和装置。
背景技术
当前处理器大多包含多个内核,为了提高处理数据流的效率,可以采用多个内核并行处理的方法。为了进一步提高数据流输入、输出和调度的效率,网络处理器(Network Processor,NP)采用硬件结构来实现数据流的输入、输出和调度。
当前的网络处理器对数据流有两种主要的处理方式:一种是保序处理,另一种是并行处理。
并行处理,具体为:数据流从端口进入到流输入处理装置,该流输入处理装置对输入的数据流进行缓存、校验和过滤。经过输入处理的数据流通过流分组装置被分到不同的组中,各个内核也被内核分组装置分配到不同的内核组中,当流调度装置进行并行调度时,被分在同一组的数据流中的每个数据包被依次调度到具有相应处理功能的同一内核组内的不同内核上,各个内核并行处理接收到的数据包。
保序处理包括前保序和后保序,前保序例如硬件锁,这种硬件锁对从入端口进入的数据流进行锁定,内核将被锁定的数据流按照输入的顺序进行依次处理,再按照这个顺序输出数据流。这种硬件锁强制数据流进行串行处理。可是,这种串行处理数据流的方式处理数据流的速度和吞吐量较低。后保序例如出口队列重新排序,对数据流的调度按照并行处理方式,只是在数据包进入出口队列后,进行重新排序,然后再按顺序输出。这种方式重新排序处理复杂,数据流的处理速度和吞吐量也不理想。
此外,采用上述方案,只能处理每个数据包都可以被独立处理的数据流,对于数据包具有相关性的数据流,不能够正确的处理。例如:在处理FEC(Forward Error Correction,前向纠错)编码程序时,由于FEC编码程序的数据流需要一段一段的处理,而不是一个数据包一个数据包的处理,才能够获得正确的处理结果。于是,就需要将一段有序的FEC编码程序数据流接收下来,排列成矩阵,并对该矩阵的每一行和每一列都进行运算,产生冗余数据包。
现有技术中实施上述方案时,是完全通过硬件来实现的,对于不同业务类型的数据流,调度装置在将数据流分成多个有序数据流分段时,划分规则是不同的。而采用上述方案处理数据流时,完全通过硬件来实现数据流的并行处理,由于硬件结构的局限性,对于不同的数据流不能够灵活的根据该数据流的特性选择分成多个有序数据流分段,因此,能够处理的数据流种类有限。此外,上述方案中,完全用硬件来实现数据流的保序,保序的策略比较固定,无法针对分段并行处理的数据流的特性进行更高效的保序处理。
发明内容
本发明的实施例提供一种数据流处理方法和装置,提高了处理数据流的灵活性,能够通过多个内核对数据流进行分段并行处理。
为达到上述目的,本发明的实施例采用如下技术方案:
一种数据流处理方法,包括:
设置各个内核每次处理数据流分段的长度;
向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕;
所述各个内核并行处理接收到的数据流分段。
一种数据流处理装置,包括:
流分段配置单元,用于设置各个内核每次处理数据流分段的长度;
流调度单元,用于向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕;
处理器,用于并行处理接收到的数据流分段。
本发明实施例提供的数据流处理方法和装置,能够设置各个内核每次处理数据流分段的长度,更加灵活的处理各种不同业务类型的数据流。在向各个内核连续调度数据包时,按照为各个内核设置的每次处理数据流的长度调度,直到所述各个内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止继续向该内核调度数据包,能够处理需要分段处理的业务类型的数据流。各个内核并行处理接收到的数据流分段,实现多个内核并行处理数据流分段,提高了处理数据流的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据流处理方法的流程图;
图2为实现本发明实施例中数据流处理方法的装置的结构图;
图3为本发明实施例提供的另一种数据流处理方法的流程图;
图4为本发明实施例提供的一种数据流处理装置的结构图;
图5为本发明实施例提供的另一种数据流处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据流处理方法,如图1所示,包括以下步骤:
101、设置各个内核每次处理数据流分段的长度。
对于有些业务的数据流,是需要分段进行处理的,否则,不能得到正确的处理结果。例如,对于FEC编码程序的处理。为了实现灵活的处理各种不同的业务类型的数据流,在对数据流进行处理之前,首先,根据待处理数据流的业务情况,设置各个内核每次处理数据流分段的长度。
102、向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到预先设置的该内核每次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕。
在设置好了各个内核每次处理数据流分段的长度后,可以分别向所有内核中不同的内核连续调度数据包流中的数据包,直到该内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止向该内核调度数据包,转向所有内核中的下一个内核调度数据包,则可以使各个内核分别获得一段连续的数据流分段。依次向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕。
103、各个内核并行处理接收到的数据流分段。
各个内核在接收到调度的数据流分段后,便可以开始对接收到的数据包流进行处理,不需要考虑其它内核是否处理完各自的数据流分段。能够实现多个内核并行处理数据流,进而提高数据流的处理效率。
本实施例提供的数据流处理方法,能够设置各个内核每次处理数据流分段的长度,更加灵活的处理各种不同业务类型的数据流。在向各个内核连续调度数据包时,按照为各个内核设置的每次处理数据流的长度调度,直到所述各个内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止继续向该内核调度数据包,能够处理需要分段处理的业务类型的数据流。各个内核并行处理接收到的数据流分段,实现多个内核并行处理数据流分段,提高了处理数据流的效率。
作为本实施例的一种改进,本发明实施例提供另一种数据流处理方法,执行本实施例的数据流处理方法的装置,如图2所示可以包括:流输入处理单元、流分组单元、内核分组单元、循环调度单元、流分段调度单元、包获取单元、队列轮转输出单元、流分段配置单元、流分段策略单元、处理器,上述各个单元既可以通过软件和硬件结合的方式实现,也可以由纯软件实现。
如图3所示,所述另一种数据流处理方法包括以下步骤
301、对接收到的数据流进行预处理。
从外部网络端口进入的数据流通过流输入处理单元进行数据包的预处理,包括对数据包进行缓存、校验和过滤等操作。
302、对接收到的数据流进行分组。
流分组单元将数据流按照不同的方式分成不同的数据流组,每个数据流划归到一个特定的组中。具体的,分组方式可以按照数据包的源IP地址、或者目的IP地址、或者源端口号、或者目的端口号、或者协议类型等信息来划分,也可以由用户指定数据包的任意一个字段作为划分依据。
将数据包流区分开可以把需要进行特定业务处理的数据包单独提取出来,以便完成后续的业务处理。
303、根据业务对处理能力的需求将内核进行分组。
内核分组单元将用来处理数据流的多个内核进行分组,按照不同业务对处理能力的需要,将几个内核分到与业务类型相对应的内核组中,供相应业务处理使用。内核组和数据流组绑定在一起,每个数据流组中的数据包只能调度给同组的内核进行处理。
304、设置各个内核每次处理数据流分段的长度。
有些业务程序处理数据流时,是需要分段进行处理的,否则,不能得到正确的处理结果。例如,FEC编码程序处理视音频数据流的过程,FEC编码程序就需要对待处理的视音频数据流分段进行处理,才能得到正确的编译结果。
为了实现灵活的处理各种不同业务类型的数据流,在对数据流进行处理之前,首先,流分段保序调度策略单元针对数据流对应的业务特点,定制出数据流分段配置策略,根据待处理数据流的业务情况,设置各个内核每次处理数据流分段的长度。流分段保序调度策略单元包括流分段配置单元和流分段策略单元。
流分段配置单元负责配置不同的数据流分段策略,可以决定每个内核处理的数据流分段的长度,该长度可以是常数,也可以是变量,根据业务程序处理的需求动态产生不同长度值。流分段策略单元负责根据流分段配置单元的配置信息来产生出符合流调度单元需求的数据流分段策略。
以FEC编码程序为例,FEC编码程序将处理数据流的分段情况发送至流分段保序调度策略单元,流分段配置单元根据接收到的FEC编码程序的分段情况,制定数据流分段策略、规则,流分段策略单元设置各个内核每次处理数据流分段的长度。
流分段配置单元可以分为静态配置和动态配置两种方式来实现数据流分段长度的计算。在静态配置中,当一组内核上加载同样的业务程序时,该业务程序将自己的分段需求发送给流分段配置单元,流分段配置单元产生出数据流的分段长度,在整个数据流的处理过程中数据流的分段长度不会改变;在动态配置中,业务程序对于分段的需求可以动态的调整,业务程序可以在运行时根据需要向流分段配置单元发出分段长度调整请求,流分段配置单元在每个调度周期结束后,即在向一组内核中每个内核调度一次后,重新计算数据流的分段长度,流调度单元根据新的分段长度进行下一个周期的调度。
流分段策略单元根据流分段配置单元计算的流分段长度为每个内核组产生数据流分段调度策略,该调度策略指定每个内核组调度计数器的门限值。如果是动态配置,则流分段策略单元还需要在每个调度周期结束时,修改流分段调度单元中计数器的门限值。
305、向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕。
在设置好了各个内核每次处理数据流分段的长度后,流分段保序调度策略单元将此分段策略配置给流调度单元。流调度单元可以分别向各个内核中的一个内核连续调度数据流中的数据包,直到该内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止向该内核调度数据包,转向各个内核中的下一个内核调度数据包,则可以使各个内核分别获得一段连续的数据流分段。流调度单元包括:循环调度单元、流分段调度单元和包获取单元。
循环调度单元将数据流中的数据包快速的轮流调度向对应内核组中的每个内核;流分段调度单元按照分段配置策略指挥各个内核上的包获取模块从循环调度单元循环调度的数据流中获取到指定长度的一段连续的数据包。每个内核可以依次获取到一段连续的数据包,一旦该内核所需长度的数据流分段接收完毕,就可以开始对该数据流分段进行统一处理。接下来的数据包可以由其它内核接收,不会出现阻塞现象。各个内核间可以并行的处理本内核所获取到的数据流分段。
在流调度过程中,循环调度单元实现归属于此内核组的所有内核按顺序的循环调度;也就是数据流中的每个数据包依次调度给内核组中的每个未阻塞的内核。循环调度单元只实现简单的数据包依次在同组内核中顺序调度,不实现数据流的分段调度。
流分段调度单元来完成数据流的分段调度,当调度到某个内核时,它将其它内核置成阻塞状态,使其无法接收数据包;这样循环调度单元就会将这些设置成为阻塞状态的内核从其调度内核列表中去除,接下来的数据包就只能调度到剩下的唯一内核中。流分段调度单元对当前调度的内核启动计数器,计数器的门限值由流分段策略模块按照分段策略所指示的当前数据流分段长度进行设置;然后由包获取单元将循环调度单元调度给本内核的数据包获取下来,每获取一个数据包,计数器加一;当计数器达到门限值后,数据流分段接收完成,将计数器清零,并由流分段调度单元将本内核转入阻塞状态。当前内核转入阻塞状态后,流分段调度单元,按照内核的调度顺序负责将下一个内核从阻塞状态唤醒,进行下一个内核的数据流分段调度。
本实施例中的流调度单元只负责对输入的数据流分段进行调度,不进行对数据流分段的保序处理,保序的工作延迟到数据流输出阶段完成,这样可以实现各个内核的分段并行调度。
306、各个内核并行处理接收到的数据流分段。
处理器包含至少两个内核,各个内核通过包获取单元获取到数据流分段后,便开始对接收到的数据流进行处理,不需要考虑其它内核是否处理完各自的数据流。能够实现多个内核并行处理数据流,进而提高数据流的处理效率。
每个内核上都分配了一段连续的数据流分段,可以实现分段粒度上的并行处理,每个内核不用等待上一个内核处理完再处理,提高了处理速度。
307、接收重新设置各个内核每次处理数据流分段的长度的请求。
业务程序对于数据流分段的需求可以动态的调整,业务程序可以在运行时根据需要向流分段配置单元发出分段长度调整请求。该请求中包含新的数据流的分段长度要求。
308、根据重新设置各个内核每次处理数据流分段的长度的请求重新设置每个内核每次处理数据流分段的长度。
流分段配置单元在每个调度周期结束后,即向一组内核中每个内核调度一次数据流分段后,重新计算并设置数据流的分段长度。
309、流分段调度单元记录向各个内核调度数据包的顺序。
为了能够将数据流按照输入的顺序输出,需要流分段调度单元记录各个内核接收数据流分段的顺序。
310、每个内核将处理完的数据包依次存入自己的输出队列中。
每个内核按照接收的数据包顺序将处理完的数据包依次存入到自己的输出队列中。
311、按照向各个内核调度数据包的顺序输出处理后的数据流分段。
队列轮转输出单元按照内核的调度顺序依次将每个内核输出队列中的所有数据包输出,保证一个队列输出完后,接着输出下一个队列,从而保证整体的数据包流有序。
流调度单元进行快速、高效的并行调度,不具有保序功能,保序的工作延迟到数据流分段输出的时候完成,由队列轮转输出单元负责保证多个内核处理完成的数据包能够保序输出。
队列轮转输出单元通过缓存申请进程,为每个内核在内存中建立一个输出队列,每个输出队列建立两个标志位Flagf、Flage和一个调度序号。Flagf为1时,表示一个数据流分段的所有数据包已经完全写入到该输出队列中;Flage为1时,表示输出队列中的所有数据包已经输出完毕,并清空;调度序号指示该输出队列所对应内核的调度次序,调度序号可以为8bit,采用循环递增方式。
流分段调度单元将内核调度的顺序写入到每个内核输出队列的调度序号中,队列轮转输出单元读取每个输出队列的调度序号,来决定各个输出队列的输出顺序。
内核业务进程处理完数据流分段后,首先将读取本内核输出队列的标志Flage,如果标志Flage为1,将所有的数据包按顺序写入到该内核的输出队列中,当写入完毕后,将Flagf标志置1,Flage清零;如果标志Flage为0,内核业务进程被阻塞,直到标志Flage为1。
当轮到某个内核的输出队列进行输出时,队列轮转输出单元需要先读取该队列的Flagf标志,如果该标志为1,则开始输出,将该队列中的所有数据包依次发送到输出端口。如果该标志为0,则进行阻塞,直到标志为1。当前输出队列中的所有数据包都输出完成后,队列轮转输出单元将该输出队列的Flage置1,Flagf清零。
队列轮转输出单元按照调度序号决定每个内核输出队列的输出顺序,当一个内核输出队列中的一个数据流分段输出完成后,才能进行下一个内核输出队列中数据流分段的输出。
本实施例中的队列轮转输出单元只需要把每个内核的输出队列中的数据流分段依次输出就可以保证整个数据流的有序输出,不需要对每个数据包进行重新排序,具有更高的输出效率和吞吐量。
本实施例提供的数据流处理方法,能够设置各个内核每次处理数据流分段的长度,更加灵活的处理各种不同业务类型的数据流。在向各个内核连续调度数据包时,按照为各个内核设置的每次处理数据流的长度调度,直到所述各个内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止继续向该内核调度数据包,能够处理需要分段处理的业务类型的数据流。各个内核并行处理接收到的数据流分段。实现多个内核分段并行处理数据流,提高了处理数据流的效率。
作为本实施例的一种优选的实施方式,执行本实施例的数据流处理方法的各个单元中,流输入处理单元、流分组单元、循环调度单元、内核分组单元、队列轮转输出单元、处理器可以通过硬件实现;流分段配置单元、包获取单元、流分段策略单元、流分段调度单元可以由软件程序实现。
本发明实施例提供了一种数据流处理装置,如图4所示,包括:流分段配置单元41,流调度单元42和处理器43。
其中,流分段配置单元41用于设置各个内核每次处理数据流分段的长度。
流调度单元42用于向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕。
处理器43包含至少两个内核,所述至少两个内核中的各个内核并行处理接收到的数据流分段。
本实施例提供的数据流处理装置,流分段配置单元能够设置各个内核每次处理数据流分段的长度,更加灵活的处理各种不同业务类型的数据流。在向各个内核连续调度数据包时,流调度单元按照为各个内核设置的每次处理数据流的长度调度,直到所述各个内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止继续向该内核调度数据包,能够处理需要分段处理的业务类型的数据流。处理器中的各个内核并行处理接收到的数据流分段,实现多个内核分段并行处理数据流,提高了处理数据流的效率。此外,输出装置采用分段顺序输出的方式实现保序,可以降低数据包排序的复杂度,提高输出效率和吞吐量。
作为本实施例的一种改进,本发明实施例提供另一种数据流处理装置,如图5所示,包括:流分组单元51、内核分组单元52、流分段配置单元53、流调度单元54、处理器55、接收单元56、重新设置单元57、记录单元58、队列轮转输出单元59。
其中,流分组单元51用于对接收到的数据流进行分组。
内核分组单元52用于根据业务的处理能力需求对内核进行分组。
流分段配置单元53用于设置各个内核每次处理数据流分段的长度。
流调度单元54用于向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕。
处理器55包含至少两个内核,所述至少两个内核中的各个内核并行处理接收到的数据流分段。
接收单元56用于接收业务程序发送的重新设置各个内核每次处理数据流分段的长度的请求。
重新设置单元57用于根据重新设置各个内核每次处理数据流分段的长度的请求重新设置每个内核每次处理数据流分段的长度。
记录单元58用于记录向各个内核调度数据包的顺序。
队列轮转输出单元59用于按照向各个内核调度数据包的顺序输出处理后的数据流分段。
本实施例提供的数据流处理装置,流分段配置能够设置各个内核每次处理数据流分段的长度,更加灵活的处理各种不同业务类型的数据流。流调度单元在向各个内核连续调度数据包时,按照为各个内核设置的每次处理数据流的长度调度,直到所述各个内核接收到的数据流分段达到设置的该内核每次处理数据流分段的长度,停止继续向该内核调度数据包,能够处理需要分段处理的业务类型的数据流。处理器中的各个内核并行处理接收到的数据流分段,实现多个内核并行处理数据流段,提高了处理数据流的效率。输出装置采用分段顺序输出的方式实现保序功能。
本实施例中的各个单元既可以通过硬件实现,也可以通过软件实现。作为本实施例的一种实施方式,所有单元均由软件实现。
本发明实施例提供的数据流处理方法和装置,既可以通过纯软件的方式实现,也可以通过硬件和软件相结合的形式实现。采用纯软件装置的方式实现本实施例中的数据流处理方法,能够更加灵活的实现数据流分段调度和数据流保序输出的功能。使用硬件和软件相结合的方式实现本实施例中的数据流处理方法,由于硬件的计算速度较快,因此能够更加快速的实现对于数据流的调度和处理。
本发明实施例提供的数据流处理方法和装置,可以由软件装置根据业务数据流的工作特点来制定出分段的策略;流调度装置按照分段策略将指定长度的连续数据流分段依次调度给多个内核;每个内核在获取到一段数据流后对其进行相关性处理,在处理过程中,后续的数据流分段可以继续调度到其它内核上,使得内核之间可以实现分段级别的并行处理;当某个内核处理完成后将数据流写入到本内核的输出队列中,可以由软件装置根据内核所接收分段间的先后顺序从各个内核的输出队列中输出数据流,从而达到数据流输出的保序。
本发明设计的方案中,将保序的工作放在输出时完成,使得在调度时实现了数据包流分段间的并行处理;处理完成后按照数据流分段间的先后顺序完成后分段保序输出,能够提高保序的效率,降低处理复杂度。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种数据流处理方法,其特征在于,包括:
设置各个内核每次处理数据流分段的长度;
向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕;
所述各个内核并行处理接收到的数据流分段。
2.根据权利要求1所述的数据流处理方法,其特征在于,所述方法还包括:
按照整个系统数据包的输入顺序输出处理后的数据包。
3.根据权利要求2所述的数据流处理方法,其特征在于,在所述向所有内核中的一个内核连续调度数据包之前,所述方法还包括:
接收重新设置各个内核每次处理数据流分段的长度的请求;
根据所述重新设置各个内核每次处理数据流分段的长度的请求重新设置各个内核每次处理数据流分段的长度。
4.根据权利要求1至3任一项所述的数据流处理方法,其特征在于,在所述设置各个内核每次处理数据流分段的长度之前,所述方法还包括:
对接收到的数据流进行分组。
5.根据权利要求1至3任一项所述的数据流处理方法,其特征在于,在所述设置各个内核每次处理数据流分段的长度之前,所述方法还包括:
根据业务对处理能力的需求将内核进行分组。
6.根据权利要求2所述的数据流处理方法,其特征在于,在所述按照整个系统数据包的输入顺序输出处理后的数据包之前,所述方法还包括:
记录整个系统数据包的输入顺序。
7.一种数据流处理装置,其特征在于,包括:
流分段配置单元,用于设置各个内核每次处理数据流分段的长度;
流调度单元,用于向所有内核中的一个内核连续调度数据包,直到该内核接收到的数据流分段达到设置的该内核本次处理数据流分段的长度,轮流向所有内核中的每一个内核连续调度数据包,直到将所述数据流调度完毕;
处理器,用于并行处理接收到的数据流分段。
8.根据权利要求7所述的数据流处理装置,其特征在于,所述数据流处理装置还包括:
队列轮转输出单元,用于按照整个系统数据包的输入顺序输出处理后的数据包。
9.根据权利要求8所述的数据流处理装置,其特征在于,所述数据流处理装置还包括:
接收单元,用于接收重新设置各个内核每次处理数据流分段的长度的请求;
重新设置单元,用于根据所述重新设置各个内核每次处理数据流分段的长度的请求重新设置每个内核每次处理数据流分段的长度。
10.根据权利要求7至9任一项所述的数据流处理装置,其特征在于,所述数据流处理装置还包括:
流分组单元,用于对接收到的数据流进行分组。
11.根据权利要求7至9任一项所述的数据流处理装置,其特征在于,所述数据流处理装置还包括:
内核分组单元,用于根据业务对处理能力的需求将内核进行分组。
12.根据权利要求8所述的数据流处理装置,其特征在于,所述数据流处理装置还包括:
记录单元,用于记录整个系统数据包的输入顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110082238.XA CN102158408B (zh) | 2011-04-01 | 2011-04-01 | 数据流处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110082238.XA CN102158408B (zh) | 2011-04-01 | 2011-04-01 | 数据流处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102158408A true CN102158408A (zh) | 2011-08-17 |
CN102158408B CN102158408B (zh) | 2014-06-04 |
Family
ID=44439605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110082238.XA Expired - Fee Related CN102158408B (zh) | 2011-04-01 | 2011-04-01 | 数据流处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102158408B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885984A (zh) * | 2012-12-21 | 2014-06-25 | 国际商业机器公司 | 处理数据库查询结果集的方法和设备 |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN108259369A (zh) * | 2018-01-26 | 2018-07-06 | 迈普通信技术股份有限公司 | 一种数据报文的转发方法及装置 |
CN109033003A (zh) * | 2018-08-07 | 2018-12-18 | 天津市滨海新区信息技术创新中心 | 数据流切片比对的方法、装置和异构系统 |
CN109685454A (zh) * | 2018-12-13 | 2019-04-26 | 平安医疗健康管理股份有限公司 | 数据审核方法、装置、设备及存储介质 |
CN111740947A (zh) * | 2020-05-11 | 2020-10-02 | 深圳震有科技股份有限公司 | 一种数据包批量处理方法、智能终端及存储介质 |
WO2021159478A1 (zh) * | 2020-02-14 | 2021-08-19 | 华为技术有限公司 | 报文保序方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059183A1 (en) * | 2006-08-16 | 2008-03-06 | Microsoft Corporation | Parsimonious modeling by non-uniform kernel allocation |
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101183318A (zh) * | 2007-12-13 | 2008-05-21 | 中国科学院计算技术研究所 | 一种资源分配方法和系统 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
-
2011
- 2011-04-01 CN CN201110082238.XA patent/CN102158408B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059183A1 (en) * | 2006-08-16 | 2008-03-06 | Microsoft Corporation | Parsimonious modeling by non-uniform kernel allocation |
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101183318A (zh) * | 2007-12-13 | 2008-05-21 | 中国科学院计算技术研究所 | 一种资源分配方法和系统 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885984A (zh) * | 2012-12-21 | 2014-06-25 | 国际商业机器公司 | 处理数据库查询结果集的方法和设备 |
CN103885984B (zh) * | 2012-12-21 | 2018-05-04 | 国际商业机器公司 | 处理数据库查询结果集的方法和设备 |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN104821924B (zh) * | 2014-01-30 | 2018-11-27 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN108259369A (zh) * | 2018-01-26 | 2018-07-06 | 迈普通信技术股份有限公司 | 一种数据报文的转发方法及装置 |
CN108259369B (zh) * | 2018-01-26 | 2022-04-05 | 迈普通信技术股份有限公司 | 一种数据报文的转发方法及装置 |
CN109033003A (zh) * | 2018-08-07 | 2018-12-18 | 天津市滨海新区信息技术创新中心 | 数据流切片比对的方法、装置和异构系统 |
CN109033003B (zh) * | 2018-08-07 | 2020-12-01 | 天津市滨海新区信息技术创新中心 | 数据流切片比对的方法、装置和异构系统 |
CN109685454A (zh) * | 2018-12-13 | 2019-04-26 | 平安医疗健康管理股份有限公司 | 数据审核方法、装置、设备及存储介质 |
WO2020119115A1 (zh) * | 2018-12-13 | 2020-06-18 | 平安医疗健康管理股份有限公司 | 数据审核方法、装置、设备及存储介质 |
WO2021159478A1 (zh) * | 2020-02-14 | 2021-08-19 | 华为技术有限公司 | 报文保序方法和装置 |
CN111740947A (zh) * | 2020-05-11 | 2020-10-02 | 深圳震有科技股份有限公司 | 一种数据包批量处理方法、智能终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102158408B (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102158408B (zh) | 数据流处理方法和装置 | |
US10430242B2 (en) | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture | |
US10412021B2 (en) | Optimizing placement of virtual machines | |
CN105577567B (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN103309738B (zh) | 用户作业调度方法及装置 | |
US20180336068A1 (en) | Application Load Adaptive Multi-stage Parallel Data Processing Architecture | |
CN103914399B (zh) | 一种并行计算系统中的磁盘缓存方法及装置 | |
US20130074091A1 (en) | Techniques for ensuring resources achieve performance metrics in a multi-tenant storage controller | |
KR102427550B1 (ko) | 재구성 가능한 멀티 포트들을 구비한 PCIe 스토리지 시스템을 위한 서비스 품질을 인식하는 입출력 관리 | |
WO2012146471A1 (en) | Dynamic data partitioning for optimal resource utilization in a parallel data processing system | |
CN1680917A (zh) | 用于跟踪完成表中更大量未完成指令的方法和处理器 | |
CN101246466A (zh) | 多核系统中共享内存的管理方法和装置 | |
CN103838860A (zh) | 一种基于动态副本策略的文件存储系统及其存储方法 | |
CN104834484B (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
CN104133777B (zh) | 一种共享存储系统及其使用方法 | |
WO2013123106A1 (en) | A system and method for a map flow worker | |
CN113110943B (zh) | 软件定义交换结构及基于该结构的数据交换方法 | |
CN102299843A (zh) | 一种基于gpu和缓冲区的网络数据处理方法及系统 | |
US20140068625A1 (en) | Data processing systems | |
CN108037898A (zh) | 一种基于Ceph的dpdk通讯的方法、系统及装置 | |
CN103428099B (zh) | 一种通用多核网络处理器流量控制的方法 | |
CN104579864A (zh) | 用于飞机的数据通信网络 | |
CN103685492A (zh) | Hadoop集群系统的调度方法、调度装置及其应用 | |
CN103218254B (zh) | 一种多队列的自动售检票数据处理方法 | |
CN101374109A (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 | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Haiyang Inventor after: Liu Enhui Inventor after: Xia Yinben Inventor after: Song Xuefei Inventor before: Zhang Haiyang Inventor before: Liu Enhui Inventor before: Xia Yinben Inventor before: Song Xuefei |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20190401 |