CN100440169C - 用于快速表查找的存储器和功率有效机构 - Google Patents

用于快速表查找的存储器和功率有效机构 Download PDF

Info

Publication number
CN100440169C
CN100440169C CNB2004800298636A CN200480029863A CN100440169C CN 100440169 C CN100440169 C CN 100440169C CN B2004800298636 A CNB2004800298636 A CN B2004800298636A CN 200480029863 A CN200480029863 A CN 200480029863A CN 100440169 C CN100440169 C CN 100440169C
Authority
CN
China
Prior art keywords
subclauses
clauses
value
group
circuit
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.)
Expired - Fee Related
Application number
CNB2004800298636A
Other languages
English (en)
Other versions
CN1867901A (zh
Inventor
梅迪恩·索马孙达拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Vihana Inc
Original Assignee
Spans Logic Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spans Logic Inc filed Critical Spans Logic Inc
Publication of CN1867901A publication Critical patent/CN1867901A/zh
Application granted granted Critical
Publication of CN100440169C publication Critical patent/CN100440169C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Abstract

本发明揭示一种主要通过使用RAM单元来实施分类CAM功能的方法。与常规三元CAM相比,所述方法在一给定区域中提供显著更多的表条目,或为一给定表尺寸提供显著更少的区域。与常规CAM相比,所述方法更加功率有效、更便宜且提供更大范围的特征。

Description

用于快速表查找的存储器和功率有效机构
发明者:Madian Somasundaram
相关申请案
此申请案涉及并主张Madian Somasundaram在2003年10月11日申请的题为“MemoryAnd Power Efficient Content Addressable Memory for General Classification”的美国临时申请案序号60/510,761的优先权,其全文以引用的方式并入本文中。
技术领域
本发明通常涉及内容可寻址存储器(CAM),也称为关联存储器。
背景技术
内容可寻址存储器(CAM)具有可存储有数据的许多存储位置。一旦数据存储在一位置中,就可使用所述位置的内容(数据值)来寻址所述位置。将输入字与容许值的表相比较。如果存在匹配,那么返回所匹配的字的位置。所述位置通常用于寻址相关表,且返回对应字。CAM的一个应用为在互联网络协议(IP)数据包分类中,其中在网络交换机和路由器中比较互联网络数据包的IP地址和其它字段。在IP地址的通用形式(称为子网地址或地址前缀)中,为某一数目的位指定定值,且将所述地址的其余的位指定为“x”(无关)位。IPv4地址的实例如下给出:
0110 1100 0111 xxxx xxxx xxxx xxxx xxxx
非x(无关)的位形成地址的前缀,且前缀位的数目称为前缀长度。分类应用的子集将标识具有最长数目的前缀位的匹配前缀。在更一般的分类应用中,若干字段必须同时匹配。在图19的表中展示分类的实例规格。
附加字段可用于分类中,例如144位的规格可用于互联网络协议第四版(IPv4)分类。在互联网络协议第六版(IPV6)中,每个地址字段的长度为128位长,且分类规格可超过576位。分类规格的关键特征在于所述字段中的每一个均可具有x(无关)位。因此用于分类的CAM必须允许不必要邻接的x(无关)位。已经引介了称为三元CAM的一类CAM以解决此需要,其中存在与每个数据位相关的额外位,称为掩码位。
然而,常规三元CAM结构具有很多劣势。由于每个单元含有两个存储单元和一个掩码和比较电路,所以尺寸w x 2n的表的实施要求w x 2n+1个存储器元件和w x 2n个掩码和比较电路。由于表中的每次查找均要求启动所有单元,所以功率消耗与w x 2n成比例。对于n的较大值来说,成本相当可观,且功率消耗过高。另外,由于在每个单元中重复比较逻辑,所以难以提供不同种类的比较,且费用较高,且典型的CAM仅提供位对位比较。
需要一种内容可寻址存储器系统,其a)减少所需要的比较器的数目,b)使用纯存储器阵列,c)将比较器与存储器元件分离,且d)在比较所有位前,选择特定条目作为潜在匹配。通过减少存储元件和比较器的数目,且通过数据条目的更有效的比较而减少能量消耗,这些改变将导致实施尺寸减少。
发明内容
本发明提供一种方法以实施适用于互联网络数据包分类的内容可寻址存储器,其将成本降低到每位略多于一个存储元件。本发明即使在具有大得多的CAM表时也可能显著节约功率。优选实施例在单个结构内提供较宽范围的查找功能。可在设计级期间(体系结构定标)、在制造芯片期间(掩码可编程性)、在将CAM投入特定使用前(字段可编程性)、在CAM编程的循环之间(重新可编程性)或甚至在CAM使用的循环之间(重新可配置性)开发选择的范围。本发明的一个实施例允许不同种类的比较,包括位对位和范围比较。在其它实施例中,可在相同CAM字中混合不同类型的比较,或不同CAM条目可经受不同种类的比较。
附图说明
图1展示常规CAM系统。
图2展示常规三元CAM阵列。
图3A是根据本发明一个实施例的CAM的方框图。
图3B是使用根据本发明一个实施例的CAM的系统的方框图。
图3C是根据本发明一个实施例的控制阶段技术的流程图。
图3D是根据本发明一个实施例的数据阶段技术的流程图。
图4是CAM条目的实例表。
图5展示根据本发明一个实施例的CAM条目可如何分为多组的实例。
图6展示根据本发明一个实施例的图5所述实例中所示的第一组的配置值。
图7展示根据本发明一个实施例的基于三元CAM位的条目选择电路。
图8说明根据本发明一个实施例如何将条目分组以使得条目选择器中不要求x(无关)值。
图9展示根据本发明一个实施例的用以表示前缀规格的编码方案。
图10展示根据本发明一个实施例的图8中第三组的压缩规格。
图11是根据本发明一个实施例的实例条目选择表。
图12是根据本发明一个实施例的分为四段的条目选择表的实例。
图13展示根据本发明一个实施例的2级条目选择器的逻辑操作。
图14是根据本发明一个实施例的2级条目选择器实施的实例。
图15展示根据本发明一个实施例的位选择器电路。
图16展示根据本发明一个实施例的从输入中选择位的步骤顺序。
图17A展示根据本发明一个实施例的重叠位选择电路。
图17B展示根据本发明一个实施例的重叠位选择电路的段如何连接。
图18展示根据本发明一个实施例的以重叠位选择电路来选择位的步骤顺序。
图19展示根据本发明一个实施例的实例分类规格的格式。
具体实施方式
现参看附图描述本发明的实施例,在所述附图中,相同参考编号指示相同或功能类似的元件。同样,在附图中每个参考编号的最左边的数字对应第一次使用所述参考编号的图。
图1说明具有CAM的典型系统。宽度w(101)的输入字与容许值(102)的表相比较。如果存在匹配,那么返回所匹配的字(103)的位置。所述位置通常用于寻址相关表(104),且返回对应字(105)。
图2展示常规三元CAM阵列。数据存储在数据寄存器D(201)中,且掩码存储在掩码寄存器M(202)中。在比较期间,要比较的值放置在列线Col(203)上。比较电路C(204)将数据值与Col线值相比较,且如果掩码寄存器的值指示数据位对比较有效,那么将比较的结果传送到匹配线(205)。单元206排列w次以形成一行宽度w(207),且所述行排列2n次以形成所述表。由于多个行可匹配给定输入,所以优先电路(208)用于选择所述匹配线中的一个。
图3A的方框图说明根据本发明一个实施例的具有N×n个条目的容量的CAM(300)。存在N个区块,区块-1(320)到区块-N(321)。在每个区块内,存在一规格存储器301,其可存储多达n个条目。条目位选择电路302从宽度w的输入字303中选择某些位。条目选择电路305使用宽度为sw的选定位304以从规格存储器中选择所述n个条目中的一个。在306上输出的选定条目视情况由解释电路(Interpretation circuit)307修改并在308上输出。输入303视情况由比较选通和修改电路(Compare Gate and Modifycircuit)316修改并在310上输出。比较电路309将308与310相比较,且指示输入是否与匹配线311上的选定条目相匹配。将区块内选定条目的地址输出为Addr 312。存在N个匹配指示符,其中的一个来自N个区块中的每一个,所述N个区块中的一个由优先电路313选择,如果所述区块中的至少一个指示一匹配,那么设定优先电路313的输出匹配315。输出选定地址314将由优先电路选择的组的标识与所述区块内的匹配条目的地址相组合。
CAM 300可用于如图3B所说明的系统中。在一个实施例中,使用CAM 300有两个阶段:控制阶段,在此期间,CAM 300装载条目;和数据阶段,在此期间,CAM 300将输入值与所存储的条目相比较并返回结果。通过以条目装载CAM 300的配置寄存器和存储器,来将监视处理器331装满。一旦装载完,CAM 300就在数据阶段独立操作,在所述数据阶段其接受输入303、将所述输入303与条目相比较并返回所得匹配指示符315和选定地址314。
控制阶段中的目标在于以这样的方式装载CAM 300以使得CAM的每个区块中仅有一个条目可能匹配任何给定输入。达到所述目标的一种方式由图3C所说明的步骤顺序说明。起始点350为具有高达N×n个条目的表。在第一步骤351中,所述条目分成高达N个组,每个组仅仅具有n个条目,以此方式,在每个组内,仅仅一个条目可匹配任何给定输入。对于步骤351中形成的每个组,将接下来的三个步骤重复一次。在步骤352中,所述组的条目装载到CAM 300中的新区块的规格存储器301中。在步骤353中,为所述组选择某些位位置,以使得选定位位置的值足够从所述组中的其余条目中区分单个条目。在接下来的步骤354中,条目位选择302以步骤353中选定的位位置配置。接着在步骤355中,条目选择305经配置以使得其在与规格存储器301中的条目的位置对应的位置中具有有区别的条目位。
数据阶段的目标由CAM 300达到。CAM 300的每个区块均如图3D的流程图所说明起作用。在步骤361中,配置到条目位选择中的位位置从输入303中读取。在步骤362中,条目选择305基于步骤361中所读取的位值选择至多一单个条目。在以下步骤363中,选定条目从规格存储器301中读取。在可选步骤364中,来自规格存储器的值由解释电路307修改,且/或所述输入由比较位选择和解释电路316修改。在步骤365中,比较电路309将从步骤364视情况修改的值相互比较,且输出结果。在步骤366中,优先电路313从所有区块中选择所述结果中的一个,并输出选定结果。
CAM 300的操作可以图4所示的CAM条目的实例表来说明。所述实例表具有20个条目,每个条目具有13个位,每个位具有3个可能状态,0、1和x。如图5所示,所述表可分为具有5个条目或更少的组,以使得所述组中仅有一个条目可能匹配任何给定输入。在每个组内,几个位足够在条目之间唯一地区分,且这些位被划上阴影(突出显示)。可能存在多于一种方式来分组所述条目,且可能存在多于一组有区别的位。为了达到本发明的各个实施例的目的,组或位的特定选择无关紧要。条目位选择电路302经配置以使得每个组中的突出显示的位被自动选择以作为进入条目选择电路305的输入。条目位选择302的潜在输出在图5的表中展示为SB0、SB1、SB2和SB3。一组的SB0-3的可接受值装载到条目选择305中。组条目在与在条目选择305中发现的所述条目的选定位相同的位置处装载到规格存储器301中。如果SB0-3的输入值与所述可接受值中的一个相匹配,那么规格存储器中的对应条目被选择并输出作为线306上的潜在匹配。在此实例中,解释电路307经配置以不修改输出,且比较选通和修改电路316经配置以输出所有输入位,因此选定条目直接与输入字相比较。图6展示第一组的配置和值,以及实例输入的结果。条目位选择器302选择位0、5、6、12,作为到条目选择电路305的输入。选定的位与条目选择器305的第2个条目相匹配。读出规格存储器301的第2个条目,且将其与输入303的所有位相比较,从而导致一匹配。
本发明的实施例是对常规CAM的改进,因为规格存储器区块是由纯RAM单元(非常规的三元CAM单元)组成的存储器阵列。RAM单元的尺寸小于CAM单元的尺寸。在静态RAM技术的情况下,纯RAM单元的尺寸可为三元CAM单元的尺寸的三分之一到五分之一。可使用DRAM或1-T SRAM技术更进一步减小尺寸,因此本发明的实施例中使用的存储单元可小于CAM单元的尺寸的十分之一。因此,CAM实施的尺寸将比常规CAM的等效尺寸小得多(尺寸的1/3到1/10)。因此,在给定尺寸的硅中,根据本发明的CAM与常规CAM相比可具有大3到10倍的表。本发明的每个位的成本可便宜超过10倍。
在常规CAM中,将比较器电路创建到阵列的每个单元中。因此每个输入启动与CAM中存在的位一样多的比较器电路。在本发明的实施例中,除条目选择电路中使用的极少数较窄比较器之外,每组仅有一个条目宽比较器。因此,用于计算匹配的功率消耗也以近似所述组的尺寸的因数降低。
本发明与常规CAM装置相区分的一个实施例的一方面为存储器元件与计算/比较元件分离。此分离允许使两个元件独立地在功率和成本方面最优化。举例来说,由于复杂性是分摊在每个区块中大数目的元件上,所以本发明的实施例中使用的比较器可使用更尖端的功率管理技术。作为另一实例,存储器区块可利用较低电压摆幅,而不受比较器要求的限制。
由于实施尺寸和功率消耗比常规CAM小得多,所以本发明的实施例更适合于集成。不仅可将大得多的CAM表集成在单个晶粒上,而且可将非常大的CAM表与具有复杂的逻辑功能(例如网络处理器、通信量管理器(Traffic Manager)和安全芯片(Securitychip))集成在相同晶粒上。通过将比较功能与CAM中的存储器分离,可在不需要显著附加成本的前提下实施更复杂的比较功能(例如,范围比较)。
在控制阶段,存在多种完成条目分组的方式。分组所述条目的最有效的方式将取决于条目的表的特征。举例来说,如果条目不具有任何x(无关)值,那么发现有资格属于一组的条目的任务是简单明了的,因为所有条目的定义均是唯一的,且因此不管条目如何分组,任何给定输入均仅能匹配一单个条目。对于网络中共用的若干表(包括网络用语中称为流程表的)而言情况就是如此。在用于网络应用的典型转发表中,表条目具有前缀地址的形式,且因此具有邻接的x(无关)位。可以许多方式来处理此情况,例如使用通过条目中的x(无关)位的数目来分组所述条目的策略。在更一般的分类情况下,可能有必要采用更复杂的策略。举例来说,可通过使用两遍(two pass)法来确定性地将条目分组。在第一次期间,将数据组织成树形,从每个节点有三个潜在分支。在第二次期间,树形可被以多种方式遍历以形成所述组。在树遍历中适用的提议为,在具有0-分支和1-分支的每个节点处从所述0-分支中挑选一个条目且从所述1-分支中挑选一个条目。由于以此方式选择的两个条目在所述位位置中不同,所以它们保证不同时匹配。另一个选择是使用统计信息(例如有关IP地址)来标识用于区分每组中的数据的位位置。在此技术中,流程图将与图3C不同,区别在于首先选择有区别的位位置,然后形成所述组。在此技术中,不要求相同集合的位位置用于CAM中的所有组;可使用一个集合直到剩余条目之间变得难以区分,且接着可使用另一集合。此技术的变数为随机选择有区别的位位置的集合。此在处理较大表(在所述表中具有良好的值分布)时适用。
一个组的条目的选择还与所述组的有区别的位位置有关,且因此与为条目选择器305选择的许多位位置有关。尽管可将条目选择器设计为处理任何数目的位位置,但是如果控制阶段为每个组选择最小数目的有区别的位位置,那么可简化逻辑。有区别的位位置的最小数目为所述组中条目的数目的log2,且所必须的最大数目比所述组中条目的数目小1。树遍历技术以及在选择组之前选择位位置(随机或以先验统计知识)的技术可对选择有区别的位位置的最小数目有帮助。
将条目分组和选择位位置中的另一考虑为是否在任何组的区别位位置中均允许x(无关)值。可通过在区别位置中不允许x(无关)值来简化条目选择电路的实施。在此情况下,控制阶段任务是以对条目进行分组,以便可通过仅考虑所述组内不存在x(无关)值的那些位位置来在每组中的条目之间进行区分。图8中展示此策略的实例,其中图4的表的条目已经过分组以使得条目选择中不需要x(无关)值。
图7展示基于CAM位的条目选择电路305的实施。其使用常规CAM 701,所述常规CAM 701的宽度足够容纳选定的位。表的深度等于一组中的条目的数目。选定的位702选择所述条目中的至多一个,且CAM会将指示器703返回到所匹配的基于选定位的条目规格。由于并非一组中所有条目均可被定义(如在图5的组4中),所以将一有效位704附加到每个选择标准。当在所述位置没有条目时,可将所述有效位设定为无效。如果如在图5中允许区别位中有x(无关)值,那么用于此实施的CAM单元将需要为三元,但如果如在图8中不允许x(无关)值,那么用于此实施的CAM单元可为二元。
可通过使用多级技术来进一步减小条目选择电路305的尺寸。图11展示条目选择信息的实例,其中8个选定的位用于在16个条目中做出选择。在图12中,已经根据由所述位形成的数目的量值将所述信息分为四个段。带有灰色阴影的数个位用于区分条目。分两个级进行条目选择。在第一级中,使用所有选定的位SB0-7来决定哪个段适用,且在第二级中,使用SB0-7位中的一些位在所述段内选择一条目。图13展示2级条目选择305的逻辑操作。图14展示实例实施。量值比较器阵列1401使用选定的位Sell为级2(1402)和进入第二级位值的CAM 1404中的地址偏移1403选择含有关于区别位的信息的一行存储器。将第二级所需要的位的信息引导到第二位选择电路1405中,由后者挑选出适合的位以作为输入提供到CAM。对于图11的实例表,单级选择可能会需要16×8的CAM。图12的2级选择器实施需要三个8位量值比较器和一个16×3的CAM。在一些情况下,所述CAM可由解码器代替。尤其在组尺寸较大且在条目选择器中有很多位时,多级电路将降低实施成本,从而用等待时间换来晶体管效率。
在控制阶段可确保所选择的位的数目恰好等于组尺寸的log2的情况下,可将条目选择电路简化为仅为一解码器。
图15展示位选择电路的实例实施。要选择的输入1501中的位在选择寄存器SEL1502中由“1”值指示。当用信号通知装载时,选定的位装载到移位寄存器1503中。在此实例中,每个移位寄存器单元中有两个位,F/E 1505指示移位寄存器位是满还是空,且如果其为满的话,那么VAL 1506将指示此值。因此,当装载一个位时,将对应的F/E位设定为“满”。将所有其它F/E位设定为“空”。当完成所述装载时,启动移位寄存器以便移位。以一连串步骤来完成移位。在每个步骤中,移位寄存器将值从一“满”的位置移动到左边的邻近位置,如果后者为“空”的话。在完成这样的移动后,将原始位置设定为“空”且将新位置设定为“满”。继续移位直到不可能有更多移位。移位控制电路1507使用来自当前位置和先前位置的F/E位的值以决定移动是否被允许,且负责为在当前和先前位置两者处设定和重设F/E位。图16中展示实例位选择的一连串步骤。到最终步骤(步骤5)为止,所有选定的位均定位在最左边的位处,且所述位通过出信号(out signal)送到输出线SBit 1504。如果所述移位寄存器为异步,那么所有的步骤可在CAM的一个循环中完成。
可通过使用图17的方案来减少将相关位移位到最显著位所需要的步骤的最坏情况数目。移位寄存器长度分为两个或两个以上段,如图17B所示,每个长度为sw个位。每个移位寄存器的最左边的位的输出1701连接到最右边的位的输入1702以形成循环移位寄存器。附加位POS 1703用于指示每个段中的经移位的位的最终位置。在移位过程期间,从具有POS=1的位到具有POS=0的位不允许移位。任何位置的移位控制均考虑当前位置和先前位置的POS值和F/E值。所述段重叠以使得来自每个段1704的第一位的输出连接到位选择器输出S-Bit1 1705的第一位。类似地,来自所有段的第二位输出连接到SBit-2,等等。POS位经配置以使得对于任何给定SBit位置仅一个段的POS位设定为1;且以使得在任何给定段中,所有POS位均为邻接。一旦所述段的移位寄存器从所述输入装载,循环移位就开始,且到最后步骤为止,所有选定的位将定位以使得它们从最左边的SBit合适地对准。由于使用循环移位寄存器,所以选定的位的次序可与原始输入不同。图18展示一连串步骤。当移位完成时,如步骤2所示,两个循环寄存器使其满位对准以使得不存在重叠,且值可装载到输出线上。仅在POS位为所述位置而设定时,所述值才输出。在此实例中,通过重叠,完成位选择程序的时间从5个步骤减少到2个步骤。当段的长度短于选定的位的数目时,要求附加配置位以将每段中的经移位的值送到适当的输出线。
在常规CAM中,CAM中的存储单元的值的解译受CAM单元中的逻辑限制。因此在典型的三元CAM单元中,总是将一个存储单元解译为一掩码,指示所述值是否为x(无关),且将其它存储单元解译为非x值。本发明的实施例将解译功能从CAM中的存储器分离,因此容许对规格存储器301中存储何种值作出很多选择。这些选择包括但不局限于二元、三元、范围规格和压缩规格。在二元规格的情况下,存储器的w个位可用于w位尺寸的输入。在三元规格的情况下,存储器的2w个位可用于w位尺寸的输入。对于范围规格,有可能通过定义范围的开始和结束而定义两个字段,或开始和计数为定义范围的另一方式。还有可能定义具有更大形式或更小形式等等的范围字段。
压缩字段可能有很多表示。作为实例,宽度为w个位的子网地址字段(还称为前缀地址)在标准三元CAM中要求2w个存储单元,但通过使用图9所示的编码方案,在本发明的实施例中,有可能仅以w+1个位来表示w个位的前缀地址。附加位附加到w个位的末端,且用于指示是否应比较先前位。如果不要比较所述位,那么所述位的值指示是否要比较下一个位。此过程继续进行,直到一个位指示下一个位要比较为止。在所述点后,所有位均被比较。还有可能以这样的方式减少组条目的存储器要求以使得掩码位(指定哪个位要比较)的规格为整个组所共用。这些技术均用于图10中,图10使用图8的第三组作为实例。规格存储器1001不具有x值,但具有两个新的位X1和X2,二者与前缀位0-4和位5-9相关。设计解释电路1002以承认这些字段为前缀值。另外,由于对于整个组而言,位12均为“x”,所以解释电路经配置将位12当作x(无关)。规格存储器可在位12中具有任意值。解释电路从经编码的形式中重建原始条目,且通过比较电路1003,经重建的条目与输入相比较。
就本发明的解译技术而言,有许多选择可用作本发明的潜在实施例。解译选择与规格存储器中的编码选择互补。除上文已经提及的选择之外,此电路中有可能包括运行时间错误检查和错误校正。此为典型三元CAM中难以提供的功能。如果附加编码位提供于规格存储器中以指示要如何解译条目,那么还有可能改变在相同组中从条目到条目的条目的解译。此在输入中的某些位的“含义”随着某些其它位的值而变化时可能有用。
各种比较选择(或其它操作)可用于实施电路309的比较,所述比较选择包括(但不局限于)位对位比较、范围比较和各种“软”比较。位对位比较为标准CAM处理方法。范围比较有可能便宜地实施,因为对于所述组进行一次范围计算。比较的特殊形式可允许值中的容许偏差,或允许计算向量距离。此可对“软”比较(例如语音印迹和图像)有用。通常,可如何解译位的选择与比较区块中的选择的组合在本发明的实施例中容许复杂的类似ALU的功能。由于用于执行这些更复杂操作的逻辑对于每个组而不是每个存储单元来说完全一样,所以本发明以适度的成本支持更复杂的逻辑。
到此为止所示的实例在比较电路中使用整个输入字,因此比较选通和修改电路为可选。然而,在本发明的某些实施例中,此电路可提供附加有用功能。举例来说,当(例如)用于条目选择电路中的位不需要再次比较时,有可能操纵比进入比较短路的输入更少的位。此将减少规格存储器中的存储位的数目。在此电路中还有可能检查在容许任何操作在区块中进行前,输入是否满足某些条件。此在控制阶段期间尤其有用,一组中的所有条目均被选择以使得所述组中的所有条目均满足某些标准。接着这些标准可变为由比较选通和修改电路强制执行的选通标准。在此情况下,在每次比较期间不会启动CAM300的所有区块,从而节约更多功率消耗。
熟悉所属领域的技术人员将了解,可在不脱离本发明的精神和本质特征的前提下,以其它特定形式实施本发明。同样地,模块、管理器、特征、属性、方法和其它方面的特殊命名和划分并非为强制性的或有重大影响的,且实施本发明或其特征的机构可具有不同名称、划分和/或格式。此外,相关领域的普通技术人员将明了,本发明的模块、管理器、特征、属性、方法和其它方面可实施为软件、硬件、固件或三者的任何组合。另外,本发明决不局限于任何特定编程语言中的实施,或任何特定操作系统或环境中的实施。因此,本发明的揭示内容希望为说明性的,而非限制本发明的范畴,其在所附权利要求书中得以陈述。

Claims (1)

1.一种用于实施内容可寻址存储器的方法,其包含以下步骤:
a)将一内容可寻址存储器的条目分成不同组,其中任何组的仅一个条目可与任何给定输入相匹配,且其中以一使得那些要进行比较的位的规格为整个组所共用的方式对所述不同组中的一者进行分组;
b)为每个组选择多个位位置以作为有区别的位位置,其中,选定的区别位位置中的条目的值足够唯一地标识所述每个组内的条目,且其中所述选定的区别位位置处的所述条目的所述值不是所述每个组内的无关值;
c)以所述选定的区别位位置配置一位选择器电路;
d)以来自所述区别位位置处的条目的值配置一条目选择器电路,其中所述条目选择电路为一个二元内容可寻址存储器,且
其中,所述条目选择器电路进一步包含一多级电路以执行匹配功能;
e)在对应于所述条目选择器电路中的区别位的位置处将条目装载到一规格存储器中;
f)在配置到条目位选择器电路中的位置处从所述输入中选择位;
g)将选定的输入位的值匹配于配置到所述条目选择电路中的值中的至多一个值;
h)在对应于所述条目选择电路中的匹配位置的位置处从所述规格存储器中读取一条目;
i)修改从所述规格存储器读取的条目;
j)将经修改的条目与输入字相比较;和
k)输出比较的结果。
CNB2004800298636A 2003-10-11 2004-10-12 用于快速表查找的存储器和功率有效机构 Expired - Fee Related CN100440169C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51076103P 2003-10-11 2003-10-11
US60/510,761 2003-10-11

