节省功率的基于静态的比较器电路和方法以及使用其的内容可寻址存储器(cam)电路的制作方法

文档序号:6348116阅读:205来源:国知局
专利名称:节省功率的基于静态的比较器电路和方法以及使用其的内容可寻址存储器(cam)电路的制作方法
技术领域
本发明的技术一般涉及比较器电路和内容可寻址存储器(CAM)电路,以及相关系统和方法。
背景技术
内容可寻址存储器(CAM)为尤其适用于高速搜索应用中的计算机存储器类型。不同于标准随机存取存储器(RAM)(其中供应存储器地址且RAM返回存储于此存储器地址处的数据字),CAM实施查找表功能。查找表功能确定所供应的比较数据是否存储于CAM中的任何存储器位置处。如果是,则返回数据字或CAM中的含有与所供应的比较数据匹配的数据的一个或一个以上存储器位置的列表。CAM提供对数据的高速存取,因为CAM通常使用专用比较器电路来在单一时钟循环内执行查找功能。CAM还称为关联存储器或关联性存储装置,因为CAM提供硬件中的关联性阵列。图1说明示范性CAM 10的方框图。CAM 10包括多个条目的阵列。所述多个条目包含一个或一个以上标签数据字段12,以及一个或一个以上对应的比较器14和RAM数据字段16。每一标签数据字段12包括一(1)位数据或多位数据以形成标签数据。在图1中所说明的CAM 10中,标签数据字段12包含0到M位,以形成长度为M+1个位的标签数据字。 提供大小为0到N的的N+1个物理寄存器(每一者包含标签数据字段12以及对应的比较器14和RAM数据字段16)的阵列,以在CAM 10中提供多个标签数据条目。在比较器14中为标签数据字段12中的每一位提供独立的比较器电路。当在CAM 10中执行读取功能时, 提供比较数据18且将其输入到每一比较器14中,以将比较数据18与存储于每一标签数据字段12中的标签数据进行比较。对于与任一标签数据字段12中的标签数据匹配的每一比较数据18,对应比较器14在对应的匹配线20上产生指示匹配的信号。因为在CAM 10中的不同标签数据字段12中通常含有同一标签数据的多个副本,所以通过有效位(VLD) 22来标记正确的标签数据字段12。在CAM中可使用基于静态逻辑的比较器(“基于静态”)或基于动态的比较器。在基于动态的比较器中,为标签数据的每一位提供动态比较器电路。动态比较器电路使用两对晶体管,所述晶体管在匹配线上实施下拉路径。在动态比较器电路中的任一者中,标签数据的位与比较数据的对应位之间的不匹配激活匹配线上的下拉路径到接地。标签数据的所有位与对应的比较数据的所有位之间的匹配使匹配线与接地去耦。动态比较器电路一般比基于静态的比较器电路快,因为其通过接通晶体管以对已预充电的节点放电来进行评估。 基于静态的比较器使用互补金属氧化物半导体(CM0Q逻辑(其中状态转变取决于关闭一晶体管的同时接通另一晶体管),且通常比基于动态的比较器电路慢。然而,基于动态的比较器电路消耗比基于静态的比较器电路多的功率。静态电路在电路的输入改变引起对应的输出改变时消耗动态功率,而动态电路归因于预充电阶段而每时钟循环消耗动态功率,即使在无输入或输出切换活动时也是如此。
对于包括于电池供电的电子装置中的CAM来说,归因于由于无效标签数据的不必要的比较器电路切换而增加的功率耗散可为尤其不合意的。增加的功率耗散导致较快的电池耗竭和较短的电池寿命。因此,可需要在CAM中使用基于静态的比较器电路以降低功率消耗。

发明内容
具体实施方式
中所揭示的实施例包括比较器以及相关电路和方法。所述比较器接收至少一个有效性指示符来作为输入,所述至少一个有效性指示符指示将与对应的比较数据的一个或一个以上位进行比较的数据的一个或一个以上位的有效性。提供基于静态的比较器,且其经配置以响应于所述数据与比较数据的比较和所述至少一个有效性指示符而选择性地切换耦合到匹配线的至少一个比较器输出。如果所述有效性指示符指示有效数据, 则所述基于静态的比较器进行切换以驱动比较器输出,所述比较器输出指示所述数据与对应的比较数据之间的匹配或不匹配。如果所述有效性指示符指示无效数据,则所述基于静态的比较器对比较器输出提供不匹配而不将功率耗散在切换上,而不管所述数据与对应的比较数据之间是否存在匹配。以此方式,所述基于静态的比较器经配置以不将功率耗散在响应于比较数据的改变而针对标记为无效的数据来切换所述比较器输出上。通过提供经配置以在数据标记为无效时不将功率耗散在切换比较器输出上的基于静态的比较器,可实现功率节省,且电路和/或其关键路径具有最小性能降级或无性能降级。在所揭示的实施例中,可在内容可寻址存储器(CAM)中使用所述基于静态的比较器,以用于存取存储于所述CAM中的标签数据。所述CAM针对所述CAM中的标签数据的每一位而包括一基于静态逻辑(“基于静态”)的比较器。在所述CAM中还提供有效性指示符, 其指示给定标签数据是否有效。通过改变提供到所述CAM的所述比较数据而在所述CAM中执行数据查找。所述CAM中的每一基于静态的比较器经配置以响应于对应的标签数据与所述比较数据的比较和所述标签数据的所述有效性指示符而选择性地切换比较器输出。在具体实施方式
中所揭示的实施例中,所述基于静态的比较器包括比较器电路,所述比较器电路包括互补金属氧化物半导体(CM0Q门,所述CMOS门包括具有共同比较器输出的一对互补通过门(pass-gate)。所述比较器电路经配置以在对应的标签数据标记为无效时对两个通过门的输入提供相同逻辑值,以防止响应于比较数据的改变而切换所述比较器输出。另外,为标签数据的每一位提供多个基于静态的比较器,以在CAM中容纳多个读取端口、写入端口或读取端口与写入端口两者。


图1为示范性内容可寻址存储器(CAM)的方框图;图2为CAM的示范性基于静态逻辑(“基于静态”)的比较器电路的门图;图3为使用基于静态的比较器的示范性CAM的电路图;图4为图3的CAM中的基于静态的比较器的逻辑表,其用以响应于对应的标签数据的比较和指示标签数据的有效性的有效性指示符而控制对比较器输出的切换;图5为示范性CAM的电路图,所述CAM的基于静态的比较器根据图4的逻辑表而操作;
图6为替代示范性CAM的电路图,所述CAM的基于静态的比较器根据图4的逻辑表而操作;图7为另一替代示范性CAM的电路图,所述CAM的基于静态的比较器根据图4的逻辑表而操作;图8为用于图5到图7的CAM中的基于静态的比较器的门数的表格图;图9为示范性CAM的示意图,所述CAM具有标签数据阵列且针对标签数据的每一位使用多个基于静态的比较器以支持多个输入端口 ;以及图10为示范性基于微处理器的系统的方框图,所述系统使用根据具体实施方式
中所揭示的实施例的CAM。
具体实施例方式现参看各图式,描述本发明的若干示范性实施例。在本文中使用词“示范性”以指 “充当实例、例子或说明”。没有必要将本文中描述为“示范性”的任何实施例解释为比其它实施例优选或有利。
具体实施方式
中所揭示的实施例包括比较器以及相关电路和方法。所述比较器接收至少一个有效性指示符来作为输入,所述至少一个有效性指示符指示将与对应的比较数据的一个或一个以上位进行比较的数据的一个或一个以上位的有效性。提供基于静态的比较器,且其经配置以响应于所述数据与比较数据的比较和所述至少一个有效性指示符而选择性地切换耦合到匹配线的至少一个比较器输出。如果有效性指示符指示有效数据,则基于静态的比较器进行切换以驱动比较器输出,所述比较器输出指示所述数据与对应的比较数据之间的匹配或不匹配。如果有效性指示符指示无效数据,则基于静态的比较器对比较器输出提供不匹配而不将功率耗散在切换上,而不管所述数据与对应的比较数据之间是否存在匹配。以此方式,基于静态的比较器经配置以不将功率耗散在响应于比较数据的改变而针对标记为无效的数据来切换比较器输出上。通过提供经配置以在数据标记为无效时不将功率耗散在切换比较器输出上的基于静态的比较器,可实现功率节省,且电路和/或其关键路径具有最小性能降级或无性能降级。在所揭示的实施例中,可在内容可寻址存储器(CAM)中使用所述基于静态的比较器,以用于存取存储于所述CAM中的标签数据。所述CAM针对所述CAM中的标签数据的每一位而包括一基于静态逻辑(“基于静态”)的比较器。在所述CAM中还提供有效性指示符, 其指示给定标签数据是否有效。通过改变提供到所述CAM的比较数据而在所述CAM中执行数据查找。所述CAM中的每一基于静态的比较器经配置以响应于对应的标签数据与比较数据的比较和所述标签数据的所述有效性指示符而切换比较器输出。在论述使用不将功率耗散在为无效标签数据切换比较器输出上的基于静态的比较器的CAM实施例之前,首先论述将功率耗散在为无效标签数据切换比较器输出上的CAM 的实例。图2和图3说明此些实施例。图2为针对CAM中的一个标签数据字段的基于静态的比较器对的门图。如图2中所说明,将来自包含M+1个位的标签数据字段沈的每一位输入到专用“同或” (XNOR)门28,30,32,34,36中。进入每一 XNOR门28,30,32,34,36的另一输入为来自比较数据38的对应位。如果标签数据字段沈的给定位与比较数据38的对应位匹配,则从XNOR门28、30、32、34、36输出逻辑高(“1”)到输出线40、42、44、46、48。在组合逻辑49中组合输出线40、42、44、46、48上的来自XNOR门沘、30、32、34、36的信号。 在所说明的实例中,组合逻辑49包含一个或一个以上NAND门52、54,其接收输出信号40、 42、44、46、48且产生输出信号,所述输出信号接着经由NOR门56而一起NOR以提供耦合到匹配线的匹配线输出58。如果标签数据字段沈的所有位与比较数据38的所有对应位匹配,则匹配线输出58将作为逻辑高(“1”)而产生以指示匹配。通过以有效数据(VLD)线 60的形式提供的有效性指示符来另外门控匹配线输出58,所述VLD线60在与输出信号40、 42、44、46、48中的一者或一者以上组合之前输入到缓冲器62中。如果VLD线60指示无效数据,则将产生匹配线输出58以指示不匹配,而不管标签数据字段沈中的标签数据是否与比较数据38匹配。虽然图2中的基于静态的比较器M提供优于基于动态的比较器的功率节省,但功率节省可由于在XNOR门观、30、32、34、36和NAND门52中发生的切换而减少。即使输入到基于静态的比较器M中的标签数据字段沈中的标签数据不有效,XNOR门观、30、32、34、36 和NAND门52仍将随着比较数据38的每一改变而进行切换以执行与比较数据38的比较。 此通过图3中所说明的示范性CAM 74来进一步说明。将图3中的CAM 74说明为电路图。 CAM 74包括存储器76,所述存储器76耦合到基于静态的比较器78。基于静态的比较器是用于静态逻辑中的比较器,其不使用时钟信号来评估比较器中的组合逻辑。存储器76包括一个或一个以上存储器单元(其一般称为元件80)。每一存储器单元80经配置以存储标签数据的一个位。标签数据为存储于CAM 74中的数据,其与搜索或比较数据(CD)98进行比较。当从存储器单元80读取数据时,在驱动线92上断言读取数据且将其馈送到静态CMOS 反相器94( “反相器94”)。反相器94的输出提供标签数据输出96。将标签数据输出96标记为标签<0_N,0> 到标签<0-N,M>,其中M和N为0或大于0的任何整数。此记法表示在CAM 74中提供M+1 个存储器单元80 (即,0到M)以提供长度为M+1个位的标签数据。此记法还表示在CAM 74 中提供标签数据的N+1阵列(即,0到N),每一标签数据在长度上包含M+1个位。因此,尽管图3中展示两个存储器单元80,但应理解,提供多达“M+1”个存储器单元80的一个或一个以上任何数目的存储器单元80,以形成标签数据的位或字。可提供任何数目的存储器单元80的阵列以提供标签数据的阵列。在于CAM 74中的查找期间,将从存储器单元80读取的标签数据提供于标签数据输出96上,且将其提供到比较器78以与比较数据98进行比较。比较数据98仅为搜索数据,其被提供到比较器78以与标签数据进行比较而作为CAM中的查找操作的部分。将比较数据98输入到CAM 74中的所有比较器78中,且在CAM 74中的所有比较器78之间共享。 比较数据98包含与标签数据的位的数目(即,M+1)相同的数目的位。将标签数据输出96 的每一位和比较数据98的对应位输入到专用的基于静态的比较器电路100中。基于静态的比较器电路100包括包含一对互补第一通过门102和第二通过门104的CMOS门,每一通过门包括驱动共同比较器输出110的P沟道MOS晶体管106和N沟道MOS晶体管108以形成“同或”(XNOR)门。比较器输出110为由第一通过门102与第二通过门104的任何切换产生的输出。经由第一信号将标签数据输出96输入到第一通过门102中。反相器112将取决于第一信号的第二信号提供到第二通过门104,在此实例中所述第二信号为标签数据输出96的补码。
在标签数据输出96的逻辑值与比较数据98的对应位相同时,第一通过门102(如果为逻辑低(“0”))或第二通过门104(如果为逻辑高(“1”))切换状态且传递所述标签数据输出96,以将比较器输出110驱动为低(“0”)从而指示匹配。然而,在标签数据输出 96与比较数据98的对应位不匹配时,基于静态的比较器电路100将比较器输出110驱动为高(“1”)以指示不匹配。因此,在此实例中,基于静态的比较器电路100形成“异或”O(OR) 门。在任一情况下,无论标签数据输出96与比较数据98的对应位之间是存在匹配还是不匹配,第一通过门102或第二通过门104均进行切换以驱动比较器输出110来指示匹配或不匹配,而不管对应的标签数据是否有效。因此,图3中的CAM 74中的比较器电路100将切换功率耗散在针对比较数据98的每一改变而执行标签数据输出96与比较数据98的对应位之间的比较上,即使在标签数据被标记为无效时也是如此。经由一个或一个以上额外逻辑门(例如,用以将XOR转换为XNOR门的反相器114) 来传递比较器输出110,以在最终到达组合门116之前提供额外输出115。在此实例中,组合门116为AND门,且针对标签数据的所有位组合来自基于静态的比较器电路100的比较器输出110。如果标签数据的所有位与比较数据98的对应位匹配,则驱动匹配线(ML)IlS 以指示匹配。还将呈有效数据(VLD)线120形式的有效性指示符提供到组合门116,以门控 ML 118的输出。根据对应于标签数据的有效位中的值来驱动VLD线120。如果标签数据并非有效,则将驱动VLD线120以强制不匹配,而不管标签数据输出96与比较数据98的对应位之间实际上是否存在匹配。图4说明根据一个实施例的用于消除在比较数据98改变时针对标记为无效的标签数据而进行的图3的CAM 74的比较器电路100中的切换的逻辑表122。标签数据输出 96(标签<0-Ν,0-Μ>)和标签数据输出96的补码( 标签<0_N,0_M>)分别为到第一通过门 102和第二通过门104的输入。在情况1和情况4中说明图3中的CAM 74的操作。在这些情况中,强制使标签数据输出96(标签<0-N>)和标签数据输出96的补码( 标签<0-N>) 始终相反。因此,通过门102、104中的一者将响应于比较数据98的改变而进行切换且耗散功率,而不管对应于标签数据输出96的标签数据是否被标记为无效。然而,如果强制使标签数据输出96 (标签<0-N>)和标签数据输出96的补码( 标签<0-N>)为逻辑低(“0”) 或逻辑高(“1”)(如逻辑表122中的情况2和情况3中所展示),则第一通过门102和第二通过门104将不会响应于比较数据98的改变而进行切换。比较器输出110将始终保持逻辑低(“0”)(对于情况2)或逻辑高(“1”)(对于情况3)。因此,如果使用VLD线120 来强制标签数据输出96(标签<0-N>)与标签数据输出96的补码( 标签<0-N>)之间的相同逻辑值,则第一通过门102和第二通过门104将不会响应于比较数据98的改变而进行切换。结果,如果使用逻辑表122中的逻辑,则第一通过门102和第二通过门104将不会在对应的标签数据被标记为无效时将功率耗散在响应于比较数据98的改变而进行切换上。在这方面,在本文中和整个本申请案的其余部分所描述的实施例提供使用基于静态的比较器的CAM的电路、逻辑和相关方法,所述基于静态的比较器经配置以响应于标签数据与对应的比较数据的比较和指示所述标签数据的有效性的至少一个有效性指示符而选择性地切换比较器输出。图5说明包括比较器电路的CAM 130的实例,所述比较器电路经配置以在对应的标签数据被标记为无效时不响应于比较数据98的改变来切换比较器输出。CAM 130经配置为根据图4的逻辑表122中的情况3而操作。在这方面,如果VLD线120指示无效标签数据,则对应比较器电路不响应于比较数据的改变来切换状态,且因此不将功率消耗在针对标记为无效的标签数据而执行比较上。如图5中所说明,CAM 130包含存储器132,其用以存储标签数据的一个或一个以上位;以及基于静态的比较器134,其用以将存储于存储器132中的标签数据与输入到CAM 130中的比较数据98进行比较。在此实例中,存储于CAM 130中且与比较数据98进行比较的数据为标签数据。然而,还可提供任何其它类型的数据且将其与比较数据98进行比较。 存储器132和基于静态的比较器134与图3的CAM 74含有某些共同组件。在图3与图5 之间使用共同的元件编号来标注这些共同组件。除非另有注释,否则这些共同组件的先前描述大体上适用于图5的CAM 130,且因此此处将不重复所述描述。在于CAM 130中的查找期间,在驱动线92上断言从存储器单元80读取的标签数据,且将其馈送到反相器94以提供标签数据输出96。在图5的CAM 130中,为每一反相器 94提供包括NMOS晶体管136和PMOS晶体管138的控制电路,以门控标签数据输出96。如果标签数据有效,则VLD线120致使NMOS晶体管136将反相器94耦合到Vss,以使得存储器单元80的所存储的值仍被断言到标签数据输出96上。然而,如果标签数据并非有效,则VLD 线120致使PMOS晶体管138将标签数据输出96从反相器94拉到Vdd或逻辑高(“ 1,,)。因此,对于标记为无效的标签数据,输入到第一通过门102中的信号将为Vdd或逻辑高(“1”), 而不管标签数据字段的存储器单元80中所存储的值。相似地,也将包括NMOS晶体管140和PMOS晶体管142的控制电路提供给每一 CMOS反相器112,所述CMOS反相器112提供输入到第二通过门104中的第二信号,在此实例中,所述第二信号为标签数据输出96的补码。如果标签数据有效,则VLD线120( “1”) 致使NMOS晶体管140将反相器112耦合到Vss,以使得标签数据输出96的补码的值输入到第二通过门104中。然而,如果标签数据被标记为无效,则VLD线120( “0”)致使PMOS晶体管142将反相器112的输出拉到Vdd或逻辑高(“1”)。因此,当标签数据无效时,VLD线 120将标签数据的每一位的第一通过门102和第二通过门104的输入两者强制为Vdd或逻辑高(“1”)。如图4的逻辑表122中的情况3中所提供,当进入第一通过门102和第二通过门104的输入两者被强制为逻辑高(“1”)时,比较器输出110也将被驱动为Vdd或逻辑高 (“1”)。因此,即使比较数据98改变,进入第一通过门102和第二通过门104的输入和比较器输出110也将保持处于相同的逻辑状态。结果,第一通过门102和第二通过门104将不会切换比较器输出110的状态,且由此将不会将功率耗散在针对标记为无效的标签数据来切换状态上。比较器输出110上的逻辑高(“1”)驱动反相器114,所述反相器114使比较器输出110反相以提供额外输出115,所述额外输出115接着在组合门116处任选地与 VLD线120组合以产生ML 118。因此,由于在图5的CAM 130中的每一存储器单元80中添加两个晶体管且在每一基于静态的比较器电路100中添加两个晶体管,耗散切换功率来将无效标签数据与比较数据98进行比较得以消除。此功率节省得以实现,且CAM 130的关键路径无性能降级或具有最小性能降级,所述关键路径为接收比较数据98的节点。使用CAM 130作为模型,在具有 64个标签数据条目(每一者为5位长度)的65纳米(nm)、四十二 0 位的RAM的情况下估计功率节省。在假定所述标签数据条目中的三十二(32)个被标记为有效且其余三十二 (32)个标签数据被标记为无效的情况下,执行两个功能(分配和搜索/RAM读取)。在两个功能中,估计可经由图3的CAM 74中所提供的基于静态的比较器电路100而实现1毫瓦 (mff)的功率节省。对于分配功能,这等同于约百分之二十五(25%)的功率节省,且对于搜索/RAM读取功能,这等同于百分之六点五(6.5% )的功率节省。图6说明也包括基于静态的比较器电路100的CAM 144的替代实施例,所述基于静态的比较器电路100经配置以在对应的标签数据被标记为无效时不响应于比较数据98 的改变来切换比较器输出。CAM 144经配置为根据图4中的逻辑表122中的情况2而操作, 借此对到第一通过门102和第二通过门104的输入两者驱动逻辑低(“0”),以防止在对应的标签数据被标记为无效时切换比较器输出110。这与图5的CAM 130相反,在图5的CAM 130中,对第一通过门102和第二通过门104的输入两者驱动逻辑高(“1”),以防止在对应的标签数据被标记为无效时切换比较器输出110。在这方面,提供呈VLD线150形式的有效性指示符,其在为逻辑高(“1”)时指示标签数据无效,且在为逻辑低(“0”)时指示标签数据有效,这与图5的CAM 130中的VLD线120相反。如图6中所说明,CAM 144包含存储器146,其用以存储标签数据;以及基于静态的比较器148,其用以将来自存储器146的标签数据输出96与对应的比较数据98进行比较。存储器146和基于静态的比较器148与图5的CAM 130和图3的CAM 74含有某些共同组件。在这些图之间使用共同的元件编号来标注这些共同组件。除非另有注释,否则这些共同组件的先前描述大体上适用于图6的CAM 144,且因此此处将不重复所述描述。在于图6的CAM 144中的查找期间,在驱动线92上断言来自存储器单元80的读取标签数据,且将其馈送到静态反相器94以提供标签数据输出96。为每一反相器94提供包括PMOS晶体管152和NMOS晶体管154的控制电路,以门控标签数据输出96。如果标签数据被标记为有效,则 VLD线150将为逻辑低(“0”)且将致使PMOS晶体管152将Vdd耦合到反相器94,以使得存储器单元80的所存储的值被断言到标签数据输出96上。然而,如果标签数据被标记为无效,则 VLD线150将为逻辑高(“1”)且将致使NMOS晶体管IM 将标签数据输出96拉到Vss或逻辑低(即,“0”)。因此,对于标记为无效的标签数据,进入第一通过门102的输入信号将为Vss ( “0”),而不管标签数据字段的存储器单元80中所存储的值。相似地,在每一反相器112中也提供包括PMOS晶体管156和NMOS晶体管158的控制电路,所述反相器112将第二信号提供到第二通过门104中,在此实例中所述第二信号为标签数据输出96的补码。如果标签数据被标记为有效,则 VLD线150( “0”)致使PMOS 晶体管156将CMOS反相器112耦合到VDD( “1”),以使得标签数据输出96的补码的值输入到第一通过门102中。然而,如果标签数据被标记为无效,则 VLD线150 (“1”)致使NMOS 晶体管158将CMOS反相器112的输出拉到Vss或逻辑低(“0”),以将第二通过门104的输入强制为逻辑低(“0”)。因此,当标签数据被标记为无效时, VLD线150致使针对标签数据的每一位的进入第一通过门102和第二通过门104的输入两者为Vss或逻辑低(“0”)。 当进入第一通过门102和第二通过门104的两个输入被强制为逻辑低(即,“0”)时,比较器输出110也将被驱动为Vss或逻辑低。因此,即使提供到第一通过门102和/或第二通过门 104的比较数据98改变,进入第一通过门102和第二通过门104的输入和比较器输出110 也保持处于相同逻辑状态(其在此实例中为逻辑低(“0”))。第一通过门102和第二通过门104将不会切换比较器输出110的状态,且因此,在比较数据98改变时将不会针对标记为无效的标签数据而将功率耗散在切换状态上。将比较器输出110上的逻辑低(“0”)直接提供到组合门116,或使其驱动反相器114,所述反相器114将使比较器输出110反相以提供额外输出115,所述额外输出115接着在组合门160(例如,AND门)处任选地与 VLD 线150组合以产生ML 118。如果未提供反相器114,则将向组合门160提供互补逻辑。因此,正如图5中的CAM 130的情况,在图6的CAM 144中,由于在每一存储器单元 80中添加两个晶体管且在每一基于静态的比较器电路100中添加两个晶体管,耗散切换功率来将无效标签数据与比较数据98进行比较得以消除。此功率节省得以实现,且CAM 144 的关键路径无性能降级或具有最小的性能降级,所述关键路径为接收比较数据98的节点。图7说明也包括比较器电路的CAM 162的又一替代实施例,所述比较器电路经配置以在对应的标签数据被标记为无效时不切换比较器输出。CAM 162经配置为根据图4中的逻辑表122中的情况3和情况4且如同图5的CAM 130而操作。对到第一通过门102和第二通过门104的输入两者驱动相同逻辑值,以防止响应于比较数据98的改变而针对标记为无效的标签数据进行切换。在这方面,图5中的VLD线120在为逻辑高(“1”)时指示标签数据有效,且在为逻辑低(“0”)时指示标签数据无效,这与图6的CAM 144中的 VLD 线150相反。如图7中所说明,CAM 162包含存储器164,其用以存储一个或一个以上标签数据位;以及基于静态的比较器166,其用以将来自存储器164的对应的标签数据与比较数据98 进行比较。存储器164和基于静态的比较器166与图3的CAM 74含有某些共同组件。在图3与图7之间使用共同元件编号来标注这些共同组件。除非另有注释,否则这些共同组件的先前描述大体上适用于图7的CAM 162,且因此此处将不重复所述描述。在于CAM 162中的查找期间,在驱动线92上断言来自存储器单元80的读取标签数据,且将其馈送到反相器94中以提供标签数据输出96 (如图5的CAM 130中所提供)。 然而,不同于图5的CAM 130,在将标签数据输出96提供到基于静态的比较器166之前,不执行对标签数据输出96的进一步门控。这如同图3的CAM 74。在存储器单元80中不需要额外晶体管。将标签数据输出96(标签<0-N,0>)直接输入到第一通过门102中。还将标签数据输出输入到包括“异或”(XOR)门168的控制电路中。还将VLD线150输入到M)R 门168中。XOR门168的输出为输入到第二通过门104中的第二信号。以此方式,当VLD线 120含有指示无效标签数据的逻辑低(“0”)时,进入第一通过门102和第二通过门104两者的输入将为相同逻辑值,由此防止第一通过门102和第二通过门104在比较数据98发生改变时切换比较器输出110的状态。标签数据输出96(无论为逻辑低(“0”)还是逻辑高 (“1”))将被输入到第一通过门102和第二通过门104两者中。因此,不将功率消耗耗费在响应于比较数据98的改变而针对标记为无效的标签数据来切换第一通过门102和第二通过门104上。然而,当VLD线120含有指示有效标签数据的逻辑高(“1”)时,标签数据输出96将作为第一信号输入到第一通过门102中,且标签数据输出96的补码将作为第二信号输入到第二通过门104中。因此,当标签数据被标记为有效时,对于第一通过门102和第二通过门104的正常操作,将发生切换以将标签数据与比较数据98进行比较。在图7的CAM 162中,不同于图5中的CAM 130和图6中的CAM 144的存储器单元 80中所提供,未将额外的晶体管添加到存储器单元80。然而,将XOR门168添加到基于静态的比较器电路100中的每一者。XOR门168包括十个晶体管。因此,与图3的CAM 74相比,具有八个额外晶体管的网被添加到图7的CAM 162。此在图8中的表170中加以说明。 如其中所说明,与图3中的CAM 74相比,对于CAM 130、144,两个额外晶体管被添加到每一存储器单元80和基于静态的比较器电路100,以防止基于静态的比较器电路100在标签数据被标记为无效时响应于比较数据98的改变而进行切换。在图7的CAM 162中,比图3中的CAM 74多添加八个晶体管,分别比图5和图6的CAM 130、144多添加四个晶体管。将图 7的CAM 162中的所有八个额外晶体管提供于比较器电路100中,这与仅两个额外晶体管被添加到基于静态的比较器电路100的图5和图6的CAM 130,144相对。如果将多个输入端口提供到CAM 162中,由此标签数据的每一位的每一输入端口均需要基于静态的比较器 166,则基于静态的比较器电路100中所提供的任何额外晶体管将倍增输入端口的数目。可在微处理器中使用本文中所描述的CAM,所述微处理器具有含有多个写入端口的微处理器寄存器堆。多个写入端口容纳来自各个管线级的写入。微处理器寄存器堆还可含有多个读取端口。具有多个读取端口和写入端口增加了 CAM中的比较器电路的数目。因此,对于具有多个端口的微处理器,使用具有经配置以在标签数据被标记为无效时不切换比较器输出的基于静态的比较器的CAM可实现更大的功率节省。在这方面,图9说明用于使用多个端口的微处理器的CAM 172。所述多个端口可包括多个读取端口、多个写入端口或多个读取端口与多个写入端口两者。在CAM 172中包括多个标签数据字段174、176、178以形成标签数据阵列。在此实例中,提供“N+1”个标签数据字段,每一标签数据字段具有“M+1”个位的长度,其中M和N为0或大于0的任何整数。存储于标签数据字段174、176、178中的标签数据的每一位经由标签数据输出线180、182、184 而输出,且输入到基于静态的比较器186、188、190中。为标签数据的每一标签位提供基于静态的比较器186、188、190。在所有基于静态的比较器186、188、190上共享比较数据193, 以将标签数据的每一位与比较数据193中的对应位进行比较。每一基于静态的比较器186、 188,190经配置以在比较数据193改变且对应的标签数据被标记为无效时不将功率耗散在切换其基于静态的比较器输出192、194、196上。在这方面,使用先前所描述的方法和比较器电路中的任一者来防止基于静态的比较器186、188、190将功率耗散在针对标记为无效的标签数据来切换比较器输出192、194、196上。因为CAM 172用于具有多个输入端口的微处理器中,所以为标签数据的每一位提供多个比较器。这通过基于静态的比较器186、188、 190中的每一者中的“0-P”记法来展示,其意味着在基于静态的比较器186、188、190中包括P+1个比较器电路以促进P+1个输入端口。将来自基于静态的比较器186、188、190的比较器输出192、194、196输入到组合逻辑198、200、202中,以产生匹配线(ML) 204、206、208。 将ML 204、206、208输入到任选的编码器209中,以在标签数据与比较数据193之间存在匹配的情况下提供所述标签数据字段174、176、178的匹配位置210。本文中所揭示的CAM、CAM电路和方法可用于任何电路中,包括(但不限于)基于微处理器的电路或系统中。本文中所揭示的CAM可用于任何类型的基于静态的存储器中, 包括(但不限于)系统存储器或高速缓冲存储器中。本文中所揭示的CAM、CAM电路和方法可包括于或用于任何类型的电子装置中。此些电子装置的实例包括(但不限于)移动电话、 蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、数字音乐播放器、便携式音乐播放器、数字视频播放器、数字视频光盘(DVD)播放器和便携式数字视频播放器。
图10说明基于处理器的系统211的实例,所述系统211可使用如先前描述的CAM 的CAM。在此实例中,基于处理器的系统211包括中央处理单元(CPU) 212,所述CPU 212包括微处理器214。微处理器214经配置以与CAM 216通信,以将数据写入到标签数据阵列 218和从标签数据阵列218读取数据。CPU 212耦合到系统总线219,所述系统总线219使包括于基于处理器的系统211中的其它装置相互耦合。如众所周知,CPU 212通过经由系统总线219交换地址、控制和数据信息而与这些其它装置通信。这些装置可包括任何类型的装置。如图10中所说明,这些装置可包括(例如)系统存储器220、一个或一个以上输入装置222、一个或一个以上输出装置224、网络接口装置2 和显示器控制器228。输入装置222可包括任何类型的输入装置,包括(但不限于)输入键、开关、话音处理器等。输出装置2M可包括任何类型的输出装置,包括(但不限于)音频、视频、其它视觉指示器等。网络接口装置2 可为经配置以允许交换去往和来自网络230的数据的任何装置。网络230可为任何类型的网络,包括(但不限于)有线或无线网络、私用或公共网络、局域网(LAN)、广域网(WLAN)和因特网。网络接口装置2 可支持所要的任何类型的通信协议。CPU 212可经由系统总线219来存取系统存储器220。系统存储器220可包括静态存储器232和/或动态存储器M4。CPU 212还可经由系统总线219来存取显示器控制器228,以控制发送到显示器 236的信息。显示器控制器2 可包括存储器控制器237和存储器238,所述存储器238用以响应于与CPU 212的通信而存储待发送到显示器236的数据。显示器控制器2 经由视频处理器240将信息发送到显示器236以进行显示,所述视频处理器240将待显示的信息处理为适合于显示器236的格式。显示器236可包括任何类型的显示器,包括(但不限于) 阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器等。所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的此互换性,上文已大体上在功能性方面描述了各种说明性组件、块、 模块、电路和步骤。将所述功能性实施为硬件还是软件视特定使用和强加于整个系统的设计约束而定。所属领域的技术人员可针对每一特定使用以不同方式实施所描述的功能性, 但所述实施决策不应被解释为会导致脱离本发明的范围。结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块和电路可存储并比较任何类型的数据(包括但不限于标签数据),且可使用任何信号电平来实施或执行,以提供逻辑真和逻辑假。逻辑真可表示为逻辑高(“1”,Vdd)且逻辑假可表示为逻辑低(“0”, Vss),或反之亦然。还可使用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块和电路。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。还可将处理器实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器,或任何其它此类配置。应注意,描述本文中的示范性实施例中的任一者中所描述的操作步骤旨在提供实例和论述。可以除所说明的序列外的众多不同序列来执行所描述的操作。此外,在单一操作步骤中描述的操作实际上可在许多不同步骤中执行。另外,可组合在示范性实施例中论述的一个或一个以上操作步骤。应理解,如所属领域的技术人员将容易明白,流程图中所说明的操作步骤可经受众多不同修改。所属领域的技术人员还将理解,可使用多种不同技艺和技术中的任一者来表示信息和信号。举例来说,可在整个上文描述中参考的数据、指令、 命令、信息、信号、位、符号和码片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示。结合本文中所揭示的实施例而描述的方法或算法的步骤可直接以硬件、以由处理器执行的软件模块或以两者的组合来体现。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、 硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器和存储媒体可作为离散组件而驻留于远程站、基站或服务器中。提供对本发明的先前描述以使得所属领域的任何技术人员均能够制作或使用本发明。所属领域的技术人员将容易明白对本发明的各种修改,且在不脱离本发明的精神或范围的情况下,本文中所界定的一般原理可应用于其它变化。因此,本发明无意限于本文中所描述的实例和设计,而是将赋予本发明与本文中所揭示的原理和新颖特征一致的最广范围。
权利要求
1.一种比较器,其包含至少一个有效性指示符,其指示数据的有效性;以及至少一个基于静态的比较器,其经配置以响应于所述数据与比较数据的比较和所述至少一个有效性指示符而选择性地切换耦合到匹配线的至少一个比较器输出。
2.根据权利要求1所述的比较器,其中所述至少一个基于静态的比较器进一步经配置以在所述至少一个有效性指示符指示无效数据的情况下不切换所述至少一个比较器输出。
3.根据权利要求1所述的比较器,其中所述至少一个基于静态的比较器进一步经配置以在所述至少一个有效性指示符指示有效数据的情况下切换所述至少一个比较器输出。
4.根据权利要求1所述的比较器,其进一步包含有效位线,所述有效位线经配置以载运指示所述数据的所述有效性的信号,其中所述有效位线为进入所述至少一个基于静态的比较器的输入。
5.根据权利要求1所述的比较器,其中所述至少一个基于静态的比较器包括第一通过门,其适于接收基于所述数据的第一信号来作为输入;以及第二通过门,其适于接收取决于所述第一信号的第二信号来作为输入,其中所述第一通过门和所述第二通过门经配置以驱动所述至少一个比较器输出。
6.根据权利要求5所述的比较器,其中所述第二通过门适于响应于所述至少一个有效性指示符指示无效数据而接收具有所述数据的逻辑值的所述第二信号,且所述第一通过门适于响应于所述至少一个有效性指示符指示无效数据而接收具有所述数据的所述逻辑值的补码的所述第一信号。
7.根据权利要求5所述的比较器,其中所述第一通过门适于响应于所述至少一个有效性指示符指示有效数据而接收具有所述数据的所述逻辑值的所述第一信号,且所述第二通过门适于响应于所述至少一个有效性指示符指示有效数据而接收具有所述数据的补码的所述第二信号。
8.根据权利要求1所述的比较器,其中所述至少一个基于静态的比较器包含“异或”(XOR)门或“同或”(XNOR)门,所述至少一个基于静态的比较器经配置以基于分别对所述数据和所述比较数据进行的XOR或XNOR门控而产生所述至少一个比较器输出。
9.根据权利要求1所述的比较器,其中所述至少一个比较器输出耦合到进入组合门的输入,所述组合门耦合到所述匹配线。
10.根据权利要求1所述的比较器,其中所述比较器包括于电子装置中,所述电子装置包含由以下各物组成的群组基于微处理器的装置、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、 卫星无线电、数字音乐播放器、便携式音乐播放器、数字视频播放器、数字视频光盘(DVD) 播放器和便携式数字视频播放器。
11.一种比较器,其包含用于指示数据的有效性的装置;以及用于响应于所述数据与比较数据的比较和所述用于指示所述数据的所述有效性的装置而选择性地切换耦合到匹配线的至少一个比较器输出的装置。
12.—种比较数据的方法,其包含将比较数据作为输入接收到至少一个基于静态的比较器中;将数据作为输入接收到所述至少一个基于静态的比较器中;将指示所述数据的有效性的至少一个有效性指示符作为输入接收到所述至少一个基于静态的比较器中;以及选择性地比较所述数据与所述比较数据和所述至少一个有效性指示符。
13.根据权利要求12所述的方法,其进一步包含响应于所述数据与所述比较数据的所述比较和所述至少一个有效性指示符而选择性地控制对耦合到匹配线的至少一个比较器输出的切换。
14.根据权利要求13所述的方法,其进一步包含在所述至少一个有效性指示符指示无效数据的情况下防止切换所述至少一个比较器输出。
15.根据权利要求13所述的方法,其进一步包含在所述至少一个有效性指示符指示有效数据的情况下允许切换所述至少一个比较器输出。
16.根据权利要求13所述的方法,其中选择性地比较所述数据与所述比较数据包含从第一通过门和第二通过门驱动所述至少一个比较器输出,所述第一通过门接收基于所述数据的第一信号来作为输入,所述第二通过门接收取决于所述第一信号的第二信号来作为输入。
17.根据权利要求16所述的方法,其进一步包含响应于所述至少一个有效性指示符指示无效数据而将具有所述数据的逻辑值的所述第二信号接收到所述第二通过门中,且将具有所述数据的所述逻辑值的补码的所述第一信号接收到所述第一通过门中。
18.根据权利要求16所述的方法,其进一步包含响应于所述至少一个有效性指示符指示无效数据而将具有所述数据的逻辑值的所述第一信号作为输入接收到所述第一通过门中,且将具有所述数据的所述逻辑值的补码的所述第二信号作为输入接收到所述第二通过门中。
19.根据权利要求12所述的方法,其中接收所述数据进一步包含基于所述至少一个有效性指示符来控制所述数据。
20.根据权利要求12所述的方法,其进一步包含将载运所述至少一个比较器输出的信号作为输入提供到组合门中。
21.—种在比较器中执行数据查找的方法,其包含以下步骤用于在至少一个基于静态的比较器中接收比较数据的步骤;用于将数据作为输入接收到所述至少一个基于静态的比较器中的步骤;用于将指示所述数据的有效性的至少一个有效性指示符作为输入接收到所述至少一个基于静态的比较器中的步骤;以及用于选择性地比较所述数据与所述比较数据和所述至少一个有效性指示符的步骤。
22.—种内容可寻址存储器(CAM),其包含至少一个存储器单元,其经配置以存储数据;至少一个有效性指示符,其指示所述数据的有效性;以及至少一个基于静态的比较器,其经配置以响应于所述数据与比较数据的比较和所述至少一个有效性指示符而选择性地切换耦合到匹配线的至少一个比较器输出。
23.根据权利要求22所述的CAM,其中所述至少一个基于静态的比较器进一步经配置以在所述至少一个有效性指示符指示无效数据的情况下不切换所述至少一个比较器输出。
24.根据权利要求22所述的CAM,其中所述至少一个基于静态的比较器进一步经配置以在所述至少一个有效性指示符指示有效数据的情况下切换所述至少一个比较器输出。
25.根据权利要求22所述的CAM,其进一步包含有效位线,所述有效位线经配置以载运指示所述数据的所述有效性的信号,其中所述有效位线为进入所述至少一个基于静态的比较器的输入。
26.根据权利要求22所述的CAM,其中所述至少一个比较器输出耦合到进入组合门的输入,所述组合门耦合到所述匹配线。
27.根据权利要求22所述的CAM,其中所述至少一个存储器单元包括多个存储器单元, 每一存储器单元经配置以存储一数据位以形成所述数据。
28.根据权利要求27所述的CAM,其中所述至少一个基于静态的比较器包括多个基于静态的比较器,每一基于静态的比较器经配置以响应于一数据位与比较数据的对应位的比较和所述至少一个有效性指示符而选择性地切换耦合到所述匹配线的至少一个比较器输出ο
29.根据权利要求22所述的CAM,其中所述至少一个基于静态的比较器包括多个基于静态的比较器,每一基于静态的比较器对应于进入所述CAM的多个输入端口中的一者。
30.根据权利要求22所述的CAM,其中所述数据包括标签数据。
31.根据权利要求22所述的CAM,其中所述CAM包括于电子装置中,所述电子装置包含由以下各物组成的群组基于微处理器的装置、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、数字音乐播放器、便携式音乐播放器、数字视频播放器、数字视频光盘(DVD)播放器和便携式数字视频播放器。
全文摘要
本发明揭示用于比较数据的基于静态的比较器(78)和方法。所述基于静态的比较器(114)经配置以响应于对应数据(96)与比较数据(98)的比较和用于所述数据的有效性指示符(120)而选择性地切换至少一个比较器输出(110)。如果所述有效性指示符指示有效数据,则所述基于静态的比较器进行切换以驱动所述比较器输出,所述比较器输出指示对应的所比较数据之间的匹配或不匹配。如果所述有效性指示符指示无效数据,则所述基于静态的比较器在不切换所述基于静态的比较器的情况下对所述比较器输出提供不匹配,而不管所述数据是否与所述比较数据匹配。以此方式,所述基于静态的比较器不将功率耗散在针对标记为无效的数据来切换所述比较器输出上。所述基于静态的比较器可用于内容可寻址存储器(CAM)中,以用于将标签数据的一个或一个以上位与比较数据的对应位进行比较。
文档编号G06F12/10GK102272851SQ201080004269
公开日2011年12月7日 申请日期2010年1月21日 优先权日2009年1月22日
发明者格雷戈里·克里斯托弗·布尔达, 耶什万特·纳加拉杰·卡拉, 贾森·菲利普·马茨洛夫 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1