一种快速搜索cam的方法

文档序号:6378668阅读:607来源:国知局
专利名称:一种快速搜索cam的方法
技术领域
本发明涉及集成电路设计领域,具体地说是一种快速搜索CAM的方法。
背景技术
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是基于SRAM存储器和逻辑控制模块来实现,以搜索内容作为读地址,同时进行多块SRAM存储器访问,SRAM存储器中存储的内容均为宽度等同于CAM搜索深度的位向量,位向量中的有效位即指示搜索匹配结果和匹配项地址,经过逻辑控制模块合并多块SRAM存储器输出的结果,得到完整搜索内容在CAM中的匹配结果和匹配项的地址;具体步骤如下
1)SRAM存储器存放宽度等同于CAM搜索深度的位向量,每次进行CAM搜索时以被检索的数据作为读地址,发起相应的SRAM存储器读操作,SRAM存储器返回对应地址上的位向量;
2)SRAM存储器的读使能由CAM搜索使能驱动,读地址由CAM搜索内容驱动,将CAM的查找字以存储器深度为基数划分为若干个搜索子区间,每个子区间各对应一片SRAM存储器,所有SRAM存储器之间互不相干;3)并行读出每个子区间所对应的SRAM存储器中的位向量,每个位向量都代表了它所在查找字子区间的匹配信息,由CAM控制逻辑模块完成对每个位向量的合并操作,即每次输入的相同数据宽度的二进制操作数逐位与&操作,计算出一个完整宽度的查找字在CAM中的匹配信息;
4)SRAM存储器中每个地址上均存放着数据宽度等同于CAM搜索深度的位向量,位向量每一位指代一个CAM的有效入口,I表示该入口有效,O表示无效,指示CAM有效入口的位向量,位向量中值为I的位所在位向量中的位置即为该有效入口在CAM中的匹配地址;位向量某一位值等于1,说明CAM中同等位置上存在与查找字相同的数据,搜索完成,匹配成功,位向量所有位都等于O,说明CAM中不存在与查找字相同的数据,搜索完成,匹配失败;
5)CAM控制逻辑模块在接收到SRAM存储器控制单元发出的每个位向量后对其进行合并,缩减和优先译码,计算出最终的搜索匹配结果和匹配地址,并在端口上输出对应内容,完成对多个SRAM存储器读出数据的合并操作和各子区间对应的位向量的与操作,得到完 整搜索数据所对应的位向量;
6)CAM控制逻辑模块合并操作完成后,对合并结果进行缩减运算或(I )操作和优先译码pri-encoder操作,合并位向量的缩减运算或操作的结果即为CAM的搜索匹配结果,I表示匹配成功,O表示匹配失败,合并位运算的优先译码操作的结果即为CAM的匹配项在CAM中的地址;
7)CAM的写操作由CAM控制逻辑模块进行控制由优先译码器找到CAM空项,然后通过SRAM存储器的写端口向地址等同于写入数据的存储字发起写操作,写入内容为该地址上原有存储字与写入对应的位为1,其余位为O的位向量进行逐位或操作的计算结果。本发明的有益效果是快速搜索CAM设计实现的模块划分以及数据处理流程。整个设计划分为三个单元,查找字区间划分单元,SRAM存储器单元和CAM控制逻辑模块。其中查找字单元负责接收CAM搜索使能和CAM搜索内容,并对CAM搜索内容,即查找字进行区域划分,得到N个子区间。每个子区间对应I个子查找字,以此驱动SRAM存储器单元的读操作地址。同时查找字划分单元输出各片SRAM存储器的读使能信号,SRAM存储器单元接收到读使能信号有效即开始读操作,读出相应地址上的位向量,并且在端口上输出。


