一种基于TCAM的路由查找系统及其方法技术方案

技术编号:16310441 阅读:30 留言:0更新日期:2017-09-29 03:19
本发明专利技术涉及高速IP查找技术领城,一种基于TCAM的路由查找系统及其方法,系统包括容量为N个条目的TCAM模块1、容量为M个条目的TCAM模块2、具有N个输入端的编码器,具有M个输入端的优先级编码器,两输入选择器和两输入或门,本发明专利技术提供的基于TCAM的路由查找及更新方法,具有以下优点:(1)处于第一层和第二层的前缀由于不存在重叠和包含的关系,因此可以在其相应的区间内无序随机放置;(2)降低了在更新时的TCAM表的移动次数;(3)由于减小了移动前缀的次数,在一定程度上降低了TCAM的功耗;(4)由于在第一部分TCAM中,仅使用了编码器,提高了搜索的速度。

Route lookup system based on TCAM and method thereof

The present invention relates to a high-speed IP search technology field, a route searching system and method for TCAM based on the capacity of N system includes a TCAM module 1, the capacity is M a TCAM 2 module, with N input to the encoder, with priority encoder M inputs, and two input selector two input or gate, routing lookup and update method based on TCAM provided by the invention has the following advantages: (1) in the prefix of the first layer and the second layer because there is no relationship between the overlap and contain, so it can be in the range of disorder with machine placement; (2) the number of moves in the TCAM table when the update is reduced; (3) because of the reduced number of mobile prefix, to a certain extent, reduce the power consumption of TCAM; (4) in the first part of the TCAM, using only the encoder, improves the search speed.

【技术实现步骤摘要】