Publications (2)

Publication Number Publication Date
CN1867901A CN1867901A (zh) 2006-11-22
CN100440169C true CN100440169C (zh) 2008-12-03

Family

ID=34465145

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800298636A Expired - Fee Related CN100440169C (zh) 2003-10-11 2004-10-12 用于快速表查找的存储器和功率有效机构

Country Status (8)

Country Link
US (6) US7162572B2 (zh)
EP (1) EP1671217B1 (zh)
JP (1) JP2007508653A (zh)
CN (1) CN100440169C (zh)
AT (1) ATE382166T1 (zh)
CA (1) CA2540213C (zh)
DE (1) DE602004010922T2 (zh)
WO (1) WO2005038591A2 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1671217B1 (en) * 2003-10-11 2007-12-26 Spans Logic Inc. Memory and power efficient mechanism for fast table lookup
US7230839B2 (en) * 2003-10-21 2007-06-12 Stmicroelectronics, Inc. Magnitude content addressable memory
US20050131876A1 (en) * 2003-12-10 2005-06-16 Ahuja Ratinder Paul S. Graphical user interface for capture system
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US7814327B2 (en) 2003-12-10 2010-10-12 Mcafee, Inc. Document registration
US7774604B2 (en) * 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7899828B2 (en) 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7930540B2 (en) * 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US7219188B1 (en) * 2004-02-06 2007-05-15 Netlogic Microsystems, Inc. Segmented content addressable memory array and priority encoder
US7962591B2 (en) 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US7603346B1 (en) 2004-07-23 2009-10-13 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein
US7653619B1 (en) 2004-07-23 2010-01-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height
US7725450B1 (en) 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
US8886677B1 (en) 2004-07-23 2014-11-11 Netlogic Microsystems, Inc. Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US8560534B2 (en) 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US7949849B2 (en) 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
US7907608B2 (en) 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7818326B2 (en) * 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US7730011B1 (en) 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
US7657104B2 (en) 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
KR100705593B1 (ko) * 2006-01-25 2007-04-09 삼성전자주식회사 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
EP1821571A1 (en) * 2006-02-15 2007-08-22 Oticon A/S Loop antenna for in the ear audio device
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US8010689B2 (en) * 2006-05-22 2011-08-30 Mcafee, Inc. Locational tagging in a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US7689614B2 (en) 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
CN100590614C (zh) * 2006-08-23 2010-02-17 联想(北京)有限公司 一种虚拟技术下硬盘数据的保护方法和保护系统
US7697518B1 (en) 2006-09-15 2010-04-13 Netlogic Microsystems, Inc. Integrated search engine devices and methods of updating same using node splitting and merging operations
US8086641B1 (en) 2006-11-27 2011-12-27 Netlogic Microsystems, Inc. Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US7831626B1 (en) 2006-11-27 2010-11-09 Netlogic Microsystems, Inc. Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US7886176B1 (en) 2007-09-24 2011-02-08 Integrated Device Technology, Inc. DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions
US7716204B1 (en) 2007-12-21 2010-05-11 Netlogic Microsystems, Inc. Handle allocation managers and methods for integated circuit search engine devices
TWI348297B (en) * 2008-01-25 2011-09-01 Univ Nat Taiwan Two-stage computer network packet classification method and system
JP5140849B2 (ja) 2008-02-13 2013-02-13 ルネサスエレクトロニクス株式会社 内容参照メモリ
US7801877B1 (en) 2008-04-14 2010-09-21 Netlogic Microsystems, Inc. Handle memory access managers and methods for integrated circuit search engine devices
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
KR101111661B1 (ko) * 2008-12-10 2012-02-14 주식회사 다인정공 파이프렌치
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8572513B2 (en) 2009-03-16 2013-10-29 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
KR20100107801A (ko) * 2009-03-26 2010-10-06 삼성전자주식회사 무선 통신 시스템에서 안테나 선택을 위한 장치 및 방법
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US9436402B1 (en) 2011-04-18 2016-09-06 Micron Technology, Inc. Methods and apparatus for pattern matching
US20130246431A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US9245626B2 (en) 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
US20210398325A1 (en) * 2020-06-22 2021-12-23 Advanced Micro Devices, Inc. Delta triplet index compression

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373890A (zh) * 1999-07-12 2002-10-09 莫塞德技术公司 内容可寻址存储器中多重匹配检测的电路和方法
CN1396524A (zh) * 2002-08-26 2003-02-12 中国电子科技集团公司第十三研究所 内容联想式存储器
US20030188090A1 (en) * 2002-03-28 2003-10-02 Darnell Brian Scott Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4758982A (en) * 1986-01-08 1988-07-19 Advanced Micro Devices, Inc. Quasi content addressable memory
US4882583A (en) * 1988-05-31 1989-11-21 International Business Machines Corporation Modified sliding block code for limiting error propagation
US6000008A (en) * 1993-03-11 1999-12-07 Cabletron Systems, Inc. Method and apparatus for matching data items of variable length in a content addressable memory
US6715028B1 (en) * 1993-11-19 2004-03-30 Kabushiki Kaisha Toshiba Data selecting memory device and selected data transfer device
US5488364A (en) * 1994-02-28 1996-01-30 Sam H. Eulmi Recursive data compression
US6098150A (en) 1995-11-17 2000-08-01 Sun Microsystems, Inc. Method and apparatus for fetching information from a cache memory
US5918245A (en) 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US5897655A (en) 1996-12-10 1999-04-27 International Business Machines Corporation System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
DE19983555T1 (de) * 1998-09-14 2001-07-26 Seagate Technology Llc Codierungs- und Decodierungstechniken für Daten in 24-BIT-Sequenzen
US6289414B1 (en) * 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
US6266262B1 (en) * 1998-11-05 2001-07-24 Lara Technology, Inc. Enhanced binary content addressable memory for longest prefix address matching
US6417788B1 (en) * 1999-07-09 2002-07-09 Maxtor Corporation High rate runlength limited codes for 10-bit ECC symbols
US6560610B1 (en) * 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
US6757779B1 (en) * 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6331961B1 (en) * 2000-06-09 2001-12-18 Silicon Access Networks, Inc. DRAM based refresh-free ternary CAM
AU2002223853A1 (en) * 2000-11-21 2002-06-03 Aspex Technology Limited Bit-parallel/bit-serial compound content-addressable (associative) memory devices
US6910097B1 (en) * 2001-04-09 2005-06-21 Netlogic Microsystems, Inc. Classless interdomain routing using binary content addressable memory
JP2003157677A (ja) * 2001-11-16 2003-05-30 Fujitsu Ltd 連想メモリ及びそのメモリセル
US20040044868A1 (en) * 2002-08-30 2004-03-04 Intel Corporation Method and apparatus for high-speed longest prefix match of keys in a memory
US7054995B2 (en) * 2003-04-23 2006-05-30 Integrated Silicon Solution, Inc. Dynamic linking of banks in configurable content addressable memory systems
US6812870B1 (en) * 2003-09-11 2004-11-02 Xilinx, Inc. Enhanced 8b/10b encoding/decoding and applications thereof
EP1671217B1 (en) * 2003-10-11 2007-12-26 Spans Logic Inc. Memory and power efficient mechanism for fast table lookup

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373890A (zh) * 1999-07-12 2002-10-09 莫塞德技术公司 内容可寻址存储器中多重匹配检测的电路和方法
US20030188090A1 (en) * 2002-03-28 2003-10-02 Darnell Brian Scott Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same
CN1396524A (zh) * 2002-08-26 2003-02-12 中国电子科技集团公司第十三研究所 内容联想式存储器