图I是快速搜索CAM模块结构 图2是查找字区间划分 图3是位向量示意 图4是CAM控制逻辑模块原理图I ;
图5是CAM控制逻辑模块原理图2。
具体实施例方式参照说明书附图对本发明的方法作以下详细地说明。附图I描述了快速搜索CAM设计实现的模块划分以及数据处理流程。整个设计划分为三个单元,查找字区间划分单元,SRAM存储器单元和CAM控制逻辑模块。其中查找字单元负责接收CAM搜索使能(SearchEn)和CAM搜索内容,并对CAM搜索内容,即查找字(SearchWord)进行区域划分,得到N个子区间。每个子区间对应I个子查找字(SubWord),以此驱动SRAM存储器单元的读操作地址。同时查找字划分单元输出各片SRAM存储器的读使能信号,SRAM存储器单元接收到读使能信号有效即开始读操作,读出相应地址上的位向量(BitVecN),并且在端口上输出。CAM控制逻辑模块在接收到SRAM存储器控制单元发出的N个位向量后对其进行合并,缩减和优先译码,计算出最终的搜索匹配结果(IsMatched)和匹配地址(MatchedAddr),并在端口上输出。附图2描述了区间划分规则,即以8为基数将查找字(SearchWord)划分为N个子查找字(SubWord),N =查找字宽度W / 8。附图3描述了存储器中存储内容的格式,即数据宽度等同于CAM搜索深度D的位向量,位向量的每一位均指代CAM的一个有效入口,I表示该入口有效,O表示无效。附图4描述了 CAM控制逻辑模块合并操作的原理,即N个子查找字所对应的位向量(BitVecN)进行逐位与操作,计算出完整宽度的查找字所对应的位向量(BitVector)。 附图5描述了 CAM控制逻辑模块缩减和优先译码操作的原理,即以合并操作所得位向量(BitVector)为操作数,分别进行优先译码和缩减运算或,计算出匹配的CAM有效入口地址(MatchedAddr)和 CAM 搜索匹配结果(IsMatched)。
实施例本发明基于SRAM作为存储体,以搜索内容编址,将查找字划分为多个子区间同时检索,由控制逻辑电路合并各个子区间的检索内容,计算并且输出搜索结果。在不牺牲芯片面积的前提下,只需要I个时钟周期即完成整个搜索过程。本发明基于通用IRlW SRAM存储器实现,存储数据宽度等同于CAM搜索深度,SPCAM最多可容纳的被搜索数据个数。整个CAM由N片SRAM存储体和一个控制逻辑单元组成,以深度为256的SRAM为例,N =查找字宽度W / 8。不同于通常的CAM实现方法,本发明不通过逐一比较存储数据和查找字的方法进行搜索,而是将查找字作为访问地址对SRAM进行读操作,地址数值等同于查找字的那一项存储字被选通,此操作即暗含一次完整搜索过程,且系统时间开销仅为存储器的读延迟。当搜索内容数值较大,即查找字数据宽度较大时,若以整个搜索内容单一编址将造成SRAM深度过大(等同于查找字的宽度)。因此将查找字划分为N个子区间,每个子区间对应一片深度为256,即地址宽度等于8的SRAM存储器。CAM进行搜索时各个子区间对应的SRAM并行进行读操作。子区间个数由查找字宽度决定,N =查找字宽度W / 8。SRAM中存储的内容为宽度等同于CAM搜索深度的位向量,位向量的每一位均指代一个CAM有效入口,I表示该入口有效,O表示无效。位向量中为I的位在位向量中的位置即指示该有效入口在CAM中的匹配地址。位向量某一位值等于1,说明CAM中同等位置上存在与查找字相同的数据,搜索完成,匹配成功。位向量所有位都等于0,说明CAM中不存在与查找字相同的数据,搜索完成,匹配失败。并行读出N个子区间所对应的SRAM存储器中的位向量,每个位向量都代表了它所在查找字子区间的匹配信息。由CAM控制逻辑模块完成对N个位向量的合并操作,即N输入的相同数据宽度的二进制操作数逐位与(&)操作,计算出一个完整宽度的查找字在CAM中的匹配信息。
CAM控制逻辑模块合并操作完成后,对合并结果进行缩减运算或(I )操作和优先译码(pri-encoder)操作。合并位向量的缩减运算或操作的结果即为CAM的搜索匹配结果,I表示匹配成功,O表示匹配失败。合并位运算的优先译码操作的结果即为CAM的匹配项在CAM中的地址。另外,CAM的写操作由CAM控制逻辑模块进行控制由优先译码器找到CAM空项,然后通过SRAM的写端口向地址等同于写入数据的存储字发起写操作,写入内容为该地址 上原有存储字与写入对应的位为1,其余位为O的位向量进行逐位或操作的计算结果。除说明书所述的技术特征外,均为本专业技术人员的已知技术。
权利要求
1. 一种快速搜索CAM的方法,其特征在于,快速搜索CAM是基于SRAM存储器和逻辑控制模块来实现,以搜索内容作为读地址,同时进行多块SRAM存储器访问,SRAM存储器中存储的内容均为宽度等同于CAM搜索深度的位向量,位向量中的有效位即指示搜索匹配结果和匹配项地址,经过逻辑控制模块合并多块SRAM存储器输出的结果,得到完整搜索内容在CAM中的匹配结果和匹配项的地址;具体步骤如下 1)SRAM存储器存放宽度等同于CAM搜索深度的位向量,每次进行CAM搜索时以被检索的数据作为读地址,发起相应的SRAM存储器读操作,SRAM存储器返回对应地址上的位向量; 2)SRAM存储器的读使能由CAM搜索使能驱动,读地址由CAM搜索内容驱动,将CAM的查找字以存储器深度为基数划分为若干个搜索子区间,每个子区间各对应一片SRAM存储器,所有SRAM存储器之间互不相干; 3)并行读出每个子区间所对应的SRAM存储器中的位向量,每个位向量都代表了它所在查找字子区间的匹配信息,由CAM控制逻辑模块完成对每个位向量的合并操作,即每次输入的相同数据宽度的二进制操作数逐位与&操作,计算出一个完整宽度的查找字在CAM中的匹配信息; 4)SRAM存储器中每个地址上均存放着数据宽度等同于CAM搜索深度的位向量,位向量每一位指代一个CAM的有效入口,I表示该入口有效,O表示无效,指示CAM有效入口的位向量,位向量中值为I的位所在位向量中的位置即为该有效入口在CAM中的匹配地址;位向量某一位值等于1,说明CAM中同等位置上存在与查找字相同的数据,搜索完成,匹配成功,位向量所有位都等于O,说明CAM中不存在与查找字相同的数据,搜索完成,匹配失败; 4)CAM控制逻辑模块在接收到SRAM存储器控制单元发出的每个位向量后对其进行合并,缩减和优先译码,计算出最终的搜索匹配结果和匹配地址,并在端口上输出对应内容,完成对多个SRAM存储器读出数据的合并操作和各子区间对应的位向量的与操作,得到完整搜索数据所对应的位向量; 5)CAM控制逻辑模块合并操作完成后,对合并结果进行缩减运算或(I )操作和优先译码pri-encoder操作,合并位向量的缩减运算或操作的结果即为CAM的搜索匹配结果,I表示匹配成功,O表示匹配失败,合并位运算的优先译码操作的结果即为CAM的匹配项在CAM中的地址; 6)CAM的写操作由CAM控制逻辑模块进行控制由优先译码器找到CAM空项,然后通过SRAM存储器的写端口向地址等同于写入数据的存储字发起写操作,写入内容为该地址上原有存储字与写入对应的位为1,其余位为O的位向量进行逐位或操作的计算结果。
全文摘要
本发明提供一种快速搜索CAM的方法,包括模块划分以及数据处理流程,整个设计划分为三个单元,查找字区间划分单元,SRAM存储器单元和CAM控制逻辑模块,其中查找字单元负责接收CAM搜索使能和CAM搜索内容,并对CAM搜索内容,即查找字进行区域划分,得到N个子区间,每个子区间对应1个子查找字,以此驱动SRAM存储器单元的读操作地址,同时查找字划分单元输出各片SRAM存储器的读使能信号,SRAM存储器单元接收到读使能信号有效即开始读操作,读出相应地址上的位向量,并且在端口上输出。
文档编号G06F12/08GK102937969SQ20121038549
公开日2013年2月20日 申请日期2012年10月12日 优先权日2012年10月12日
发明者周恒钊, 陈继承 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1