基于多核处理器的报文处理方法、装置和网络设备制造方法及图纸

技术编号:7976377 阅读:164 留言:0更新日期:2012-11-16 01:42
本发明专利技术提供一种基于多核处理器的报文处理方法、装置和网络设备,方法包括:对网络设备的报文处理过程的程序执行路径进行分析,获取报文处理过程的关键路径;对关键路径中的各处理子过程进行量化分析,分别生成各处理子过程的量化值;根据预设的散列算法对应的散列值范围获取流水线条数的取值范围;根据关键路径中的各处理子过程的量化值、流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用流水线条数和流水线级数处理报文。本发明专利技术还提供了一种基于多核处理器的报文处理装置和网络设备。本发明专利技术对流水线参数进行动态优化设定,使得网络设备能够达到最佳的数据处理性能。

【技术实现步骤摘要】

本专利技术涉及通信技术,尤其涉及一种基于多核处理器的报文处理方法、装置和网络设备
技术介绍
IP网络设备,如交换机、路由器、防火墙和网关等,作为计算机互连的数据交换节点,其数据转发性能决定了网络的整体质量。随着用户连接数的急剧增长和各种高带宽应用的出现,主频提升受限的单核处理器越来越难以满足高速数据转发的性能需求,而多核处理器凭借其较低成本的扩展能力和并行计算特性,逐渐在网络通信领域得到广泛引用。所谓多核处理器,是指在一个硬件芯片上集成多个核心处理器(Core-CPU ;以下简称Core),通常为共享内存式结构。多核处理器具备相对独立的多个计算处理核心,可以并行 地执行报文转发处理程序,从而使得报文转发性能得到大幅度提高,进而可以提高系统整体的吞吐率。但是,多核处理器由于共享许多硬件和软件资源,在数据转发繁忙时,如何能够提高彼此的协同效率,减少相互等待时间,充分发挥并行特性成为多核处理器平台软件开发的难点。再者,由于每个处理器核心处理不同报文的时间随机性,有可能造成先进入转发序列的报文,反而后到达输出序列,出现所谓的报文乱序现象。为了提高多核处理器的计算并行性,现有技术中经常采用的一种是流水线技术报文从网络接口进入,然后通过前置报文分类单元把报文散列到各条流水线(为了满足保序要求,同一报文流通常会散列到同一条流水线),报文经由流水线各个处理阶段处理后,再被分发到输出单元的各个报文队列,最后经由出接口从物理线路发送出去。其中,流水线级数为一条流水线中所包含的处理阶段个数。然而,现有技术中尚不存在对流水线技术中流水线条数和级数进行动态调整的方案,因此现有技术中网络设备的数据转发性能不高。即,若流水线条数或级数设置得太多,则将增加各条流水线和各级任务在核间切换的开销;若流水线条数或级数设置得太少,则无法实现多核处理器的全并发。
技术实现思路
本专利技术提供一种基于多核处理器的报文处理方法、装置和网络设备,对流水线参数进行优化设定,使得网络设备能够达到最佳的数据处理性能。本专利技术的第一个方面是提供一种基于多核处理器的报文处理方法,包括对网络设备的报文处理过程的程序执行路径进行分析,获取所述报文处理过程的关键路径;对所述关键路径中的各处理子过程进行量化分析,分别生成所述各处理子过程的量化值;根据预设的散列算法对应的散列值范围获取流水线条数的取值范围;根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用所述流水线条数和所述流水线级数处理报文。本专利技术的另一个方面是提供一种基于多核处理器的报文处理装置,包括路径获取模块,用于对网络设备的报文处理过程的程序执行路径进行分析,获取所述报文处理过程的关键路径;量化模块,用于对所述关键路径中的各处理子过程进行量化分析,分别生成所述各处理子过程的量化值;范围获取模块,用于根据预设的散列算法对应的散列值范围获取流水线条数的取值范围;计算模块,用于根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用所述流水线条数和所述流水线级数处理报文。本专利技术的又一个方面是提供一种网络设备,包括上述的基于多核处理器的报文处理装置。本专利技术的技术效果是通过分析获取报文处理过程的关键路径,并量化生成各处理子过程的量化值,根据预设的散列算法对应的散列值范围获取流水线条数的取值范围,再根据关键路径中的各处理子过程的量化值、流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用流水线条数和流水线级数处理报文。本实施例对流水线参 数进行优化设定,使得网络设备能够达到最佳的数据处理性能。附图说明图I为本专利技术基于多核处理器的报文处理方法实施例一的流程图;图2为本专利技术基于多核处理器的报文处理方法实施例一中改进流水线技术的过程不意图;图3为本专利技术基于多核处理器的报文处理方法实施例二的流程图;图4为本专利技术基于多核处理器的报文处理方法实施例二中的典型报文处理过程示例图;图5为本专利技术基于多核处理器的报文处理装置实施例三的结构示意图;图6为本专利技术基于多核处理器的报文处理装置实施例四的结构示意图。具体实施例方式图I为本专利技术基于多核处理器的报文处理方法实施例一的流程图,如图I所示,本实施例提供了一种基于多核处理器的报文处理方法,可以具体包括如下步骤步骤101,对网络设备的报文处理过程的程序执行路径进行分析,获取所述报文处理过程的关键路径。流水线技术分为传统标准流水线技术和改进流水线技术。其中,传统标准流水线技术是指每个Core只执行整条报文处理流水线上的其中一个阶段,报文经由各个处理阶段,类似工业流水线方式在各个Core上迁移。为了保证报文在Core间处理迁移的高效性,将流水线的各个阶段与指定的CPU核绑定。图2为本专利技术基于多核处理器的报文处理方法实施例一中改进流水线技术的过程示意图,如图2所示,改进流水线中的各个阶段由虚线程对象组成,每条流水线由一个流水线对象管理,包含各级流水线处理函数的指针及各级流水线进行加工的报文链指针。不同的报文由前置报文散列单元散列到不同的Group中,每个Group对应一条流水线,每条流水线中包含的虚线程的个数为流水线级数,每个虚线程可以对应一个报文处理子过程。然后调度各处理器核对各流水线中的各虚线程进行处理,而不将流水线与处理器核进行绑定,从而达到并行处理的目的。为了达到报文保序的目的,将虚线程流水线对象与前置报文散列单元的目标Group绑定,每级流水线加工完的数据均被挂载到流水线管理对象的滑动窗口下的数据链表中,后到达的报文的加工顺序不会早于先到达报文的加工顺序。由于改进流水线技术中的各级任务不再与固定Core绑定,且各级处理任务的划分均衡性要求不是很高,因此采用改进流水线技术的网络设备报文处理方案不仅可以适应于不同Core数目的多核处理器硬件平台,而且即使出现报文散列不均 衡的情况,依然可以利用空闲Core的处理资源,提高网络设备的最差转发性能。本实施例为了满足报文处理程序对各种多核硬件平台的灵活适应性,同时充分发挥多核的并行处理资源,在多核处理器网络设备中采用改进流水线的数据处理程序运行模型。在该数据处理程序运行模型中,流水线条数和流水线级数是最重要的两个参数,其决定着网络设备的性能,因此,本实施例主要对改进流水线技术中的流水线条数和流水线级数进行计算和调整,以充分发挥多核处理器的并行计算能力。本步骤为先对网络设备的报文处理过程的程序执行路径进行分析,即分析各种类型的报文经过网络设备进行处理时可能经过的各条处理分支,通过分析获取该报文处理过程的关键路径。此处的关键路径为影响网络设备性能的关键路径,其占据经过网络设备处理比重最大的报文所经过的程序处理分支;针对不同应用类型的网络设备及网络设备当前开启的业务功能,获取到的关键路径不同。例如,作为网络后台运行的病毒扫描设备来说,一般认为它的关键路径是报文接收-病毒扫描-病毒特征码入库;而在本实施例中,则以报文接收-病毒扫描-报文丢弃作为关键路径。这是由于经由病毒扫描设备检测出病毒的报文相对于流量巨大的正常报文来说,其占据的比重很小,因此病毒特征码入库难以成为病毒扫描设备报文处理过程中的性能瓶颈,除非出现网络异常。对于本文档来自技高网
...