Also Published As

Publication number Publication date
US7296114B2 (en) 2007-11-13
EP1671217A2 (en) 2006-06-21
EP1671217B1 (en) 2007-12-26
US20060259682A1 (en) 2006-11-16
CN1867901A (zh) 2006-11-22
US7292162B2 (en) 2007-11-06
WO2005038591A3 (en) 2006-05-18
DE602004010922T2 (de) 2008-12-18
US20050138279A1 (en) 2005-06-23
JP2007508653A (ja) 2007-04-05
EP1671217A4 (en) 2006-11-02
US20060253647A1 (en) 2006-11-09
US7162572B2 (en) 2007-01-09
US7406561B2 (en) 2008-07-29
US20060253646A1 (en) 2006-11-09
DE602004010922D1 (de) 2008-02-07
US7321952B2 (en) 2008-01-22
CA2540213A1 (en) 2005-04-28
ATE382166T1 (de) 2008-01-15
CA2540213C (en) 2013-02-12
US20060253648A1 (en) 2006-11-09
US7296113B2 (en) 2007-11-13
US20070285290A1 (en) 2007-12-13
WO2005038591A2 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN100440169C (zh) 用于快速表查找的存储器和功率有效机构
US6629099B2 (en) Paralleled content addressable memory search engine
US8949574B2 (en) Low power, hash-content addressable memory architecture
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
US6246601B1 (en) Method and apparatus for using an inter-row configurable content addressable memory
US6839800B2 (en) RAM-based range content addressable memory
US6889225B2 (en) Large database search using content addressable memory and hash
US20040139274A1 (en) Virtual content addressable memory with high speed key insertion and deletion and pipelined key search
US6252789B1 (en) Inter-row configurability of content addressable memory
US6898661B2 (en) Search memory, memory search controller, and memory search method
US6169685B1 (en) Content addressable memories
US6718433B1 (en) Match and priority encoding logic circuit
USRE42684E1 (en) Word search in content addressable memory
US6988164B1 (en) Compare circuit and method for content addressable memory (CAM) device
US6658524B1 (en) Memory with call out function
EP1290697B1 (en) Partitioned content addressable memory device
JP2004526274A (ja) 異なるサイズのワードの検索
KR20070095722A (ko) 부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리

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
ASS Succession or assignment of patent right

Owner name: CISCO TECH IND.

Free format text: FORMER OWNER: CISCO TECH IND

Effective date: 20130711

Owner name: CISCO TECH IND

Free format text: FORMER OWNER: SPANS LOGIC INC.

Effective date: 20130711

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130711

Address after: California, USA

Patentee after: Cisco Technology, Inc.

Address before: California, USA

Patentee before: VIHANA, Inc.

Effective date of registration: 20130711

Address after: California, USA

Patentee after: VIHANA, Inc.

Address before: California, USA

Patentee before: Spans Logic Inc.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081203

Termination date: 20181012