CN107018078A - 多分支跳转协处理方法及装置 - Google Patents

多分支跳转协处理方法及装置 Download PDF

Info

Publication number
CN107018078A
CN107018078A CN201710061332.4A CN201710061332A CN107018078A CN 107018078 A CN107018078 A CN 107018078A CN 201710061332 A CN201710061332 A CN 201710061332A CN 107018078 A CN107018078 A CN 107018078A
Authority
CN
China
Prior art keywords
tcam
sub
condition
branch
branch jump
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
Application number
CN201710061332.4A
Other languages
English (en)
Other versions
CN107018078B (zh
Inventor
钟汝刚
李顺方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xuzhou Bochuang Construction Development Group Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010717565.7A priority Critical patent/CN112039782B/zh
Priority to CN201710061332.4A priority patent/CN107018078B/zh
Publication of CN107018078A publication Critical patent/CN107018078A/zh
Application granted granted Critical
Publication of CN107018078B publication Critical patent/CN107018078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本申请提供一种多分支跳转协处理方法及装置,包括:第一网络处理器获取分支跳转条件,并将分支跳转条件发送给协处理器,分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应;协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;并根据匹配成功的TCAM条目确定SRAM地址,SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;将SRAM地址发送给第二网络处理器;第二网络处理器根据SRAM地址确定待执行动作对应的存储地址,执行存储地址对应的待执行动作。从而提高了分支跳转条件的匹配效率,降低TCAM的功耗。

Description

多分支跳转协处理方法及装置
技术领域
本申请涉及多分支跳转协处理技术,尤其涉及一种多分支跳转协处理方法及装置。
背景技术
随着互联网技术的不断发展,交换机或者路由器的应用也越来越频繁,通常交换机或者路由器中包括有网络处理器,在网络处理器上运行的软件中,会遇到多分支跳转结构。
目前网络处理器基于三态内容寻址存储器(Ternary Content Address Memory,简称TCAM)来实现这种分支跳转。其中TCAM中存储有多条TCAM条目。网络处理器对编译后的分支跳转条件与TCAM中的TCAM条目进行匹配,当匹配成功后,则该网络处理器将匹配成功的TCAM条目对应的静态随机存储器(Static Random Access Memory,简称SRAM)地址发送给下一个网络处理器,该下一个网络处理器通过确定SRAM地址中所存储的待执行动作对应的存储地址,来执行该存储地址对应的待执行动作。
然而,目前网络处理器基于TCAM进行分支跳转条件匹配时,存在匹配数量庞大的问题。尤其当分支跳转条件较为复杂时,则TCAM条目也会存在爆炸式增长的趋势,从而造成多分支跳转条件匹配效率低的问题,同时这将对TCAM的存储空间带来进一步的挑战。
发明内容
本申请提供一种多分支跳转协处理方法及装置,从而提高多分支跳转条件匹配效率,并且可以节省TCAM的存储空间,进而降低TCAM的功耗。
第一方面,本申请实施例提供一种多分支跳转协处理方法,该方法应用于交换机或者路由器,该交换机或者路由器包括:第一网络处理器、第二网络处理器、协处理器和三态内容寻址存储器TCAM,协处理器的两端分别与第一网络处理器和第二网络处理器连接,TCAM与协处理器连接,其中TCAM按照待处理业务被逻辑划分为N个子TCAM,N为大于或者等于2的正整数,前N-1个子TCAM中的每个子TCAM中包括至少一条TCAM条目,每个子TCAM中的至少一条TCAM条目存在一个收敛节点,且收敛节点为每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点;该方法包括:
第一网络处理器获取分支跳转条件,并将分支跳转条件发送给协处理器,其中分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应。
协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目。
协处理器根据匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址。
协处理器将SRAM地址发送给第二网络处理器。
第二网络处理器根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。
本申请实施例的有益效果是:由于TCAM被逻辑划分为N个子TCAM,使得TCAM条目数量降低,从而提高了分支跳转条件的匹配效率,并且可以节省TCAM的存储空间,进而降低TCAM的功耗。
可选地,若分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为第一数值、第二数值和第三数值中的任一项。
当任一分支跳转子条件中的条件节点取所述第一数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第一数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功。
当任一分支跳转子条件中的条件节点取第二数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第二数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功。
当任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示任一分支跳转子条件和任一条TCAM条目匹配成功。
通过该方法可以有效确定分支跳转子条件和任一条TCAM条目是否匹配成功。
可选地,协处理器根据匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,包括:
协处理器在至少一条TCAM条目中,确定与每个子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目。
协处理器确定取值相同的TCAM条目对应的SRAM地址为SRAM地址。
通过该方法可以有效SRAM地址,从而可以根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。
可选地,还包括:协处理器获取子TCAM的划分信息,划分信息包括:收敛节点的个数和收敛节点的位置信息。
协处理器根据子TCAM的划分信息确定分支跳转条件的分割节点,并根据分割节点对分支跳转条件进行划分,获得N条分支跳转子条件。
通过该方法协处理器可以准确的对分支跳转条件进行划分,使得TCAM条目数量降低,从而提高了分支跳转条件的匹配效率,并且可以节省TCAM的存储空间,进而降低TCAM的功耗。
下面将提供一种多分支跳转协处理装置,该装置可以用于执行上述的多分支跳转协处理方法,其实现原理和技术效果类似,在此不再赘述。
第二方面,本申请实施例提供一种多分支跳转协处理装置,该装置包括:第一网络处理器、第二网络处理器、协处理器和三态内容寻址存储器TCAM,协处理器的两端分别与第一网络处理器和第二网络处理器连接,TCAM与协处理器连接,其中TCAM按照待处理业务被逻辑划分为N个子TCAM,所述N为大于或者等于2的正整数,前N-1个子TCAM中的每个子TCAM中包括至少一条TCAM条目,所述每个子TCAM中的至少一条TCAM 条目存在一个收敛节点,且收敛节点为每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点。
第一网络处理器用于获取分支跳转条件,并将分支跳转条件发送给协处理器,其中分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应。
协处理器用于对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;根据匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;并将SRAM地址发送给第二网络处理器。
第二网络处理器用于根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。
可选地,若分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为第一数值、第二数值和第三数值中的任一项。
当任一分支跳转子条件中的条件节点取第一数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第一数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功。
当任一分支跳转子条件中的条件节点取第二数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第二数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功。
当任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示任一分支跳转子条件和任一条TCAM条目匹配成功。
可选地,协处理器具体用于:在至少一条TCAM条目中,确定与每个子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目。确定取值相同的TCAM条目对应的SRAM地址为所述SRAM地址。
可选地,协处理器还用于:获取子TCAM的划分信息,划分信息包括:收敛节点的个数和收敛节点的位置信息。根据子TCAM的划分信息确定分支跳转条件的分割节点,并根据分割节点对分支跳转条件进行划分,获得N条分支跳转子条件。
本申请提供一种多分支跳转协处理方法及装置,该方法包括:第一网络处理器获取分支跳转条件,并将分支跳转条件发送给协处理器,其中分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应;协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;协处理器根据匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;协处理器将SRAM地址发送给所述第二网络处理器;第二网络处理器根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。由于TCAM被逻辑划分为N个子TCAM,使得TCAM条目数量降低,从而提高了分支跳转条件的匹配效率,并且可以节省TCAM的存储空间,进而降低TCAM的功耗。
附图说明
图1为本发明一实施例提供的一种多分支跳转协处理方法的流程图;
图2为本发明一实施例提供的基于交换机或者路由器所提供的多分支跳转协处理的示意图;
图3A为本发明一实施例提供的子TCAM与SRAM单元对应关系的示意图;
图3B为本发明另一实施例提供的子TCAM与SRAM单元对应关系的示意图;
图4A为现有技术提供的分支跳转结构的示意图;
图4B为本发明一实施例提供的分支跳转结构和基于该分支跳转结构的TCAM划分的示意图;
图4C为本发明一实施例提供的分支跳转结构和基于该分支跳转结构的TCAM划分的示意图;
图5为本申请一实施例提供的一种多分支跳转协处理装置的结构示意图。
具体实施方式
目前,在网络处理器上运行的软件中,经常会遇到多分支跳转结构,例如网络处理器运行的多分支跳转结构如下:
其中左侧的conditon_1,conditon_2、conditon_3以及conditon_X等为多分支跳转条件,Key为任一多分支跳转条件,右侧的TCAM entry1、TCAM entry2和TCAM entry3等为TCAM中存储的TCAM条目。
现有技术中网络处理器对编译后的分支跳转条件与TCAM中的TCAM条目进行匹配,当匹配成功后,则该网络处理器将匹配成功的TCAM条目对应的SRAM地址发送给下一个网络处理器,该下一个网络处理器通过确定SRAM地址中所存储的待执行动作对应的存储地址,来执行该存储地址对应的待执行动作。
然而目前网络处理器基于TCAM进行分支跳转条件匹配时,存在匹配数量庞大的问题。尤其当分支跳转条件较为复杂时,则TCAM条目也会存在爆炸式增长的趋势,从而造成多分支跳转条件匹配效率低的问题,同时这将对TCAM的存储空间带来进一步的挑战。
为了解决上述问题,本申请提供一种多分支跳转协处理方法及装置。具体地,图1为 本发明一实施例提供的一种多分支跳转协处理方法的流程图,该方法应用于交换机或者路由器,图2为本发明一实施例提供的基于交换机或者路由器所提供的多分支跳转协处理的示意图,如图2所示,该交换机或者路由器包括:第一网络处理器21、第二网络处理器22、协处理器23和TCAM24,该第一网络处理器21和第二网络处理器22可以是交换机或者路由器中不同的核。协处理器23的两端分别与第一网络处理器21和第二网络处理器22连接,TCAM24与协处理器23连接,如图2所示,其中TCAM(物理TCAM)按照待处理业务被逻辑划分为N个子TCAM,所述N为大于或者等于2的正整数,每个子TCAM包括至少一条TCAM条目,前N-1个子TCAM中的每个子TCAM中的至少一条TCAM条目存在一个收敛节点,且收敛节点为每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点。
所谓收敛节点必须满足两个条件:第一,它是子TCAM所包括的至少一条TCAM条目中的每条TCAM条目的最后一个条件节点的下一个条件节点(公共条件节点)。第二,它是该子TCAM的下一个子TCAM所包括的至少一条TCAM条目中的每条TCAM条目的起始节点。其中子TCAM所包括的至少一条TCAM条目可以是子TCAM中的全部TCAM条目,也可以是子TCAM中的部分TCAM条目。同样的,子TCAM的下一个子TCAM所包括的至少一条TCAM条目可以是子TCAM的下一个子TCAM中的全部TCAM条目,也可以是子TCAM的下一个子TCAM中的部分TCAM条目。
或者,
所谓收敛节点必须满足两个条件:第一,它是子TCAM所包括的至少一条TCAM条目中的每条TCAM条目的最后一个条件节点(公共条件节点)。第二,它是该子TCAM的下一个子TCAM所包括的至少一条TCAM条目中的每条TCAM条目的起始节点的前一个条件节点(公共条件节点)。
值得一提的是本申请中TCAM被逻辑划分为多个子TCAM,相应的,子TCAM中的TCAM条目相对于现有技术的TCAM条目也发生了变化。假设TCAM被逻辑划分为两个子TCAM,分别为TCAM1和TCAM2,现有技术中的一条TCAM条目为TCAM entry={10,01,10,01,10},而本申请中TCAM1对应的一条TCAM条目为TCAM entry1={10,01,00,00,00},TCAM2对应的一条TCAM条目为TCAM entry2={00,00,10,01,10},符号“00”可以表示任何数值,本申请中的“00”等同于下面将要提到的第三数值。
具体地,如图1所示,该方法包括如下步骤:
步骤S101:第一网络处理器获取分支跳转条件,并将分支跳转条件发送给协处理器,其中分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应;
具体地,第一网络处理器可以获取一个分支跳转条件或者多个分支跳转条件,这里第一网络处理器获取的分支跳转条件即为上述分支跳转结构中的Key。由于TCAM被逻辑划分为N个子TCAM,因此分支跳转条件也自然被划分为N条分支跳转子条件,需要说明的是,一种可选方式:该分支跳转子条件可以是根据待处理业务已经被划分好的,并且该分支跳转子条件与子TCAM的对应关系也已经是配置好的。另一种可选方式,该多分支跳转协处理方法还包括:协处理器获取子TCAM的划分信息,该划分信息包括:收敛节点的个数和收敛节点的位置信息;协处理器根据子TCAM的划分信息确定分支跳转条件的分割节点,并根据分割节点对分支跳转条件进行划分,获得N条分支跳转子条件。
步骤S102:协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;
可选地,若分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,该M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为第一数值、第二数值和第三数值中的任一项;当任一分支跳转子条件中的条件节点取第一数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第一数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功;当任一分支跳转子条件中的条件节点取第二数值,且任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为第二数值或者第三数值时,则表示任一分支跳转子条件中的条件节点匹配成功;当任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示所述任一分支跳转子条件和所述任一条TCAM条目匹配成功。
例如:第一数值为01,第二数值为10,第三数值为00,获取到的分支跳转子条件为Key={01,10},则Key={01,10}在TCAM1中匹配成功的TCAM条目包括:TCAMentry1={01,10,00,00,00},TCAM entry2={01,00,00,00,00},TCAM entry3={00,00,00,00,00},其中TCAM条目与SRAM地址一一对应。
步骤S103:协处理器根据匹配成功的至少一条TCAM条目确定SRAM地址,该SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;
一种可选方式:协处理器在子TCAM所包括的至少一条TCAM条目中,确定与该子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目;协处理器确定取值相同的TCAM条目对应的SRAM地址为所述SRAM地址,该SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址。
接着上述的例子,上述分支跳转子条件Key={01,10},对于子TCAM1来讲,匹配成功的TCAM条目为:TCAM entry1={01,10,00,00,00},TCAM entry2={01,00,00,00,00},TCAM entry3={00,00,00,00,00},则协处理器在子TCAM1所包括的至少一条TCAM条目中,确定与该子TCAM1对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目为TCAMentry1={01,10,00,00,00},并确定该TCAM entry1={01,10,00,00,00}对应的SRAM地址为最终的SRAM地址。图3A为本发明一实施例提供的子TCAM与SRAM单元对应关系的示意图,如图3A所示,对于子TCAM1包括3条匹配成功的TCAM条目,其中匹配成功用1表示,匹配失败用0表示,对于TCAM1来讲,与Key取值相同的TCAM条目为第二条TCAM条目,确定该TCAM条目对应的SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为0,同样的,对于TCAM2来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为2,对于TCAM3来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为1,对于TCAMN来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为3。
另一种可选方式:假设每个分支跳转条件都包括了5个条件节点,前两个条件节点被划分为一个分支跳转子条件,后三个被划分为另一个分支跳转子条件,并且TCAMentryX={00,00,00,00,00}为每个子TCAM中的最后一个TCAM条目,则协处理器在 匹配成功的至少一条TCAM条目中确定第一条TCAM条目对应的SRAM地址为最终的SRAM地址。
基于此,上述分支跳转子条件Key={01,10},对于子TCAM1来讲,匹配成功的TCAM条目为:TCAM entry1={01,10,00,00,00},TCAM entry3={00,00,00,00,00}。图3B为本发明另一实施例提供的子TCAM与SRAM单元对应关系的示意图,如图3B所示,对于子TCAM1包括2条匹配成功的TCAM条目,其中匹配成功用1表示,匹配失败用0表示,对于TCAM1来讲,第一个匹配成功的TCAM条目为TCAM entry1,确定该TCAM entry1对应的SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为0,同样的,对于TCAM2来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为2,对于TCAM3来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为1,对于TCAMN来讲,SRAM地址所对应的SRAM存储单元存储待执行动作对应的存储地址为3。
步骤S104:协处理器将SRAM地址发送给第二网络处理器;
步骤S105:第二网络处理器根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。
结合步骤S104和步骤S105进行说明:第二网络处理器获取到每个子TCAM对应的SRAM地址之后,第二网络处理器可以根据每个SRAM地址确定待执行动作对应的存储地址,并执行该存储地址对应的待执行动作。也就是说,针对不同的SRAM地址,第二网络处理器独立执行存储地址对应的待执行动作。当然,也可以是,按照SRAM地址对应的存储地址有低至高的顺序依次执行该存储地址对应的待执行动作。本申请对此不做限制。
下面对上述过程进行举例说明:
方案一:图4A为现有技术提供的分支跳转结构的示意图,如图4A所示,菱形表示分支跳转条件的条件节点。矩形表示待执行动作。从上至下每条路径中的菱形构成一条分支跳转条件。基于该分支跳转结构,TCAM中至少需要存储8*4*2*2=128条TCAM条目。
方案二:图4B为本发明一实施例提供的分支跳转结构和基于该分支跳转结构的TCAM划分的示意图,如图4B所示,菱形表示分支跳转条件的条件节点。矩形表示待执行动作。从上至下每条路径中的菱形构成一条分支跳转条件。基于该分支跳转结构,TCAM1包括至少8条TCAM条目。TCAM2包括至少4*2*2=16条TCAM条目。因此整个TCAM中至少需要存储8+4*2*2=24条TCAM条目。
方案三:图4C为本发明一实施例提供的分支跳转结构和基于该分支跳转结构的TCAM划分的示意图,如图4C所示,菱形表示分支跳转条件的条件节点。矩形表示待执行动作。从上至下每条路径中的菱形构成一条分支跳转条件。基于该分支跳转结构,TCAM1包括至少8条TCAM条目。TCAM2包括至少4条TCAM条目。TCAM3包括至少2*2=4条TCAM条目。因此整个TCAM中至少需要存储8+4+2*2=16条TCAM条目。
综上所述,图4A至图4C所示的三个方案对应的TCAM条目如表1:
表1
综上,本申请提供一种多分支跳转协处理方法,包括:第一网络处理器获取分支跳转条件,并将分支跳转条件发送给协处理器,其中分支跳转条件包括N条分支跳转子条件,分支跳转子条件与子TCAM一一对应;协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;协处理器根据匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;协处理器将SRAM地址发送给所述第二网络处理器;第二网络处理器根据SRAM地址确定待执行动作对应的存储地址,并执行存储地址对应的待执行动作。由于TCAM被逻辑划分为N个子TCAM,使得TCAM条目数量降低,从而提高了分支跳转条件的匹配效率,并且可以节省TCAM的存储空间,进而降低TCAM的功耗。
图5为本申请一实施例提供的一种多分支跳转协处理装置的结构示意图,如图5所示,该装置50包括:第一网络处理器51、第二网络处理器52、协处理器53和三态内容寻址存储器TCAM54,所述协处理器53的两端分别与所述第一网络处理器51和所述第二网络处理器52连接,所述TCAM54与所述协处理器53连接,其中所述TCAM54按照待处理业务被逻辑划分为N个子TCAM,所述N为大于或者等于2的正整数,前N-1个子TCAM中的每个子TCAM中包括至少一条TCAM条目,所述每个子TCAM中的至少一条TCAM条目存在一个收敛节点,且所述收敛节点为所述每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点。
所述第一网络处理器51用于获取分支跳转条件,并将所述分支跳转条件发送给所述协处理器,其中所述分支跳转条件包括N条分支跳转子条件,所述分支跳转子条件与所述子TCAM一一对应。
所述协处理器53用于对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;根据所述匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,所述SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;并将所述SRAM地址发送给所述第二网络处理器。
所述第二网络处理器52用于根据所述SRAM地址确定所述待执行动作对应的存储地址,并执行所述存储地址对应的所述待执行动作。
本申请实施例提供的多分支跳转协处理装置可以用于执行上述的多分支跳转协处理方法,其实现原理和技术效果类似,在此不再赘述。
可选地,若所述分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,所述M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为所述第一数值、所述第二数值和第三数值中的任一项。
当任一分支跳转子条件中的条件节点取所述第一数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第一数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功。
当所述任一分支跳转子条件中的条件节点取所述第二数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第二数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功。
当所述任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示所述任一分支跳转子条件和所述任一条TCAM条目匹配成功。
可选地,所述协处理器53具体用于:在所述至少一条TCAM条目中,确定与每个子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目;确定所述取值相同的TCAM条目对应的SRAM地址为所述SRAM地址。
可选地,所述协处理器53还用于:获取所述子TCAM的划分信息,所述划分信息包括:所述收敛节点的个数和所述收敛节点的位置信息;根据所述子TCAM的划分信息确定所述分支跳转条件的分割节点,并根据所述分割节点对所述分支跳转条件进行划分,获得所述N条分支跳转子条件。
本申请实施例提供的多分支跳转协处理装置可以用于执行上述的多分支跳转协处理方法,其实现原理和技术效果类似,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (8)

1.一种多分支跳转协处理方法,所述方法应用于交换机或者路由器,所述交换机或者所述路由器包括:第一网络处理器、第二网络处理器、协处理器和三态内容寻址存储器TCAM,所述协处理器的两端分别与所述第一网络处理器和所述第二网络处理器连接,所述TCAM与所述协处理器连接,其中所述TCAM按照待处理业务被逻辑划分为N个子TCAM,所述N为大于或者等于2的正整数,前N-1个子TCAM中的每个子TCAM中包括至少一条TCAM条目,所述每个子TCAM中的至少一条TCAM条目存在一个收敛节点,且所述收敛节点为所述每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点;所述方法包括:
所述第一网络处理器获取分支跳转条件,并将所述分支跳转条件发送给所述协处理器,其中所述分支跳转条件包括N条分支跳转子条件,所述分支跳转子条件与所述子TCAM一一对应;
所述协处理器对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;
所述协处理器根据所述匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,所述SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;
所述协处理器将所述SRAM地址发送给所述第二网络处理器;
所述第二网络处理器根据所述SRAM地址确定所述待执行动作对应的存储地址,并执行所述存储地址对应的所述待执行动作。
2.根据权利要求1所述的方法,其特征在于,
若所述分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,所述M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为所述第一数值、所述第二数值和第三数值中的任一项;
当任一分支跳转子条件中的条件节点取所述第一数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第一数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功;
当所述任一分支跳转子条件中的条件节点取所述第二数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第二数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功;
当所述任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示所述任一分支跳转子条件和所述任一条TCAM条目匹配成功。
3.根据权利要求2所述的方法,其特征在于,所述协处理器根据所述匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,包括:
所述协处理器在所述至少一条TCAM条目中,确定与每个子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目;
所述协处理器确定所述取值相同的TCAM条目对应的SRAM地址为所述SRAM地址。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
所述协处理器获取所述子TCAM的划分信息,所述划分信息包括:所述收敛节点的个数和所述收敛节点的位置信息;
所述协处理器根据所述子TCAM的划分信息确定所述分支跳转条件的分割节点,并根据所述分割节点对所述分支跳转条件进行划分,获得所述N条分支跳转子条件。
5.一种多分支跳转协处理装置,所述装置包括:第一网络处理器、第二网络处理器、协处理器和三态内容寻址存储器TCAM,所述协处理器的两端分别与所述第一网络处理器和所述第二网络处理器连接,所述TCAM与所述协处理器连接,其中所述TCAM按照待处理业务被逻辑划分为N个子TCAM,所述N为大于或者等于2的正整数,前N-1个子TCAM中的每个子TCAM中包括至少一条TCAM条目,所述每个子TCAM中的至少一条TCAM条目存在一个收敛节点,且所述收敛节点为所述每个子TCAM的下一个子TCAM中的至少一条TCAM条目的起始节点;
所述第一网络处理器用于获取分支跳转条件,并将所述分支跳转条件发送给所述协处理器,其中所述分支跳转条件包括N条分支跳转子条件,所述分支跳转子条件与所述子TCAM一一对应;
所述协处理器用于对每个子TCAM对应的分支跳转子条件和每个子TCAM中的TCAM条目进行匹配,确定匹配成功的至少一条TCAM条目;根据所述匹配成功的至少一条TCAM条目确定静态随机存储器SRAM地址,所述SRAM地址对应的SRAM单元用于存储待执行动作对应的存储地址;并将所述SRAM地址发送给所述第二网络处理器;
所述第二网络处理器用于根据所述SRAM地址确定所述待执行动作对应的存储地址,并执行所述存储地址对应的所述待执行动作。
6.根据权利要求5所述的装置,其特征在于,
若所述分支跳转条件最多包括M个条件节点,每个条件节点可以取值为第一数值或者第二数值,所述M为大于或者等于2的正整数,则每条TCAM条目也包括M项数值,每项数值可以为所述第一数值、所述第二数值和第三数值中的任一项;
当任一分支跳转子条件中的条件节点取所述第一数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第一数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功;
当所述任一分支跳转子条件中的条件节点取所述第二数值,且所述任一分支跳转子条件对应的子TCAM中存在至少一条TCAM条目对应位置的数值为所述第二数值或者所述第三数值时,则表示所述任一分支跳转子条件中的条件节点匹配成功;
当所述任一分支跳转子条件中的每个条件节点和任一条TCAM条目对应位置的数值匹配成功,则表示所述任一分支跳转子条件和所述任一条TCAM条目匹配成功。
7.根据权利要求6所述的装置,其特征在于,所述协处理器具体用于:
在所述至少一条TCAM条目中,确定与每个子TCAM对应的分支跳转子条件中的每个条件节点取值相同的TCAM条目;
确定所述取值相同的TCAM条目对应的SRAM地址为所述SRAM地址。
8.根据权利要求6或7所述的装置,其特征在于,所述协处理器还用于:
获取所述子TCAM的划分信息,所述划分信息包括:所述收敛节点的个数和所述收敛节点的位置信息;
根据所述子TCAM的划分信息确定所述分支跳转条件的分割节点,并根据所述分割节点对所述分支跳转条件进行划分,获得所述N条分支跳转子条件。
CN201710061332.4A 2017-01-25 2017-01-25 多分支跳转协处理方法及装置 Active CN107018078B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010717565.7A CN112039782B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置
CN201710061332.4A CN107018078B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710061332.4A CN107018078B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010717565.7A Division CN112039782B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置

Publications (2)

Publication Number Publication Date
CN107018078A true CN107018078A (zh) 2017-08-04
CN107018078B CN107018078B (zh) 2020-08-07

Family

ID=59440064

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710061332.4A Active CN107018078B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置
CN202010717565.7A Active CN112039782B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010717565.7A Active CN112039782B (zh) 2017-01-25 2017-01-25 多分支跳转协处理方法及装置

Country Status (1)

Country Link
CN (2) CN107018078B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020124400A1 (zh) * 2018-12-19 2020-06-25 华为技术有限公司 一种多分支跳转处理装置和方法、处理器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822112B (zh) * 2020-12-31 2022-08-19 苏州盛科通信股份有限公司 一种路由地址存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350771A (zh) * 2008-07-07 2009-01-21 中国人民解放军国防科学技术大学 三态内容可寻址存储器条目免排序存储方法及其系统
CN102571494A (zh) * 2012-01-12 2012-07-11 东北大学 一种基于fpga的入侵检测系统及方法
CN102597973A (zh) * 2009-08-16 2012-07-18 康帕斯电子光学系统有限公司 用于改善最长前缀匹配的可扩展性的方法和设备
CN102663051A (zh) * 2012-03-29 2012-09-12 浪潮(北京)电子信息产业有限公司 搜索内容可寻址存储器的方法和系统
CN104284346A (zh) * 2014-10-14 2015-01-14 国家电网公司 基于生存性重路由的无线光宽带接入网优化部署方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356033B2 (en) * 2002-11-21 2008-04-08 Lucent Technologies Inc. Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures
CN100546257C (zh) * 2006-08-10 2009-09-30 华为技术有限公司 一种维护三态内容可寻址存储器表项的方法和系统
US8089961B2 (en) * 2007-12-07 2012-01-03 University Of Florida Research Foundation, Inc. Low power ternary content-addressable memory (TCAMs) for very large forwarding tables
US9413662B1 (en) * 2009-01-13 2016-08-09 Juniper Networks, Inc. Intra-term logical or operation in a network filter
CN102957617B (zh) * 2011-08-18 2016-02-10 盛科网络(苏州)有限公司 实现多业务叠加的方法及装置
US9098601B2 (en) * 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
US9225644B2 (en) * 2012-09-14 2015-12-29 International Business Machines Corporation Using special-case hardware units for facilitating access control lists on a networking element

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350771A (zh) * 2008-07-07 2009-01-21 中国人民解放军国防科学技术大学 三态内容可寻址存储器条目免排序存储方法及其系统
CN102597973A (zh) * 2009-08-16 2012-07-18 康帕斯电子光学系统有限公司 用于改善最长前缀匹配的可扩展性的方法和设备
CN102571494A (zh) * 2012-01-12 2012-07-11 东北大学 一种基于fpga的入侵检测系统及方法
CN102663051A (zh) * 2012-03-29 2012-09-12 浪潮(北京)电子信息产业有限公司 搜索内容可寻址存储器的方法和系统
CN104284346A (zh) * 2014-10-14 2015-01-14 国家电网公司 基于生存性重路由的无线光宽带接入网优化部署方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020124400A1 (zh) * 2018-12-19 2020-06-25 华为技术有限公司 一种多分支跳转处理装置和方法、处理器
CN113168327A (zh) * 2018-12-19 2021-07-23 华为技术有限公司 一种多分支跳转处理装置和方法、处理器
CN113168327B (zh) * 2018-12-19 2024-07-05 华为技术有限公司 一种多分支跳转处理装置和方法、处理器

Also Published As

Publication number Publication date
CN107018078B (zh) 2020-08-07
CN112039782B (zh) 2022-01-18
CN112039782A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
US9892057B2 (en) Single double cuckoo hash
CN101577662B (zh) 一种基于树形数据结构的最长前缀匹配方法和装置
US11489771B2 (en) Efficient forwarding information base caching system and method
CN100536435C (zh) 一种基于二叉树的流分类查找方法
US10164884B2 (en) Search apparatus, search configuration method, and search method
CN109639579B (zh) 组播报文的处理方法及装置、存储介质、处理器
CN107431660B (zh) 检索装置、检索方法及记录介质
US9294390B2 (en) Hash table storage and search methods and devices
CN102880724A (zh) 处理哈希冲突的方法及系统
US8990492B1 (en) Increasing capacity in router forwarding tables
US10771386B2 (en) IP routing search
CN107018078B (zh) 多分支跳转协处理方法及装置
CN106789859B (zh) 报文匹配方法及装置
US7551609B2 (en) Data structure for storing and accessing multiple independent sets of forwarding information
CN104252504B (zh) 数据查询方法、设备和系统
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
Camarero et al. Random folded Clos topologies for datacenter networks
EP3269101B1 (en) Generating a hash table in accordance with a prefix length
US20140029621A1 (en) Method for learning media access control address, network device, and system
US7934198B2 (en) Prefix matching structure and method for fast packet switching
Lee et al. Binary search on trie levels with a bloom filter for longest prefix match
CN112769704A (zh) 一种基于hash表的高速可扩展IP路由查找硬件装置
Ayall et al. Taking heuristic based graph edge partitioning one step ahead via offstream partitioning approach
US10476785B2 (en) IP routing search
CN116938753B (zh) 数据处理方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Zhong Rugang

Inventor after: Li Shunfang

Inventor after: Arif Brima

Inventor after: Youni Bick

Inventor before: Zhong Rugang

Inventor before: Li Shunfang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201104

Address after: 221300 No. 88 Liaohe West Road, Pizhou Economic Development Zone, Xuzhou City, Jiangsu Province

Patentee after: SU Normal University Semiconductor Materials and Equipment Research Institute (Pizhou) Co.,Ltd.

Address before: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20201104

Address after: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220520

Address after: 221300 506, block B, electronic industrial park, Pizhou Economic Development Zone, Xuzhou City, Jiangsu Province

Patentee after: Xuzhou Bochuang Construction Development Group Co.,Ltd.

Address before: No.88 Liaohe West Road, Pizhou Economic Development Zone, Xuzhou City, Jiangsu Province

Patentee before: SU Normal University Semiconductor Materials and Equipment Research Institute (Pizhou) Co.,Ltd.

TR01 Transfer of patent right