CN104285213A - 针对三态内容寻址存储器中的簇的记录的动态分配 - Google Patents
针对三态内容寻址存储器中的簇的记录的动态分配 Download PDFInfo
- Publication number
- CN104285213A CN104285213A CN201380025240.0A CN201380025240A CN104285213A CN 104285213 A CN104285213 A CN 104285213A CN 201380025240 A CN201380025240 A CN 201380025240A CN 104285213 A CN104285213 A CN 104285213A
- Authority
- CN
- China
- Prior art keywords
- bunch
- record
- null
- threshold
- type
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- 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]
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)
Abstract
本发明的实施方式是针对路由选择系统中对于最长前缀匹配的TCAM。该TCAM包括多个记录,其一部分被配置成一个或多个地址簇,每个所述簇对应于相应的IP地址前缀长度,并且,其另一部分被配置成自由空间簇,该自由空间簇不对应于任何IP地址前缀长度。
Description
技术领域
本发明针对在三态内容寻址存储器(TCAM)中进行分配记录,特别针对在簇(cluster)中动态地分配该记录。
技术背景
TCAM硬件设备通常在今天的高性能通信系统中被采用,以用于快速路由查找和数据包分类。TCAM搜索将对进入数据包的报头和转发表中的所有项或平行的分类器数据库进行比较。不论TCAM中的记录位置和记录数目怎样,查找结果都带有固定延迟地被返回。
对于IPv4/v6路由查找,为了保证最长的前缀匹配(LPM),该项基于转发表中的地址前缀长度进行排序。将TCAM中排序的项保持在路由查找项的增加和删减是耗费时间的操作,并且,最坏的情况下可能采用N个存储器来进行转换(删除&重写)操作,其中N是转发表中前缀的数目,例如,对于IPv4是32个,对于IPv6是128个。保持像这样排序的TCAM项能够延迟通信量的数据路由转发,并且能够引起系统CPU资源上的长期负荷,该长期负荷可能会引起问题(例如降低系统性能)。该性能降低的风险在扩大路由更新期间尤其高。
将TCAM中的记录分配给固定大小的簇(下文中也叫块)是已知的。然而,选择合适的初始默认的块大小可能比较困难。例如,如果该初始块大小对于特殊的应用来说太过于小,则在该块充满以后,由于移动操作将需要插入每个新项,所以该块中所有新项的增加可能使CPU资源负担过重。而且,为几个不同的市场和应用程序而设计的系统可以具有不同的IP路由分布需求,这可能意味着每个路线前缀长度的合适的“一体适用”默认块大小难以确定。而且,如果该路由表扩展变大,并且与相应的IP地址前缀长度相关的几个块接近并达到容量,则在有扩大路由更新的周期期间(例如,由于网络中的重大变化而使许多路由表增加/删除),产生的额外的处理可能会耗费CPU资源和时间。
因此需要动态分配记录到TCAM中的块中的有效方法。
发明内容
根据本发明的一个方面,提供了用于最长前缀匹配的TCAM。该TCAM包括:多个记录,其一部分被配置成一个或多个地址簇,每个所述簇对应于相应的IP地址前缀长度,并且,其另一部分被配置成自由空间簇,该自由空间簇不对应于任何IP地址前缀长度。
根据本发明的另一个方面,提供了一种为TCAM中的簇动态地分配记录的方法,该方法包括步骤:为第一类型的多个簇中的每个簇分配相应数目的记录;为第二类型的簇分配一数目的空记录;对于所述第一类型的每个簇,监控非空记录的相应数目;对于所述第一类型的每个簇,将非空记录的相应数目与相应的第一阈值进行比较;以及在给定簇的非空记录的相应数目大于该簇的所述相应的第一阈值的情况下,增加分配给该簇的记录的相应数目。
根据本发明的又一方面,提供了一种配置成为TCAM中的簇动态地分配记录的装置,该装置包括:TCAM;存储器;以及与所述TCAM和所述存储器通信的处理器。所述存储器已经用软件程序配置,该软件程序包括当所述处理器执行时使得所述装置能够操作用于:为第一类型的多个簇中的每个簇分配相应数目的记录;为第二类型的簇分配一数目的空记录;对于所述第一类型的每个簇,监控非空记录的相应数目;对于所述第一类型的每个簇,将非空记录的相应数目与相应的第一阈值进行比较;以及在给定簇的非空记录的相应数目大于该簇的所述相应的第一阈值的情况下,增加分配给该簇的记录的相应数目。
此外或作为选择,在本发明的一些实施方式中,为第二类型的簇分配一数目的空记录包括将所述第二类型的所述簇与自由空间簇相关联,其中,分配给其中的记录保持为空。
此外或作为选择,在本发明的一些实施方式中,比较包括将非空记录的相应数目与相应的第一阈值进行比较,该相应的第一阈值是分配给所述第一类型的所述簇的记录的相应数目的相应的第一百分比。并且,在一些实施方式中,比较还包括根据与所述第一类型的所述簇相关联的所述相应的互联网地址前缀长度来确定所述相应的第一百分比。
此外或作为选择,在本发明的一些实施方式中,增加包括:将分配给所述第二类型的所述簇的记录的数目缩减记录的第一数目;以及将分配给所述第一类型的所述给定簇的记录的相应数目增加记录的所述第一数目。
此外或作为选择,在本发明的一些实施方式还包括:对分配给所述第二类型的所述簇的空记录的数目进行监控;将空记录的数目与第二阈值进行比较;以及如果空记录的数目小于所述第二阈值,则增加分配给所述第二类型的所述簇的空记录的数目。而且,在本发明的一些实施方式中,增加分配给所述第二类型的所述簇的空记录的数目包括:对于所述第一类型的一个或多个簇,将非空记录的相应数目与相应的第三阈值进行比较;如果特定簇的非空记录的相应数目小于该簇的所述相应的第三阈值,则将分配给所述第一类型的该簇的记录的相应数目减少记录的第二数目;以及将分配给所述第二类型的所述簇的空记录的数目增加记录的所述第二数目。而且,在本发明的一些实施方式还包括:重复以下步骤:对分配给所述第二类型的所述簇的空记录的数目进行监控;将空记录的数目与第二阈值进行比较;以及增加分配给所述第二类型的所述簇的空记录的数目,直到分配给所述第二类型的所述簇的空记录的数目大于或等于所述第二阈值。
有利地,本发明的一些实施方式提供了对于高容量等级IP路由网络产品的增强的性能。
有利地,本发明的一些实施方式改善了每个路线前缀长度合适的“一体适用”默认块大小难以确认的问题,其中,它们能够基于特殊要求使得TCAM簇按需扩展/收缩。在一些情况下,当了解到新的路由时,记录可能能够插入到TCAM中而没有任何移动操作。
有利地,本发明的一些实施方式可以通过执行后台处理中的一些或所有前述方法步骤来利用闲置的中心处理单元(CPU)资源,这与试图保持TCAM项更新并排序相反,那时新的路由项通过采用该实施方式的路由选择系统来学到。
有利地,当在路由选择系统中采用时,本发明的一些实施方式可以减少总平均路由加法时间,因此空出了可能在扩大路由更新期间紧急需要的处理资源,例如,由于重要的网络改变。
附图说明
本发明的前述和其他目标、特点和优点将由于接下来如附图中所示出的优选实施方式的更详细的说明而明显,其中:
图1描述了根据本发明的实施方式的动态分配记录到TCAM中的簇的方法;
图2描述了由图1中描述的方法的实施而形成的到TCAM中的簇的记录的分配;
图3描述了根据本发明的第一实施方式的在图2的TCAM上执行的动态簇扩展操作;
图4描述了根据本发明的第一实施方式的在图2的TCAM上执行的动态簇缩减操作;以及
图5描述了根据本发明的第二实施方式的执行图1中描述的方法的装置。
附图中相同的特征由相同的参考字符表示。
具体实施方式
本发明的实施方式能够用于TCAM IPv4/v6LPM动态簇调整大小软件过程中。像这样,基于前缀长度的IPv4/v6记录簇被建立为穿过TCAM存储器空间的部分而划分。该簇本身的默认大小基于一些样本路由器部署的转发信息数据库中的典型路由分布来定义。该默认大小定义减少但不消除簇变满的可能性,也就是,没有剩余空间来增加/插入新记录。簇以该簇末端的空记录的形式维持自由空间。由于在前缀长度簇中没有顺序依赖性,所以只要簇中有自由空间,新的记录项就能够简单地并马上规划,而没有任何移动操作,因此为该记录提供了快速插入时间。
动态簇调整大小过程在CPU空闲周期期间可以被执行为后台软件过程,其中,在通信网络中部署的路由选择系统的稳态操作期间能够有相当大数目的在CPU空闲周期。空闲周期期间重新捕捉一些该有效的CPU时间,并将其用于TCAM LPM排序,并且动态调整大小操作使CPU资源得到有效利用。在系统启动和初始配置期间,以及大规模的网络事件(例如,为了通信服务的高有效性,扩大路由更新以另一路由运送通信量流)期间典型地发生的有效的CPU空闲时间除外。
由于TCAM中的部署及其相关的路由分布典型地是不同的,所以预测哪个簇可能变满以及要求额外的空间比较困难。通过在TCAM地址空间的末端保留这里叫作“自由空间”簇(自由簇和空的簇),有余地扩展任何接近于其默认簇大小限制的簇。自由空间簇的大小例如是总TCAM容量的10%。相反地,相比起来太大并且因此可能无效率地使用TCAM空间的簇能够通过将空的簇空间的一部分(也就是,空的或未使用的记录)移动到自由空间簇来进行缩减;从而恢复该空间用于扩展其它所需的簇。
作为动态簇调整大小过程的一部分,后台软件过程可能周期性地运行以删除接近容量的簇,并调用动态地增加所需处的大小并减少很大程度上未充分利用的簇的大小的过程。该过程将在后台删除变满的簇(例如,大于它们分配的记录大小的75%)并发起动态地增加这些簇的大小以确保它们具有足够的自由空间来增加新的项的过程,例如,当必须作出新的路由更新时。
除了当路由表被完全填充时以外,了解/计算新的路由的过程经常给软件机会以重新制定TCAM用于在路由被下载之前快速地插入。如果一批路由更新突然到达,从而在空闲CPU周期有效之前就填满簇,那么该软件过程将通过不久之后为簇增加空间来补救充满的簇的情况,以使得将来到该簇的增加将不需要移动项。该过程要求余地来自于自由空间簇,并开始向下移动所有的记录,直到其到达需要增加大小的簇。最坏的情况是扩展/32或/128(分别为IPv4或IPv6)簇将导致最大数目的移动操作。然而,扩大更新周期的外围典型地有多个有效的自由CPU周期。如果有必要,重新制定TCAM的工作能够被分到较小的操作中利用这些,否则它们就要成为空闲CPU处理周期。
动态簇调整大小过程的另一功能是监控自由空间簇中的空记录(自由空间)的数目,以确保其大小保持在总TCAM大小的某个预选的百分比(例如,10%)。因此,只要已经发生了簇扩展操作,将调用一个或多个收缩操作来恢复未使用过的簇空间,并将其带回到用于扩展所需的其他簇的自由空间簇。
这些簇缩减操作的示例标准包括:簇的未使用的空间>512个记录,已利用的,或簇已经参与比较其他簇(除了自由空间簇)来说最小数目的先前缩减操作中的簇<25%。后面的标准目的是提供比较为太大的所有簇的相等的缩减。
在一些TCAM应用中,簇扩展/缩减操作可能仅发生几次,尤其是当特别部署的路由分布随着时间的推移都不可能彻底改变的时候。由于动态簇调整大小过程在后台运作以调整到用户路由表分布的TCAM记录分配,所以在临界网络更新周期的期间,耗费时间的TCAM项移动操作发生的可能性减少。并且,该动态簇调整大小过程应该通过在路由器的整个操作中,确保可能的最快(也就是,没有记录移动)更新速度到数据路由中,并减少总平均路由记录插入时间到TCAM设备中,来帮助提升TCAM性能。
该动态簇调整大小过程的实施可以包括两个单独的功能,第一功能用于扩展或增加TCAM中簇的大小,并且第二功能用于缩减或减少TCAM中簇的大小。第一功能这里叫作“将IP簇向上扩展到相邻的自由空间”,而第二功能这里叫作“将IP簇向下扩展到相邻的自由空间”。
以下示例示出了该功能是如何使用的。假设动态簇调整大小过程要求对于带有前缀长度=N的簇的总数X个记录的动态簇扩展操作。该过程将执行以下步骤:
1)在自由空间簇TCAM地址空间的顶端(也就是,最高地址)处向下扩展/0前缀簇X个记录到自由空间簇中。
2)接下来,在TCAM地址空间中的簇1、2…N上每次相继移动较高的一个簇(在前缀长度上一个较高的),并且用将IP簇向下扩展到相邻的自由空间将该簇向下扩展X个记录,其中向下扩展簇包括在给定簇的顶端向下滚动项,从而在接下来较高的簇(在前缀长度上一个较高的)中创造自由空间。为了减少移动的项的数目,应该注意,项没有向下移动,甚至移动一个记录也要求将所有项都移动一个位置,而不是像需要影响产生所需数目的自由空间的许多项一样,直接从给定簇的顶端(最高地址)处的它们的位置移动到该簇的底端(最低地址)中与该项相邻的位置。由于该地址前缀未在簇内部排序,所以能够采用这种方法来滚动项,以在必要时移动项,而不是仅仅移动项,这将是效率低下的。
最后的结果是自由空间的X个记录现在转移到了簇N,同时维持LPM组织穿过TCAM簇。
接下来的示例进一步说明了该功能是如何使用的。假设动态簇调整大小过程要求对于带有前缀长度=N的簇的总数X个记录的动态簇缩减操作。该过程将执行以下步骤:
1)在簇=N处开始,并使用将IP簇向上扩展到相邻的自由空间将该簇向上扩展X个记录。
2)接下来,在TCAM地址空间中每次相继向下移动一个簇(也就是,减少前缀长度),并且用将IP簇向上扩展到相邻的自由空间将该簇向上扩展X个记录,直到达到/0簇,其中,将簇向上扩展包括将项从簇的底端(也就是,最低地址)滚动到簇的顶端(也就是,最高地址),该簇中的自由空间在当前簇的下面。
3)最后,通过将自由空间簇向上扩展到/0簇来将空间X的块转移到该自由空间簇中。
最后的结果是来自簇N的自由空间的X个记录已经转移回该自由空间簇,其能够在将来用于增加所需的其他簇的大小。
图1描述了根据本发明的实施方式的动态分配记录到TCAM中的簇的方法100。通常,TCAM被分割成多个地址簇和自由簇,每一个地址簇对应于IP地址前缀长度。该方法通过为TCAM中的地址簇(1到N)中的每个簇分配102相应数目的记录开始。方法100的执行继续为自由簇分配104一数目的记录,其中,该自由簇并不是地址簇之一。该前两个分配步骤102、104可以以任意的顺序来执行以产生前述的分割。典型地,分配给每个地址簇的记录的数目将随着TCAM在其中使用的应用而变化。分配给自由簇的记录的数目典型地为TCAM上的记录中容量的10%,但是该总数还能够随着TCAM有意的使用而变化。TCAM的示例性的配置将稍后参考图2更加详细地描述。
方法100通过选择106地址簇(例如,X,X处于范围1到N中)来开始一系列将被重复执行以完成记录的动态分配(实际上是重新分配和调整)到TCAM中的簇的步骤来继续。该方法通过确定108所选择的地址簇X中非空记录的数目来继续。非空记录是其中具有项(例如IP地址前缀)的一个记录。方法100继续进行,确定110是否所选的地址簇X中非空记录的数目是否大于所选的地址簇X的阈值上限,并且如果是这样的话,那么增加110分配给所选的地址簇X的记录的数目。示例性的阈值上限是分配给所选的地址簇X的记录的75%。方法100通过确定112自由簇中空记录的数目来继续。空记录是其中没有任何项的记录。方法100继续进行,确定114自由簇中的空记录的数目是否小于自由阈值,并且如果是这样的话,将带有超额分配的分配给地址簇的记录的数目减少一数目(Y),并将到自由簇的记录的分配增加114相同的数目Y。示例性的自由阈值是TCAM中记录的10%,也就是,TCAM完整大小的10%。示例性的数目Y个记录是512个记录,然而,该数目可以随着TCAM将在其中采用的有意的应用而变化。通过为X设置新的值并重复从确定108所选择的地址簇X中的非空记录的数目开始的前述步骤来选择116另一个地址簇,方法100通过该步骤来继续。
图2描述了由图1中描述的方法的实施而形成的到TCAM 200中的簇的记录的分配。该TCAM地址簇通过将前缀长度按降序排列来排序。下文中,地址簇的命名跟随/#的模式,其中,#表示将要存储在该地址簇中的地址前缀中的比特数目。对于IPv4,最大的前缀长度是32比特,并且该长度的前缀将储存在/32地址簇202中,其具有分配给其中的4K(4096)个记录。相似的,用于存储31比特IP地址前缀的/31地址簇204也具有分配给其中的4K个记录。/30地址簇也具有分配给其中的4K个记录,并且更详细地示出为包括:TCAM搜索关键字(记录M)206、TCAM搜索关键字(记录M+1)208、TCAM搜索关键字(记录M+2)210、TCAM空记录(记录M+3)212、自由空间(空记录)214和TCAM空记录(记录M+4K)216。该TCAM 200还包括:每簇具有4K个记录的/29到/25地址簇218、具有8K(8192)个记录的/24地址簇220、具有4K个记录的/23地址簇222、具有4K个记录的/22地址簇224、每簇任意地方具有1K到4K个记录的/21到/17地址簇226、具有4K个记录的/16地址簇228、具有256个记录的/15地址簇230、具有分配给每簇4到256个的范围内的记录的/14到/2地址簇232、具有4个记录的/1地址簇234以及具有256个记录的/0地址簇236。该TCAM 200还包括自由空间簇238,该自由空间簇238具有分配给其中的全部TCAM记录的10%,并且其用于需要时将地址簇202到236动态扩展。
图3描述了根据本发明的第一实施方式的在图2的TCAM 200的/24地址簇220上执行的动态簇扩展操作。该扩展操作300将增加500个空记录到/24地址簇220;从而增加了分配给该簇的记录的总数目。/24地址簇220更详细地示出为包括已使用(或非空)记录220a和空记录220b,其后者有100个记录。同样地,/1地址簇234更详细地示出为包括已使用记录234a和空记录234b,其后者有10个记录。相似地,/0地址簇236更详细地示出为包括已使用记录236a和空记录236b,其后者有10个记录。自由空间簇238具有分配给其中的全部TCAM记录的10%,这里示出的为转发信息库(FIB)的10%。
动态簇扩展操作300的第一个步骤是将分配给/0地址簇236的记录的数目增加302500个空记录;从而使得该簇中空记录236b的总数目为510。这500个记录从自由空间簇238的顶端(最高地址)处的自由空间簇238获得。该/0地址簇236中的非空(或已使用/占用)记录236a从/0地址簇236的顶端向下滚动304(以之前结合“将IP簇向下扩展到相邻的自由空间”功能的解释所描述的方式);从而将/1地址簇234中的空记录234b的数目增加306到510个记录。该/1地址簇234中的非空记录234a从/1地址簇236的顶端向下滚动308(以/0地址簇236中非空记录236a相同的方式)。与/0和/1地址簇236、234上所执行的相似的向下滚动操作312在/2到/23簇232-222上执行;从而使得将500个空记录增加到/24地址簇220的空记录220b。最后的结果是/24地址簇220的空记录220b从100个记录增加到600个记录,其表示分配给/24地址簇220的500个记录的增加。
图4描述了根据本发明的第一实施方式的在图2的TCAM 200的/16地址簇228上执行的动态簇缩减操作400。该缩减操作400将从/16地址簇228移除128个空记录;从而减少了分配给该簇的记录的总数目。/16地址簇228更详细地示出为包括已使用的记录228a和空记录228b,其后者有3128个记录。同样地,/1地址簇234更详细地示出为包括已使用的记录234a和空记录234b,其后者有10个记录。相似地,/0地址簇236更详细地示出为包括已使用的记录236a和空记录236b,其后者有10个记录。自由空间簇238具有略少于分配给其中的全部TCAM记录的10%,这里示出为<转发信息库(FIB)的10%。
动态簇缩减操作400的第一个步骤是将分配给/16地址簇228的记录的数目减少402128个空记录;从而使得该簇中空记录228b的总数目为3000。这通过从/15到/2地址簇230-232一次一个簇将非空记录相继向上滚动128个TCAM记录位置(以之前结合“将IP簇向上扩展到相邻的自由空间”功能的解释所描述的方式);从而将/1地址簇234中的空记录234b的数目增加404到138个记录。该/0地址簇236中的非空记录236a从/0地址簇236的顶端向上滚动408(以之前结合“将IP簇向上扩展到相邻的自由空间”功能的解释所描述的方式);从而使得将/1地址簇234中的空记录234b的空记录的数目减少406到10个记录。该/0地址簇236中的空记录236b现在是138个记录。最后,分配给自由空间簇238的记录的数目增加了从/0地址簇236的底端(最低地址)获得的128个空记录;从而使得自由空间簇238具有分配给其中的大约等于TCAM 200中总数目记录的10%的记录的数目。
图5描述了根据本发明的第二实施方式的执行图1中描述的方法的装置500。例如,该装置500可以是路由器。该装置包括处理器502、与处理器502通信的存储器504、与处理器502通信的输入/输出(I/O)端口506以及也与处理器502通信的TCAM 508。该存储器包括具有指令的程序510,当由该处理器运行该程序时,使得方法200和之前描述的关于动态簇扩展和缩减操作300和400在TCAM 508上执行。与TCAM 508结合的处理器502使得装置500通过I/O端口506通信的数据包通信量512上影响LPM操作。
可以对本发明上述实施方式做出许多修改、变型和改编而不偏离权利要求书中定义的本发明的范围。
Claims (15)
1.一种为三态内容寻址存储器(TCAM)中的簇动态地分配记录的方法,该方法包括:
为第一类型的多个簇中的每个簇分配相应数目的记录;
为第二类型的簇分配一数目的空记录;
对于所述第一类型的每个簇,监控非空记录的相应数目;
对于所述第一类型的每个簇,将非空记录的相应数目与相应的第一阈值进行比较;以及
如果给定簇的非空记录的相应数目大于该簇的所述相应的第一阈值,则增加分配给该簇的记录的相应数目。
2.根据权利要求1所述的方法,其中,为第一类型的多个簇中的每个簇分配相应数目的记录包括将每个所述簇与相应的互联网地址前缀长度相关联。
3.根据权利要求1和2中任一权利要求所述的方法,其中,为第二类型的簇分配一数目的空记录包括将所述第二类型的所述簇与自由空间簇相关联,其中,分配给其中的记录保持为空。
4.根据权利要求2所述的方法,其中,比较包括将非空记录的相应数目与相应的第一阈值进行比较,该相应的第一阈值是分配给所述第一类型的簇的记录的相应数目的相应的第一百分比。
5.根据权利要求4所述的方法,其中,比较还包括根据与所述第一类型的簇相关联的相应的互联网地址前缀长度来确定所述相应的第一百分比。
6.根据权利要求1到5中任一权利要求所述的方法,其中,增加包括:
将分配给所述第二类型的簇的记录的数目缩减记录的第一数目;以及
将分配给所述第一类型的给定簇的记录的相应数目增加记录的所述第一数目。
7.根据权利要求6所述的方法,该方法还包括:
对分配给所述第二类型的簇的空记录的数目进行监控;
将空记录的数目与第二阈值进行比较;以及
在空记录的数目小于所述第二阈值的情况下,增加分配给所述第二类型的所述簇的空记录的数目。
8.根据权利要求7所述的方法,其中增加分配给所述第二类型的所述簇的空记录的数目包括:
对于所述第一类型的一个或多个簇,将非空记录的相应数目与相应的第三阈值进行比较;
如果特定簇的非空记录的相应数目小于该簇的相应的第三阈值,则将分配给所述第一类型的该簇的记录的相应数目减少记录的第二数目;以及
将分配给所述第二类型的簇的空记录的数目增加记录的所述第二数目。
9.根据权利要求8所述的方法,该方法还包括:
重复以下步骤:
对分配给所述第二类型的簇的空记录的数目进行监控;
将空记录的数目与第二阈值进行比较;以及
增加分配给所述第二类型的所述簇的空记录的数目,直到分配给所述第二类型的簇的空记录的数目大于或等于所述第二阈值。
10.一种被配置成为三态内容寻址存储器(TCAM)中的簇动态地分配记录的装置,该装置包括:
TCAM;
存储器;
与所述TCAM和所述存储器通信的处理器,
其中,所述存储器已经用软件程序配置,该软件程序包括当被所述处理器执行时使得所述装置能够操作用于:
为第一类型的多个簇中的每个簇分配相应数目的记录;
为第二类型的簇分配一数目的空记录;
对于所述第一类型的每个簇,监控非空记录的相应数目;
对于所述第一类型的每个簇,将非空记录的相应数目与相应的第一阈值进行比较;以及
如果给定簇的非空记录的相应数目大于该簇的所述相应的第一阈值,则增加分配给该簇的记录的相应数目。
11.根据权利要求10所述的装置,其中该装置还能够操作使得为第一类型的多个簇中的每个簇分配相应数目的记录包括将每个所述簇与相应的互联网地址前缀长度相关联,其中所述装置还能够操作用于将非空记录的相应数目与相应的第一阈值进行比较,该相应的第一阈值是分配给所述第一类型的簇的记录的相应数目的相应的第一百分比,并且其中所述装置还能够操作用于根据与所述第一类型的所述簇相关联的相应的互联网地址前缀长度来确定所述相应的第一百分比。
12.根据权利要求10所述的装置,其中该装置还能够操作使得为第二类型的簇分配一数目的空记录包括将所述第二类型的簇与自由簇相关联,其中,分配给其中的记录保持为空。
13.根据权利要求10到12中任一权利要求所述的装置,其中,该装置还能够操作用于将分配给所述第二类型的簇的记录的数目缩减记录的第一数目;以及将分配给所述第一类型的给定簇的记录的相应数目增加记录的所述第一数目。
14.根据权利要求13所述的装置,其中该装置还能够操作用于:
对分配给所述第二类型的簇的空记录的数目进行监控;将空记录的数目与第二阈值进行比较;以及如果空记录的数目小于所述第二阈值,则增加分配给所述第二类型的簇的空记录的数目。
15.根据权利要求14所述的装置,其中该装置还能够操作用于:
对于所述第一类型的一个或多个簇,将非空记录的相应数目与相应的第三阈值进行比较;
如果特定簇的非空记录的相应数目小于该簇的相应的第三阈值,则将分配给所述第一类型的该簇的记录的相应数目减少记录的第二数目;以及
将分配给所述第二类型的簇的空记录的数目增加记录的所述第二数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/470,833 | 2012-05-14 | ||
US13/470,833 US8924640B2 (en) | 2012-05-14 | 2012-05-14 | Dynamic allocation of records to clusters in a ternary content addressable memory |
PCT/CA2013/050340 WO2013170373A1 (en) | 2012-05-14 | 2013-05-02 | Dynamic allocation of records to clusters in a ternary content addressable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104285213A true CN104285213A (zh) | 2015-01-14 |
Family
ID=49549566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380025240.0A Pending CN104285213A (zh) | 2012-05-14 | 2013-05-02 | 针对三态内容寻址存储器中的簇的记录的动态分配 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8924640B2 (zh) |
EP (1) | EP2850526A4 (zh) |
JP (1) | JP5948494B2 (zh) |
KR (1) | KR101611119B1 (zh) |
CN (1) | CN104285213A (zh) |
WO (1) | WO2013170373A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115149639A (zh) * | 2022-06-17 | 2022-10-04 | 江苏未来智慧信息科技有限公司 | 光伏电厂智能控制系统与智能控制方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824756B2 (en) * | 2013-08-13 | 2017-11-21 | Globalfoundries Inc. | Mapping a lookup table to prefabricated TCAMS |
CN107896194B (zh) * | 2018-01-02 | 2021-04-09 | 盛科网络(苏州)有限公司 | 一种路由查找方法、装置和存储介质 |
CN112087389B (zh) * | 2019-06-14 | 2023-01-24 | 深圳市中兴微电子技术有限公司 | 一种报文匹配查表方法、系统、存储介质和终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516383B1 (en) * | 2001-05-30 | 2003-02-04 | Cisco Technology, Inc. | Techniques for efficient location of free entries for TCAM inserts |
CN102185756A (zh) * | 2011-03-15 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | Tcam共享存储方法及装置 |
CN102291296A (zh) * | 2011-08-04 | 2011-12-21 | 中兴通讯股份有限公司 | 一种路由表的更新方法及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812882A (en) * | 1994-10-18 | 1998-09-22 | Lanier Worldwide, Inc. | Digital dictation system having a central station that includes component cards for interfacing to dictation stations and transcription stations and for processing and storing digitized dictation segments |
JP3699374B2 (ja) * | 2001-08-15 | 2005-09-28 | 日本電信電話株式会社 | 経路表更新方法およびプログラムおよび記録媒体 |
US6532516B1 (en) * | 2001-09-27 | 2003-03-11 | Coriolis Networks, Inc. | Technique for updating a content addressable memory |
KR100745693B1 (ko) * | 2006-09-29 | 2007-08-03 | 한국전자통신연구원 | Tcam 테이블 관리 방법 |
US7706375B2 (en) | 2007-02-06 | 2010-04-27 | Alcatel Lucent | System and method of fast adaptive TCAM sorting for IP longest prefix matching |
JP5134915B2 (ja) * | 2007-11-02 | 2013-01-30 | 株式会社日立製作所 | 記憶領域の構成最適化方法、計算機システム及び管理計算機 |
US8626618B2 (en) * | 2007-11-14 | 2014-01-07 | Panjiva, Inc. | Using non-public shipper records to facilitate rating an entity based on public records of supply transactions |
US9086913B2 (en) * | 2008-12-31 | 2015-07-21 | Intel Corporation | Processor extensions for execution of secure embedded containers |
US7974190B2 (en) * | 2009-02-12 | 2011-07-05 | Micrel, Inc. | Dynamic queue memory allocation with flow control |
US20100274947A1 (en) * | 2009-04-27 | 2010-10-28 | Hitachi, Ltd. | Memory management method, memory management program, and memory management device |
JP5278157B2 (ja) * | 2009-05-15 | 2013-09-04 | 富士通株式会社 | 伝送装置および伝送方法 |
JP5467558B2 (ja) * | 2009-09-09 | 2014-04-09 | アラクサラネットワークス株式会社 | ネットワーク中継装置及びメモリ制御方法 |
US8539184B2 (en) * | 2009-09-23 | 2013-09-17 | International Business Machines Corporation | On demand storage group management with recapture |
US8307153B2 (en) * | 2010-05-05 | 2012-11-06 | Juniper Networks, Inc. | Power efficient and rule movement optimized TCAM management |
-
2012
- 2012-05-14 US US13/470,833 patent/US8924640B2/en active Active
-
2013
- 2013-05-02 JP JP2015511873A patent/JP5948494B2/ja not_active Expired - Fee Related
- 2013-05-02 WO PCT/CA2013/050340 patent/WO2013170373A1/en active Application Filing
- 2013-05-02 EP EP13790513.9A patent/EP2850526A4/en not_active Withdrawn
- 2013-05-02 CN CN201380025240.0A patent/CN104285213A/zh active Pending
- 2013-05-02 KR KR1020147031793A patent/KR101611119B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516383B1 (en) * | 2001-05-30 | 2003-02-04 | Cisco Technology, Inc. | Techniques for efficient location of free entries for TCAM inserts |
CN102185756A (zh) * | 2011-03-15 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | Tcam共享存储方法及装置 |
CN102291296A (zh) * | 2011-08-04 | 2011-12-21 | 中兴通讯股份有限公司 | 一种路由表的更新方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115149639A (zh) * | 2022-06-17 | 2022-10-04 | 江苏未来智慧信息科技有限公司 | 光伏电厂智能控制系统与智能控制方法 |
CN115149639B (zh) * | 2022-06-17 | 2024-07-30 | 江苏未来智慧信息科技有限公司 | 光伏电厂智能控制系统与智能控制方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013170373A1 (en) | 2013-11-21 |
US8924640B2 (en) | 2014-12-30 |
EP2850526A4 (en) | 2016-01-20 |
KR20140144303A (ko) | 2014-12-18 |
JP2015519660A (ja) | 2015-07-09 |
KR101611119B1 (ko) | 2016-04-08 |
US20130304983A1 (en) | 2013-11-14 |
JP5948494B2 (ja) | 2016-07-06 |
EP2850526A1 (en) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100745693B1 (ko) | Tcam 테이블 관리 방법 | |
US7606236B2 (en) | Forwarding information base lookup method | |
US7289979B2 (en) | Parallel asymmetric binary search on lengths | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
US6757802B2 (en) | Method for memory heap and buddy system management for service aware networks | |
US6434144B1 (en) | Multi-level table lookup | |
CN1794737B (zh) | 用于为ip网络设备动态地分配可变长度前缀的设备 | |
CN111131084B (zh) | 一种QoS感知的OpenFlow流表查找方法 | |
CN101005461B (zh) | 一种IPv6路由表查找、转发的方法 | |
CN104285213A (zh) | 针对三态内容寻址存储器中的簇的记录的动态分配 | |
CN102291296A (zh) | 一种路由表的更新方法及系统 | |
EP1063827A2 (en) | Method for address lookup | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US11570105B2 (en) | Dynamic route profile storage in a hardware trie routing table | |
CN110096225A (zh) | 针对网络设备中的分组处理指令表的存储器的动态分配 | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
CN107040393A (zh) | 一种路由管理方法和设备 | |
CN103778222A (zh) | 一种分布式文件系统存储文件的方法及系统 | |
CN110191057B (zh) | 路由查找方法及路由设备 | |
CN101692653B (zh) | 路由表的管理方法和装置 | |
CN109981464A (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
CN106789450B (zh) | 一种报文的特征统计方法及装置 | |
US20080123663A1 (en) | Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device | |
CN111819552B (zh) | 访问控制列表的管理方法及装置 | |
US20050102428A1 (en) | Memory management for ternary CAMs and the like |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150114 |