发明名称 一种实现多引擎并行处理器中数据包排序的方法
摘要 本发明公开了一种实现多引擎并行处理器中数据包排序的方法,关键是,在数据流的分发过程中产生标记的编码,并保存为一个序列,在数据流的收集过程中对保存在序列中的标记依次解码,选中与该标记相对应的引擎通道或负载通道,依次输出对应的一个完整的数据包,且只允许一个数据包输出。从而解决了对输出数据包的排序。应用本发明,具有以下优点:不需要使用单独的排队机实现数据包排序,减小了系统资源开销;同时,由于排序功能与多引擎并行处理器结合,将排序对并行处理的效率影响降到最小,并降低了系统拥塞的可能性;多引擎并行处理器能够保证数据包的逻辑序,不需要大量占用系统的共享内存。
申请公布号 CN100349122C 申请公布日期 2007.11.14
申请号 CN200510093220.4 申请日期 2005.08.19
申请人 华为技术有限公司 发明人 王海军;黄勇
分类号 G06F9/46(2006.01);G06F15/16(2006.01);H04L12/56(2006.01);H04L29/08(2006.01) 主分类号 G06F9/46(2006.01)
代理机构 北京德琦知识产权代理有限公司 代理人 王琦;程殿军
主权项 1、一种实现多引擎并行处理器中数据包排序的方法,所述多引擎并行处理器包含一层以上的负载均衡模块LBU,且每个LBU对应一个负载收集模块LPU,该LPU与所对应的LBU处于同一层次,其特征在于,在多引擎并行处理器中,预设一个以上用于记录标记信息的序列,且每个序列与一个LBU一一对应;所述LBU执行以下处理步骤:A、LBU接收到待处理数据包,根据预设的分发原则将接收到的待处理数据包分发到下一层的处理模块中,并将所分发的数据包进行标记,以指示该数据包所在负载通路,且将该标记记录在与该LBU所对应的序列中;B、该LBU判断其所对应的序列中记录信息的个数是否达到预设的用于流控数据包个数的阈值,如果是,则停止分发操作,然后重复执行步骤B,否则,重复执行步骤A;所述与每个LBU对应的且与所对应的LBU处于同层的负载收集模块LPU,执行以下处理步骤:a、LPU判断与其对应的LBU所对应的序列中记录信息的个数是否为非空,如果是,执行步骤b;否则重复执行步骤a;b、LPU从该序列中顺序读取一个标记信息,根据该标记信息获取对应数据包所在位置,打开该位置所对应的输出通道,等待一个完整的数据包通过,且只允许一个数据包通过,然后重复执行步骤a,直至所有包文输出完毕。
地址 518129广东省深圳市龙岗区坂田华为总部办公楼