一种访问三态内容寻址存储器的方法及装置的制作方法

文档序号:7866267阅读:173来源:国知局
专利名称:一种访问三态内容寻址存储器的方法及装置的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种访问三态内容寻址存储器(TernaryContent Addressable Memory, TCAM)的方法及装置。
背景技术
随着网络带宽的不断增加,网络应用过程中对路由器转发速度的要求也越来越高,而查找技术作为网络设备处理和转发数据包过程的关键技术,其实现包括软件和硬件两种方式,其中,硬件方式由于具有较高的查找速度而被广泛应用,这里, 硬件设备TCAM因为具有能够返回被查找内容的存放地址的能力而被广泛应用;类似一般的存储器,TCAM内部由多个存储单元构成,存储单元通常被称为表项(entry);表项的物理宽度即存储单元的容量,可以被灵活设置,一般为36bit的倍数。通常TCAM可支持的表项物理宽度为72bit、144bit、288bit和576bit,查询关键字(KEY)的长度与表项宽度一样。TCAM的每一条表项由两部分组成,一部分称为数据单元,另一部分称为掩码单元,两个单元的宽度相同,都为表项宽度。数据单元和掩码单元的每一个存储位一一对应,当掩码单元中的某个存储位设置成MASK,则可以认为该存储位对应数据单元中的数据不起作用,即该数据单元的数据可以为“X”,代表don’t care。而TCAM的这个第三种状态特征(MASK)使得TCAM既能进行精确匹配查找,又能进行模糊匹配查找。TCAM的查找过程是这样查询方送来查找关键字(KEY),TCAM将KEY与内部存储的所有表项同时进行匹配比较,并返回匹配表项内容所在的地址(INDEX)返回给查询方。利用TCAM取代软件进行查找,性能可显著提升。然而,目前标准的TCAM芯片接口有QDR接口和72bit的标准接口,而主流的CPU,如OCTEON多核、Intel x86等CPU均不具备TCAM的接口,无法实现对TCAM的访问。带有缩短读潜伏时间的动态随机存取器(Reduce latency dynamic RandomAccess Memory, RLDRAM)控制器的中央处理器(CPU)能够实现TCAM的访问,具体参照图1,CPU通过RLDRAM控制器接口的地址线(ADDR)携带命令,RLDRAM控制器接口的数据通道(DQ)传送KEY ;FPGA接收从RLDRAM控制器接口传送过来的命令和数据,再发送给TCAM进行查找匹配并返回结果。但随着RLDRAM技术应用越来越少,带有RLDRAM控制器的CPU也越来越少,并且该方法中需使用地址线携带命令,会增加总线负荷,特别当TCAM和内存同时挂载于内存总线时,容易导致数据传输的不稳定,在使用领域上有较大的限制。

