CN1896991A - 动态范围匹配表维护方法 - Google Patents
动态范围匹配表维护方法 Download PDFInfo
- Publication number
- CN1896991A CN1896991A CNA2006100341069A CN200610034106A CN1896991A CN 1896991 A CN1896991 A CN 1896991A CN A2006100341069 A CNA2006100341069 A CN A2006100341069A CN 200610034106 A CN200610034106 A CN 200610034106A CN 1896991 A CN1896991 A CN 1896991A
- Authority
- CN
- China
- Prior art keywords
- list
- rule
- dynamic range
- range matching
- items
- 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
Images
Abstract
本发明涉及一种动态范围匹配表的维护方法,其中执行以下步骤:步骤1.为动态范围匹配表包含的规则创建相应的维护结构,在该维护结构中,每一条规则对应三态内容可寻址存储器的一个或多个表项,所述的维护结构满足所述动态范围匹配表与表中规则之间的关联要求,并用于对所述动态范围匹配表的各个规则进行维护;步骤2.根据所述的各个规则对应的维护结构对保存的所述动态范围匹配表中的各规则进行维护,并对所述表项进行相应操作。该方法减小了因普通范围匹配表的优先级维护产生的管理维护开销,改善了没有现成的TCAM中动态范围匹配表维护算法供使用的现状。
Description
技术领域
本发明涉及动态范围匹配表的维护方法,特别是对动态范围匹配表中的表项进行添加和删除的方法。
背景技术
三态内容可寻址存储器(Ternary Content Addressable Memory,简称TCAM)与普通存储器不同,普通存储器的寻址方式为输入地址,输出内容;而三态内容可寻址存储器可以根据输入的内容得到地址,也就是说,当输入一个内容(通常叫做比较数)时,TCAM会把比较数和TCAM中存储的数据进行比较,如果有命中表项,则输出命中表项的地址,三态内容可寻址存储器的每个存储单元除了“0”、“1”状态外,还有一个“don’t care”状态,表示既可以为“0”又可以为“1”。由于TCAM具有三态存储的功能,在输入一个比较数时,可能会有多个TCAM地址中的内容和比较数相同,如何确定哪一个地址为真正命中的地址,解决方法为,TCAM中存放的表项被分配有优先级,较低物理地址的表项具有较高的优先级,在出现多命中的情况下,优先级最高的表项的地址为查找的结果。
使用TCAM进行范围表示的方法如下:TCAM的三态存储方式为带掩码的数据提供了非常方便的存储方式,带掩码的数据实际上是一种特殊的范围,即从2n~2n+1-1的范围,对于一般的范围,可以拆分成若干个这样的特殊范围的并集,可以证明数据位宽为n的数据段的任意范围最多可以拆分成2(n-1)个可以直接存放在TCAM中的特殊的数据/掩码形式的范围。
范围匹配表为按照TCAM表的范围表示规则拆分为一个或多个范围区间后,可以作为一条或多条TCAM表项存入TCAM的表。动态范围匹配表是指不具备优先级特性的范围匹配表。作为一种典型的范围匹配表,动态范围匹配表被广泛应用于的通信领域当中。在传统的范围匹配表维护方法中,因其具有优先级特性,其维护结构和维护方法比较复杂,维护难度大,而动态范围匹配表不具备优先级特征,对它的维护不应采用常用的范围匹配表的优先级维护方法。
发明内容
本发明的目的是针对上述现有技术的不足,即在维护TCAM中的动态范围匹配表时,将表项作为优先级范围匹配表管理维护所存在的复杂低效的问题,提供对动态范围匹配表的维护方法,改善了目前没有TCAM中动态范围匹配表维护方法供使用的现状。
为实现上述目的,本发明提出了对动态范围匹配表的维护方法,其中执行以下步骤:
步骤1、为动态范围匹配表包含的规则创建相应的维护结构,在该维护结构中,每一条规则对应三态内容可寻址存储器的一个或多个表项,所述的维护结构满足所述动态范围匹配表与表中规则之间的关联要求,并用于对所述动态范围匹配表的各个规则进行维护;
步骤2、根据所述的各个规则对应的维护结构对保存的所述动态范围匹配表中的各规则进行维护,并对所述表项进行相应操作。
规则节点对应所述动态范围匹配表中的范围匹配规则,该规则节点采用所述的维护结构表示。
规则优先级、规则分解表项数目、分解规则首表项指针、分解规则尾表项指针及规则节点有效标志位。
所述三态内容可寻址存储器的一个或多个表项采用链表结构维护。
所述分解规则首表项指针指向所述链表结构的首表项,所述分解规则尾表项指针指向所述链表结构的尾表项。
在添加表项时,执行以下步骤:
步骤1、将范围匹配规则拆分为多个三态内容可寻址存储器表项;
步骤2、判断三态内容可寻址存储器的容量是否足够所述多个表项的插入,如果是,则执行步骤3;否则执行步骤5;
步骤3、在三态内容可寻址存储器的空闲表项链中插入所述多个表项;
步骤4、更新空闲链表;
步骤5、结束。
在删除表项时,执行以下步骤:
步骤1、由动态范围匹配表索引得到其对应的三态内容可寻址存储器表项链;
步骤2、将表项链中的所有表项删除;
步骤3、将表项链归还入空闲表项链中;
步骤4、结束。
该方法减小了因普通范围匹配表的优先级维护产生的管理维护开销,改善了没有现成的TCAM中动态范围匹配表维护算法供使用的现状。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明对动态范围匹配表的维护方法的实施例中范围匹配规则节点的维护结构示意图;
图2为本发明对动态范围匹配表的维护方法的实施例中添加表项的流程图;
图3为本发明对动态范围匹配表的维护方法的实施例中删除表项的流程图。
具体实施方式
动态范围匹配表具有单条规则对应一至多条TCAM表项和表中优先级平等的特性,在本发明中,为每一条范围匹配规则定义一个范围匹配规则节点,该节点的结构如图1所示,其中,包括规则索引,为原始表的索引号;规则分解表项数目,为原始表按照分解规则被拆分成TCAM表中被存储表项的数目;;分解规则首表项指针,指向TCAM表的首表项;;分解规则尾表项指针,指向TCAM表的尾表项;以及规则节点有效标志位。将所有TCAM中的空闲表项组织为空闲链。
如图2所示,为本发明对动态范围匹配表的维护方法的实施例中添加表项的流程图,具体执行以下步骤:
步骤101、将范围匹配规则拆分为多个三态内容可寻址存储器表项,设表项条数为N;
步骤102、判断三态内容可寻址存储器的容量是否足够N个表项的插入,如果是,则执行步骤3;否则执行步骤5;
步骤103、在三态内容可寻址存储器的空闲表项链中插入N个表项,并将该空闲表项链的首尾指针赋给规则节点的相应指针;
步骤104、更新空闲链表,根据预计拆分的规则数,预分配一块内存空间;
步骤105、结束。
如图3所示,为本发明对动态范围匹配表的维护方法的实施例中删除表项的流程图,具体执行以下步骤:
步骤201、由动态范围匹配表索引得到其对应的三态内容可寻址存储器表项链;
步骤202、将表项链中的所有表项删除;
步骤203、将表项链归还入空闲表项链中;
步骤204、结束。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
Claims (7)
1、一种动态范围匹配表的维护方法,其中执行以下步骤:
步骤1、为动态范围匹配表包含的规则创建相应的维护结构,在该维护结构中,每一条规则对应三态内容可寻址存储器的一个或多个表项,所述的维护结构满足所述动态范围匹配表与表中规则之间的关联要求,并用于对所述动态范围匹配表的各个规则进行维护;
步骤2、根据所述的各个规则对应的维护结构对保存的所述动态范围匹配表中的各规则进行维护,并对所述表项进行相应操作。
2、根据权利要求1所述的动态范围匹配表的维护方法,其中所述步骤1包括:
规则节点对应所述动态范围匹配表中的范围匹配规则,该规则节点采用所述的维护结构表示。
3、根据权利要求2所述的动态范围匹配表的维护方法,其中所述规则节点具体包括:
规则优先级、规则分解表项数目、分解规则首表项指针、分解规则尾表项指针及规则节点有效标志位。
4、根据权利要求3所述的动态范围匹配表的维护方法,其中所述三态内容可寻址存储器的一个或多个表项采用链表结构维护。
5、根据权利要求4所述的动态范围匹配表的维护方法,其中所述分解规则首表项指针指向所述链表结构的首表项,所述分解规则尾表项指针指向所述链表结构的尾表项。
6、根据权利要求1至5中任意一项所述的动态范围匹配表的维护方法,其中步骤2中所述相应操作为插入操作时具体执行以下步骤:
步骤1、将范围匹配规则拆分为多个三态内容可寻址存储器表项;
步骤2、判断所述三态内容可寻址存储器的容量是否足够所述多个表项的插入,如果是,则执行步骤3;否则执行步骤5;
步骤3、在所述三态内容可寻址存储器的空闲表项链中插入所述多个表项;
步骤4、更新空闲链表;
步骤5、结束。
7、根据权利要求1至5中任意一项所述的动态范围匹配表的维护方法,其中步骤2中所述相应操作为删除操作时具体执行以下步骤:
步骤1、由动态范围匹配表索引得到其对应的三态内容可寻址存储器表项链;
步骤2、将所述表项链中的所有表项删除;
步骤3、将所述表项链归还入空闲表项链中;
步骤4、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100341069A CN100386762C (zh) | 2006-03-02 | 2006-03-02 | 动态范围匹配表维护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100341069A CN100386762C (zh) | 2006-03-02 | 2006-03-02 | 动态范围匹配表维护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1896991A true CN1896991A (zh) | 2007-01-17 |
CN100386762C CN100386762C (zh) | 2008-05-07 |
Family
ID=37609519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100341069A Expired - Fee Related CN100386762C (zh) | 2006-03-02 | 2006-03-02 | 动态范围匹配表维护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100386762C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866357A (zh) * | 2010-06-11 | 2010-10-20 | 福建星网锐捷网络有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
US8527694B2 (en) | 2010-06-11 | 2013-09-03 | Beijing Star-Net Ruijie Networks Co., Ltd. | Method and apparatus for updating table entries of a ternary content addressable memory |
CN105812164A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN116185886A (zh) * | 2022-12-13 | 2023-05-30 | 中国科学院声学研究所 | 一种匹配表系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886073B2 (en) * | 2002-06-18 | 2005-04-26 | International Business Machines Corporation | Method and system for performing range rule testing in a ternary content addressable memory |
US7509674B2 (en) * | 2003-10-07 | 2009-03-24 | Alcatel Lucent | Access control listing mechanism for routers |
CN100387028C (zh) * | 2005-04-01 | 2008-05-07 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
-
2006
- 2006-03-02 CN CNB2006100341069A patent/CN100386762C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866357A (zh) * | 2010-06-11 | 2010-10-20 | 福建星网锐捷网络有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
CN101866357B (zh) * | 2010-06-11 | 2011-11-16 | 北京星网锐捷网络技术有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
WO2011153784A1 (zh) * | 2010-06-11 | 2011-12-15 | 北京星网锐捷网络技术有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
US8527694B2 (en) | 2010-06-11 | 2013-09-03 | Beijing Star-Net Ruijie Networks Co., Ltd. | Method and apparatus for updating table entries of a ternary content addressable memory |
CN105812164A (zh) * | 2014-12-31 | 2016-07-27 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN105812164B (zh) * | 2014-12-31 | 2019-07-23 | 北京东土科技股份有限公司 | 基于tcam多级流表的规则索引管理实现方法和装置 |
CN116185886A (zh) * | 2022-12-13 | 2023-05-30 | 中国科学院声学研究所 | 一种匹配表系统 |
CN116185886B (zh) * | 2022-12-13 | 2023-10-13 | 中国科学院声学研究所 | 一种匹配表系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100386762C (zh) | 2008-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7707217B2 (en) | Trie search engines and ternary CAM used as pre-classifier | |
US7782853B2 (en) | Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine | |
CN104715039B (zh) | 基于硬盘和内存的列式存储和查询方法及设备 | |
CN108011823B (zh) | 多域流表的多级化方法及装置、多级流表查找方法及装置 | |
EP3258657B1 (en) | Ip route caching with two search stages on prefix length | |
CA2434876A1 (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
CN1896991A (zh) | 动态范围匹配表维护方法 | |
JP4995125B2 (ja) | 固定長データの検索方法 | |
WO2004001632A2 (en) | Compressed prefix tree structure and method for traversing a compressed prefix tree | |
US20100158016A1 (en) | System and method of fast adaptive tcam sorting for ip longest prefix matching | |
CN112486994B (zh) | 一种基于日志结构合并树的键值存储的数据快速读取方法 | |
CN113553476B (zh) | 一种利用哈希减少写停顿的键值存储方法 | |
CN100479436C (zh) | 静态多接口范围匹配表的管理维护方法 | |
CN107679212A (zh) | 一种应用于跳跃表数据结构的数据查询优化方法 | |
CN100433009C (zh) | 静态范围匹配表的管理维护方法 | |
GB2377286A (en) | Node Insertion in a Binary Search Tree System | |
CN105320609A (zh) | 一种基于移动终端的数据存储方法及系统 | |
CN110830376B (zh) | 一种int报文的处理方法及装置 | |
Chang | A 2-level TCAM architecture for ranges | |
CN106168883A (zh) | 一种高效的数据组织与访问方法 | |
Lim et al. | Binary searches on multiple small trees for IP address lookup | |
CN1235169C (zh) | 一种嵌入式系统的数据存放及其查找方法 | |
CN1134177C (zh) | 一种分段式ip路由线速率查表方法 | |
US20150324484A1 (en) | Offline radix tree compression with key sequence skip | |
Wu et al. | Associative searching in multiple storage units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080507 Termination date: 20170302 |