一种网络处理器配置方法以及网络处理器技术

技术编号:10352145 阅读:121 留言:0更新日期:2014-08-25 11:07
本发明专利技术公开了一种网络处理器配置方法以及网络处理器。所述网络处理器中,每级处理单元包括匹配单元、动作单元、控制单元和延时电路,第K级处理单元中的控制单元用于:在所述第K级处理单元接收到第K-1级处理单元传输来的第一报文以及所述第一报文的当前依赖关系后,获取所述第K级处理单元缓存的第二报文的最终依赖关系;根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系确定所述第一报文的最终依赖关系;根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路。本发明专利技术可动态调节各级处理单元的当前依赖关系,提高网络处理器的流水线配置的灵活性。

【技术实现步骤摘要】
一种网络处理器配置方法以及网络处理器
本专利技术涉及数据通信领域,尤其涉及一种网络处理器配置方法以及网络处理器。
技术介绍
随着对网络带宽需求的增长以及网络应用的日益多样化,以专用集成电路(英文:application-specificintegratedcircuit,缩写:ASIC)技术为核心的路由器等网络设备已经成为了网络的瓶颈。为了解决网络的瓶颈,基于专用指令集处理器(英文:application-specificinstruction-setprocessor,缩写:ASIP)技术的网络处理器(英文:networkprocessor,缩写:NP)得到了广泛发展。现有的报文转发技术使用流水线架构(英文:pipelinearchitecture)的网络处理器,即网络处理器中的多个处理单元组成一条流水线,一个处理单元为所述流水线的一级(英文:stage)。通常,每级处理单元包括匹配单元和动作单元,进入网络处理器的报文及其中间处理信息会随着各个处理单元的执行顺序沿着所述流水线逐级向后传递,直到流水线的最后一级。所述中间处理信息可包括端口号、报文长度、输出端口、查表索引等信息。以流水线上的第K-1级与第K级为例,相邻两级流水线的匹配单元和动作单元之间的依赖关系包括以下几种类型:匹配依赖关系:第K级的匹配单元的输入依赖于第K-1级动作单元的输出;动作依赖关系:第K级动作单元的输入依赖于第K-1级动作单元的输出;无依赖关系:第K级任何单元的输入不依赖于第K-1级任何单元的输出。上述三种依赖关系按照报文处理延时长度从长到短进行排列依次为:匹配依赖关系、动作依赖关系、无依赖关系。现有技术中,由编译器根据转发处理程序预先定义的流水线中的各级处理单元之间的依赖关系对网络处理器进行初始化配置。网络处理器的流水线结构在初始化配置完成后不再改变,导致各级处理单元间的依赖关系配置灵活性较差,进而导致较大的报文处理延时。
技术实现思路
本专利技术提供了一种网络处理器配置方法以及网络处理器,用以提高流水线中的各级处理单元之间的依赖关系配置的灵活性,进而减少报文处理的延时。第一方面,提供一种网络处理器,所述网络处理器包括N级处理单元,所述N级处理单元组成一条流水线;每级处理单元包括匹配单元、动作单元、控制单元和延时电路,所述控制单元通过设置所述延时电路来配置相邻两级处理单元中的匹配单元和动作单元间的依赖关系,其中,第K级处理单元中的控制单元用于:在所述第K级处理单元接收到第K-1级处理单元传输来的第一报文以及所述第一报文的当前依赖关系后,获取所述第K级处理单元缓存的第二报文的最终依赖关系,1≤K≤N-1;其中,所述第一报文的当前依赖关系是在对所述流水线进行初始化配置的过程中存储到所述第K-1级处理单元的,所述第一报文的当前依赖关系是所述第一报文在所述第K级处理单元对应的所有分支的依赖关系中具有最大延时的依赖关系;根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系,确定所述第一报文的最终依赖关系;根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路。结合第一方面,在第一种可能的实现方式中,所述控制单元在确定所述第一报文的最终依赖关系时,具体用于:根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系,将所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系中,具有最大延时的依赖关系确定为所述第一报文的最终依赖关系。结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对所述流水线进行初始化配置的过程包括:获取流水线配置文件,所述流水线配置文件中包括每级处理单元的所有分支的依赖关系,其中,相邻两级处理单元中的前一级处理单元的一个转发表到下一级处理单元的一个转发表之间的转发关系形成所述前一级处理单元的一个分支;针对每级处理单元,根据所述流水线配置文件,将所述处理单元的所有分支的依赖关系中延时最大的依赖关系确定为所述处理单元到下一级处理单元的依赖关系;根据每个相邻两级处理单元之间的依赖关系配置所述流水线,以及针对每级处理单元中的每个转发表,将以所述转发表为起点的所有分支的依赖关系中延时最大的依赖关系,存储到前一级处理单元中。结合第一方面、第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述流水线中每级处理单元的延时电路包括:第一至第三多路选择器以及第一至第四延时器,其中:第一多路选择器的第一路输入来自前一级处理单元的延时电路中的第二延时器的输出、第二路输入来自前一级处理单元的延时电路中的第一延时器的输出、第三路输入来自前一级处理单元的延时电路中第三多路选择器的输出;第一多路选择器的输出端与本级处理单元的延时电路中的第一延时器的输入端、匹配单元的输入端连接;本级处理单元中的第二延时器连接在本级处理单元的延时电路中的第一延时器的输出端与下一级处理单元的延时电路中的第一多路选择器的第一路输入端之间;第二多路选择器的第四路输入来自本级处理单元的延时电路中的第三延时器的输出、第五路输入来自前一级处理单元的延时电路中的第三多路选择器的输出;第二多路选择器的输出端与本级处理单元的动作单元的输入端连接;本级处理单元的延时电路中的第三延时器连接在本级处理单元的延时电路中的第一延时器的输出端与所述第二多路选择器的第四路输入端之间;第三多路选择器的第六路输入来自本级动作单元的输出、第七路输入来自本级处理单元的延时电路中的第四延时器的输出,所述第四延时器连接在前一级处理单元的第三多路选择器的输出端与本级处理单元的延时电路中的第三多路选择器的第七路输入端之间。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,每级处理单元的延时电路中的第一延时器以及第四延时器的延时长度为、第二延时器的延时长度为、第三延时器的延时长度为,所述为一个时钟周期长度,所述为所述动作单元的延时长度,所述为所述匹配单元的延时长度。结合第一方面的第三种或者第四种可能的实现方式,在第五种可能的实现方式中,当根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路时,所述控制单元具体用于执行以下操作中的至少一个:若所述第一报文的最终依赖关系为匹配依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第三路输入选通,将第二多路选择器第四路输入选通,将第三多路选择器的第六路输入选通;若所述第一报文的最终依赖关系为动作依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第一路输入选通,将第二多路选择器第五路输入选通,将第三多路选择器的第六路输入选通;若所述第一报文的最终依赖关系为无依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第二路输入选通,将第二多路选择器第四路输入选通,将第三多路选择器的第六路输入和第七路输入选通,所述第六路输入的优先级高于所述第七路输入的优先级。第二方面,提供一种网络处理器配置方法,所述网络处理器包括N级处理单元,所述N级处理单元组成一条流水线;每级处理单元中包括匹配单元、动作单元、控制单元和延时电路,所述控制单元通过设置所述延时电路来配置相邻两级处本文档来自技高网
...
一种网络处理器配置方法以及网络处理器