发明内容
有鉴于此,本发明的主要目的在于提供一种访问TCAM的方法及装置,能够实现处理器对TCAM的访问,扩大TCAM的应用范围。为达到上述目的,本发明的技术方案是这样实现的一种访问TCAM的方法,该方法包括处理器通过自身的双倍速率同步动态随机存储器(DDR)控制器向接口转换单元发起查询操作;所述接口转换单元接收处理器发来的查询数据并解析,将解析得到的数据发送给TCAM ;TCAM根据接收到的数据进行查询并返回查询结果。其中,所述处理器通过自身的DDR控制器向接口转换单元发起查询操作为所述处理器通过自身的DDR控制器向所述接口转换单元写入查询命令、关键字及其相关信息;其中,所述DDR控制器包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器
一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种。
其中,所述接口转换单元将解析得到的数据发送给TCAM为所述接口转换单元将解析得到的查询命令通过命令总线发送给TCAM,将关键字通过数据总线发送给TCAM。其中,所述TCAM返回查询结果为TCAM通过结果总线将查询结果返回给接口转换单元,所述接口转换单元将查询结果进行缓存。进一步地,所述方法还包括所述处理器通过自身的DDR控制器向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换单元检测到所述读操作后,将与所述关键字ID对应的查询结果返回给处理器。一种访问TCAM的装置,该装置包括处理器单元、接口转换单元;其中,所述处理器单元,用于通过自身的DDR控制器子单元向接口转换单元发起查询操作;所述接口转换单元,用于接收处理器单元发来的查询数据并解析,将解析得到的数据发送给TCAM,并接收所述TCAM返回的查询结果。其中,所述处理器单元,具体用于通过自身的DDR控制器子单元向所述接口转换单元写入查询命令、关键字及其相关信息;其中,所述DDR控制器子单元包括DDRl控制器子单元、DDR2控制器子单元、DDR3控制器子单元、DDR4控制器子单元一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种。其中,所述接口转换单元,具体用于将解析得到的查询命令通过命令总线发送给TCAM,将关键字通过数据总线发送给TCAM。其中,所述接口转换单元,具体用于接收所述TCAM通过结果总线返回的查询结果并进行缓存。进一步地,所述处理器单元,还用于通过自身的DDR控制器子单元向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换单元,还用于检测到所述读操作后,将与所述关键字ID对应的查询结果返回给所述处理器单元。本发明中处理器通过自身的DDR控制器与接口转换单元进行通信,实现对TCAM的访问,并且处理器还可以通过对发送给接口转换单元的关键字ID、关键字个数、关键字长度等的控制,实现多关键字同时发送,多查询结果同时返回,并且在不同线程发起查询时,根据关键字ID,保证接口转换单元返回正确的查询结果,适用于不同接口的TCAM,扩大了TCAM的应用范围,并且能够提高查询速度,进而满足路由器转发的速度要求。


图1为带有RLDRAM控制器的CPU访问TCAM的结构示意图;图2为本发明访问TCAM的方法的实现流程示意图;图3为本发明DDR控制器传输数据格式的示意图;图4为本发明访问TCAM的装置的结构示意图;图5为本发明访问TCAM的装置实施例的结构示意图。
具体实施例方式本发明的基本思想为处理器通过自身的双倍速率同步动态随机存储器(DoubleData Rate,DDR)控制器向接口转换单元发起查询操作;所述接口转换单元接收处理器发来的查询数据并解析,将解析得到的数据发送给TCAM ;TCAM根据接收到的数据进行查询并返回查询结果。为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图2示出了本发明访问TCAM的方法的实现流程,如图2所示,所述方法包括下述步骤步骤201,处理器通过自身的DDR控制器向接口转换单元发起查询操作;具体地,所述处理器通过自身的DDR控制器向所述接口转换单元写入查询命令、关键字及其相关信息;这里,所述DDR控制器具体可以包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器的一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种;具体地,所述接口转换单元可以通过现场可编程门阵列(Field ProgrammableGate Array,FPGA)进行实现;所述处理器可以通过使用DDR控制器的数据通道(DQ)信号线和控制信号线,与FPGA进行通信,减少FPGA的I/O接口的使用数量,简化操作;其中,处理器通过DQ信号线进行相关数据的传输,处理器通过控制信号线向FPGA发起读写等操作。进一步地,当TCAM和内存同时挂载于内存总线时,处理器还可以通过DDR控制器的片选(ChipSelect, CS)信号对TCAM和内存进行区分。进一步地,所述DDR控制器的DQ信号线传输的数据宽度为64bit,一个时钟周期可传输128bit。而通常TCAM可支持的查找关键字(KEY)长度为72bit、144bit、288bit和576bit,如此,对于144bit及以上的KEY长度,需要多个时钟周期进行传输。本发明中,DDR控制器传输的数据的格式参照图3,该数据的总长度为64bit,其中Command为命令字,具体可以参考现有TCAM的命令字,占用8个比特;KEY ID为查询的关键字序列号(ID),占用8个比特;KEY Num为一次查询的关键字个数,占用6个比特;KEY Len为关键字长度,占用2个比特,具体地,2’ b00表示关键字长度为72bit ;2’ b01表示关键字长度为144bit ;2,blO表示关键字长度为288bit ;2,bll表示关键字长度为576bit。
步骤202,所述接口转换单元接收处理器发来的查询数据并解析,将解析得到的数据发送给TCAM ;其中,所述接口转换单元将解析得到的查询命令通过命令总线(InstructionBus)发送给TCAM,将关键字通过数据总线(Data Bus)发送给TCAM。步骤203,TCAM根据接收到的数据进行查询并返回查询结果;具体地,TCAM接收到查询命令和关键字后,将关键字与自身存储的内容进行比较匹配,经过预设的固定延时后,通过结果总线(Result Bus)将查询结果返回给接口转换单元,所述接口转换单元将所述查询结果进行缓存。进一步地,上述方法还包括下述步骤处理器通过自身的DDR控制器向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换单元检测到所述读操作后,将与所述关键字ID对应的查询结果返回给处理器。下面通过具体实施例对上述方法进行进一步说明,所述实施例中,处理器具体为中央处理器(CPU),所述接口转换单元具体为FPGA。实施例一实施例一中,CPU发起的查询操作中查询的KEY Num为1,Key Len为72bit,实施例一包括下述步骤步骤一,CPU向FPGA发起写操作,其中Command为查询命令,KEYID为1,KEY Num为 1,Key Len 为 2’ b00。步骤二,FPGA检测到CPU的写操作后,开始接收CPU发来的数据并缓存。
步骤三,FPGA解析接收到的数据,通过Instruction Bus把解析得到的查询命令发送到TCAM,通过Data Bus把KEY发送到TCAM,实现对TCAM的访问。步骤四,TCAM接收到查询命令和KEY后,将KEY和自身存储的内容进行比较匹配,经过预设的固定延时后,通过Result Bus返回查找结果。步骤五,FPGA检测到查询结果有效后,读取查询结果并按照KEY ID进行对应缓存。步骤六,CPU向FPGA发起写操作,向FPGA写入如图3所示的数据,其中Command为读命令,KEY ID 为 1,KEY Num 为 1,Key Len 为 2’ b00。步骤七,CPU向FPGA发起读操作,FPGA检测到读操作后,根据步骤六中CPU写入的数据,将与写入的KEY ID为I相对应的查询结果输出给CPU。优选地,本发明实施例中,在步骤三中,当FPGA解析接收到的数据后,发现CPU要查询的数据已经存在于自身的缓存中,可以将CPU要查询的数据直接返回给CPU。实施例二实施例二中,CPU发起的查询操作中查询的KEY Num为2,Key Len为144bit,所述实施例二包括下述步骤步骤一,CPU向FPGA发起写操作,其中Command为查询命令,KEYID为1,KEY Num为 2,Key Len 为 2,b01。步骤二,FPGA检测到CPU的写操作后,开始接收CPU发来的数据并缓存;这里,一个时钟周期可以传输128bit,而DDR控制器传输的数据长度为64bit,如此,一个时钟周期可以接收40*2=80bit长度的KEY,又144*2/80=3. 6,即需要4个时钟周期才能传完2个长度为 144bit 的 KEY。步骤三,FPGA解析接收到的数据,得到长度分别为144bit的KEYl和KEY2,其中,KEYl 的 KEY ID 为 1,KEY2 的 KEY ID 自动加 1,为 2。步骤四,FPGA通过Instruction Bus把解析得到的查询命令发送到TCAM,通过Data Bus将KEYl送往TCAM查询,得到查询结果Resultl ;然后再通过Data Bus把KEY2送往TCAM继续查询,得到结果Result2。FPGA将通过ResultBus接收到的查询结果按照KEYID进行对应缓存。步骤五,CPU向FPGA发起写操作,向FPGA写入如图3所示的数据,其中Command为读命令,KEY ID 为 1,KEY Num 为 2,Key Len 为 2’ bOl。步骤六,CPU向FPGA发起读操作,FPGA检测到读操作后,根据步骤五中CPU写入的 数据,将与写入的KEYl和KYE2分别相对应的查询结果输出给CPU。由上述实施例可知,本发明中处理器可以通过对KEY ID,KEY Num和Key Len的控制,可以实现多关键字同时发送,多查询结果同时返回,并且在不同线程发起查询时,根据KEY ID,接口转换单元能够保证返回给查询发起方正确的查询结果。图4示出了本发明访问TCAM的装置的结构,如图4所示,所述装置包括处理器单元、接口转换单元;其中, 所述处理器单元,用于通过自身的DDR控制器子单元向接口转换单元发起查询操作;具体为通过自身的DDR控制器子单元向所述接口转换单元写入查询命令、关键字及其相关信息;这里,所述DDR控制器子单元具体可以包括DDRl控制器子单元、DDR2控制器子单元、DDR3控制器子单元、DDR4控制器子单元的一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种;进一步地,当TCAM和内存同时挂载于内存总线时,处理器还可以通过DDR控制器子单元的片选(Chip Select, CS)信号对TCAM和内存进行区分。进一步地,所述DDR控制器子单元的DQ信号线传输的数据宽度为64bit,一个时钟周期可传输128bit。而通常TCAM可支持的查找关键字(KEY)长度为72bit、144bit、288bit和576bit,如此,对于144bit及以上的KEY长度,需要多个时钟周期进行传输。本发明中,DDR控制器子单元传输的数据的格式参照图3,该数据的总长度为64bit,其中Command为命令字,具体可以参考现有TCAM的命令字,占用8个比特;KEY ID为查询的关键字序列号(ID),占用8个比特;KEY Num为一次查询的关键字个数,占用6个比特;KEY Len为关键字长度,占用2个比特,具体地,2’ b00表示关键字长度为72bit ;2’ bOl表示关键字长度为144bit ;2,blO表示关键字长度为288bit ;2,bll表示关键字长度为576bit。所述接口转换单元,用于接收处理器单元发来的查询数据并解析,将解析得到的数据发送给TCAM,并接收所述TCAM返回的查询结果;这里,所述接口转换单元可以通过FPGA进行实现;所述处理器单元可以通过使用DDR控制器子单元的DQ信号线和控制信号线,与FPGA进行通信,减少FPGA的1/0接口的使用数量,简化操作。其中,所述处理器单元,具体用于通过自身的DDR控制器子单元向所述接口转换单元写入查询命令、关键字及其相关信息;其中,所述DDR控制器子单元包括DDRl控制器子单元、DDR2控制器子单元、DDR3控制器子单元、DDR4控制器子单元一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种。其中,所述接口转换单元,具体用于将解析得到的查询命令通过Instruction Bus发送给TCAM,将关键字通过Data Bus发送给TCAM。其中,所述接口转换单元,具体用于接收所述TCAM通过Result Bus返回的查询结果并进行缓存。进一步地,所述处理器单元,还用于通过自身的DDR控制器子单元向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换单元,还用于检测到所述读操作后,将与所述关键字ID对应的查询结果返回给所述处理器单元。 图5示出了本发明访问TCAM的装置实施例的结构,结合图4和图5可知,所述处理器单元可以具体为CPU,所述DDR控制器子单元可以为所述CPU中的DDR控制器;所述接口转换单元为FPGA实现,与FPGA相连的为将要访问的TCAM ;这里,所述CPU、FPGA与上述访问TCAM的装置的工作过程基本相同,不再赘述。其中,所述FPGA进一步包括与DDR控制器连接的DDR接口、先入先出(First InFirst Out,FIFO)缓存单元以及与TCAM连接的TCAM接口 ;其中,所述CPU通过DDR控制器向FPGA写入查询命令、关键字及其相关信息;所述FPGA通过自身的DDR接口接收CPU发来的数据,并发送至FIFO缓存单元进行缓存后输出给TCAM接口 ;所述TCAM接口将解析得到的查询命令通过Instruction Bus发送给TCAM,将关键字通过Data Bus发送给TCAM,并通过Result Bus接收TCAM返回的查询结果,进一步地,TCAM接口还会发送Control命令给TCAM以保证正常通信。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种访问三态内容寻址存储器TCAM的方法,其特征在于,所述方法包括处理器通过自身的双倍速率同步动态随机存储器DDR控制器向接口转换单元发起查询操作;所述接口转换单元接收处理器发来的查询数据并解析,将解析得到的数据发送给 TCAM ;TCAM根据接收到的数据进行查询并返回查询结果。
2.根据权利要求1所述的方法,其特征在于,所述处理器通过自身的DDR控制器向接口转换单元发起查询操作为所述处理器通过自身的DDR控制器向所述接口转换单元写入查询命令、关键字及其相关信息;其中,所述DDR控制器包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种。
3.根据权利要求1所述的方法,其特征在于,所述接口转换单元将解析得到的数据发送给TCAM为所述接口转换单元将解析得到的查询命令通过命令总线发送给TCAM,将关键字通过数据总线发送给TCAM。
4.根据权利要求1所述的方法,其特征在于,所述TCAM返回查询结果为TCAM通过结果总线将查询结果返回给接口转换单元,所述接口转换单元将查询结果进行缓存。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括所述处理器通过自身的DDR控制器向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换单元检测到所述读操作后,将与所述关键字ID对应的查询结果返回给处理器。
6.一种访问TCAM的装置,其特征在于,所述装置包括处理器单元、接口转换单元;其中,所述处理器单元,用于通过自身的DDR控制器子单元向接口转换单元发起查询操作; 所述接口转换单元,用于接收处理器单元发来的查询数据并解析,将解析得到的数据发送给TCAM,并接收所述TCAM返回的查询结果。
7.根据权利要求6所述的装置,其特征在于,所述处理器单元,具体用于通过自身的 DDR控制器子单元向所述接口转换单元写入查询命令、关键字及其相关信息;其中,所述 DDR控制器子单元包括DDRl控制器子单元、DDR2控制器子单元、DDR3控制器子单元、DDR4 控制器子单元一种或多种;所述关键字相关信息包括关键字ID、关键字个数、关键字长度的一种或多种。
8.根据权利要求6所述的装置,其特征在于,所述接口转换单元,具体用于将解析得到的查询命令通过命令总线发送给TCAM,将关键字通过数据总线发送给TCAM。
9.根据权利要求6所述的装置,其特征在于,所述接口转换单元,具体用于接收所述 TCAM通过结果总线返回的查询结果并进行缓存。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述处理器单元,还用于通过自身的DDR控制器子单元向接口转换单元写入读命令、关键字ID、关键字个数、关键字长度后,向所述接口转换单元发起读操作;所述接口转换 单元,还用于检测到所述读操作后,将与所述关键字ID对应的查询结果返回给所述处理器单元。
全文摘要
本发明提供了一种访问TCAM的方法及装置,该方法包括处理器通过自身的双倍速率同步动态随机存储器DDR控制器向接口转换单元发起查询操作;所述接口转换单元接收处理器发来的查询数据并解析,将解析得到的数据发送给TCAM;TCAM根据接收到的数据进行查询并返回查询结果。本发明中处理器通过自身的DDR控制器与接口转换单元进行通信,实现对TCAM的访问,适用于不同接口的TCAM,扩大了TCAM的应用范围,进而满足路由器转发的速度要求。
文档编号H04L12/741GK103023782SQ20121047930
公开日2013年4月3日 申请日期2012年11月22日 优先权日2012年11月22日
发明者陈岳林, 徐洋 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1