【技术实现步骤摘要】
本专利技术涉及计算机技术,尤其涉及一种在多核计算机上进行数据流处理的方法,以及应用该方法的装置和系统。
技术介绍
随着网络技术的发展,通信流量将会呈现两个明显的新特点:一个是越来越高的单用户数据流峰值流量的带宽,另一个是越来越宽的单用户数据流带宽波动幅度。通信流量的这两个特点必将对网络设备的处理能力提出更高的要求。以网关为例,现有的网关还不能很好的适应通信流量的这两个新特点。网关又称网间连接器或协议转换器,是用于实现不同体系结构的网络之间通信互联的网络设备。为了实现高性能的数据流量处理,网关在内部逻辑上一般包括控制面(controlplane)和转发面(forwardingplane)。控制面执行对转发数据流的控制管理。转发面(或称为数据面)在控制面的管理下,执行数据流的转发。在物理部署上,控制面和转发面通常部署在不同的处理核或者不同的处理器上。为了提升转发能力,转发面一般为多核处理器。目前,主流的转发技术为两种:一种是将不同用户的数据流分配到不同的处理核上处理,另一种是静态流水线技术,即将转发过程根据功能划分为多个处理动作,并将该多个处理动作静态绑定到多个不同的处理核上,每个处理核在对报文执行完对应的处理动作之后,通过队列将报文传递给下一个处理核。前者由于单用户数据流的转发过程集中在一个处理核上完成,导致单用户数据流带宽峰值严重受限于单核的处理能力;后者由于是静态绑定,所以需要按照峰值带宽预留处理核资源,而由于通信流量带宽波动幅度大,导致大部分情况下严重的处理资源浪费。因此,以网关为代表的网络设备急需一种新的数据流处理方法以适应通信流量的以上两个新特点 ...
【技术保护点】
一种数据流处理方法,其特征在于,所述方法应用于包括多个处理核的计算机系统,所述计算机系统用于接收数据流,并对所述数据流中的报文执行具有先后顺序的M个处理动作,M为大于或等于2的整数,所述方法包括:第一处理核确定预设的流水线展开条件是否满足;若确定预设的流水线展开条件满足,则所述第一处理核确定N个未展开的处理动作,并将所述N个处理动作展开,以便于第二处理核执行展开后的所述N个处理动作,N为大于0且小于或等于M的整数。
【技术特征摘要】
2016.02.05 CN 20161008270131.一种数据流处理方法,其特征在于,所述方法应用于包括多个处理核的计算机系统,所述计算机系统用于接收数据流,并对所述数据流中的报文执行具有先后顺序的M个处理动作,M为大于或等于2的整数,所述方法包括:第一处理核确定预设的流水线展开条件是否满足;若确定预设的流水线展开条件满足,则所述第一处理核确定N个未展开的处理动作,并将所述N个处理动作展开,以便于第二处理核执行展开后的所述N个处理动作,N为大于0且小于或等于M的整数。2.根据权利要求1所述的方法,其特征在于,所述第一处理核确定N个未展开的处理动作,并将所述N个处理动作展开,以便于第二处理核执行展开后的所述N个处理动作,包括:所述第一处理核根据处理动作的展开属性确定N个未展开的处理动作,所述属性用于指示所述展开属性所属的处理动作是否展开;所述第一处理核将所述N个未展开的处理动作的展开属性修改为指示相应的处理动作已展开,并通过存储区将执行已展开的处理动作的报文传递给所述第二处理核,以便于所述第二处理核对所述报文执行所述已展开的处理动作。3.根据权利要求2所述的方法,其特征在于,所述第一处理核通过存储区将执行已展开的处理动作的报文传递给所述第二处理核,以便于所述第二处理核对所述把稳执行所述已展开的处理动作包括:所述第一处理核确定所述N个处理动作中每个处理动作对应的流水线队列,以便于所述第一处理核或所述第二处理核将待执行已展开的处理动作的报文在所述已展开的处理动作对应的流水线队列入队,以及所述第二处理核从流水线队列中获取报文并对所述报文执行所述流水线队列对应的处理动作,其中,流水线队列用于存储待执行所述流水线队列对应的处理动作的报文。4.根据权利要求3所述的方法,其特征在于,所述第一处理核或所述第二处理核将待执行已展开的处理动作的报文在所述已展开的处理动作对应的流水线队列入队包括:所述第一处理核或所述第二处理核判断待处理报文的待执行的处理动作的展开属性是否指示所述待执行的处理动作已展开;若是,则将所述待处理报文存储到所述待执行的处理动作对应的流水线队列中,所述待处理报文中被添加有所述待执行的处理动作的标识;若否,则继续对所述待处理报文执行所述待执行的处理动作。5.根据权利要求4所述的方法,其特征在于,当处理核为所述第一处理核时,所述判断步骤在所述当前处理核执行任意一个处理动作之前均执行。6.根据权利要求4所述的方法,其特征在于,当处理核为所述第一处理核时,所述判断步骤在所述当前处理核执行入口动作以及入口动作后续的处理动作之前均执行,所述入口动作是预先设置的指示所述判断步骤启动的处理动作。7.根据权利要求4所述的方法,其特征在于,当处理核为所述第二处理核时,所述判断步骤在所述处理核第一次执行完一个处理动作之后、在执行后续的任意一个处理动作之前执行。8.根据权利要求3-7任意一项所述的方法,其特征在于,处理动作的所述展开属性包括流水线队列标识,所述流水线队列标识为空或无效值表示所述处理动作未展开,所述流水线队列标识为有效标识表示所述处理动作已展开;所述第一处理核修改所述N个处理动作的展开属性为指示相应的处理动作已展开包括:所述第一处理核将所述N个处理动作的流水线队列标识分别设置为所述N个处理动作各自对应的流水线队列的标识。9.根据权利要求1-8任意一项所述的方法,其特征在于,所述未展开的N个处理动作包括所述N个处理动作中任意一个处理动作的所有未展开的后继动作,其中,一个处理动作的后继动作的执行在所述处理动作完成之后。10.根据权利要求3-9任意一项所述的方法,其特征在于,所述流水线队列包括并行流水线队列和串行流水线队列,所述串行流水线队列中存储的报文在同一时刻只能被一个处理核处理,所述并行流水线队列中存储的报文可以被多个处理核同时处理。11.根据权利要求10所述的方法,其特征在于,所述第一处理核确定出的所述N个处理动作中每个处理动作对应的流水线队列需满足如下条件:一个并行流水线队列对应可同时被多个处理核处理的一个或多个处理动作;且一个串行流水线队列对应不可同时被多个处理核处理的一个处理动作。12.根据权利要求11所述的方法,其特征在于,处理动作还包括并行属性,所述并行属性用于指示所述处理动作是否可同时被多个处理核处理,所述第一处理核根据所述并行属性确定所述处理动作是否可同时被多个处理核处理。13.根据权利要求3-12任一项所述的方法,其特征在于,处理动作还包括优先级属性,所述优先级属性用于表示所述处理动作的优先级;且不同的流水线队列具有不同的优先级;所述第一处理核确定出的所述N个处理动作中每个处理动作对应的流水线队列需满足如下条件:每个处理动作对应的流水线队列的优先级与相应的处理动作的优先级匹配。14.根据权利要求3-8任意一项所述的方法,其特征在于,所述流水线队列包括并行流水线队列和串行流水线队列,所述串行流水线队列中存储的报文在同一时刻只能被一个处理核处理,所述并行流水线队列中存储的报文可以被多个处理核同时处理;所述第一处理核确定所述N个处理动作中每个处理动作对应的流水线队列包括:若第一动作集合中所有处理动作均可同时被多个处理核处理,则所述第一处理核确定并行流水线队列为处理动作对应的流水线队列;否则,所述第一处理核确定串行流水线队列为所述处理动作对应的流水线队列;其中,所述第一动作集合包括所述处理动作以及在所述处理动作之后的,且在第一个已展开的处理动作之前的所有处理动作,所述第一个已展开的处理动作为在所述处理动作之后的第一个已展开的处理动作。15.根据权利要求14所述的方法,其特征在于,所述第一处理核确定出的所述N个处理动作中每个处理动作对应的流水线队列需满足如下条件:每个处理动作对应的流水线队列的优先级与所述第一动作集合中优先级最高的处理动作的优先级匹配。16.根据权利要求13或14所述的方法,其特征在于,若在所述N个处理动作中第一个处理动作之前存在已展开的处理动作,则所述方法还包括:根据第二动作集合重新确定第一处理动作对应的流水线队列,所述第一处理动作为所述N个处理动作中第一个处理动作之前的第一个已展开的处理动作;其中,第二动作集合包括所述第一处理动作以及在所述第一处理动作之后的、且在所述N个处理动作中第一个处理动作之前的所有处理动作。17.根据权利要求3-16中任意一项所述的方法,其特征在于,所述第二处理核从流水线队列中获取报文并对所述报文执行所述流水线队列对应的处理动作包括:所述第二处理核通过轮询的方式从多个流水线队列中获取待处理报文,所述待处理报文中携带有处理动作的标识,所述处理动作为所述待处理报文来自的流水线队列对应的处理动作;所述第二处理核根据所述处理动作的标识对所述待处理报文执行所述处理动作。18.根据权利要求1-17任意一项所述的方法,其特征在于,所述预设的流水线展开条件包括入口报文队列中存储的报文个数大于或等于第一阈值,所述入口报文队列中存储有所述计算机系统接收到的、还未被执行任何一个处理动作的报文。19.根据权利要求1-17任意一项所述的方法,其特征在于,所述预设的流水线展开条件包括所述第一处理核从上次空接收开始累计接收到的报文个数大于或等于第二阈值,所述空接收表示接收到的报文个数等于0。20.根据权利要求1-17任意一项所述的方法,其特征在于,所述预设的流水线展开条件包括接收到用户的配置信息,所述配置信息用于指示流水线展开或所述配置信息包含需要展开的处理动作的所述个数N或所述配置信息包含需要展开的所述N个处理动作的标识。21.根据权利要求1-20任意一项所述的方法,其特征在于,所述方法还包括:所述第一处理核确定预设的流水线收缩条件是否满足;若确定所述预设的流水线收缩条件满足,则所述第一处理核确定已展开的P个处理动作,并将所述P个处理动作设置为未展开,P为大于0的整数。22.根据权利要求1-21任意一项所...
【专利技术属性】
技术研发人员:高雄,吴杰,李保松,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。