本专利技术涉及一种基于TCAM的路由查找系统及其方法,属于高速IP查找技术领城。
技术介绍
近年来,Internet用户激增,导致路由表的激增,这导致了传统的IPv4的A类,B类,C类地址资源的枯竭。一种过渡的办法就是利用无域间路由(CIDRClasslessInter-DomainRouting)。通过采用可变长度的网络ID,代替了固定的8、16、24位固定的网络ID,从而使IP地址利用率提升。但同时对于路由查找算法,也大大增加了复杂度。路由表在20多年间从几千条增加到60多万条。一些经典的算法可能在路由表增长的过程中,会由于搜索时间更长,或者占用更多的存储空间而不适用,因此,如何处理因为路由表的激增而带来的路由查找的问题变得更加迫在眉睫。TCAM(TernaryContent-AddressableMemory),三值按内容可寻址存储器,是一种具有搜索功能的随机存储器。TCAM单元在搜索时会有三种状态,即0、1、X(不关心),也就是允许通配符存在。TCAM不同于软件搜索的特点是,在一个时钟周期内,就可以得出搜索结果,在速度上有着无可比拟的优势。正是由于TCAM的高速以及支持通配符的特性,TCAM在高速的数据库,数据压缩,路由查找,模式识别以及人工智能方面有着出色的表现。而对于TCAM这种从速度上来说,其他软件算法无法比拟的硬件搜索引擎来说,仍然面临挑战。TCAM的功耗能够达到十几瓦到几十瓦,如此高的功耗对于器件的散热造成巨大的挑战,如何减小TCAM功耗成为一个急切而又热门的话题。同时,TCAM的复杂的更新,以及更新延时造成性能的下降。在PLO_OPT【D.ShahandP.Gupta,”FastUpdatesonTernary-CAMsforParcketLookupsandClassification,”IEEEMicro,vol.21,no.1,Jan./Fab.2001】方案中,所有的未使用的TCAMentry被放置在TCAM芯片的中间。假设IP地址的长度为L(对于IPv4来说L等于32),前缀长度大于1/2L的前缀放置在未使用的TCAM块的上方(低地址);前缀长度小于等于1/2L的前缀放置在未使用的TCAM块下方。利用这种方案,在删除或者添加一个前缀时,在最坏情况下,挪动前缀需要1/2L次。也就是说,PLO_OPT方案的时间复杂度是O(L/2)对于IPv4来说,需要移动16次才能够更新一个前缀,平均的移动次数较多,降低了TCAM搜索的性能。PLO_OPT示意图如图1(a)所示。在CAO_OPT【D.ShahandP.Gupta,”FastUpdatesonTernary-CAMsforParcketLookupsandClassification,”IEEEMicro,vol.21,no.1,Jan./Fab.2001】方案中,所有闲置的TCAMentry同PLO_OPT方案一样,都是放置在TCAM芯片的中间。在CAO_OPT方案中,前缀的存储是按照trie这种方式来存储的,也就是说,只需要保证在同一个分支上的前缀的相对顺序,在TCAM搜索的时候就会保证搜索结果正确,而不需要较长的前缀放在低地址,短的前缀放在高地址。对于任何一个前缀来说,从该前缀到未使用的前缀的相对距离不会超过[D/2](D表示该分支的长度,[D/2]表示向上取整)。因此,CAO_OPT方案的时间复杂度是O([D/2])。但在CAO_OPT方案中,为了维持在同一分支的节点的关系,在删除前缀的时候,需要移动更多的前缀。并且由于前缀的增长,D的值一定会增加,这会降低该方案的性能。CAO_OPT示意图如图1(b)所示。
技术实现思路
为了克服现有技术中存在的不足,本专利技术目的是提供一种基于TCAM的路由查找系统及其方法。本专利技术的目的在于减小TCAM更新时前缀移动次数,提高更新性能,并在一定程度上加速TCAM的查找速度。为了实现上述专利技术目的,解决己有技术中存在的问题,本专利技术采取的技术方案是:一种基于TCAM的路由查找系统,包括容量为N个条目的TCAM模块1、容量为M个条目的TCAM模块2、具有N个输入端的编码器,具有M个输入端的优先级编码器,两输入选择器和两输入或门,所述TCAM模块1的N个输出端分别与编码器的N个输入端一一对应相连,所述TCAM模块2的M个输出端分别与优先级编码器的M个输入端一一对应相连,所述编码器的输出端与两输入选择器的“1”端相连,所述优先级编码器的输出端与两输入的选择器的“0”端相连,所述TCAM模块1输出的匹配标志1与两输入选择器的选择端相连,所述TCAM模块1输出的匹配标志1和TCAM模块2输出的匹配标志2分别与两输入或门相连,两输入选择器的输出端作为系统的匹配地址,两输入或门的输出端作为系统的匹配标志,所述N及M均为大于零的正整数;所述TCAM模块1中存放n1条第一层前缀,n1为大于零的正整数,存放的地址范围为[0,n1-1],前缀采用随机存放的方式,每个entry的输出端与entry地址相对应的编码器的输入端连接,TCAM模块1的地址范围[n1,N-1]不存放前缀,每条entry的输出与entry地址相对应的编码器的输入端相连;在TCAM模块2的地址范围为[0,n2-1]的TCAMentry中存放n2条前缀,输出端分别与地址为[0,n2-1]的优先级编码器的输入端相连,前缀随机存放,TCAM模块2的地址范围为[n2,n2+ne1-1]放置ne1条未使用的TCAMentry,组成空闲空间1,ne1为大于零的正整数,每条entry的输出端与该entry地址相对应的优先级编码器的输入相连;在TCAM模块2的地址范围为[n2+ne1,n2+ne1+nO1-1]的TCAMentry中存放nO1条,长度为24~17的其他层的前缀,nO1为大于零的正整数,每条entry的输出端与该entry地址相对应的优先级编码器的输入相连,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址;在TCAM模块2的地址范围为[n2+ne1+nO1,n2+ne1+nO1+ne2-1]的TCAMentry不存放前缀,组成空闲空间2,每条entry的输出与该entry地址相对应的优先级编码器的输入相连;在TCAM模块2的地址范围为[n2+ne1+nO1+ne2,n2+ne1+nO1+ne2+nO2-1]的TCAMentry中存放nO2条长度为16~13的其它层前缀,每条entry的输出与该entry地址相对相应的优先级编码器的输入端连接,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址;在TCAM模块2的地址范围为[n2+ne1+nO1+ne2+nO2,n2+ne1+nO1+ne2+nO2+ne3-1]的TCAMentry中不存放前缀,组成空闲空间3TCAM模块2地址范围为[n2+ne1+nO1+ne2+nO2+ne3,M-1]的TCAMentry中存放M-(n2+ne1+nO1+ne2+nO2+ne3)条前缀长度为12~8的其他层前缀,每条entry的输出端与该entry地址相对相应的优先级编码器的输入连接,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。所述系统的一种基于TC本文档来自技高网
...
一种基于TCAM的路由查找系统及其方法

