CN105791455A - 三态内容寻址存储器tcam空间的处理方法及装置 - Google Patents
三态内容寻址存储器tcam空间的处理方法及装置 Download PDFInfo
- Publication number
- CN105791455A CN105791455A CN201410829630.XA CN201410829630A CN105791455A CN 105791455 A CN105791455 A CN 105791455A CN 201410829630 A CN201410829630 A CN 201410829630A CN 105791455 A CN105791455 A CN 105791455A
- Authority
- CN
- China
- Prior art keywords
- business
- address
- entry
- tcam
- list processing
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种三态内容寻址存储器TCAM空间的处理方法及装置,其中该方法包括:将第一业务和第二业务设置在TCAM的同一存储块block,其中,第一业务和第二业务之间存在互斥性或优先级;依据互斥性或优先级,将第一业务和第二业务在block中按照不同的地址方向进行写表处理。通过本发明,解决了相关技术中采用多片TCAM级联的方式实现TCAM对多种业务的查找时,存在牺牲TCAM的转发性能,需要进行多次查表的问题,进而达到了不用牺牲TCAM的转发性能,就能对多种业务查找的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种三态内容寻址存储器TCAM空间的处理方法及装置。
背景技术
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。目前网络芯片包括专用集成电路(ApplicationSpecificIntegratedCircuits简称为ASIC)和网络处理器(NetworkProcessor简称为NP)两大类。网络处理器凭借其高速处理及灵活的可编程性,已成为当今网络中数据处理的有效解决方案。
网络处理器中有多种不同的存储器,如讲台随机存储器(RandomAccessMemory简称为SRAM)、三态内容寻址存储器(ternarycontentaddressablememory简称为TCAM)、同步动态随机存储器(SynchronousDynamicRandomAccessMemory简称为SDRAM)等,这些存储器存放着各种业务表项,如端口表、硬件地址(MediaAccessControl简称为MAC)表、路由表等。
三态内容寻址存储器TCAM主要用于快速查找访问控制列表(AccessControlList简称为ACL)、路由等表项。TCAM的主要特点是快速并行查找,在网络处理器上的应用通常是,微码从报文抽取相关信息组成一个键值KEY,通过NP的TCAM控制器向TCAM发送查找命令,根据结果处理报文。
TCAM的特点是成本高、功耗大、容量有限;优点是快速查找,固定时延,支持最长前缀匹配及多区域匹配。为了充分利用宝贵的TCAM空间,TCAM一般采用硬件上的多表区分技术,一个TCAM划分成若干大小的block,微码发送的KEY同时在多个block内并行查找,可以一次发送键值,返回多个查表结果。
目前网络设备转发要求高的转发带宽,在有限的TCAM查表带宽情况下,查表次数是有限制的。比如要求100Gbps、64字节线速转发,相应包速率为148Mpps,如果选用业界应用广泛的NETLOGIC的NL11K芯片,该芯片的主频400M,这样要完成线速转发,单个报文查表次数只有两次。如果要实现入向、出向ACL,入出方向各一次查找。
目前依赖TCAM实现的业务非常之多,比如IPV4转发、端口ACL、QOS、协议保护、NAT、端口镜像、IPSEC加密等。如果要实现上述这么多业务,相关技术中利用TCAM的转发性能,进行多次查表,采用多片TCAM级联的方式,实现多种业务的查找。
针对相关技术中采用多片TCAM级联的方式实现TCAM对多种业务的查找,该方式存在牺牲了TCAM的转发性能,需要进行多次查表的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种三态内容寻址存储器TCAM空间的处理方法及装置,以至少解决相关技术中采用多片TCAM级联的方式实现TCAM对多种业务的查找时,存在牺牲TCAM的转发性能,需要进行多次查表的问题。
根据本发明的一个方面,提供了一种三态内容寻址存储器TCAM空间的处理方法,包括:将第一业务和第二业务设置在TCAM的同一存储块block,其中,所述第一业务和所述第二业务之间存在互斥性或优先级;依据所述互斥性或优先级,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理。
进一步地,在所述第一业务和所述第二业务的业务之间存在互斥性时,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理包括:将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理,或将所述第二业务从低地址向高地址方向进行写表处理,并将所述第一业务从高地址向低地址方向进行写表处理。
进一步地,在所述第一业务和所述第二业务的业务之间存在优先级时,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理包括:在所述第一业务的业务优先级高于所述第二业务的业务时,将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理;或,在所述第一业务的业务优先级低于所述第二业务的业务时,将所述第二业务从高地址向低地址方向进行写表处理,并将所述第一业务从低地址向高地址方向进行写表处理。
进一步地,所述方法还包括:在所述第一业务的写表地址与所述第二业务的写表地址重合时,判断所述第一业务或所述第二业务占有的TCAM空间中是否存在空闲空间;在判断结果为是时,依据所述空闲空间添加所述第一业务或所述第二业务的条目。
进一步地,在添加的条目为所述第一业务的条目,且在判断结果为所述第一业务占有的TCAM空间中存在第一空闲空间时,依据所述空闲空间添加所述第一业务的条目包括:将所述第一业务需要添加的条目写入所述第一空闲空间中;在添加的条目为所述第一业务的条目,且判断结果为所述第二业务占有的TCAM空间中存在第二空闲空间时,依据所述空闲空间添加所述第一业务的条目包括:压缩所述第二业务占有的TCAM空间中的第二空闲空间,将所述第二空闲空间转移到所述第一业务的边界写表地址与所述第二业务的边界写表地址之间;按照所述第一业务写表方向,将所述第一业务需要添加的条目写入到所述边界写表地址的下一地址。
进一步地,在添加的条目为所述第二业务的条目,且在判断结果为所述第二业务占有的TCAM空间中存在第三空闲空间时,依据所述空闲空间添加所述第二业务的条目包括:将所述第二业务需要添加的条目写入所述第三空闲空间中;在添加的条目为所述第二业务的条目,且判断结果为所述第一业务占有的TCAM空间中存在第四空闲空间时,依据所述空闲空间添加所述第二业务的条目包括:压缩所述第二业务占有的TCAM空间中的第三空闲空间,将所述第三空闲空间转移到所述第一业务的边界写表地址与所述第二业务的边界写表地址之间;照所述第二业务写表方向,将所述第二业务需要添加的条目写入到所述边界写表地址的下一地址。
根据本发明的另一个方面,提供了一种三态内容寻址存储器TCAM空间的处理装置,包括:设置模块,用于将第一业务和第二业务设置在TCAM的同一存储块block,其中,所述第一业务和所述第二业务之间存在互斥性或优先级;写表模块,用于依据所述互斥性或优先级,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理。
进一步地,在所述第一业务和所述第二业务的业务之间存在互斥性时,所述写表模块包括:第一写表单元,用于将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理,或第二写表单元,用于将所述第二业务从低地址向高地址方向进行写表处理,并将所述第一业务从高地址向低地址方向进行写表处理。
进一步地,在所述第一业务和所述第二业务的业务之间存在优先级时,所述写表模块还包括:第三写表单元,用于在所述第一业务的业务优先级高于所述第二业务的业务时,将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理;或,第四写表单元,用于在所述第一业务的业务优先级低于所述第二业务的业务时,将所述第二业务从高地址向低地址方向进行写表处理,并将所述第一业务从低地址向高地址方向进行写表处理。
进一步地,所述装置还包括:判断模块,用于在所述第一业务的写表地址与所述第二业务的写表地址重合时,判断所述第一业务或所述第二业务占有的TCAM空间中是否存在空闲空间;添加模块,用于在判断结果为是时,依据所述空闲空间添加所述第一业务或所述第二业务的条目。
通过本发明,采用在TCAM中的存储块block中设置第一业务和第二业务,其中,该业务可以同类型的两个业务,或是不同类型的两种业务,并且第一业务和第二业务之间存在互斥性或优先级;依据第一业务和第二业务的互斥性或优先级,将第一业务和第二业务在该block中按照不同的地方进行写表处理的方式,解决了相关技术中采用多片TCAM级联的方式实现TCAM对多种业务的查找时,存在牺牲TCAM的转发性能,需要进行多次查表的问题,进而达到了不用牺牲TCAM的转发性能,就能对多种业务查找的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的三态内容寻址存储器TCAM空间的处理方法流程图;
图2是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置结构框图;
图3是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图一;
图4是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图二;
图5是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图三;
图6是根据相关技术中Block并行查找及业务添加示意图;
图7是根据本发明可选实施例的三态内容寻址存储器TCAM空间的业务添加示意图;
图8是根据本发明可选实施例的三态内容寻址存储器TCAM空间的表管理方式示意图;
图9是根据本发明可选实施例的TCAM添加条目方法流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供了一种三态内容寻址存储器TCAM空间的处理方法,图1是根据本发明实施例的三态内容寻址存储器TCAM空间的处理方法流程图,如图1所示,该流程包括以下步骤:
步骤S102:将第一业务和第二业务设置在TCAM的同一存储块block;
其中,第一业务和第二业务之间存在互斥性或优先级;
步骤S104:依据互斥性或优先级,将第一业务和第二业务在block中按照不同的地址方向进行写表处理。
通过本实施例,采用在TCAM中的存储块block中设置第一业务和第二业务,其中,该业务可以同类型的两个业务,或是不同类型的两种业务,并且第一业务和第二业务之间存在互斥性或优先级;依据第一业务和第二业务的互斥性或优先级,将第一业务和第二业务在该block中按照不同的地方进行写表处理的方式,解决了相关技术中采用多片TCAM级联的方式实现TCAM对多种业务的查找时,存在牺牲TCAM的转发性能,需要进行多次查表的问题,进而达到了不用牺牲TCAM的转发性能,就能对多种业务查找的效果。
在本实施例中在涉及到第一业务和第二业务的业务之间存在互斥性时,上述步骤S104中将第一业务和第二业务在block中按照不同的地址方向进行写表处理的方式可以通过如下方式来实现:
方式一:将第一业务从低地址向高地址方向进行写表处理,并将第二业务从高地址向低地址方向进行写表处理;
方式二:将第二业务从低地址向高地址方向进行写表处理,并将第一业务从高地址向低地址方向进行写表处理。
在本实施例中还涉及到在第一业务和第二业务的业务之间存在优先级时,上述步骤S104中将第一业务和第二业务在block中按照不同的地址方向进行写表处理的方式则可以通过如下方式来实现:
方式一:在第一业务的业务优先级高于第二业务的业务时,将第一业务从低地址向高地址方向进行写表处理,并将第二业务从高地址向低地址方向进行写表处理;或,
方式二:在第一业务的业务优先级低于第二业务的业务时,将第二业务从高地址向低地址方向进行写表处理,并将第一业务从低地址向高地址方向进行写表处理。
针对上述第一业务和第二业务存在互斥性和优先级,下面通过本实施例的一个应用场景进行相应的说明;
在本应用场景中通过A和B分别表示第一业务和第二业务,业务互斥性指A和B两种业务不会同时配置,或者说同一个报文不可能同时命中A和B的TCAM条目。例如协议保护和IPSEC加密,协议保护是匹配协议包进行优先级提升或者上送CPU,对于协议报文不要求进行IPSEC加密。这样协议保护和IPSEC两种业务就是互斥的。
业务优先级关系是指A和B两种业务有不同的优先级关系,A和B可能同时配置,当时同时配置情况下,A业务的优先级高于B业务。例如PORTACL和QOS,PORTACL一般是先某种报文的过滤,QOS用来实现报文的优先级修改等,PORTACL优先级高于QOS。
此外,在本实施例的一个可选实施方式中,本实施例的方法还可以包括:
步骤S106:在第一业务的写表地址与第二业务的写表地址重合时,判断第一业务或第二业务占有的TCAM空间中是否存在空闲空间;
步骤S108:在判断结果为是时,依据空闲空间添加第一业务或第二业务的条目。
在本实施例可选实施方式中涉及到的第一业务的写表地址与第二业务的写表地址重合值得是:第一业务和第二业务按照不同的方向进行写表,如第一业务按照从低地址向高地址方向进行写表处理,第二业务按照从高地址向低地址方向进行写表处理,两者在同一个block中进行写表,最终第一业务的最高地址与第二业务的最低地址重合。
在本实施例中的可选实施方式中,依据空闲空间添加第一业务或第二业务的条目可以通过如下方式来实现:
方式一:
在添加的条目为第一业务的条目,且在判断结果为第一业务占有的TCAM空间中存在第一空闲空间时,依据空闲空间添加第一业务的条目包括:将第一业务需要添加的条目写入第一空闲空间中;
在添加的条目为第一业务的条目,且判断结果为第二业务占有的TCAM空间中存在第二空闲空间时,依据空闲空间添加第一业务的条目包括:压缩第二业务占有的TCAM空间中的第二空闲空间,将第二空闲空间转移到第一业务的边界写表地址与第二业务的边界写表地址之间;按照第一业务写表方向,将第一业务需要添加的条目写入到边界写表地址的下一地址。
方式二:
在添加的条目为第二业务的条目,且在判断结果为第二业务占有的TCAM空间中存在第三空闲空间时,依据空闲空间添加第二业务的条目包括:将第二业务需要添加的条目写入第三空闲空间中;
在添加的条目为第二业务的条目,且判断结果为第一业务占有的TCAM空间中存在第四空闲空间时,依据空闲空间添加第二业务的条目包括:压缩第二业务占有的TCAM空间中的第三空闲空间,将第三空闲空间转移到第一业务的边界写表地址与第二业务的边界写表地址之间;照第二业务写表方向,将第二业务需要添加的条目写入到边界写表地址的下一地址。
在本实施例中还提供了一种三态内容寻址存储器TCAM空间的处理装置,该装置用于实现上述实施例及可选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置结构框图,如图2所示,该装置包括:设置模块22,用于将第一业务和第二业务设置在TCAM的同一存储块block,其中,第一业务和第二业务之间存在互斥性或优先级;写表模块24与设置模块22耦合连接,用于将第一业务和第二业务在block中按照不同的地址方向进行写表处理。
图3是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图一,在第一业务和第二业务的业务之间存在互斥性时,如图3所示,该写表模块24包括:第一写表单元32,用于将第一业务从低地址向高地址方向进行写表处理,并将第二业务从高地址向低地址方向进行写表处理,第二写表单元34,用于将第二业务从低地址向高地址方向进行写表处理,并将第一业务从高地址向低地址方向进行写表处理。
图4是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图二,在第一业务和第二业务的业务之间存在优先级时,如图4所示,写表模块24还包括:第三写表单元42,用于在第一业务的业务优先级高于第二业务的业务时,将第一业务从低地址向高地址方向进行写表处理,并将第二业务从高地址向低地址方向进行写表处理;第四写表单元44,用于在第一业务的业务优先级低于第二业务的业务时,将第二业务从高地址向低地址方向进行写表处理,并将第一业务从低地址向高地址方向进行写表处理。
图5是根据本发明实施例的三态内容寻址存储器TCAM空间的处理装置可选结构框图三,如图5所示,装置还包括:判断模块52与写表模块24耦合连接,用于在第一业务的写表地址与第二业务的写表地址重合时,判断第一业务或第二业务占有的TCAM空间中是否存在空闲空间;添加模块54与判断模块52耦合连接,用于在判断结果为是时,依据空闲空间添加第一业务或第二业务的条目。
可选地,该添加模块54,还用于在添加的条目为第一业务的条目,且在判断结果为第一业务占有的TCAM空间中存在第一空闲空间时,将第一业务需要添加的条目写入第一空闲空间中;或,用于在添加的条目为第一业务的条目,且判断结果为第二业务占有的TCAM空间中存在第二空闲空间时,压缩第二业务占有的TCAM空间中的第二空闲空间,将第二空闲空间转移到第一业务的边界写表地址与第二业务的边界写表地址之间;按照第一业务写表方向,将第一业务需要添加的条目写入到边界写表地址的下一地址。
上述添加模块54是以第一业务条目为例进行具体如下添加条目的说明,同样的在添加的条目为第二业务时,添加模块54操作与添加第一业务条目的操作类似,具体地,该添加条目54还可以用于,在添加的条目为第二业务的条目,且在判断结果为第二业务占有的TCAM空间中存在第三空闲空间时,将第二业务需要添加的条目写入第三空闲空间中;或,在添加的条目为第二业务的条目,且判断结果为第一业务占有的TCAM空间中存在第四空闲空间时,压缩第二业务占有的TCAM空间中的第三空闲空间,将第三空闲空间转移到第一业务的边界写表地址与第二业务的边界写表地址之间;照第二业务写表方向,将第二业务需要添加的条目写入到边界写表地址的下一地址。
下面结合附图以及可选实施例对本发明进行举例说明。
本可选实施例将不同的业务放在一个block内;放在同一block内的A和B两个业务间具有业务互斥性或者优先级关系;同一个block内的A和B按照不同方向写表。
其中,业务互斥性指A和B两种业务不会同时配置,或者说同一个报文不可能同时命中A和B的TCAM条目。例如协议保护和IPSEC加密,协议保护是匹配协议包进行优先级提升或者上送CPU,对于协议报文不要求进行IPSEC加密。这样协议保护和IPSEC两种业务就是互斥的。
业务优先级关系是指A和B两种业务有不同的优先级关系,A和B可能同时配置,当时同时配置情况下,A业务的优先级高于B业务。例如PORTACL和QOS,PORTACL一般是先某种报文的过滤,QOS用来实现报文的优先级修改等,PORTACL优先级高于QOS。
需要说明的是,上述只是本可选实施例的一个可选实施方式,在具体的实际应用不完全相同,只需要满足上述的业务互斥性或者优先级关系。
也就是说,同一个block内的A/B业务如果有业务互斥性,则A和B其中一个从低地址向高地址方向写表;另外一个从高地址向低地址方向写表。同一个block内的A/B业务如果具有不同优先级,如A业务优先级大于B业务。由于TCAM优先返回低地址匹配命中的条目,因此A业务从低地址向高地址方向写表;B业务从高地址向低地址方向写。这样,即便A业务和B业务的tcam条目都命中的情况下,优先返回高优先级的业务。
通过本可选实施例对转发面而言,在有限的查表次数情况下,尽可能地实现更多业务查找,最优情况下TCAM利用率达到两倍。比如NL11K有4个Block硬件查找引擎,相关技术中查找一次只能实现四种业务查找;采用本可选实施例一次查找最多可以实现八种业务并行查找。对控制面而言,同一个Block内的业务A和业务B可以共享TCAM空间,极大提高了TCAM的空间利用率。
图6是根据相关技术中Block并行查找及业务添加示意图,如图6所示,每个Block内存放一种业务,分别为A1/A2/A3/A4,各业务按照低地址向高地址方向写表。对转发面而言,一次分别返回A1/A2/A3/A4四种业务的查表结果。
图7是根据本发明可选实施例的三态内容寻址存储器TCAM空间的业务添加示意图,如图7所示,每一个block内存放两种业务,业务间存在互斥性或者不同优先级。例如:Block1内存放A1/B1两种业务,A1按照低地址向高地址方向写表,B1按照高地址向低地址方向写表。转发面查表返回A1或者B1中的匹配条目,实现两种业务的同时查找。
通过本可选实施例还可以使得业务A和B可以共享Block空间,极大限度的利用TCAM硬件资源。例如,Block内存放PortACL和QosACL两种业务,如果Block总条目数为64K,则PortACL和QosACL都可以最大支持64K。在用户应用中,可能配置极少量的QosACL条目,这样PortACL可以分配的空间可以接近64K。而按照传统做法,PortACL和QosACL的空间必须静态分配好,做不到空间共享,TCAM资源有很大浪费。
图8是根据本发明可选实施例的三态内容寻址存储器TCAM空间的表管理方式示意图,如图8所示,由于表项添加删除,TCAM中会存在空洞,即空闲条目,如图8中①图虚线所示。因此,同一Block内A/B两个业务的添加需要考虑空间管理的问题,解决Block“假满”现象,如图8中②图所示。
目前有很多TCAM管理算法,但基本思想都是记录和维护TCAM的空闲条目,表项删除时将删除的条目地址加到空闲资源池,表项添加时从空闲资源池分配一个空闲条目。
比较通用的是有序链表管理算法,即创建一个链表管理tcam空闲条目地址。TCAM管理算法不在本专利范围之内,不属于本专利发明点。后面介绍基于该算法的同一Block内两个业务的TCAM资源管理方法。基于其他算法的同一Block内两个业务的资源管理方法与此类似。
如图8中①图所示,Block内存放A/B两种业务,分别按照不同方向写表,Block总大小为MAX。基于通用有序链表管理算法的Block内资源管理,需要分别为A/B两种业务建立两个资源池,即两个链表,分别管理各自的空闲空间。业务A/B相应的有序链表资源管理的方向不同,即业务A相应的有序链表返回业务A的最低地址空闲条目;业务B相应的有序链表返回业务B的最高地址空闲条目。这样业务A添加时从低地址向高地址方向添加,业务B添加从高地址向低地址方向添加。空闲空间(“空洞”)在图8中用虚线表示。此外通过一个边界地址Ta和Tb分别记录业务A的最高地址和业务B的最低地址,Ta和Tb是用来解决两个业务添加出现“假满”现象的两个变量。
表项添加时,业务A和B分别从各自资源池分配地址空间,表项删除时,删除条目释放到各自的资源池。以有序链表为例,业务A添加时分配条目为业务A的有序链表第一个节点内的地址,删除条目时,将该条目节点返回到业务A的有序链表相应位置中。
图8中②图所示为Block出现“假满”的情况,即业务A最高地址和业务B最低地址重合,即Ta+Tb=MAX,此时如果添加业务A或者业务B,已经没有空间,但实际上TCAM空间存在很多“空洞”,如果压缩的话,可以有空间进行条目添加。以添加业务A为例,图9是根据本发明可选实施例的TCAM添加条目方法流程图,如图9所示,该方法的步骤包括如下步骤:
步骤S902:开始;
步骤S904:A业务是否有空洞;
其中,A的空闲资源池中是否有条目地址小于Ta,如果是则填补“空洞”,使用空闲链表中第一个节点内的地址,条目添加在第一个“空洞”,否则进入步骤S906;
步骤S906:判断Ta+Tb是否小于MAX,如果是,条目添加在Ta+1位置,并更新Ta的值,进入步骤S908;否则进入步骤S910;
步骤S908:判断业务B是否可以压缩;
其中,也就是判断B空间内是否有“空洞”,即是否B的空闲资源池内有地址大于Tb,如果有,证明可以压缩,进入步骤S910;否则证明整个TCAM都没有“空洞”,进入步骤S916;
步骤S910:B业务空间压缩;
B业务内有效TCAM条目物理地址不连续,压缩B业务空间,搬移有效条目,使之物理地址连续,保持原有先后次序存放到该Block内高地址部分。压缩后,更新Tb,此时Ta+Tb<MAX,即业务B已经把空闲资源池中的“空隙”搬移到Ta和Tb之间,业务A有空间可以进行写表,A业务要添加的条目存放到Ta+1位置,进入步骤S912;
步骤S912:A业务写表;
其中,将新加的TCAM条目写到硬件中;
步骤S914:写表成功,结束;
步骤S916:表满,写表失败,结束。
由上可见,基于通用有序链表管理算法的两个业务的管理,只是在通用算法基础上进行简单扩展,两个业务A/B创建各自独立的资源管理实例分别进行资源管理,另外添加一个边界地址的变量处理空间“假满”的问题。因此基于本专利方法的TCAM管理算法只需在原有通用算法基础上进行简单扩展,基于本专利方法的TCAM空间易于管理。
通过本可选实施例提供的一种TCAM管理方法,采用分析业务之间的逻辑关系,将不同业务放到同一个硬件Block空间,进而采用类似“上下对挤”的方法进行TCAM管理;对于转发面而言,可以在有限的查表次数内,尽可能的实现更多种类的业务查找;对于控制面而言,多种业务共享同一地址空间,避免静态分配,可以极大提高TCAM资源的空间利用率;而在表管理方面,只需要在已有算法基础上,进行简单扩展,管理方便。
以上仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种三态内容寻址存储器TCAM空间的处理方法,其特征在于,包括:
将第一业务和第二业务设置在TCAM的同一存储块block,其中,所述第一业务和所述第二业务之间存在互斥性或优先级;
依据所述互斥性或优先级,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理。
2.根据权利要求1所述的方法,其特征在于,在所述第一业务和所述第二业务的业务之间存在互斥性时,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理包括:
将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理,或
将所述第二业务从低地址向高地址方向进行写表处理,并将所述第一业务从高地址向低地址方向进行写表处理。
3.根据权利要求1所述的方法,其特征在于,在所述第一业务和所述第二业务的业务之间存在优先级时,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理包括:
在所述第一业务的业务优先级高于所述第二业务的业务时,将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理;或,
在所述第一业务的业务优先级低于所述第二业务的业务时,将所述第二业务从高地址向低地址方向进行写表处理,并将所述第一业务从低地址向高地址方向进行写表处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一业务的写表地址与所述第二业务的写表地址重合时,判断所述第一业务或所述第二业务占有的TCAM空间中是否存在空闲空间;
在判断结果为是时,依据所述空闲空间添加所述第一业务或所述第二业务的条目。
5.根据权利要求4所述的方法,其特征在于,
在添加的条目为所述第一业务的条目,且在判断结果为所述第一业务占有的TCAM空间中存在第一空闲空间时,依据所述空闲空间添加所述第一业务的条目包括:将所述第一业务需要添加的条目写入所述第一空闲空间中;
在添加的条目为所述第一业务的条目,且判断结果为所述第二业务占有的TCAM空间中存在第二空闲空间时,依据所述空闲空间添加所述第一业务的条目包括:压缩所述第二业务占有的TCAM空间中的第二空闲空间,将所述第二空闲空间转移到所述第一业务的边界写表地址与所述第二业务的边界写表地址之间;按照所述第一业务写表方向,将所述第一业务需要添加的条目写入到所述边界写表地址的下一地址。
6.根据权利要求4所述的方法,其特征在于,
在添加的条目为所述第二业务的条目,且在判断结果为所述第二业务占有的TCAM空间中存在第三空闲空间时,依据所述空闲空间添加所述第二业务的条目包括:将所述第二业务需要添加的条目写入所述第三空闲空间中;
在添加的条目为所述第二业务的条目,且判断结果为所述第一业务占有的TCAM空间中存在第四空闲空间时,依据所述空闲空间添加所述第二业务的条目包括:压缩所述第二业务占有的TCAM空间中的第三空闲空间,将所述第三空闲空间转移到所述第一业务的边界写表地址与所述第二业务的边界写表地址之间;照所述第二业务写表方向,将所述第二业务需要添加的条目写入到所述边界写表地址的下一地址。
7.一种三态内容寻址存储器TCAM空间的处理装置,其特征在于,包括:
设置模块,用于将第一业务和第二业务设置在TCAM的同一存储块block,其中,所述第一业务和所述第二业务之间存在互斥性或优先级;
写表模块,用于依据所述互斥性或优先级,将所述第一业务和所述第二业务在所述block中按照不同的地址方向进行写表处理。
8.根据权利要求7所述的装置,其特征在于,在所述第一业务和所述第二业务的业务之间存在互斥性时,所述写表模块包括:
第一写表单元,用于将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理,或
第二写表单元,用于将所述第二业务从低地址向高地址方向进行写表处理,并将所述第一业务从高地址向低地址方向进行写表处理。
9.根据权利要求7所述的装置,其特征在于,在所述第一业务和所述第二业务的业务之间存在优先级时,所述写表模块还包括:
第三写表单元,用于在所述第一业务的业务优先级高于所述第二业务的业务时,将所述第一业务从低地址向高地址方向进行写表处理,并将所述第二业务从高地址向低地址方向进行写表处理;或,
第四写表单元,用于在所述第一业务的业务优先级低于所述第二业务的业务时,将所述第二业务从高地址向低地址方向进行写表处理,并将所述第一业务从低地址向高地址方向进行写表处理。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
判断模块,用于在所述第一业务的写表地址与所述第二业务的写表地址重合时,判断所述第一业务或所述第二业务占有的TCAM空间中是否存在空闲空间;
添加模块,用于在判断结果为是时,依据所述空闲空间添加所述第一业务或所述第二业务的条目。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829630.XA CN105791455B (zh) | 2014-12-26 | 2014-12-26 | 三态内容寻址存储器tcam空间的处理方法及装置 |
PCT/CN2015/076097 WO2016101439A1 (zh) | 2014-12-26 | 2015-04-08 | 三态内容寻址存储器tcam空间的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829630.XA CN105791455B (zh) | 2014-12-26 | 2014-12-26 | 三态内容寻址存储器tcam空间的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791455A true CN105791455A (zh) | 2016-07-20 |
CN105791455B CN105791455B (zh) | 2020-04-07 |
Family
ID=56149055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410829630.XA Active CN105791455B (zh) | 2014-12-26 | 2014-12-26 | 三态内容寻址存储器tcam空间的处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105791455B (zh) |
WO (1) | WO2016101439A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789706A (zh) * | 2016-11-11 | 2017-05-31 | 天津光电通信技术有限公司 | 一种基于tcam的网络分流*** |
CN108595731A (zh) * | 2018-01-23 | 2018-09-28 | 盛科网络(苏州)有限公司 | 一种以太网芯片中动态表项的设计方法及装置 |
CN113519144A (zh) * | 2019-01-10 | 2021-10-19 | 马维尔以色列(M.I.S.L.)有限公司 | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI730714B (zh) * | 2020-04-10 | 2021-06-11 | 啓碁科技股份有限公司 | 記憶體設備和設備信息維護方法 |
CN113328948B (zh) * | 2021-06-02 | 2022-10-04 | 杭州迪普信息技术有限公司 | 资源管理方法、装置、网络设备及计算机可读存储介质 |
CN117914784A (zh) * | 2022-10-11 | 2024-04-19 | 深圳市中兴微电子技术有限公司 | 并行查表装置、方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1465014A (zh) * | 2001-07-20 | 2003-12-31 | 诺基亚有限公司 | 使用tcam实现数据流的选择性路由 |
CN1561047A (zh) * | 2004-02-20 | 2005-01-05 | 清华大学 | 基于tcam的分布式并行ip路由查找方法 |
CN102289453A (zh) * | 2011-06-20 | 2011-12-21 | 北京星网锐捷网络技术有限公司 | 三态内容寻址存储器规则存储方法、装置及网络设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957617B (zh) * | 2011-08-18 | 2016-02-10 | 盛科网络(苏州)有限公司 | 实现多业务叠加的方法及装置 |
CN104035928A (zh) * | 2013-03-04 | 2014-09-10 | 杭州华三通信技术有限公司 | 一种tcam表空间回收的方法及装置 |
US9264357B2 (en) * | 2013-04-30 | 2016-02-16 | Xpliant, Inc. | Apparatus and method for table search with centralized memory pool in a network switch |
-
2014
- 2014-12-26 CN CN201410829630.XA patent/CN105791455B/zh active Active
-
2015
- 2015-04-08 WO PCT/CN2015/076097 patent/WO2016101439A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1465014A (zh) * | 2001-07-20 | 2003-12-31 | 诺基亚有限公司 | 使用tcam实现数据流的选择性路由 |
CN1561047A (zh) * | 2004-02-20 | 2005-01-05 | 清华大学 | 基于tcam的分布式并行ip路由查找方法 |
CN102289453A (zh) * | 2011-06-20 | 2011-12-21 | 北京星网锐捷网络技术有限公司 | 三态内容寻址存储器规则存储方法、装置及网络设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789706A (zh) * | 2016-11-11 | 2017-05-31 | 天津光电通信技术有限公司 | 一种基于tcam的网络分流*** |
CN106789706B (zh) * | 2016-11-11 | 2020-08-07 | 天津光电通信技术有限公司 | 一种基于tcam的网络分流*** |
CN108595731A (zh) * | 2018-01-23 | 2018-09-28 | 盛科网络(苏州)有限公司 | 一种以太网芯片中动态表项的设计方法及装置 |
CN108595731B (zh) * | 2018-01-23 | 2022-02-08 | 苏州盛科通信股份有限公司 | 一种以太网芯片中动态表项的设计方法及装置 |
CN113519144A (zh) * | 2019-01-10 | 2021-10-19 | 马维尔以色列(M.I.S.L.)有限公司 | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 |
CN113519144B (zh) * | 2019-01-10 | 2023-06-27 | 马维尔以色列(M.I.S.L.)有限公司 | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 |
Also Published As
Publication number | Publication date |
---|---|
WO2016101439A1 (zh) | 2016-06-30 |
CN105791455B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791455A (zh) | 三态内容寻址存储器tcam空间的处理方法及装置 | |
US11151163B2 (en) | Scalable spine nodes with partial replication of routing information in a network environment | |
US11086653B2 (en) | Forwarding policy configuration | |
US7668925B1 (en) | Method and apparatus for routing in SAS using logical zones | |
CN109905251B (zh) | 网络管理方法、装置、电子设备和存储介质 | |
CN103795644B (zh) | 策略表表项配置方法、装置及*** | |
US11646998B2 (en) | Network address translation with filters using hierarchical rules | |
US10459729B2 (en) | Map tables for hardware tables | |
US20150229565A1 (en) | Techniques for Managing Ternary Content-Addressable Memory (TCAM) Resources in Heterogeneous Systems | |
CN101005461B (zh) | 一种IPv6路由表查找、转发的方法 | |
JP2014135721A (ja) | データセンタネットワークのトラフィックを分配するための装置および方法 | |
JP2006313949A (ja) | パケット転送装置 | |
CN103297347B (zh) | 一种负载均衡处理方法及装置 | |
CN102377669B (zh) | 发送报文的方法及交换机 | |
CN103918230B (zh) | 对网络设备背景中的转发数据库进行同步 | |
US9264257B2 (en) | Dynamic ternary content-addressable memory carving | |
CN103270727B (zh) | 存储体感知多位特里结构 | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
CN108540386A (zh) | 一种防止业务流中断方法及装置 | |
CN101616090B (zh) | 一种划分树节点资源方法及装置 | |
CN102833164B (zh) | 策略路由的实现方法、装置和交换设备 | |
CN106250351A (zh) | 具有集成的搜索引擎的硬件可编程设备 | |
CN105763444A (zh) | 一种路由同步方法及装置 | |
CN102045262B (zh) | 媒体接入控制地址表更新方法、装置及网络设备 | |
WO2022166854A1 (zh) | 一种数据查找方法、装置及集成电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |