搜索内容可寻址存储器的方法和系统的制作方法

文档序号:6367231阅读:137来源:国知局
专利名称:搜索内容可寻址存储器的方法和系统的制作方法
技术领域
本发明涉及集成电路设计领域,尤其涉及一种搜索内容可寻址存储器的方法和系统。
背景技术
CAM (Content Addressable Memory,内容可寻■址存储器),是一种特殊类型的计算机存储器,被广泛运用于计算机和通信领域。标准的存储器RAM的功能为根据用户提供的读地址返回存储在该地址上的数据字。不同于RAM,CAM的功能为根据用户提供的一个数据字,捜索全部的存储以判断该数据字是否存储在其中。如果找到这个数据字,则返回匹配地址,即该数据字在存储器中的位置,因此CAM就是软件术语associative array的硬件具体化。通常的CAM设计原理为在ー个操作中搜索整个存储,即读出存储器中每ー组数据,并将外部接收的数据与之逐一进行比较,然后根据比较结果对其进行优先译码,优先译码器产生一个ニ进制的匹配位置定位和一个匹配命中信号。常规的CAM实现方法有两种,一种为将数据存储在SRAM中,搜索时逐一读出静态随机存储器(SRAM)中的内容与查找字进行比较。另ー种为将数据存储在Register搭建存储器组中,搜索时将查找字广播到每ー组Register中进行比较,再由优先译码器根据各组的比较结果产生匹配位置和匹配命中信号。但上述两种实现方法均存在不同程度的弊端,第一种方法受到RAM读端口数量的限制,且完成一个CAM搜索过程需要的延时很大,L=(存储器深度/RAM读端ロ个数)*Tclk,需要多个时钟周期。在RAM器件规格确定,端ロ不变的前提下,存储器深度越大,CAM搜索延迟也就越大。以ー个I读I写两端ロ SRAM实现的CAM为例,若存储深度为64,则需要64个时钟周期才能完成一次捜索。第二种方法则受到资源和面积的约束,使用Register搭建的存储器组虽然能并行对查找字进行比较,但占用的芯片面积比同等容量的SRAM大。查找字数据宽度越大,这种面积差距就越明显,为芯片的资源分配和布局布线带来很大的挑战。因此,如何快速CAM是ー个亟待解决的问题。

发明内容
本发明提供一种搜索内容可寻址存储器的方法和系统,要解决的技术问题是如何快速搜索CAM。为解决上述技术问题,本发明提供了如下技术方案一种搜索内容可寻址存储器CAM的方法,包括获取查找字; 将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM ;
并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果;对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配結果。优选的,所述方法还具有如下特点所述每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果是通过如下方式得到的,包括SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向 量的姆一位依次表不一个CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功;如果位向量所有位都等于0,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。优选的,所述方法还具有如下特点对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配结果包括对得到的N个位向量进行逐位的与操作,得到该查找字在CAM中的匹配結果。优选的,所述方法还具有如下特点在得到该查找字在CAM中的匹配结果之后,还包括对得到的匹配结果进行缩减运算或操作,得到CAM的捜索匹配结果,如果结果为1,表示匹配成功;如果结果为0,表示匹配失败。优选的,所述方法还具有如下特点在得到该查找字在CAM中的匹配结果之后,还包括对得到的匹配结果进行优先译码操作,得到一匹配项,该匹配项作为该查找字在CAM中的地址。一种搜索内容可寻址存储器CAM的系统,包括获取装置,用于获取查找字;划分装置,与所述获取装置相连,用于将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM ;读装置,与所述划分装置相连,用于并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果;处理装置,用于对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配结果。优选的,所述系统还具有如下特点所述读装置通过如下方式得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果,包括SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一个CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功;如果位向量所有位都等于0,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。优选的,所述系统还具有如下特点所述处理装置,用于对得到的N个位向量进行逐位的与操作,得到该查找字在CAM中的匹配結果。
优选的,所述系统还具有如下特点所述系统还包括与操作装置,与所述处理装置相连,对得到的匹配结果进行缩减运算或操作,得到CAM的捜索匹配结果,如果结果为1,表示匹配成功;如果结果为0,表示匹配失败。优选的,所述系统还具有如下特点所述系统还包括优先译码装置,与所述处理装置相连,用于对得到的匹配结果进行优先译码操作,得到一匹配项,该匹配项作为该查找字在CAM中的地址。不同于通常的CAM实现方法,本发明提供的实施例不通过逐一比较存储数据和查找字的方法进行搜索,而是将查找字拆分成多个子查找字,拆分后的每个子查找字作为访问地址对SRAM进行读操作,地址数值等同于查找字的那ー项存储字被选通,此操作即暗含一次完整搜索过程,且系统时间开销仅为存储器的读延迟。


图I为本发明提供的捜索内容可寻址存储器的方法实施例的流程示意图;图2为本发明中划分查找字的示意图;图3为本发明中位向量的示意图;图4为本发明提供的对得到的位向量进行处理的示意图;图5为本发明中缩减和优先译码操作的处理方式的示意图;图6为本发明中搜索CAM的系统的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进ー步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。图I为本发明提供的捜索内容可寻址存储器的方法实施例的流程示意图。图I所示方法实施例,包括步骤101、获取查找字;步骤102、将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的SRAM ;其中SRAM的地址宽度的大小为SRAM的存储空间大小对2取对数的结果;例如,存储空间大小为256的SRAM,其地址宽度为8。步骤103、并行地以划分后子查找字作为读地址,在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果;步骤104、对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配結果。不同于通常的CAM实现方法,本发明提供的方法实施例不通过逐一比较存储数据和查找字的方法进行搜索,而是将查找字拆分成多个子查找字,拆分后的每个子查找字作为访问地址对SRAM进行读操作,地址数值等同于查找字的那ー项存储字被选通,此操作即暗含一次完整搜索过程,且系统时间开销仅为存储器的读延迟。
下面对本发明提供的方法实施例作进ー步说明以通用IRlW SRAM存储器为例进行说明,其中该SRAM的存储数据宽度等同于CAM搜索深度,即CAM最多可容纳的被搜索数据的个数。整个CAM所包括多个SRAM存储体,如深度为256的SRAM和深度为128的SRAM。当搜索内容数值较大,即查找字数据宽度较大时,若以整个搜索内容単一编址将造成SRAM深度过大(等同于查找字的宽度)。因此将查找字划分为N个子查找字,每个子查找字对应一片地址宽度等于该子查找字宽度的SRAM存储器。图2为本发明中划分查找字的示意图。在图2所示示意图中,以8为基数将查找字(SearchWord)划分为N个子查找字(SubWord)其中,在查找字宽度为39时,则划分成5份,每个子查找字的宽度依次为8、8、8、8、7。即前四个子查找字对应存储空间为28的SRAM,最后ー个对应存储空间为27的SRAM。
在得到划分后的子查找字后,以子查找字为读地址,在各个子查找字对应的SRAM进行并行进行读操作。其中,SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表示ー个CAM有效入口,通过配置位向量的姆一位的数值来表示该SRAM中同等位置上是否存在与该子查找字相同的数据。具体来说,SRAM中存储的内容为宽度等同于CAM搜索深度的位向量,位向量的每一位均指代ー个CAM有效入口,I表示该入口有效,0表示无效。位向量中为I的位在位向量中的位置即指示该有效入口在CAM中的匹配地址。位向量某一位值等于1,说明CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功。位向量所有位都等于0,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。图3为本发明中位向量的示意图。在图3所示示意图中,数据宽度等同于CAM搜索深度D的位向量,其中位向量的每一位均指代该SAM中一个有效入口,其中该位的属性值为I时,表示该入口有效;该位的属性值为0时,表示该入口无效。并行读出N个子查找字所对应的SRAM存储器中的位向量,每个位向量都代表了它所在查找字子查找字的匹配信息。对N个位向量的合并操作,即N输入的相同数据宽度的ニ进制操作数逐位与(&)操作,计算出一个完整宽度的查找字在CAM中的匹配信息。图4为本发明提供的对得到的位向量进行处理的示意图。在图4所示示意图中,对N个子查找字所对应的位向量(BitVecN)进行逐位“与”操作,当输出结果为I吋,则计算出完整宽度的查找字所对应的位向量(BitVector)在合并操作完成后,对合并结果进行缩减运算或(I)操作和优先译码(pri-encoder)操作。合并位向量的缩减运算或操作的结果即为CAM的搜索匹配結果,I表示匹配成功,0表示匹配失败。合并位运算的优先译码操作的结果即为CAM的匹配项在CAM中的地址。图5为本发明中缩减和优先译码操作的处理方式的示意图。在图5所示示意图中,以合并操作所得位向量(BitVector)为操作数,分别进行优先译码和缩减运算或,计算出匹配的CAM有效入口地址(MatchedAddr)和CAM搜索匹配结果(IsMatched)。另外,CAM的写操作由逻辑控制単元进行控制由优先译码器找到CAM空项,然后通过SRAM的写端ロ向地址等同于写入数据的存储字发起写操作,写入内容为该地址上原有存储字与写入对应的位为1,其余位为0的位向量进行逐位或操作的计算結果。本发明的方法实施例的有益效果是基于SRAM实现,相对于基于Register的方式电路面积更小。以搜索内容编址的方式取代全遍历一一比对的方式,无需额外的比较逻辑。只需I个时钟周期即输出匹配结果和匹配数据地址,大大提高搜索效率,縮小了事务处理延迟,提高了系统的吞吐率。与上述方法对应的,本发明还提供一种搜索内容可寻址存储器CAM的系统,包括获取装置,用于获取查找字;划分装置,与所述获取装置相连,用于将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM ;读装置,与所述划分装置相连,用于并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配 结果;处理装置,用于对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配结果。其中,所述读装置通过如下方式得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果,包括SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一个CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功;如果位向量所有位都等于0,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。优选的,所述处理装置,用于对得到的N个位向量进行逐位的与操作,得到该查找字在CAM中的匹配結果。可选的,所述系统还包括与操作装置,与所述处理装置相连,对得到的匹配结果进行缩减运算或操作,得到CAM的捜索匹配结果,如果结果为1,表示匹配成功;如果结果为0,表示匹配失败。可选的,所述系统还包括优先译码装置,与所述处理装置相连,用于对得到的匹配结果进行优先译码操作,得到一匹配项,该匹配项作为该查找字在CAM中的地址。下面以ー应用实例进行说明图6为本发明中搜索CAM的系统的结构示意图。在图6所示系统中,该系统包括三个单元,即查找字区间划分単元、SRAM存储器単元和逻辑控制単元。其中查找字単元负责接收CAM搜索使能(SearchEn)和CAM搜索内容,并对CAM搜索内容,即查找字(SearchWord)进行区域划分,得到N个子区间。每个子区间对应I个子查找字(SubWord),以此驱动SRAM存储器単元的读操作地址。同时查找字划分单元输出各片SRAM的读使能信号,SRAM存储器単元接收到读使能信号有效即开始读操作,读出相应地址上的位向量(BitVecN),并且在端口上输出。逻辑控制単元在接收到存储器控制单元发出的N个位向量后对其进行合井,缩减和优先译码,计算出最終的搜索匹配结果(IsMatched)和匹配地址(MatchedAddr),并在端口上输出。本发明的系统实施例的有益效果是基于SRAM实现,相对于基于Register的方式电路面积更小。以搜索内容编址的方式取代全遍历一一比对的方式,无需额外的比较逻辑。只需I个时钟周期即输出匹配结果和匹配数据地址,大大提高搜索效率,縮小了事务处理延迟,提高了系统的吞吐率。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
权利要求
1.一种搜索内容可寻址存储器CAM的方法,其特征在于,包括 获取查找字; 将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM ; 并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果; 对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配結果。
2.根据权利要求I所述的方法,其特征在于,所述每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果是通过如下方式得到的,包括 SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一个CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功;如果位向量所有位都等于O,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。
3.根据权利要求2所述的方法,其特征在于,对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配结果包括 对得到的N个位向量进行逐位的与操作,得到该查找字在CAM中的匹配結果。
4.根据权利要求2所述的方法,其特征在于,在得到该查找字在CAM中的匹配结果之后,还包括 对得到的匹配结果进行缩减运算或操作,得到CAM的捜索匹配结果,如果结果为1,表示匹配成功;如果结果为O,表示匹配失败。
5.根据权利要求2所述的方法,其特征在于,在得到该查找字在CAM中的匹配结果之后,还包括 对得到的匹配结果进行优先译码操作,得到一匹配项,该匹配项作为该查找字在CAM中的地址。
6.一种搜索内容可寻址存储器CAM的系统,其特征在于,包括 获取装置,用于获取查找字; 划分装置,与所述获取装置相连,用于将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM ; 读装置,与所述划分装置相连,用于并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果; 处理装置,用于对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配結果。
7.根据权利要求6所述的系统,其特征在于,所述读装置通过如下方式得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果,包括 SRAM的每个存储地址上均对应ー个长度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一个CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在与子查找字相同的数据,捜索完成,匹配成功;如果位向量所有位都等于O,说明CAM中不存在与子查找字相同的数据,捜索完成,匹配失败。
8.根据权利要求7所述的系统,其特征在于 所述处理装置,用于对得到的N个位向量进行逐位的与操作,得到该查找字在CAM中的匹配結果。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括 与操作装置,与所述处理装置相连,对得到的匹配结果进行缩减运算或操作,得到CAM的捜索匹配结果,如果结果为1,表示匹配成功;如果结果为O,表示匹配失败。
10.根据权利要求7所述的系统,其特征在于,所述系统还包括 优先译码装置,与所述处理装置相连,用于对得到的匹配结果进行优先译码操作,得到一匹配项,该匹配项作为该查找字在CAM中的地址。
全文摘要
本发明提供一种搜索内容可寻址存储器的方法和系统。所述方法,包括获取查找字;将查找字划分成N个子查找字,其中每个子查找字对应内容可寻址存储器CAM中一地址宽度等于该子查找字宽度的静态随机存储器SRAM;并行地以子查找字作为读地址在对应的在SRAM中进行读操作,得到每个子查找字所对应的SRAM上各存储地址对该子查找字的匹配结果;对得到的匹配结果进行合并处理,得到该查找字在CAM中的匹配结果。
文档编号G06F17/30GK102663051SQ20121008940
公开日2012年9月12日 申请日期2012年3月29日 优先权日2012年3月29日
发明者周恒钊, 陈继承 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1