【技术保护点】
一种网络处理器,其特征在于,所述网络处理器包括N级处理单元,所述N级处理单元组成一条流水线;每级处理单元包括匹配单元、动作单元、控制单元和延时电路,所述控制单元通过设置所述延时电路来配置相邻两级处理单元中的匹配单元和动作单元间的依赖关系,其中,第K级处理单元中的控制单元用于:在所述第K级处理单元接收到第K‑1级处理单元传输来的第一报文以及所述第一报文的当前依赖关系后,获取所述第K级处理单元缓存的第二报文的最终依赖关系,1≤K≤N‑1;其中,所述第一报文的当前依赖关系是在对所述流水线进行初始化配置的过程中存储到所述第K‑1级处理单元的,所述第一报文的当前依赖关系是所述第一报文在所述第K级处理单元对应的所有分支的依赖关系中具有最大延时的依赖关系;根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系,确定所述第一报文的最终依赖关系;根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路。

【技术特征摘要】
1.一种网络处理器,其特征在于,所述网络处理器包括N级处理单元,所述N级处理单元组成一条流水线;每级处理单元包括匹配单元、动作单元、控制单元和延时电路,所述控制单元通过设置所述延时电路来配置相邻两级处理单元中的匹配单元和动作单元间的依赖关系,其中,第K级处理单元中的控制单元用于:在所述第K级处理单元接收到第K-1级处理单元传输来的第一报文以及所述第一报文的当前依赖关系后,获取所述第K级处理单元缓存的第二报文的最终依赖关系,1≤K≤N-1;其中,所述第一报文的当前依赖关系是在对所述流水线进行初始化配置的过程中存储到所述第K-1级处理单元的,所述第一报文的当前依赖关系是所述第一报文在所述第K级处理单元对应的所有分支的依赖关系中具有最大延时的依赖关系;根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系,确定所述第一报文的最终依赖关系;根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路。2.如权利要求1所述的网络处理器,其特征在于,所述控制单元在确定所述第一报文的最终依赖关系时,具体用于:根据所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系,将所述第一报文的当前依赖关系以及所述第K级处理单元缓存的所述第二报文的最终依赖关系中,具有最大延时的依赖关系确定为所述第一报文的最终依赖关系。3.如权利要求1或2所述的网络处理器,其特征在于,所述对所述流水线进行初始化配置的过程包括:获取流水线配置文件,所述流水线配置文件中包括每级处理单元的所有分支的依赖关系,其中,相邻两级处理单元中的前一级处理单元的一个转发表到下一级处理单元的一个转发表之间的转发关系为所述前一级处理单元的一个分支;针对每级处理单元,根据所述流水线配置文件,将所述处理单元的所有分支的依赖关系中延时最大的依赖关系确定为所述处理单元到下一级处理单元的依赖关系;根据每个相邻两级处理单元之间的依赖关系配置所述流水线,以及针对每级处理单元中的每个转发表,将以所述转发表为起点的所有分支的依赖关系中延时最大的依赖关系,存储到前一级处理单元中。4.如权利要求3所述的网络处理器,其特征在于,所述流水线中每级处理单元的延时电路包括:第一至第三多路选择器以及第一至第四延时器,其中:第一多路选择器的第一路输入来自前一级处理单元的延时电路中的第二延时器的输出、第二路输入来自前一级处理单元的延时电路中的第一延时器的输出、第三路输入来自前一级处理单元的延时电路中第三多路选择器的输出;第一多路选择器的输出端与本级处理单元的延时电路中的第一延时器的输入端、匹配单元的输入端连接;本级处理单元中的第二延时器连接在本级处理单元的延时电路中的第一延时器的输出端与下一级处理单元的延时电路中的第一多路选择器的第一路输入端之间;第二多路选择器的第四路输入来自本级处理单元的延时电路中的第三延时器的输出、第五路输入来自前一级处理单元的延时电路中的第三多路选择器的输出;第二多路选择器的输出端与本级处理单元的动作单元的输入端连接;本级处理单元的延时电路中的第三延时器连接在本级处理单元的延时电路中的第一延时器的输出端与所述第二多路选择器的第四路输入端之间;第三多路选择器的第六路输入来自本级动作单元的输出、第七路输入来自本级处理单元的延时电路中的第四延时器的输出,所述第四延时器连接在前一级处理单元的第三多路选择器的输出端与本级处理单元的延时电路中的第三多路选择器的第七路输入端之间。5.如权利要求4所述的网络处理器,其特征在于,每级处理单元的延时电路中的第一延时器以及第四延时器的延时长度为t、第二延时器的延时长度为ta、第三延时器的延时长度为tm,所述t为一个时钟周期长度,所述ta为所述动作单元的延时长度,所述tm为所述匹配单元的延时长度。6.如权利要求5所述的网络处理器,其特征在于,当根据所述第一报文的最终依赖关系设置所述第K级处理单元的延时电路时,所述控制单元具体用于执行以下操作中的至少一个:若所述第一报文的最终依赖关系为匹配依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第三路输入选通,将第二多路选择器第四路输入选通,将第三多路选择器的第六路输入选通;若所述第一报文的最终依赖关系为动作依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第一路输入选通,将第二多路选择器第五路输入选通,将第三多路选择器的第六路输入选通;若所述第一报文的最终依赖关系为无依赖关系,则:对于所述第K级处理单元的延时电路,将第一多路选择器的第二路输入选通,将第二多路选择器第四路输入选通,将第三多路选择器的第六路输入和第七路输入选通,所述第六路输入的优先级高于所述第七路输入的优先...

【专利技术属性】
技术研发人员:李楠王临春
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1