【技术保护点】
一种基于TCAM的路由查找系统,包括容量为N个条目的TCAM模块1、容量为M个条目的TCAM模块2、具有N个输入端的编码器,具有M个输入端的优先级编码器,两输入选择器和两输入或门,所述TCAM模块1的N个输出端分别与编码器的N个输入端一一对应相连,所述TCAM模块2的M个输出端分别与优先级编码器的M个输入端一一对应相连,所述编码器的输出端与两输入选择器的“1”端相连,所述优先级编码器的输出端与两输入的选择器的“0”端相连,所述TCAM模块1输出的匹配标志1与两输入选择器的选择端相连,所述TCAM模块1输出的匹配标志1和TCAM模块2输出的匹配标志2分别与两输入或门相连,两输入选择器的输出端作为系统的匹配地址,两输入或门的输出端作为系统的匹配标志,所述N及M均为大于零的正整数,其特征在于,所述TCAM模块1中存放n1条第一层前缀,n1为大于零的正整数,存放的地址范围为[0,n1‐1],前缀采用随机存放的方式。TCAM模块1的地址范围[n1,N‐1]不存放前缀。在TCAM模块2的地址范围为[0,n2‐1]的TCAM entry中存放n2条第二层前缀,TCAM模块2的地址范围为[n2,n2+ne1‐1]放置ne1条未使用的TCAM entry,组成空闲空间1,ne1为大于零的正整数。在TCAM模块2的地址范围为[n2+ne1,n2+ne1+nO1‐1]的TCAMentry中存放nO1条,长度为24~17的其他层的前缀,nO1为大于零的正整数,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。在TCAM模块2的地址范围为[n2+ne1+nO1,n2+ne1+nO1+ne2‐1]的TCAM entry不存放前缀,组成空闲空间2,在TCAM模块2的地址范围为[n2+ne1+nO1+ne2,n2+ne1+nO1+ne2+nO2‐1]的TCAM entry中存放nO2条长度为16~13的其它层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。TCAM模块2的地址范围为[n2+ne1+nO1+ne2+nO2,n2+ne1+nO1+ne2+nO2+ne3‐1]的TCAM entry中不存放前缀,组成空闲空间3。TCAM模块2地址范围为[n2+ne1+nO1+ne2+nO2+ne3,M‐1]的TCAM entry中存放M‐(n2+ne1+nO1+ne2+nO2+ne3)条前缀长度为12~8的其他层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。...

【技术特征摘要】
1.一种基于TCAM的路由查找系统,包括容量为N个条目的TCAM模块1、容量为M个条目的TCAM模块2、具有N个输入端的编码器,具有M个输入端的优先级编码器,两输入选择器和两输入或门,所述TCAM模块1的N个输出端分别与编码器的N个输入端一一对应相连,所述TCAM模块2的M个输出端分别与优先级编码器的M个输入端一一对应相连,所述编码器的输出端与两输入选择器的“1”端相连,所述优先级编码器的输出端与两输入的选择器的“0”端相连,所述TCAM模块1输出的匹配标志1与两输入选择器的选择端相连,所述TCAM模块1输出的匹配标志1和TCAM模块2输出的匹配标志2分别与两输入或门相连,两输入选择器的输出端作为系统的匹配地址,两输入或门的输出端作为系统的匹配标志,所述N及M均为大于零的正整数,其特征在于,所述TCAM模块1中存放n1条第一层前缀,n1为大于零的正整数,存放的地址范围为[0,n1‐1],前缀采用随机存放的方式。TCAM模块1的地址范围[n1,N‐1]不存放前缀。在TCAM模块2的地址范围为[0,n2‐1]的TCAMentry中存放n2条第二层前缀,TCAM模块2的地址范围为[n2,n2+ne1‐1]放置ne1条未使用的TCAMentry,组成空闲空间1,ne1为大于零的正整数。在TCAM模块2的地址范围为[n2+ne1,n2+ne1+nO1‐1]的TCAMentry中存放nO1条,长度为24~17的其他层的前缀,nO1为大于零的正整数,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。在TCAM模块2的地址范围为[n2+ne1+nO1,n2+ne1+nO1+ne2‐1]的TCAMentry不存放前缀,组成空闲空间2,在TCAM模块2的地址范围为[n2+ne1+nO1+ne2,n2+ne1+nO1+ne2+nO2‐1]的TCAMentry中存放nO2条长度为16~13的其它层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。TCAM模块2的地址范围为[n2+ne1+nO1+ne2+nO2,n2+ne1+nO1+ne2+nO2+ne3‐1]的TCAMentry中不存放前缀,组成空闲空间3。TCAM模块2地址范围为[n2+ne1+nO1+ne2+nO2+ne3,M‐1]的TCAMentry中存放M‐(n2+ne1+nO1+ne2+nO2+ne3)条前缀长度为12~8的其他层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址。2.根据权利要求1所述系统的一种基于TCAM的路由查找及更新方法,其特征在于,所述查找方法包括以下步骤:步骤401、将待查找的目的IP同时送入TCAM模块1和TCAM模块2中,进行搜索;步骤402、从编码器的输出端得到TCAM模块1的匹配地址,从优先级编码器的输出端得到TCAM模块2的匹配地址,从TCAM模块1的输出端得到匹配标志1,从TCAM模块2输出端得到匹配标志2...

【专利技术属性】
技术研发人员:张建伟马万里苗延楠吴国强滕飞
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1