CN102597973A - 用于改善最长前缀匹配的可扩展性的方法和设备 - Google Patents
用于改善最长前缀匹配的可扩展性的方法和设备 Download PDFInfo
- Publication number
- CN102597973A CN102597973A CN2010800448709A CN201080044870A CN102597973A CN 102597973 A CN102597973 A CN 102597973A CN 2010800448709 A CN2010800448709 A CN 2010800448709A CN 201080044870 A CN201080044870 A CN 201080044870A CN 102597973 A CN102597973 A CN 102597973A
- Authority
- CN
- China
- Prior art keywords
- subclauses
- clauses
- tcam
- prefix
- result
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/748—Address table lookup; Address filtering using longest matching prefix
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于三态内容可寻址存储器(TCAM)的最长前缀匹配(LPM)查找表包括:TCAM,其保持用于查找相关联的RAM中的结果的多个前缀条目,该相关联的RAM存储与TCAM匹配索引相对应的结果;附加的随机访问存储器(RAM),其存储来自该相关联的RAM的结果;以及该TCAM中的一个条目,其表示该附加RAM中来自该相关联的RAM的至少两个条目,从而使得该TCAM中的至少一个条目可用。
Description
技术领域
本发明涉及用于改善用于执行最长前缀匹配的设备的可扩展性的方法和设备。
背景技术
最长前缀匹配(LPM)是在数据库中所存储的多个前缀之中寻找与给定查找密钥匹配的最长匹配的问题。可以在许多应用中使用LPM,并且LPM不限于IP路由,但是由于IP路由是其中一个主要LPM应用,所以将仅通过示例性实例在IP路由的环境中讨论本发明。
最通常在网络桥接、路由以及类似的功能中使用前向信息库(FIB)(又被称为前向表格)来寻找这样一种合适的接口,其中输入接口应该向该合适的接口发送将由路由器传输的分组。因此,FIB包含具有对应的输出接口的前缀集合。通过寻找与查找密钥匹配的最长前缀来进行前向判决。目前最常使用的查找密钥是分组的IPv4或IPv6目的地地址。
可以利用随机访问存储器(RAM)通过使用诸如M-键树、位图树之类的算法,或者利用诸如三态内容可寻址存储器(TCAM)的快速硬件查找机制,实现FIB或用于执行LPM的其他设备。虽然高级的基于RAM的FIB实现/算法足以保持数百万个前缀,但是在查找密钥宽度看来它们是不可扩展的,因为到FIB存储器的通路的数量取决于查找密钥宽度。通常,密钥越宽则需要越多的查找。
另一方面,利用基于TCAM的FIB或LPM实现,查找时间是恒定的。然而,基于TCAM的FIB或查找表格在前述数量方面而言是不可扩展的。如今已知的最高级的TCAM设备具有40M比特的容量,其可用于保持高达0.5M个前缀。
因此,长期感觉存在对于用于执行在前缀的数量方面和在查找密钥长度方面都可扩展的最长前缀匹配的方法和装置的需求。
发明内容
本发明提出的技术方案是为了通过利用具有相关联的结果RAM的TCAM设备,添加附加RAM并且向代表该附加RAM中的多个条目的TCAM插入条目来改善LPM可扩展性。将要意识到该结构提供具有特定扩展性的LPM查找表,其具有比常规方式更少的TCAM条目。这样,能够使用更小的TCAM设备或者释放更多的TCAM条目以便有可能被其他应用使用。
根据本发明提供了一种用于建立最长前缀匹配查找表的方法,包括在TCAM(三态内容可寻址存储器)中排列多个前缀条目并且向相关联的结果RAM(随机访问存储器)插入与TCAM匹配索引相对应的结果,该方法包括:选择能够被减少成该TCAM中的单个条目的至少两个前缀条目的组群,其中单个条目包括用于该组群中的全部前缀条目的公共前缀;排列来自该相关联的RAM的、由附加RAM中的前缀组群表示的结果;用指向该附加RAM中的多个结果的单个TCAM条目来替换TCAM中的该前缀条目的组群,从而使得该TCAM中的至少一个条目可用;并且由指向该附加RAM中的多个条目的一个条目来替换该相关联的RAM中的多个条目。
根据本发明还提供了一种用于执行最长前缀匹配(LPM)查找的方法,该方法包括建立和维持查找表,所述查找表包括TCAM和相关联的结果随机访问存储器(RAM)以及附加RAM,其中,由该TCAM中的一个条目来表示该附加RAM中的至少两个条目,在该TCAM中执行查找,在该相关联的结果RAM中寻找该TCAM中的指向该附加RAM中的结果组群的的一个条目的结果,并且作为响应,通过读取该附加RAM中的该结果组群来完成该查找。
根据本发明还提供了一种基于三态内容可寻址存储器(TCAM)的最长前缀匹配(LPM)查找表,其包括:TCAM,其保持用于查找相关联的RAM中的结果的多个前缀条目;附加随机访问存储器(RAM),其存储来自该相关联的RAM的结果;并且该TCAM中的一个条目,其表示该附加RAM中来自该相关联的RAM的至少两个条目,从而使得该TCAM中的至少一个条目可用。
附图说明
通过结合附图的以下详细描述将更好地理解并且认识本发明,其中:
图1a是根据现有技术,由TCAM条目表示LPM设备条目的示意图;
图1b是根据本发明的一个示例性实施方案,由TCAM和附加RAM条目表示图1a的LPM条目的示意图;
图2a是根据现有技术的另一个实施例,由TCAM条目表示LPM设备条目的示意图;
图2b是根据本发明的另一个示例性实施方案,由TCAM和附加RAM条目表示图2a的LPM条目的示意图;
图3a是根据现有技术的另一个实施例,由TCAM条目表示LPM设备条目的示意图;
图3b是根据本发明的另一个示例性实施方案,由TCAM和附加RAM条目表示图3a的LPM条目的示意图。
具体实施方式
本发明涉及一种使用三态内容可寻址存储器(TCAM)(其相关联的随机访问存储器(RAM)用作结果存储器)和附加RAM来执行最长前缀匹配(LPM)以实现比基于TCAM的标准技术方案更好的可扩展性(对于条目的数量)的方法和装置。该方法通过存储与该TCAM相关联的RAM中的一部分结果数据和该附加RAM中的一部分数据,并且向代表该附加RAM中的多个条目的TCAM插入条目来改善LPM可扩展性,从而使得在基于TCAM的常规设备中占用的该TCAM条目中可用。
在基于TCAM的常规LPM技术方案中,由一个TCAM条目表示每个LPM条目,其中该TCAM条目指向相关联的结果存储器(该相关联的RAM)中的结果。在本发明中,可以由单个TCAM条目表示LPM条目的组群,其中该单个TCAM条目的前缀是该组群中的全部条目的公共前缀。在该情况中,该相关联的RAM中的相应结果指向附加RAM中的结果数组,其中该附加RAM包含该LPM条目组群中的每个条目的结果。
然后可以使用查找密钥的狭窄部分来搜索附加RAM中的条目,从而可以在单个RAM访问中获得多个结果。这样,在TCAM的查找期间将找到该结果存储器中的一些结果,并且在该附加RAM的后续查找期间将找到其中一些结果。将要认识到,如果需要,则可以提供一个(或多个)其他附加RAM访问,即可以实现多层的RAM数组,每层RAM数组指向持有其结果的一层RAM数组。使用多层RAM的算法可以对于特定尺寸的TCAM和RAM实现LPM条目的更好的可扩展性。该排列的优点在于查找时间,因为将执行多个RAM访问。
前缀具有相同的长度M的TCAM条目可以涉及附加RAM中的结果数组,该结果数组包含与该TCAM条目匹配的长度为M+N的全部可能前缀。该数组将包含2N个条目(为与长度为M的特定前缀匹配的长度为M+N的前缀的数量),并且将表示具有长度为M到M+N(含)的前缀的全部LPM条目,它们与指向该数组的TCAM条目的前缀(长度为M)匹配。当在TCAM中可以由单个条目来表示LPM条目组群时,结果组群从相关联的结果RAM移动到该附加RAM。其结果在附加RAM中被表示成数组的LPM条目可以从该TCAM去除并且通过指向该相关联的结果RAM中的新的结果的单个条目来替换,其中该新的结果因而指向该附加RAM中的对应的数组,从而允许用给定的TCAM大小来表示更大的LPM查找表。对应的附加RAM数组中的后续查找将使用该查找密钥的小得多的部分,即将仅在M至(M+N-1)比特之上,使得可以在附加RAM的单个访问期间获得结果。
在相关联的RAM条目中由TCAM查找所指示的结果不再包含原始结果(其现在在附加RAM中)而是包含用于允许真实结果的读取的三个参数——起始比特、步幅大小和基于该查找密钥、起始比特和步幅大小所计算的索引。这些参数指示附加RAM中的该数组的起始位置以及查找密钥的相关比特(例如在FIB中,IP地址的相关比特),其中基于该相关比特在附加RAM中执行查找,其中该起始位置和该相关比特应该用于在附加RAM的数组中获取索引。典型而言,该相关比特是该查找密钥的M至(M+N-1)比特。通过读取附加RAM中与该数组中被TCAM匹配索引指向的经计算的索引相对应的条目来完成LPM查找。结果地址根据这些值来计算并且从附加RAM存储器获取。
如图在常规TCAM查找表中一样,将用于TCAM的未被一起分组到数组中的结果放置到与该TCAM相关联的结果RAM中。可以使用该相关联的结果RAM中的结果中的比特之一来指示(相关联的RAM中的)该结果的其余部分是否是真实结果,或者包含用于指向该附加RAM中的代表真实结果的数组的指针,如上所述。虽然该方法不是强制性的,但是其有助于在结果前缀未被分组到数组中时避免附加的存储器访问。
为了本发明的目的,对于具有2N个条目的数组,N是指该数组的步幅大小。因此,用于指向步幅大小为N的数组的、前缀长度为M的TCAM条目代表长度范围从M到M+N(含)的多达(2N-1)个LPM条目。将要认识到,可以支持多个步幅大小,并且在附加RAM中可以共存不同大小的数组。
用于负责LPM表格的创建的软件算法还负责辨认用于创建数组的候选前缀并且决定创建新的数组或分解现有数组。即,注意到多个查找密钥仅在最后N个比特不同,所以可以将它们一起结合在单个组群或数组中以便减少TCAM条目的数量。用于选择应该创建哪个数组的一种可能的方法是通过候选数组的“利用率”来优先级化候选数组。在本申请中,将利用率定义为当创建数组时可以减少的TCAM条目数量与数组大小(对于步幅大小为N的数组而言是2N)之间的比率。
当根据利用来优先级化时,例如可能的实施涉及例如使用全局利用门限,从而创建利用率高于特定门限的候选数组,并且分解利用率下降到低于一些其他门限的现有数组,并且单独向TCAM返回它们的LPM条目。由于查找表可以随时间改变,特别是在FIB表的情况中,所以可以在操作期间创建并且分解这些数组。在该示例性的实施中,可以通过使用LPM查找对具体应用执行测试来优化该利用率门限的值,并且该利用率门限的值将受到专用于该算法的可用TCAM大小和可用RAM大小之间的比率高度影响。RAM大小相比于TCAM大小越大,则可以允许的利用率门限越低。
例如,考虑IP路由,测试显示利用2009年4月的因特网转发表格中的因特网IPv4条目分配,本发明的方法将实现下文的可扩展结果:
考虑该表格中的中线,如果例如(用于存储前缀数组的)附加RAM存储器所具有的条目数量是TCAM所具有的条目数量的四倍,那么与常规TCAM技术方案相比,该算法可以将FIB表格中的前缀数量的规模提高~2.65倍。将数量放到该实施例中,使用能够保持1M个条目的TCAM设备已经具有4M个条目的附加RAM存储器,该算法可以实现~2.65M个FIB条目的规模。
参考图1a,其根据现有技术的一个实施例,显示了阐述由TCAM条目表示多个FIB条目的LPM表格(在本文中将其示为FIB表格20)的示意图。如图可见,由TCAM 22中的一个条目14表示每个FIB条目12(示为FIB表键树中的黑点),该条目14指向相关联的结果RAM24中的结果(A到E)16。节点18(示为FIB表键树中的白点)是非真实FIB条目,它们仅仅显示该FIB表键树中的接点,所以在TCAM中不出现。
图1b是根据本发明的一个示例性实施方案,用于表示FIB表格30的示意图,其中FIB表格30表示与图1a的FIB表键树10相对应的FIB表键树31。FIB表格30包括TCAM 22,其中TCAM 22具有其相关联的结果RAM 24和附加RAM 26。图1a和1b上较小的具有圆点的三角形19指示该FIB键树的能够被减少成单个TCAM条目的候选部分(即,可以将对应的结果移动到附加RAM以便在该附加RAM中搜索它们)。现在将来自该相关联的结果存储器的对应的结果条目存储在附加RAM 26中的数组36(A,B,C,D)中。因此,在图1b中,单个TCAM条目,TCAM 22中的前缀0100*,替换4个以前的TCAM条目0100*、01001*、010000*以及010001*,从而使得TCAM中三个条目可用。优选地,该TCAM中替换该前缀组群的前缀是该组群中的全部条目的公共前缀。
现在由TCAM查找获取的结果34包含附加RAM中的数组36的起始位置以及执行该查找所基于的条目的相关比特(例如IP地址),以便获取该数组中的索引(在本文中示为比特4和5)。在该实施例中显示的减少的利用率是变得可用的TCAM前缀的数量(本文中为3)除以数组的大小(其为22=4)。因此,该减少具有3/4或75%的利用率。
图2a是根据现有技术的另一个实施例,由TCAM条目表示LPM设备条目的示意图。除了节点0100*不是真实FIB条目之外,FIB表键树40与图1b中的键树10相似。在基于TCAM的常规LPM设备中,将键树40存储在TCAM 42和相关联的结果存储器44中。由于前缀0100*不是真实FIB条目,所以TCAM 42和结果存储器44两者都比图1a少包含一个条目。
现在参考图2b,其根据本发明的另一个示例性实施方案,显示由TCAM和附加RAM条目表示图2a的LPM条目,示于FIB表键树50中。不管前缀0100*不是真实FIB条目这一事实,在键树的候选部分的减少中仍然可以使用前缀0100*。因此,在TCAM 51中存在3个条目以替代5个条目。条目52是用于指向相关联的结果RAM 54中的结果56的0100*前缀。将来自该相关联的结果RAM的、与被减少的TCAM条目相对应的结果条目存储在附加RAM 58中的数组57中。如图可见,附加RAM 58中的数组包括前缀010001*,该前缀010001*不是由被减少成数组的条目组群中的LPM条目表示。在该情况中,数组将包含“原路返回”结果,即在LPM表键树中的结果之上且作为真实节点的第一节点的结果,本文为010*,结果E。换句话说,根据本发明,如果数组包括不由减少的组群中的任何LPM条目表示的、长度为M+N的前缀,那么该数组将包含原路返回结果,即该表格中的最长前缀(其为M+N的子前缀,并且长度小于M)的结果的副本。将要认识到,在该情况中,虽然数组大小也是22=4,但是TCAM前缀的数量仅减少了2个,因此,该减少具有2/4或50%的利用率。
图3a是根据现有技术的另一实施例,由TCAM条目表示LPM设备条目的示意图。除了节点010010*不是真实FIB条目之外,FIB表键树60与图2b中的键树40相似。在基于TCAM的常规LPM设备中,将键树60存储在TCAM 62和相关联的结果存储器64中。由于前缀010010*不是真实FIB条目,所以TCAM 62和结果存储器64两者都比图2a少包含一个条目。
现在参考图3b,其根据本发明的另一个示例性实施方案,由TCAM和附加RAM表示图3a的LPM条目的示意图,示于FIB表键树70中。在该实施例中,在TCAM 71中也存在3个条目。本文,条目72也是指向相关联的结果RAM 74中的结果76的0100*前缀。将来自该结果RAM的、与被减少的TCAM条目相对应的结果条目存储在附加RAM 78的数组77中。如图可见,附加RAM 78中的数组包括两个附加前缀010010*和010011*,该附加前缀010010*和010011*不是由任意LPM条目表示。在该情况中,数组将包含“副本”结果,即两个该条目将具有相同的结果,结果C。换句话说,根据本发明,可以将该数组中所表示的、前缀长度小于M+N的LPM条目复制至该数组中代表由该前缀表示的长度为M+N的全部可能前缀的多个结果,除非在该数组中存在代表M+N前缀的更具体的前缀(即具有更长的长度)。如可以看出,在该情况中,尽管数组大小也是22=4,但是TCAM前缀的数量仅被减少了一个,因此,该减少具有1/4或25%的利用率。
概括地说,如下在本发明的LPM设备上执行LPM查找。首先,在该LPM设备的TCAM中执行给定密钥的TCAM查找。读取与TCAM匹配索引相对应的相关联的结果RAM条目,并且基于查找密钥和该相关联的结果RAM条目中的两个参数(起始比特和步幅大小)计算索引。通过读取附加RAM中与该数组中经计算的索引相对应的条目来完成LPM查找,其中来自该相关联的结果RAM条目的第三参数指向该经计算的索引。该附加RAM条目包含与给定密钥匹配的最长前缀的专用结果。
通过根据需要向LPM表格增加新的前缀并且从该LPM表格去除旧的前缀来维护该LPM表格。可以用三种方式中的一种方式向LPM表格增加新的前缀。首先,如常规LPM表格一样,对于给定前缀可以向LPM表格增加新的条目,并且向对应的结果RAM条目写入结果。可选择地,如果在附加RAM中已经创建了具有与该新的条目相同的前缀的合适的条目数组,那么可以向该附加RAM的现有数组中的对应的条目中增加前缀结果。如果适合,并且如果不存在对应的数组,那么在该附加RAM中可以创建新的数组,该新的数组包含具有一些现有前缀结果的新的前缀。向结果RAM写入用于指向新创建的数组的新的公共前缀结果,并且向TCAM增加新的公共前缀。现在分解与新的数组中所包括的前缀相对应的现有数组,并且向TCAM和相关联的结果RAM返回全部各自的资源(例如TCAM资源)。
可以通过覆盖结果RAM条目或附加RAM条目中的旧的结果来更新前缀结果。
可以从表格去除旧的前缀,该去除可以通过由与删除的前缀匹配的最长前缀的结果覆盖对应的附加RAM中的前缀结果,或者通过将用于给定前缀的对应的TCAM条目无效以使其不再参与查找。
虽然关于已参考有限数量的实施方案来对描述了本发明进行了描述,但是将要意识到可以做出本发明的许多变形、修改和其他应用。还有意识进一步意识到,本发明不限于上文仅仅通过实例实施例的方式说已进行的描述。本发明仅仅是由所附权利要求限制的。
Claims (16)
1.一种用于建立最长前缀匹配查找表的方法,包括在三态内容可寻址存储器(TCAM)中排列多个前缀条目并且向相关联的结果随机访问存储器(RAM)中插入与所述前缀条目的TCAM匹配索引相对应的结果,所述方法包括:
选择能够被减少成所述TCAM中的单个条目的至少两个所述前缀条目的组群,其中的单个条目包括用于所述组群中的全部前缀条目的公共前缀;
排列来自所述相关联的RAM的、由附加RAM中所述前缀组群表示的结果条目;
由指向所述附加RAM中的所述条目的结果条目来替换所述相关联的RAM中的结果条目;并且
用指向所述相关联的RAM中的所述结果条目的所述单个TCAM条目来替换所述TCAM中的所述前缀条目组群,从而使得所述TCAM中的至少一个条目可用。
2.如权利要求1所述的方法,还包括:将所述附加RAM中的所述多个结果条目排列成数组,其中,所述数组包含与所述单个TCAM条目匹配的全部可能的前缀。
3.如权利要求2所述的方法,还包括通过以下步骤向所述查找表增加新的前缀条目:
向所述TCAM增加新的前缀条目;
搜索所述附加RAM中与所述新的前缀条目具有公共前缀的数组;并且
如果找到所述数组,则将与所述新的前缀条目相对应的结果添加到所述数组中。
4.如权利要求2所述的方法,还包括:通过向所述TCAM添加新的前缀条目并且向所述相关联的结果RAM写入与所述新的前缀条目的匹配索引相对应的结果,向所述查找表添加新的前缀条目。
5.如权利要求2所述的方法,还包括通过以下步骤向所述查找表添加新的前缀条目:
向所述TCAM输入新的前缀条目;
在所述附加RAM中创建新的数组,所述新的数组包含与所述TCAM中的至少一个现有前缀条目的匹配索引相对应的结果以及与所述新的前缀条目的匹配索引相对应的结果;
在所述相关联的RAM中输入指向所述新的数组的新的公共前缀结果;
向所述TCAM中输入所述新的公共前缀以替代所述新的前缀条目。
6.如权利要求5所述的方法,还包括:分解与所述新的数组中所包括的前缀相对应的全部现有数组以及全部各自的资源。
7.如权利要求1所述的方法,还包括:通过由与所述删除的前缀条目匹配的最长前缀的结果覆盖与所述删除的前缀条目相对应的所述附加RAM中的结果,从所述查找表删除前缀条目。
8.如权利要求1所述的方法,还包括:
通过使得给定前缀的对应的TCAM条目无效,从所述表中删除前缀;
通过覆盖所述结果RAM条目或附加RAM条目中的旧的结果,更新所述前缀结果。
9.如权利要求1所述的方法,还包括:在所述结果RAM中的每个条目中提供一个比特,用于指示所述条目是否包含查找结果或所述附加RAM中的查找结果的指针。
10.如权利要求1所述的方法,其中:
所述选择步骤包括选择多于一个组群,所述排列步骤包括将来自每个所述组群的结果排列到所述附加RAM中对应的数组中;
所述替换步骤包括用单个TCAM条目替换所述TCAM中的每个所述前缀条目组群;并且
替换所述相关联的RAM中的条目的所述步骤包括由指向所述附加RAM中的所述对应的数组的条目来替换所述条目。
11.一种用于执行最长前缀匹配(LPM)查找的方法,所述方法包括:
建立并且维护查找表,所述查找表包括:
三态内容可寻址存储器(TCAM)和相关联的结果随机访问存储器(RAM);以及
附加RAM;
其中,由所述TCAM中的一个条目来表示所述附加RAM中的至少两个条目;
在所述TCAM中执行查找;
在所述相关联的结果RAM中寻找所述TCAM中的指向所述附加RAM中的结果组群的条目的结果;并且
作为响应,通过读取所述附加RAM中的所述结果组群中的条目来完成所述查找。
12.如权利要求11所述的方法,包括:
执行给定密钥的TCAM查找,以找到TCAM匹配索引;
读取与所述TCAM匹配索引相对应的相关联的结果RAM条目,所述结果RAM条目包括起始比特和步幅大小;
基于所述查找密钥和来自所述结果RAM条目的所述起始比特和步幅大小计算索引;并且
通过读取与所述计算的索引相对应的附加RAM条目,完成所述LPM查找。
13.如权利要求12所述的方法,其中:
由表键树来表示所述查找表,所述表键树包括在所述TCAM中具有对应的条目的真实节点以及在所述TCAM中没有对应的条目的节点;
所述建立和维护步骤还包括向与在所述TCAM中不具有条目的每个节点相对应的所述数组中插入在所述表键树中具有较短前缀并且是真实节点的第一真实节点的结果。
14.如权利要求12所述的方法,其中,所述建立和维护步骤还包括向在所述数组中的多于一个的条目中插入结果。
15.一种基于三态内容可寻址存储器(TCAM)的最长前缀匹配(LPM)查找表,包括:
TCAM和相关联的结果随机访问存储器(RAM);以及
附加RAM;
其中,由所述TCAM中的一个条目和所述相关联的结果RAM中的一个条目来表示所述附加RAM中的至少两个条目。
16.如权利要求14所述的查找表,其中:
所述TCAM是保持多个用于查找相关联的RAM中的结果的前缀条目的TCAM;
所述相关联的RAM存储与所述前缀条目的TCAM匹配索引相对应的结果;
所述附加RAM存储来自所述相关联的RAM的结果;并且
所述TCAM中的一个条目表示在所述附加RAM中来自所述相关联的RAM的至少两个条目,从而使得所述TCAM中的至少一个条目可用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/541,950 US9049157B1 (en) | 2009-08-16 | 2009-08-16 | Method and device for improving scalability of longest prefix match |
US12/541,950 | 2009-08-16 | ||
PCT/IL2010/000661 WO2011021187A1 (en) | 2009-08-16 | 2010-08-16 | Method and device for improving scalability of longest prefix match |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102597973A true CN102597973A (zh) | 2012-07-18 |
CN102597973B CN102597973B (zh) | 2015-04-22 |
Family
ID=43003441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080044870.9A Expired - Fee Related CN102597973B (zh) | 2009-08-16 | 2010-08-16 | 用于改善最长前缀匹配的可扩展性的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9049157B1 (zh) |
EP (1) | EP2288092A1 (zh) |
JP (1) | JP2013502020A (zh) |
KR (1) | KR101434065B1 (zh) |
CN (1) | CN102597973B (zh) |
WO (1) | WO2011021187A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045316A1 (zh) * | 2014-09-22 | 2016-03-31 | 中兴通讯股份有限公司 | 控制软复位后数据恢复的方法、装置及分组传送网设备 |
CN105814846A (zh) * | 2013-12-17 | 2016-07-27 | 华为技术有限公司 | 网络地址查询的前缀树阶段平衡 |
CN107018078A (zh) * | 2017-01-25 | 2017-08-04 | 华为技术有限公司 | 多分支跳转协处理方法及装置 |
WO2019105276A1 (zh) * | 2017-11-30 | 2019-06-06 | 华为技术有限公司 | 数据访问方法、存储器及处理器 |
CN111291058A (zh) * | 2020-03-17 | 2020-06-16 | 芯启源(南京)半导体科技有限公司 | 一种优化基于分层pc-trie结构存储LPM规则的方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9680747B2 (en) * | 2012-06-27 | 2017-06-13 | Futurewei Technologies, Inc. | Internet protocol and Ethernet lookup via a unified hashed trie |
CN103345479A (zh) * | 2013-06-18 | 2013-10-09 | 苏州雄立科技有限公司 | 一种tcam的新型工作模式 |
US10489455B2 (en) | 2014-11-18 | 2019-11-26 | Globalfoundries U.S. Inc. | Scoped search engine |
CN105812262A (zh) * | 2016-03-10 | 2016-07-27 | 盛科网络(苏州)有限公司 | 一种在带有掩码管理的tcam中高效数据排序的实现方法 |
US10397115B1 (en) * | 2018-04-09 | 2019-08-27 | Cisco Technology, Inc. | Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050083937A1 (en) * | 2003-10-15 | 2005-04-21 | Hyesook Lim | IP address lookup method using pipeline binary tree, hardware architecture, and recording medium |
US20090150603A1 (en) * | 2007-12-07 | 2009-06-11 | University Of Florida Research Foundation, Inc. | Low power ternary content-addressable memory (tcams) for very large forwarding tables |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3970448B2 (ja) * | 1998-12-21 | 2007-09-05 | 株式会社日立製作所 | 情報中継方法および装置 |
WO2001043345A2 (en) * | 1999-12-10 | 2001-06-14 | Mosaid Technologies Incorporated | Method and apparatus for longest match address lookup |
US6502163B1 (en) * | 1999-12-17 | 2002-12-31 | Lara Technology, Inc. | Method and apparatus for ordering entries in a ternary content addressable memory |
US6947931B1 (en) * | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
JP2002208945A (ja) | 2001-01-10 | 2002-07-26 | Fujitsu Ltd | パケットの宛先情報管理装置 |
US6910097B1 (en) | 2001-04-09 | 2005-06-21 | Netlogic Microsystems, Inc. | Classless interdomain routing using binary content addressable memory |
US8112578B2 (en) * | 2001-11-01 | 2012-02-07 | Micron Technology, Inc. | Low power, hash-content addressable memory architecture |
US7299317B1 (en) | 2002-06-08 | 2007-11-20 | Cisco Technology, Inc. | Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure |
US20060059196A1 (en) * | 2002-10-03 | 2006-03-16 | In4S Inc. | Bit string check method and device |
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 |
KR100512949B1 (ko) * | 2003-02-28 | 2005-09-07 | 삼성전자주식회사 | 필드레벨 트리를 이용한 패킷분류장치 및 방법 |
US7571156B1 (en) * | 2003-03-28 | 2009-08-04 | Netlogic Microsystems, Inc. | Network device, storage medium and methods for incrementally updating a forwarding database |
JP3795881B2 (ja) * | 2003-10-06 | 2006-07-12 | 日本電信電話株式会社 | テーブル検索方法および装置 |
US7555594B2 (en) | 2004-07-22 | 2009-06-30 | Netlogic Microsystems, Inc. | Range representation in a content addressable memory (CAM) using an improved encoding scheme |
KR100612256B1 (ko) * | 2005-01-14 | 2006-08-14 | 삼성전자주식회사 | 터너리 내용 주소화 메모리 관리 장치 및 그 방법 |
US7707217B2 (en) * | 2005-01-24 | 2010-04-27 | 3Com Corporation | Trie search engines and ternary CAM used as pre-classifier |
US7856523B2 (en) | 2005-06-01 | 2010-12-21 | Microsoft Corporation | Random Access Memory (RAM) based Content Addressable Memory (CAM) management |
US7653670B2 (en) | 2005-11-28 | 2010-01-26 | Nec Laboratories America, Inc. | Storage-efficient and collision-free hash-based packet processing architecture and method |
US7933282B1 (en) * | 2007-02-08 | 2011-04-26 | Netlogic Microsystems, Inc. | Packet classification device for storing groups of rules |
CN101350801B (zh) | 2008-03-20 | 2012-10-10 | 中兴通讯股份有限公司 | 长循环前缀帧结构下行专用导频与物理资源块的映射方法 |
-
2009
- 2009-08-16 US US12/541,950 patent/US9049157B1/en active Active
-
2010
- 2010-08-16 KR KR1020127006297A patent/KR101434065B1/ko active IP Right Grant
- 2010-08-16 JP JP2012525250A patent/JP2013502020A/ja active Pending
- 2010-08-16 CN CN201080044870.9A patent/CN102597973B/zh not_active Expired - Fee Related
- 2010-08-16 EP EP10008515A patent/EP2288092A1/en not_active Withdrawn
- 2010-08-16 WO PCT/IL2010/000661 patent/WO2011021187A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050083937A1 (en) * | 2003-10-15 | 2005-04-21 | Hyesook Lim | IP address lookup method using pipeline binary tree, hardware architecture, and recording medium |
US20090150603A1 (en) * | 2007-12-07 | 2009-06-11 | University Of Florida Research Foundation, Inc. | Low power ternary content-addressable memory (tcams) for very large forwarding tables |
Non-Patent Citations (2)
Title |
---|
LIN, WEI等: "A TCAM index scheme for IP address lookup", 《CHINACOM"06. FIRST INTERNATIONAL CONFERENCE ON. IEEE》 * |
WANG P C等: "Efficient entry-reduction algorithm for TCAM-based IP forwarding engine", 《IEE PROCEEDINGS-. IET》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105814846A (zh) * | 2013-12-17 | 2016-07-27 | 华为技术有限公司 | 网络地址查询的前缀树阶段平衡 |
CN105814846B (zh) * | 2013-12-17 | 2019-06-21 | 华为技术有限公司 | 网络地址查询的前缀树阶段平衡 |
WO2016045316A1 (zh) * | 2014-09-22 | 2016-03-31 | 中兴通讯股份有限公司 | 控制软复位后数据恢复的方法、装置及分组传送网设备 |
CN105516001A (zh) * | 2014-09-22 | 2016-04-20 | 中兴通讯股份有限公司 | 控制软复位后数据恢复的方法、装置及分组传送网设备 |
CN107018078A (zh) * | 2017-01-25 | 2017-08-04 | 华为技术有限公司 | 多分支跳转协处理方法及装置 |
CN107018078B (zh) * | 2017-01-25 | 2020-08-07 | 华为技术有限公司 | 多分支跳转协处理方法及装置 |
WO2019105276A1 (zh) * | 2017-11-30 | 2019-06-06 | 华为技术有限公司 | 数据访问方法、存储器及处理器 |
CN109857682A (zh) * | 2017-11-30 | 2019-06-07 | 华为技术有限公司 | 数据访问方法、存储器及处理器 |
CN109857682B (zh) * | 2017-11-30 | 2021-10-01 | 华为技术有限公司 | 数据访问方法、存储器及处理器 |
CN111291058A (zh) * | 2020-03-17 | 2020-06-16 | 芯启源(南京)半导体科技有限公司 | 一种优化基于分层pc-trie结构存储LPM规则的方法 |
CN111291058B (zh) * | 2020-03-17 | 2023-06-16 | 芯启源(南京)半导体科技有限公司 | 一种基于分层pc-trie结构的LPM规则存储方法 |
Also Published As
Publication number | Publication date |
---|---|
US9049157B1 (en) | 2015-06-02 |
CN102597973B (zh) | 2015-04-22 |
JP2013502020A (ja) | 2013-01-17 |
KR101434065B1 (ko) | 2014-08-25 |
WO2011021187A1 (en) | 2011-02-24 |
KR20120081090A (ko) | 2012-07-18 |
EP2288092A1 (en) | 2011-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102597973A (zh) | 用于改善最长前缀匹配的可扩展性的方法和设备 | |
CN102377664B (zh) | 一种基于tcam的区域匹配装置和方法 | |
CN100450073C (zh) | 在基于硬件的包交换中用于存储器有效的快速vlan查找和插入的方法和设备 | |
US8325721B2 (en) | Method for selecting hash function, method for storing and searching routing table and devices thereof | |
KR100441317B1 (ko) | 데이터 패킷 분류 방법 및 장치 | |
CN100566281C (zh) | 虚拟私用网路由查找的方法和装置 | |
US7986696B1 (en) | Method and apparatus for longest prefix matching | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
CN103051543B (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
CN102609446B (zh) | 一种分布式Bloom过滤系统及其使用方法 | |
CN101621502A (zh) | 存储、查找路由表的方法及装置 | |
EP1434146A2 (en) | Method for increasing storage capacity in a multi-bit mapped trie-based hardware storage engine | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US6917954B2 (en) | Load balancing in IP address lookup | |
US20040044868A1 (en) | Method and apparatus for high-speed longest prefix match of keys in a memory | |
CN110096458B (zh) | 基于神经网络的命名数据网内容存储池数据检索方法 | |
CN100397816C (zh) | 在网络设备中对接收数据包进行分类的方法 | |
JP2006246488A (ja) | ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム | |
CN110109616B (zh) | 基于神经网络的命名数据网内容存储池数据删除方法 | |
CN104484281B (zh) | 数据存储方法、查找方法及装置 | |
GB1052176A (zh) | ||
CN111190545B (zh) | 一种基于软件实现的trie结构进行LPM规则压缩存储的方法 | |
US8219538B2 (en) | Search device and search method | |
CN101582091A (zh) | 一种词库创建方法和系统,及相应的单词查询方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
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: 20150422 Termination date: 20190816 |