【技术保护点】
一种基于多核处理器的报文处理方法,其特征在于,包括:对网络设备的报文处理过程的程序执行路径进行分析,获取所述报文处理过程的关键路径;对所述关键路径中的各处理子过程进行量化分析,分别生成所述各处理子过程的量化值;根据预设的散列算法对应的散列值范围获取流水线条数的取值范围;根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用所述流水线条数和所述流水线级数处理报文。

【技术特征摘要】
1.一种基于多核处理器的报文处理方法,其特征在于,包括 对网络设备的报文处理过程的程序执行路径进行分析,获取所述报文处理过程的关键路径; 对所述关键路径中的各处理子过程进行量化分析,分别生成所述各处理子过程的量化值; 根据预设的散列算法对应的散列值范围获取流水线条数的取值范围; 根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数,以采用所述流水线条数和所述流水线级数处理报文。2.根据权利要求I所述的方法,其特征在于,所述根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数包括 当所述关键路径中的处理子过程的个数大于处理器核数时,对所述关键路径中的各处理子过程进行合并,以使合并后的处理子过程的个数小于所述处理器核数; 根据所述合并后的处理子过程的个数生成流水线级数; 根据所述流水线条数的取值范围、每条流水线的最小处理核数和所述处理器核数生成流水线条数,以使生成的流水线条数与每条流水线的最小处理核数的乘积大于所述处理器核数,所述每条流水线的最小处理核数是根据所述关键路径中的各处理子过程的量化值计算得到的。3.根据权利要求2所述的方法,其特征在于,所述根据所述流水线条数的取值范围、每条流水线的最小处理核数和所述处理器核数生成流水线条数,以使生成的流水线条数与每条流水线的最小处理核数的乘积大于所述处理器核数包括 根据每条流水线的最小处理核数和所述处理器核数,获取满足流水线条数与每条流水线的最小处理核数的乘积大于所述处理器核数条件,且处于所述流水线条数的取值范围内的候选流水线条数; 选择所述候选流水线条数中的最小值作为流水线条数。4.根据权利要求2所述的方法,其特征在于,所述对所述关键路径中的各处理子过程进行合并包括 根据所述关键路径中各子处理过程的业务功能,对所述关键路径中的相邻子处理过程进行合并;或者, 获取所述关键路径中各子处理过程的量化值的最大值,对所述关键路径中的相邻子处理过程进行合并,合并后的子处理过程的量化值小于所述量化值的最大值。5.根据权利要求2所述的方法,其特征在于,还包括 根据所述关键路径中的各处理子过程的量化值,并采用下述公式计算所述每条流水线的最小处理核数; 其中,N为所述每条流水线的最小处理核数,Tsum为所述关键路径中各处理子过程的量化值的总和,Tfflax为所述关键路径中各处理子过程的量化值的最大值。6.根据权利要求1-5中任一项所述的方法,其特征在于,还包括 当所述网络设备的业务功能配置发生变化时,根据变化后的业务功能配置更新所述关键路径中的各处理子过程,并获取更新后的关键路径中更新的处理子过程的量化值; 所述根据所述关键路径中的各处理子过程的量化值、所述流水线条数的取值范围和处理器核数计算流水线条数和流水线级数还包括 根据所述更新后的关键路径中的各处理子过程的量化值、所述流水线条数的取值范围...

【专利技术属性】
技术研发人员:林镜华李淑萍
申请(专利权)人:北京星网锐捷网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1