CN103345937B - 一种在比较搜索芯片中支持多种查找模式的优先级编码方法 - Google Patents
一种在比较搜索芯片中支持多种查找模式的优先级编码方法 Download PDFInfo
- Publication number
- CN103345937B CN103345937B CN201310241607.4A CN201310241607A CN103345937B CN 103345937 B CN103345937 B CN 103345937B CN 201310241607 A CN201310241607 A CN 201310241607A CN 103345937 B CN103345937 B CN 103345937B
- Authority
- CN
- China
- Prior art keywords
- block address
- priority encoder
- matching result
- encoder
- priority
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000008878 coupling Effects 0.000 claims description 20
- 238000010168 coupling process Methods 0.000 claims description 20
- 238000005859 coupling reaction Methods 0.000 claims description 20
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 claims description 3
- 230000000052 comparative effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
一种在网络搜索芯片中支持多种搜索位宽的优先级编码器的编码方法,通过对比较单元阵列进行分组,利用不同层次的优先级编码器来生成最高优先级的命中地址,其中下层编码器的作用是生成底层模块列地址,并按照不同的位宽配置计算相应字的匹配结果,顶层优先级编码器则生成行地址,和最终的列地址。该发明能大大减少支持多种搜索位宽的网络搜索芯片对线道的需求,可以使一颗芯片具有支持更多搜索位宽的能力。
Description
技术领域
本发明涉及集成电路设计制造领域,具体来说,但不仅限于,内容可寻址存储器命中的优先级编码方法。
背景技术
通常的存储器(RAM或ROM)使用地址来指示存储单元的位置,并且输出该位置存储单元中的数据。与此相对,内容可寻址存储器(CAM)则接收外部检索数据,比较该检索数据与CAM中存储的数据是否匹配,并且输出该匹配数据在CAM中的地址。由于与检索数据相一致的字不限于一个,因此,当CAM中有多个字与检索数据相一致时,需要优先级编码器,来对从存储单元所输出的一致信号(表示与检索数据相一致的情况的信号)进行编码,并返回优先级最高的地址信号。
附图2说明了现有CAM的结构。如图所示,在CAM单元阵列中存储数据。搜索数据从搜索数据寄存器发送到CAM单元阵列。此后,比较该搜索数据与存储在CAM单元阵列中的数据。如果所存储的数据匹配搜索数据,则将匹配线的的逻辑电平设为高,反之则为低。然后,匹配线检测单元检测匹配线的逻辑电平。优先级编码器接收来自该检测单元的输出,并且输出匹配的CAM单元的字线地址。
附图2是固定位宽的搜索。由于CAM的应用越来越广泛,而不同领域的应用所需的搜索数据位宽往往是不一样的。因此需要在不损失容量的情况下,提供多种搜索位宽的选择,比如1Kx640,2Kx320,4Kx160…。通常的做法如专利1(美国专利US7,230,840B2)所述。可以由多个最小宽度的模块来进行拼接,将每个小模块的匹配结果都输出到优先级编码器(PE)中,在优先级编码器中进行不同的组合,并计算出不同配置下最高优先级的地址。附图3是专利1的一种优化实现的示例,即将优先级编码器放在中间,CAM阵列放在两边。该示例共放置了8个CAM阵列,能实现4种不同比较位宽的配置(即1倍/2倍/4倍/8倍位宽),CAM阵列在版图上需要提供3根走线通道。如果放置16个阵列,则可以多一种16倍位宽的配置,不过走线通道则上升到7根。
很显然,上述方式每增加一种位宽,布线通道就需增加一倍。这在集成电路领域显然是不可接受的。特别是随着特征尺寸的减小,CAM基本单元面积越来越小,形状也越来越扁,版图上其所能提供的走线资源更加稀缺,一般只有几根而已。因此,传统优先级编码的方式很难提供4种或4种以上不同位宽配置的CAM芯片。
随着网络的发展,不断出现的新应用对数据查找芯片CAM有着各种不同搜索需求。而现有CAM在支持多种位宽搜索时,由于对芯片内部布线通道需求巨大,其所能提供的不同位宽模式种类受到极大限制,无法提供更多模式来满足不同应用领域的需求。
发明内容
为克服现有技术的上述缺点,本发明提供了一种在比较搜索芯片中支持多种查找模式的优先级编码方法,及利用该方法实现的优先级编码器和CAM搜索芯片。
本发明采用了以下技术方案:
一种在比较搜索芯片中支持多种查找模式的优先级编码方法,其特征在于该方法具有如下步骤:
步骤一:将CAM阵列分组,每组有一个底层优先级编码器,该优先级编码器放置于该分组物理实现的中间位置;
步骤二:底层优先级编码器对CAM阵列分组中每个字的比较结果进行处理,按照不同的配置计算出是否匹配,并将该新的匹配结果输出给上一层的优先级编码器A,底层优先级编码器同时生成组内CAM模块的块地址;
步骤三:优先级编码器A对底层优先级编码器的匹配结果进行处理,按照不同的配置计算出是否匹配,并将该匹配结果输出给更上一层的优先级编码器B,优先级编码器A同时需对底层编码器们产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成新的块地址;
步骤四:优先级编码器B对优先级编码器A的匹配结果进行处理,按照不同的配置计算出是否匹配,并将该匹配结果输出给优先级编码器B的上一层优先级编码器C,优先级编码器B同时需对优先级编码器A产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成新的块地址;
步骤五:依次类推,直至顶层;
步骤六:顶层优先级编码器对下一层优先级编码器的匹配结果进行处理,按照不同的配置计算出是否匹配,并对该匹配结果进行优先级编码,产生行地址;顶层优先级编码器同时需对下一层编码器们产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成最终的块地址。
其中,底层编码器的电路由1个最高优先级电路和1024个匹配计算单元组成。CAM阵列的结果会输出给相应行的匹配计算单元,得出不同配置下的匹配结果MOUT;在80bit模式下,mf0,mf1,mf2和mf3中只要有一个匹配,则输出是匹配的,并用块地址[1;0]来表示是哪一个模块匹配,1024个计算单元会得出1024个匹配结果MOUT;底层优先级电路则会判断出命中的匹配单元中优先级最高的那个,并将该单元的所在模块的块地址作为底层PE的块地址输出。
优选地,在该优先级编码方法中,8个CAM阵列被分成两组,每组CAM阵列的匹配结果都被输出到底层优先级编码器PE中,底层优先级编码器PE会输出不同配置下的匹配结果,并输出匹配的块地址;顶层优先级编码器PE会根据底层优先级编码器PE的匹配结果判断出最终的匹配结果,并计算出行地址,和最高位的块地址,根据该高位块地址,可以选出最终的低位块地址;每个字需两条走线,一条线是BLK3将匹配结果输出给底层PE,另一条线则是底层PE将新的匹配结果输出给顶层PE。
优选地,在上述步骤六中,底层优先级编码器PE输出的匹配结果MOUT会作为顶层匹配计算单元的输入,在80/160/320bit模式中,只要MOUT0或MOUT1中有1个匹配,则输出MO是匹配的,并用块地址来表示相应的CAM阵列;顶层最高优先级电路会判断出命中的匹配单元中优先级最高的那个,输出该单元的行地址,同时将该单元的块地址作为该顶层优先级编码器PE的块地址输出。
不同于传统CAM芯片将所有匹配输出都送到一个优先级编码器生成所有地址的方式,本发明中有不同层次的优先级编码器,其中顶层优先级编码器只生成行地址,块地址则是在局部编码器中生成,所有输入顶层PE的匹配线结果都会在局部PE中进行简化处理。利用该方式,4种不同位宽的配置的芯片只需2条布线通道,5种位宽的配置也只需3条线道,这大大减少了版图对布线通道的需求。同时通过这种方式,一款CAM芯片就可以拥有更多种的位宽配置,如图10所示,在同时支持多种位宽模式时,降低了版图对布线通道的需求。这样可以使一款芯片拥有更多种的位宽配置,被更灵活地应用于多重领域。
附图说明:
附图1:本发明的结构示意图
附图2:CAM芯片的结构图
附图3:支持4种不同搜索位宽的CAM芯片传统实现方式的结构图
附图4:支持4种不同搜索位宽的CAM芯片本方案实现的结构图。
附图5:底层优先级编码器
附图6:底层匹配计算单元真值表
附图7:顶层优先级编码器
附图8:底层匹配计算单元真值表
附图9:块地址选择电路
附图10:位宽相应的线道书目表;
具体实施方式:
下面结合附图对本发明的具体方法进行详细描述。
附图4是根据本发明完成的一种具体实现。该实现能够同时支持4种不同的位宽模式,分别是8KX80,4KX160,2KX320和1KX640.其由8个80位的阵列模块组成,每个阵列模块有1K行。整个实现共需13位地址,含3位的块地址和10位的行地址。
如附图4所示,8个CAM阵列被分成两组,每组CAM阵列的匹配结果(mf0,mf1…)都被输出到底层优先级编码器(PE)中,底层PE会输出不同配置下的匹配结果,并输出匹配的块地址。顶层PE会根据底层PE的匹配结果判断出最终的匹配结果,并计算出行地址,和最高位的块地址[2]。根据该高位块地址,可以选出最终的低位块地址。显然,CAM阵列BLK2的上方是金属走线最密的地方。每个字需两条走线,一条线是BLK3将匹配结果输出给底层PE,另一条线则是底层PE将新的匹配结果输出给顶层PE。
附图5是附图4中底层PE的结构图,整个电路由1个最高优先级电路和1024个匹配计算单元组成。CAM阵列的结果会输出给相应行的匹配计算单元,得出不同配置下的匹配结果MOUT。在80bit模式下,mf0,mf1,mf2和mf3中只要有一个匹配,则输出是匹配的,并用块地址[1;0]来表示是哪一个模块匹配。在160bit模式下,mf0和mf1都匹配,或者mf2和mf3都匹配,则输出结果是匹配的,此时实际只有两个160bit的模块,1bit的块地址就可以表示,本例中用块地址[1]来表示,块地址[0]设为0。在320bit模式下,mf0,mf1,mf2和mf3需要全部匹配,输出结果才是匹配的。此时实际只有1个320bit的模块,无需块地址,本例中块地址[1:0]设为00。640bit模式与320bit模式相同。1024个计算单元会得出1024个匹配结果MOUT。底层优先级电路则会判断出命中的匹配单元中优先级最高的那个,并将该单元的所在模块的块地址作为底层PE的块地址输出。
附图6则是附图5中底层匹配计算单元真值表。可以根据该真值表来完成实际的电路。
附图7附图4中顶层PE的结构图。底层PE输出的匹配结果MOUT会作为顶层匹配计算单元的输入。在80/160/320bit模式中,只要MOUT0或MOUT1中有1个匹配,则输出MO是匹配的,并用块地址[2]来表示是左边的4个CAM阵列,还是右面的CAM阵列。在640bit模式中,只有MOUT0和MOUT1都匹配,输出MO才是匹配的,此时不需要块地址[2],本例将其置为0。顶层最高优先级电路会判断出命中的匹配单元中优先级最高的那个,输出该单元的行地址,同时将该单元的块地址[2]作为该顶层PE的块地址[2]输出。
附图8则是附图7中顶层匹配计算单元真值表。可以根据该真值表来完成实际的电路。
附图9则是附图4中块地址选择电路。如果块地址[2]为低,低两位的块地址输出选择右边底层PE产生的块地址。反之,则选择左边底层PE的块地址。
本发明的特定实施例已经进行了展示和描述,本领域的技术人员应当显而易见的知悉,在不背离本发明的范围的情况下,可在更广泛的方面对本发明做出修改或调整,因此,落入本发明的真正的精神和范围内的所有的这样的修改和调整包含在本发明的保护范围内。
Claims (2)
1.一种在比较搜索芯片中支持多种查找模式的优先级编码方法,其特征在于该方法具有如下步骤:
步骤一:将CAM阵列分组,每组有一个底层优先级编码器,该优先级编码器放置于该分组物理实现的中间位置;
步骤二:底层优先级编码器对CAM阵列分组中每个字的比较结果进行处理,按照不同的配置计算出是否匹配,并将该匹配结果输出给上一层的优先级编码器A,底层优先级编码器同时生成组内CAM模块的块地址;
步骤三:优先级编码器A对底层优先级编码器的匹配结果进行处理,按照不同的配置计算出是否匹配,并将该匹配结果输出给更上一层的优先级编码器B,优先级编码器A同时需对底层编码器们产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成新的块地址;
步骤四:优先级编码器B对优先级编码器A的匹配结果进行处理,按照不同的配置计算出是否匹配,并将该匹配结果输出给优先级编码器B的上一层优先级编码器C,优先级编码器B同时需对优先级编码器A产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成新的块地址;
步骤五:依次类推,直至顶层;
步骤六:顶层优先级编码器对下一层优先级编码器的匹配结果进行处理,按照不同的配置计算出是否匹配,并对该匹配结果进行优先级编码,产生行地址;顶层优先级编码器同时需对下一层编码器们产生的低位块地址进行选择,与该编码器生成的高位块地址合在一起,生成最终的块地址;
其中,
底层编码器的电路由1个最高优先级电路和1024个匹配计算单元组成;
CAM阵列的结果会输出给相应行的匹配计算单元,得出不同配置下的匹配结果MOUT;在80bit模式下,mf0,mf1,mf2和mf3中只要有一个匹配,则输出是匹配的,并用块地址[1;0]来表示是哪一个模块匹配,1024个计算单元会得出1024个匹配结果MOUT;底层优先级电路则会判断出命中的匹配单元中优先级最高的那个,并将该单元的所在模块的块地址作为底层PE的块地址输出;
在该优先级编码方法中,8个CAM阵列被分成两组,每组CAM阵列的匹配结果都被输出到底层优先级编码器PE中,底层优先级编码器PE会输出不同配置下的匹配结果,并输出匹配的块地址;顶层优先级编码器PE会根据底层优先级编码器PE的匹配结果判断出最终的匹配结果,并计算出行地址,和最高位的块地址,根据该高位块地址,可以选出最终的低位块地址;每个字需两条走线,一条线是BLK3将匹配结果输出给底层PE,另一条线则是底层PE将新的匹配结果输出给顶层PE。
2.根据权利要求1所述的优先级编码方法,其特征在于:在所述步骤六中,底层优先级编码器PE输出的匹配结果MOUT会作为顶层匹配计算单元的输入,在80/160/320bit模式中,只要MOUT0或MOUT1中有1个匹配,则输出MO是匹配的,并用块地址来表示相应的CAM阵列;顶层最高优先级电路会判断出命中的匹配单元中优先级最高的那个,输出该单元的行地址,同时将该单元的块地址作为该顶层优先级编码器PE的块地址输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310241607.4A CN103345937B (zh) | 2013-06-18 | 2013-06-18 | 一种在比较搜索芯片中支持多种查找模式的优先级编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310241607.4A CN103345937B (zh) | 2013-06-18 | 2013-06-18 | 一种在比较搜索芯片中支持多种查找模式的优先级编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103345937A CN103345937A (zh) | 2013-10-09 |
CN103345937B true CN103345937B (zh) | 2016-08-03 |
Family
ID=49280727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310241607.4A Active CN103345937B (zh) | 2013-06-18 | 2013-06-18 | 一种在比较搜索芯片中支持多种查找模式的优先级编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345937B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019117677A (ja) * | 2017-12-27 | 2019-07-18 | ルネサスエレクトロニクス株式会社 | 検索メモリ |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219749B1 (en) * | 1997-09-04 | 2001-04-17 | Nortel Networks Limited | Content addressable memory system with self-timed signals and cascaded memories for propagating hit signals |
CN1561522A (zh) * | 2001-09-28 | 2005-01-05 | 睦塞德技术公司 | 用于在按内容寻址的存储器中执行可变宽度搜索的电路和方法 |
CN1540666B (zh) * | 2003-04-23 | 2012-01-11 | 睦塞德技术公司 | 可动态配置的内容可寻址存储器系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606968B2 (en) * | 2006-05-08 | 2009-10-20 | Mcdata Corporation | Multi-level content addressable memory |
-
2013
- 2013-06-18 CN CN201310241607.4A patent/CN103345937B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219749B1 (en) * | 1997-09-04 | 2001-04-17 | Nortel Networks Limited | Content addressable memory system with self-timed signals and cascaded memories for propagating hit signals |
CN1561522A (zh) * | 2001-09-28 | 2005-01-05 | 睦塞德技术公司 | 用于在按内容寻址的存储器中执行可变宽度搜索的电路和方法 |
CN1540666B (zh) * | 2003-04-23 | 2012-01-11 | 睦塞德技术公司 | 可动态配置的内容可寻址存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103345937A (zh) | 2013-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178519B (zh) | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 | |
US6968440B2 (en) | Systems and methods for processor memory allocation | |
CN102662855B (zh) | 一种二叉树的存储方法、系统 | |
CN104636349B (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
US20170118111A1 (en) | Multilayer 3d memory based on network-on-chip interconnection | |
CN103699648A (zh) | 用于快速检索的树形数据结构及其实现方法 | |
CN103778120B (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件系统 | |
CN102043729A (zh) | 动态随机访问存储器的内存管理方法及系统 | |
US10176060B2 (en) | Memory apparatus for applying fault repair based on physical region and virtual region and control method thereof | |
CN101751993A (zh) | 缓存控制设备和方法 | |
CN100550189C (zh) | 存储数据的方法、映射事务的装置和写数据线的方法 | |
CN100476824C (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
US20170147712A1 (en) | Memory equipped with information retrieval function, method for using same, device, and information processing method | |
CN106844288A (zh) | 一种随机字符串生成方法及装置 | |
US10776227B2 (en) | Memory management system and method thereof | |
CN103345937B (zh) | 一种在比较搜索芯片中支持多种查找模式的优先级编码方法 | |
CN108169716A (zh) | 基于sdram芯片的sar成像系统矩阵转置装置和图案交织方法 | |
CN106066832B (zh) | 存取存储器模块/增加写入端口的方法以及存储器控制器 | |
CN106777290A (zh) | 一种导出数据的方法及装置 | |
CN101908378B (zh) | 闪存的控制器以及于闪存存取数据的方法 | |
KR101845368B1 (ko) | 메모리 컨트롤러 커넥터의 메모리 커넥터에의 매핑 | |
CN105575441A (zh) | 动态随机存储器的缺陷修复方法及电路 | |
US7634634B2 (en) | Data search apparatus and a method thereof | |
EP1481319B1 (en) | Method and apparatus for parallel access to multiple memory modules | |
CN104461956A (zh) | 访问同步动态随机访问存储器的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Priority Encoding Method Supporting Multiple Search Modes in Comparative Search Chips Granted publication date: 20160803 Pledgee: Bank of Communications Ltd. of Suzhou Wuzhong branch Pledgor: Suzhou Xiongli Technology Co.,Ltd. Registration number: Y2024980008339 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |