CN102707788A - 用于保持其功耗低于指定功率限制的内容搜索***及方法 - Google Patents

用于保持其功耗低于指定功率限制的内容搜索***及方法 Download PDF

Info

Publication number
CN102707788A
CN102707788A CN2012100792711A CN201210079271A CN102707788A CN 102707788 A CN102707788 A CN 102707788A CN 2012100792711 A CN2012100792711 A CN 2012100792711A CN 201210079271 A CN201210079271 A CN 201210079271A CN 102707788 A CN102707788 A CN 102707788A
Authority
CN
China
Prior art keywords
search
piece
cam
content
addressable memory
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.)
Granted
Application number
CN2012100792711A
Other languages
English (en)
Other versions
CN102707788B (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.)
Broadcom Corp
Original Assignee
Netlogic Microsystems 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 Netlogic Microsystems Inc filed Critical Netlogic Microsystems Inc
Publication of CN102707788A publication Critical patent/CN102707788A/zh
Application granted granted Critical
Publication of CN102707788B publication Critical patent/CN102707788B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于保持其功耗低于指定功率限制的内容搜索***及相关方法。包括具有多个CAM块的CAM设备和调节器逻辑的一种内容搜索***,接收搜索请求且对执行所请求的搜索所需的CAM块的数量与一个有限的数量进行比较,所述有限的数量是允许使用在被请求的搜索操作中的CAM块的最大数量。如果执行所请求的搜索所需的CAM块的数量超过允许使用在被请求的搜索操作中的CAM块的最大数量,则所述搜索操作被拒绝。调节操作可在每个请求的搜索上执行,从而限制功耗。CAM块的最大数量和功耗间的关系可特征化,且相应的块限制值存入可由调节器逻辑访问的存储器中。

Description

用于保持其功耗低于指定功率限制的内容搜索***及方法
技术领域
本发明涉及内容搜索***,更具体地说,涉及内容可寻址存储器的功率限制技术。
背景技术
内容可寻址存储器(CAM)设备经常使用在网络交换和路由应用(routingapplications)中,用于确定转发目的地、执行分类应用功能、实施质量服务(QoS)功能、和执行与网络上的路由数据包有关联的其它任务。例如,由本地因特网服务提供商(ISPs)使用的路由器通常包括一个或多个CAM设备,用于存储多个因特网地址和/或相关数据,例如,相应的地址路由信息。当数据包被路由到目的地地址时,该目的地地址作为搜索关键字提供到CAM设备,且与存储在CAM阵列的所有CAM字(例如,因特网地址)进行比较。如果所述搜索关键字和存储在CAM阵列的数据间存在匹配,与匹配的CAM字对应的匹配信息被输出且此后用于路由所述数据。
更具体地说,CAM设备包括CAM阵列,CAM阵列具有多个以若干行和列的形式编排的CAM单元。可用于存储CAM字的CAM单元的每一行与相应的匹配线连接,匹配线可表明与其连接的行的匹配结果。CAM单元的每一列通常连接一个或多个数据线或数据线对,用于在写入操作期间传送数据到选择的CAM行,和/或用于在比较操作期间提供搜索关键字到CAM行。在比较操作期间,搜索关键字(例如,比较字)被提供到CAM阵列且与存储在其中的CAM字进行比较。对于匹配搜索关键字的每个CAM字,相应的匹配线被置为有效(assert)以表明匹配条件,且优先编码器确定匹配地址或CAM阵列中的最高优先级匹配(HPM)项的索引。
与在CAM设备中执行搜索操作相关的功耗与每个CAM阵列块的总规模(例如,行数)、CAM设备中的CAM块的数量、以及其它因素有关。例如,在比较操作之前对所有匹配线进行预充电,和再对不能表明匹配条件的与CAM行相关的匹配线进行放电,会消耗大量的功率,同样会消耗显著的功率的是,将搜索关键字提供到每个CAM块以用于比较操作。
CAM架构和半导体工艺技术的进展大大提高了存储密度和数据吞吐量。但是,随着存储密度和数据吞吐量的提高,能量消耗和热量的产生也随之增加了。事实上,热约束作为潜在的限制因素出现在实现更大的存储密度和数据传输速度上。在网络环境中,众多因素,例如,数据包大小、数据包内容、和比较操作的特征,可影响部署于其中的CAM设备的性能和能耗。
为了避免可损坏网络组件的功耗尖峰(例如,由于过热),网络结构通常指定被选择用于部署在网络中的各种组件的最大功耗。因此,网络组件(例如CAM设备)的制造商通常需要确保其生产的组件不会超过由网络架构指定的功耗限制。由于不同的网络结构具有各种指定功耗限制以使CAM设备部署于其中,对于CAM的制造商来说,在没有构建具有各种不同功率限制的CAM设备的情况下,要同时满足由不同网络客户指定的各种功耗限制往往是困难的。
因此,需要单个设备能满足由各种网络客户指定不同功耗限制。
发明内容
根据本发明的一个方面,一种用于保持其功耗低于指定功率限制的内容搜索***,所述***包括:
多个内容可寻址存储器(CAM)块,每个具有CAM单元阵列;
配置存储器,用于存储块限制值,所述块限制值表明能同时搜索的没有超过指定功率限制的所述CAM块的最大数量;及
连接到所述CAM块和所述配置存储器的调节器逻辑,用于仅当所请求的所述CAM块的数量小于或等于所述块限制值时,允许搜索操作在所请求的数量的所述CAM块中执行。
优选地,如果所请求CAM块的数量大于所述块限制值,所述调节器逻辑拒绝所述搜索操作。
优选地,所述调节器逻辑包括用于接收搜索请求的输入,所述搜索请求可表明为所述搜索操作所请求的CAM块的数量。
优选地,所述配置存储器包括非易失性只读存储器元件。
优选地,所述配置存储器包括熔断器组(fuse bank)。
优选地,所述块限制值是在所述内容搜索***的仿真或测试期间确定的。
优选地,所户内容搜索***进一步包括:
连接到所述调节器逻辑的块选择控制器,用于在所述搜索操作期间选择性使能所请求的CAM块和禁用未被请求的CAM块。
优选地,如果所述请求的数量大于所述块限制值时,所述块选择控制器禁用所有的CAM块。
优选地,所述调节器逻辑包括:
解析器电路,具有用于接收搜索请求的输入且可用于从所述搜索请求提取搜索关键字和搜索简档ID(profile ID);
简档表,用于选择存储在其中的多个搜索简档中的一个,以响应所述提取的搜索简档ID;及
比较逻辑,用于对所述选择的搜索简档和所述块限制值进行比较以生成可选择性使所述搜索操作被执行的搜索使能信号。
优选地,所述选择的搜索简档表明哪些CAM块被请求用于所述搜索操作。
优选地,所述内容搜索***进一步包括:
块选择控制器,具有用于接收所述选择的搜索简档和所述搜索使能信号的输入,且具有用于生成多个块使能信号的输出,每个所述块使能信号为所述搜索操作使能所述多个CAM块的相应的一个。
优选地,所述块使能信号是为响应所述选择的搜索简档而被选择性地置为有效的。
优选地,如果所述搜索使能信号被撤销,所有的所述块使能信号被撤销以禁用所有的相应的CAM块。
根据本发明的一个方面,提供一种用于在搜索操作期间保持其功耗低于指定功率限制的内容搜索***,所述***包括:
多个内容可寻址存储器(CAM)块,每个具有CAM单元阵列;
调节器逻辑,具有第一输入,用于接收可表明能同时搜索的没有超过所述指定功率限制的所述CAM块的最大数量的块限制值、具有第二输入,用于接收可为所述搜索操作请求若干所述CAM块的搜索请求、和具有用于生成搜索使能信号的输出;及
块选择控制器,具有用于接收所述搜索使能信号和与所述搜索请求有关的信息的输入,和具有用于生成多个块使能信号的输出,所述输出中的每个为所述搜索操作使能所述多个CAM块的相应的一个。
优选地,仅当所请求的数量小于或等于所述块限制值时,所述调节器逻辑将所述搜索使能信号置为有效,以允许所述搜索操作在所请求的数量的CAM块中执行。
优选地,如果所述搜索使能信号被置为有效,所述块选择控制器选择性地将所述块使能信号置为有效,以仅使能由所述搜索请求所请求的所述CAM块。
优选地,如果CAM块的所请求的数量大于所述块限制值,所述调节器逻辑撤销所述搜索使能信号以防止所述搜索操作被执行。
优选地,如果所述搜索使能信号被撤销(de-assert),所述块选择控制器撤销所有的所述块使能信号以禁用所有的所述CAM块。
优选地,所述内容搜索***进一步包括:
非易失性只读存储器元件,用于存储所述块限制值。
优选地,在所述内容搜索***的部署之前,所述块限制值编程到所述非易失性只读存储器元件。
优选地,所述块限制值在所述内容搜索***的仿真或测试期间确定。
优选地,所述调节器逻辑包括:
解析器电路,用于从所述搜索请求提取搜索简档ID;
简档表,用于选择多个搜索简档中的一个以响应所述提取的搜索简档ID;及
比较逻辑,用于对所述选择的搜索简档和所述块限制值进行比较以生成所述搜索使能信号。
优选地,所述选择的搜索简档表明哪些CAM块是为所述搜索操作所请求的。
根据本发明的一个方面,提供一种用于保持包括多个内容可寻址存储器(CAM)块的内容搜索***的功耗低于指定的功率限制的方法,所述方法包括:
接收为所述内容搜索***中的搜索操作请求若干所述CAM块的搜索请求;
从存储器元件中找回可表明能同时搜索的没有超过所述指定的功率限制的所述CAM块的最大数量的块限制值;及
仅当所请求的CAM块的数量小于或等于所述块限制值时,执行所述搜索操作。
优选地,如果所请求的CAM块的数量大于所述块限制值,所述搜索请求被拒绝。
优选地,所述执行进一步包括:
从所述搜索请求提取搜索简档ID;
选择存储在简档存储器中的多个搜索简档中的一个以响应所述提取的搜索简档ID;及
比较所述搜索简档与所述块限制值以生成搜索使能信号。
优选地,如果所述搜索使能信号被置为有效,则:
仅使能由所述搜索请求所请求的所述CAM块,及
禁用所有的未被请求的CAM块。
优选地,如果所述搜索使能信号被撤销,则:
禁用所有的CAM块。
根据本发明的一个方面,提供一种用于在搜索操作期间保持其功耗低于指定功率限制的内容搜索***,所述***包括:
用于接收为所述内容搜索***中的搜索操作请求若干所述CAM块的搜索请求的设备;
用于从存储器元件中检索可表明能同时搜索的没有超过所述指定的功率限制的所述CAM块的最大数量的块限制值的设备;及
用于仅当所请求的CAM块的数量小于或等于所述块限制值时执行所述搜索操作的设备。
优选地,如果所请求的CAM块的数量大于所述块限制值,所述搜索请求被拒绝。
优选地,用于执行的所述设备进一步包括:
用于从所述搜索请求提取搜索简档ID的设备;
用于选择存储在简档内存中的多个搜索简档中的一个以响应所述提取的搜索简档ID的设备;及
用于比较所述搜索简档与所述块限制值以生成搜索使能信号的设备。
优选地,所述***进一步包括:
如果所述搜索使能信号被置为有效,用于仅使能由所述搜索请求所请求的所述CAM块及禁用所有的未被请求的CAM块的设备。
优选地,用于使能的设备包括块选择控制器。
附图说明
本发明是通过示例的方式进行说明的,且不受对附图的描述的限制。
图1示出了根据本发明的一些实施例配置的包括CAM设备的内容搜索***;
图2是根据本发明一些实施例的、CAM块的框图;
图3A是根据本发明若干实施例的、图1中的调节器逻辑的框图;
图3B是根据本发明其它实施例的、图1中的调节器逻辑的框图;
图4A描绘了根据本发明若干实施例的、示范性搜索请求;
图4B描绘了图3中的搜索简档表的示范性实施例;
图4C描述了根据本发明一些实施例的、存储在图4B中的搜索简档表中的示范性搜索简档;
图5A是根据本发明一实施例的、表明非线性关系的、作为使能的CAM块的数量的函数的功耗的曲线图;
图5B是根据本发明一实施例的、显示线性关系的、作为使能的CAM块的数量的函数的功耗的曲线图;
图5C是根据本发明一实施例的、显示特定功率配置点的、作为使能的CAM块的数量的函数的功耗的曲线图;
图6是根据本发明若干实施例的、用于保持内容搜索***100的功耗低于特定功率限制的操作的流程图;
图7是根据本发明若干实施例的、提交块映像的方法的实施例的流程图。
在整个附图中,类似的标号代表相应的部分。
具体实施方式
本发明所公布的实施例在内容搜索***100的上下文中进行论述,且仅供参考。应理解,这样的实施例同样适用于其它内容搜索***和/或具有任何适当类型的CAM单元的其它配置的CAM结构。另外,所公布的架构配置可由其它类型的存储器块实现,例如,RAM、闪存和EEPROM。电路单元或块间的互连作为总线或作为单根信号线示出,每个总线可替代性地作为单一信号线,且每个单根信号线可替代性地作为总线。此外,分配给下述中的各种信号的逻辑电平是任意的,且因此可按需修改(例如,反极性)。因此,在此描述的实施例不应解释为受到描述在此的具体示例的限制,其范围包括权利要求所定义的所有实施例。
本发明公布的内容搜索***包括具有多个CAM块的CAM设备,且包括调节器逻辑,用于在执行于其中的搜索操作期间保持内容搜索***的功耗低于指定功率限制。在操作中,所述搜索***接收包括搜索关键字(search key)和搜索简档ID的搜索请求。所述搜索简档ID可表明哪些CAM被请求用于带有所述搜索关键字的搜索操作,且从而也可表明为所述搜索操作所请求的CAM块的总数量。所述调节器逻辑访问配置存储器以检索块限制值(blocklimit value),所述块限制值表明能同时搜索的没有超过指定功率限制的CAM块的最大数量,然后,所述调节器逻辑对所请求的CAM块的数量和所述块限制值进行比较以生成搜索使能信号(search enable signal),所述搜索使能信号可选择性地允许所述搜索操作在所述搜索***中执行。更具体地说,如果所请求的CAM块的数量小于或等于所述块限制值,所述调节器逻辑将所述搜索使能信号置为有效,以使所述搜索操作在所请求的CAM块中执行。对于一些实施例,由所述简档ID确定的搜索简档用于生成块使能信号,所述块使能信号可使能由所述搜索请求所请求的CAM块,且可禁用所有的其它(例如,未被请求的)CAM块,从而确保仅仅所请求的CAM块被用于所述搜索操作,以至于使所述指定功率限制不会被超过。相反地,如果所请求的CAM的数量大于所述块限制值,所述调节器逻辑撤销所述搜索使能信号以防止所述搜索操作在任何CAM块中执行(例如,由于允许所述搜索操作的进行将导致指定功率限制被超过)。以这种方式,这样的实施例可确保所述内容搜索***不会超过指定功率限制。
对于一些实施例,指定功率限制可由客户提供到所述内容搜索***的制造商,且同时搜索的CAM块的数量和功耗间的关系可特征化(例如,在所述搜索***的仿真和/或测试期间)。利用该特征,能同时搜索的没有超过指定功率限制的CAM块的最大数量可被确定,且作为所述块限制值存储在所述配置存储器中。以这种方式,所述内容搜索***可以进行不同的配置,以满足由客户为不同的应用所提供的各种指定功率限制(例如,通过将不同的块限制值存储在配置存储器中)。例如,如果第一客户指示所述搜索***的功耗不能超过10瓦,那么制造商可将为搜索操作所请求的CAM块的数量限制为相应的数值(例如,整数值X),而如果第二客户指示所述搜索***的功耗不能超过20瓦,那么制造商可将为搜索操作所请求的CAM块的数量限制为相应的更大的数值(例如,整数值Y>X),等等。
在一实施例中,调节器逻辑包括用于接收配置覆盖信号(configurationoverride signal)的输入,所述配置覆盖信号可使所述调节器逻辑允许所有的搜索请求(即使是那些将超过指定功率限制的搜索请求)。这将会使客户动态覆盖预定的功率限制约束,例如,如果应用需求在所述内容搜索***的部署之后发生改变。
图1示出了根据本发明一些实施例的内容搜索***100。图中所示的内容搜索***包括多个内容可寻址存储器(CAM)块102(1)-102(n),优先级编码器106、CAM块选择控制器110、调节器逻辑120、和配置存储器130。总之,如果所请求的搜索操作被确定属于指定功率限制的范围,调节器逻辑120和块选择控制器110选择性允许搜索操作在所请求的一组CAM块102中执行。
每个CAM块102包括CAM阵列104,CAM阵列104具有用于存储可搜索的数据于其中的多行CAM单元(为简单起见,未在图1中显示)。每行CAM单元还可包括一个或多个可表明有效数据是否存储于行中的有效位。所述有效位可用于以众所周知的方式生成CAM块102的满标志(full flag)。CAM102可以是任何适当类型的CAM块,包括,例如,同步或异步,且所述CAM单元可以是任何适当类型的CAM单元,包括,例如,二元、三元、和/或四元CAM单元。再者,每个CAM102块可以是任何适当的规模,且在一些实施例中,CAM块102(1)-102(n)可以是不同的规模。在一实施例中,每个CAM块102包括1k(1024)行CAM单元。
在比较操作期间提供到内容搜索***的其它信号可以是时钟信号(为简单起见,未显示)、一个或多个来自指令解码器的指令(为简单起见,未显示)、和其它控制信号。在一些实施例中,可通过相同给的总线提供指令和比较用数据(comparand data)到CAM块102(1)-102(n),其它已知的信号也可以被提供到CAM块102,例如,字使能信号、复位信号,且为简单起见,使能信号未在图1中显示。
在搜索操作(例如,比较操作)期间,每个CAM块102选择性接收搜索关键字(SK),所述搜索关键字(SK)可与存储在块的CAM阵列104的行中的数据进行比较。作为对此的响应,为所述搜索操作使能的CAM块102(1)-102(n)通过相应的一组匹配线ML_1到ML_n提供匹配结果到优先级编码器106。为简单起见,来自每个CAM块102的多个匹配线ML在图1中一起表示。优先级编码器106利用由使能的CAM块提供的匹配结果,以生成与设备100中的匹配的CAM字中的一个对应的索引(idex)。在一实施例中,优先级编码器106输出最高优先级匹配(HPM)的索引(IDX)。所述最高优先级匹配可以是最低编号地址、最高编号地址、或任何其它可选地址。
为了便于此处的论述,设备100中的第一CAM块102(1)指定为最高优先级块,第二CAM块102(2)指定为下一个最高优先级块,以此类推,最后的CAM块102指定为最低优先级块,然而,在实际实施例中,优先级可以颠倒或以其它方式修改。因此,最高优先级CAM块102(1)可包括最低CAM地址(即,CAM地址0到k-1),下一个最高优先级CAM块102(2)可包括下一个最低CAM地址(即,CAM地址k到2k-1),以此类推,最低优先级CAM块102(n)可包括最高CAM地址(即,CAM地址(n-1)k到nk-1)。
配置存储器130存储块限制值(BLK_LIM),所述块限制值(BLK_LIM)表明能同时搜索的没有超过指定功率限制的CAM块102的最大数量。如上所述,对于一些实施例,指定功率限制可由客户提供到内容搜索***100的制造商,且同时搜索的CAM块的数量和相关功耗之间的关系可用于确定能同时搜索的没有超过指定功率限制的CAM块的最大数量。对于一些实施例,相应的指定功率限制的块限制值可在***100的仿真和/或测试期间确定,且在搜索***100交付给用户之前存储在配置存储器130中。对于其它实施例,客户可将适当的块限制值编程到配置存储器130。
配置存储器130可以是任何适当类型的存储器元件。对于一些实施例,配置存储器130是只读非易失性存储器元件,例如,ROM、PROM、和/或熔断器组(fuse bank)。对于其它实施例,配置存储器130可利用其它非易失性存储器形成,例如,EEPROM和闪存元件。对于配置存储器130是利用熔丝实现的实施例,可在与内容搜索***100相同的包中提供熔丝阵列。对熔丝的编程(即,“烧断”熔丝以产生,或使逻辑“1”或逻辑“0”与熔丝相关联)可由软件程序或用于“烧断”熔丝位的其它指令来执行。
调节器逻辑120包括:第一输入,用于从网络接口或网络处理器(为简单起见,未显示)接收搜索请求(SRCH_RST);第二输入,用于从配置存储器130接收块限制值(BLK_LIM);以及输出,用于提供搜索关键字(SK)、搜索简档(SRCH_PFL)、和/或搜索使能信号(SRCH_EN)到CAM块选择控制器110。调节器逻辑120还包括用于生成确认/错误(ACK/ERROR)信号的其它输出,所述确认/错误(ACK/ERROR)信号可被提供回所述网络接口或所述网络处理器。对于其它实施例,所述搜索关键字可从调节器逻辑直接提供到CAM块102。
所述搜索请求包括搜索关键字(SK)和简档ID。所述简档ID可表明CAM102(1)-102(n)中的哪些被请求用于相应的搜索操作(所述搜索关键字和存储在所请求的CAM块102中的数据间的搜索操作)。调节器逻辑120对所请求的CAM块的数量(由简档ID表明)与能同时搜索的没有超过指定功率限制的CAM块102的最大数量(由BLK_LIM表明)进行比较。如果所请求的CAM块102的数量少于或等于所述块限制值,则调节器逻辑120将所述搜索使能信号(SRCH_EN)置为有效,且提供由所述简档ID确定的搜索简档(SRCH_PFL)到CAM块选择控制器110。作为对此的响应,块选择控制器110将与所请求的CAM块102相关的块使能信号(BLK_EN)置为有效(例如,到逻辑高),以使能所请求的CAM块102对所述搜索关键字和存储在其中的数据进行比较,且撤销(例如,到逻辑低)与其它CAM块102相关的所述块使能信号(BLK_EN)以使未被请求的CAM块102不能参加所述搜索操作(例如,以至于未被请求的CAM块102在所述搜索操作期间不消耗功率)。调节器逻辑120还可将ACK信号置为有效,以提醒请求者(例如,所述网络接口或网络处理器)所请求的搜索操作是可在所请求的CAM块102中进行的。
相反地,如果所请求的CAM块102的数量大于所述块限制值,则调节器逻辑120撤销所述搜索使能信号(SRCH_EN),且发出ERROR信号以提醒请求者(例如,所述网络接口或网络处理器),由于所请求的搜索操作将超过指定功率限制,所以所请求的搜索操作被拒绝。作为对SRCH_EN的撤销状态的响应,块选择控制器110撤销(例如,到逻辑低)所有的块使能信号(BLK_EN)以禁用所有的CAM块102(1)-102(n),以至于没有搜索操作在CAM块102中执行(且从而使得由CAM块102消耗的功率即使有,也是很少)。
此外,对于图1中描述的示范性实施例,调节器逻辑120包括用于接收配置覆盖信号(CFG OV)的第三输入,且如果CFG OV被置为有效(例如,到逻辑高),不管相关搜索操作是否超过指定功率限制,调节器逻辑120可用于使所有的搜索请求在***100中执行。这样会允许客户动态覆盖功率限制约束(如果应用需求在所述内容搜索***的部署后发生改变)。反之,如果CFG_OV被撤销(例如,到逻辑低),则仅当所请求的功率操作没有没有超过指定功率限制时,调节器逻辑120允许所请求的搜索操作在***100执行。对于其它实施例,配置覆盖信号(CFG_OV)可以省略。
所述内容搜索***的一些示范性搜索请求方案在表1中总结如下。
Figure BDA0000146084480000121
表1
例如,在例子1-3,BLK_LIM=3,限制同时搜索的CAM块的最大数量为三,且覆盖信号CFG_OV被撤销以使调节器逻辑120保持CAM块102的功率消耗低于指定功率限制。更具体地,在例子1中,三个CAM块102(1)-102(3)被请求,被请求的CAM块的数量等于BLK_LIM=3。因此,调节器逻辑120将SRCH_EN和ACK置为有效,且块选择控制器110将BLK_EN1、BLK_EN2和BLK_EN3置为有效,从而为所请求的搜索操作使能被请求的CAM块120(1)-102(3)。块选择控制器110撤销BLK_EN4到BLK_ENn以使未被请求的CAM块102(4)-102(n)不能参与所请求的搜索操作。
例子2中,四个CAM块102(1)-102(4)被请求,被请求的CAM块的数量大于BLK_LIM=3。因此,调节器逻辑120撤销SRCH_EN且将ERROR信号置为有效。为了对SRCH_EN的撤销状态做出响应,块选择控制器110撤销所有的块使能信号BLK_EN1到BLK_ENn以使所有的块102(1)-102(n)不能参与所请求的搜索操作。
例子3中,两个CAM块102(1)和102(3)被请求,被请求的CAM块的数量小于BLK_LIM=3。因此,调节器逻辑120将SRCH_EN和ACK置为有效,且块选择控制器110将BLK_EN1和BLK_EN3置为有效,从而为所请求的搜索操作使能被请求的CAM块102(1)和102(3)。块选择控制器110撤销BLK_EN2和BLK_EN4到BLK_ENn,以使未被请求的CAM块102(2)和102(4)-102(n)不能参与所请求的搜索操作。
例子4中,五个CAM块102(1)-102(5)被请求,且覆盖信号CFG_OV被置为有效以覆盖所述块限制约束。作为对此的响应,调节器逻辑120将SRCH_EN和ACK置为有效,且块选择控制器110将BLK_EN1到BLK_EN5置为有效,从而为所请求的搜索操作使能被请求的CAM块102(1)-102(5)。块选择控制器110撤销BLK_EN6到BLK_ENn,以使未被请求的CAM块102(6)-102(n)不能参与所请求的搜索操作。
因此,以这种方式,调节器120不仅限制对被请求的CAM块中的数据的搜索操作,而且还通过不执行某些搜索操作(其要求的CAM数量大于与指定功率限制有关的CAM块102的最大数量)而限制功耗。在搜索期间限制的功耗在那些关注功耗的应用当中尤其有用。
内容搜索***100可按照为特定目的指定的任何一个或多个要求进行配置(例如,特定商业目的)。例如,一个示范性内容搜索***提供TCAM存储器的40兆比特,且同时支持四个并行比较。每个这样的并行比较可以是80-比特、160-比特、320比特或640-比特。因此,利用400MHZ的核心时钟,可执行每秒高达16亿次的搜索。在一实施例中,TCAM存储器的40兆比特被编排成TCAM位(例如,CAM阵列104)的1281K×320块。在另一实施例中,TCAM存储器的40兆比特编排成TCAM位的1282K×160块。在又一实施例中,TCAM存储器的40兆比特编排成TCAM位的1284K×80块。
如上所述,内容搜索***100可用于响应所述搜索请求,从而选择性地禁用CAM块102或使能CAM块102,以使得搜索操作仅使用所述CAM块的子集参与其中。选择性使能或禁用一个或多个CAM块102参与搜索操作的功能对基于单个设备创建特定产品配置是特别有用的,和/或对禁用有缺陷的块以避免认为整个内容搜索***有缺陷(而事实上CAM块的仅仅一些是有缺陷的)是特别有用的。可对这样的选择性的块使能或禁用进行组合,从而可基于结合有缺陷的块的列表和块限制而创建特定产品配置。例如,在一实施例中,带有128个CAM块的内容搜索***(其中的8个被视为有缺陷)可使用在具有(最多)120个(即,128个减8个)使能的CAM块的有限的配置中。
图2示出了示范性CAM阵列块200,CAM阵列块200是图1中的CAM阵列104的一个实施列。CAM阵列200包括以任意数量的行和列组织的多个CAM单元202。CAM单元202的每行连接到匹配线ML和字线WL。每个字线WL由一个地址解码器(未显示)驱动以选择一个或多个CAM单元202用于写入或读取。对于另外的实施例,多个CAM块可共享相同的地址解码器。每个匹配线ML提供比较操作的匹配结果到优先级编码器106。仅当相应行中的所有CAM单元匹配搜索关键字时,匹配线ML表明该行的匹配条件。每个CAM单元可以是二态、三态、四态、基于SRAM的、或基于DRAM的CAM单元。在一些实施例中,匹配线ML是为所述比较操作而预充电的。对于这样的实施例,如果行中的CAM单元202不匹配搜索关键字,CAM单元202使匹配线朝向地电位(例如,逻辑低)放电。相反地,如果行中的所有的CAM单元匹配搜索关键字,匹配线保持在充电的电位(例如,逻辑高)以表明所述匹配条件。
比较寄存器230也包括用于接收由CAM块选择控制器110(参见图1)生成的相应块使能信号(BLK_EN)的输入。为了禁用包含阵列200的CAM块102,BLK_EN被撤销(例如,到逻辑低)以关闭比较字寄存器230中的驱动器电路(为简单起见,未显示),从而使搜索关键字不能注入阵列200且可节省与将搜索关键字注入CAM阵列200有关的功耗。此外,BLK_EN的撤销状态还可用于防止CAM阵列200的匹配线ML被预充电和/或放电,从而节省与给匹配线ML充电有关的功耗。为了使能包含阵列200的CAM块102,BLK_EN被置为有效(例如,到逻辑高)以开启比较寄存器230中的驱动电路(为简单起见,未显示),从而使搜索关键字注入到阵列200并与存储在其中的数据进行比较以在匹配线ML上产生匹配结果。
在备用实施例中,可使用其它的CAM阵列架构。例如,在一些实施例中,CAM阵列200不包括互补比较线CL,在这种情况下,本领域众所周知的是,互补位线(即,BL和其补充)可连接到比较驱动器(未显示)并用于比较操作。
图3A是调节器逻辑300的框图,调节器逻辑300是图1中的调节器逻辑120的一个实施例。对于图3中的示范性实施例,图中所示的调节器逻辑包括解析器电路310、简档表320和比较逻辑330。解析器310包括用于接收搜索请求(SRCH_RQST)的输入,且解析器310可用于从搜索请求中提取搜索关键字(SK)和简档(PFL_ID)。对于一些实施例,正如图3A所描绘的,搜索关键字通过块选择控制器提供到CAM块102。对于其它实施例,搜索关键字通过比较总线(CBUS)从解析器电路310直接提供到CAM块102。简档ID(包括可表明图1中的CAM块102(1)-102(n)中的哪些是为搜索请求而请求的CAM块的信息)作为查找值提供到简档表320。
简档表320存储多个搜索简档,且可用于选择所存储的搜索简档(SRCH_PFL)中的一个以响应由解析器电路310提供的简档ID。由简档ID选择的搜索简档从简档表320转发到CAM块选择控制器110和比较逻辑330。存储在简档表中的每个搜索简档表明CAM块102(1)-102(n)中的哪些是为所请求的搜索操作而选择的(例如,CAM块102中的多少是为搜索操作而请求的),且可用于启动不同类型的仅需要可用的CAM块102的总数量的一个子集的搜索操作。
例如,在一些实施例中,转发(例如,下一跳路由)信息可存储在第一组CAM块102的第一组,分类信息(例如,第二层和第三层分类值)可存储在第二组CAM块102,而介质访问控制(MAC)信息可被存储在第三组CAM块102。对于这样的实施例,用于转发查找操作的第一组搜索简档包括可选择不同数量的第一组CAM块102的信息,用于分类操作的第二组搜索简档包括可选择不同数量的第二组CAM块102的信息,及用于MAC查找操作的第三组搜索简档包括可选择不同数量的第三组CAM块102的信息。对于这样的实施例中的一些,例如,如共同拥有的的美国专利No.6,744,652所述,CAM块的不同组可同时搜索,此处该专利申请全文引用,以作参考。
比较逻辑330包括用于接收所选择的搜索简档的第一输入、用于从配置存储器130接收块限制值的第二输入、用于生成ACK/ERROR信号的第一输出、和用于生成提供到块选择控制器110的搜索使能信号(SRCH_EN)的第二输出。在所请求的搜索操作期间,比较逻辑330接收所选择的搜索简档,且对其中表明的所请求的CAM块102的数量和BLK_LIM的值进行比较以生成ACK/ERROR和SRCH_EN信号。比较逻辑330可以是任何适当的电路、逻辑元件、或其它可从所选择的搜索简档中确定所请求的CAM块102的数量并对该数量与由配置存储器130提供的块限制值进行比较的组件。
如果所请求的CAM块102的数量小于或等于块限制值,则比较逻辑330将搜索使能信号(SRCH_EN)置为有效以允许所请求的搜索操作进行,且将ACK信号置为有效以表明搜索请求被准许。为了响应SRCH_EN的有效状态,块选择控制器110利用由简档表320提供的所选择的搜索简档,以选择性将块使能信号BLK_EN置为有效。更具体地说,块选择控制器110将与搜索简档所请求的CAM块102有关的块使能信号BLK_EN置为有效,从而使那些CAM块102参与所述搜索操作,和撤销与其它(即,未被请求)CAM块102有关的块使能信号,从而使那些CAM块102不能参与所述搜索操作。作为结果,仅仅由所选择的搜索简档所请求的CAM块102参与所述搜索操作且在所述搜索操作期间消耗功率,而未被请求的CAM块不能参与且因而不消耗功率。以这种方式,与BLK_LIM信号的值有关的指定功率限制在所述搜索操作期间不会被超过。
相反地,如果CAM块102的所请求的数量大于所述块限制值,则比较逻辑330撤销SRCH_EN以使所述搜索操作不能被执行,且将ERROR信号置为有效以表明搜索请求被拒绝。为了响应SRCH_EN的撤销状态,块选择控制器110撤销所有的块使能信号(BLK_EN)以禁用所有的CAM块102(1)-102(n),这样会使得没有搜索操作在CAM块102中执行,从而保证指定功率限制不会被超过(例如,通过拒绝将会消耗比指定功率限制更高的功率的搜索操作)。
图3B是调节器逻辑301的框图,调节器逻辑301是图1中的调节器逻辑120的另一实施例。调节器逻辑301与图3A中的调节器逻辑300类似,但增补了门逻辑340,门逻辑340具有用于从比较电路330接收SRCH_EN的第一输入、用于接收配置覆盖信号CFG_OV的第二输入、和用于提供SRCH_EN到块选择控制器110的输出。在请求的搜索操作期间,如果CFG_OV被撤销以表明没有块限制值的覆盖,调节器逻辑301以与上面针对图3A中的调节器逻辑300所描述的方式相同的方式进行操作。但是,如果CFG_OV被置为有效以表明处于覆盖模式(on override mode),则不管所请求的搜索操作是否超过指定功率限制,门逻辑340将SRCH_EN置为有效,从而使所请求的搜索操作在所请求的CAM块102进行。以这种方式,有效的CFG_OV(例如,到逻辑高)使客户动态覆盖功率限制约束,从而选择性地允许请求的搜索操作在内容搜索***100执行而不管功耗问题。这在执行请求的搜索操作比观察预定的功耗限制更重要的情况下是有用的。
图4A示出了示范性搜索请求410,搜索请求410包括报头411、简档ID412、相关指令413。报头411可包括包报头域(packet header fields)(例如,源地址、目的地地址、源端口ID、目的地端口ID和协议信息),相应搜索关键字可由解析器电路310从所述包报头域构造以响应指令413。包括可表明CAM块102(1)-102(n)中的哪些以及多少被请求用于搜索操作的信息的简档ID,可确定存储在简档表320(用于为所请求的搜索操作选择一个或多个CAM块102)中的搜索简档中的一个。虽然为简单起见而未在图中显示,由解析器电路310从搜索请求提取的指令413可用于控制CAM设备中的各种电路和定时元件(timing elements)。
图4B示出了简档表420,简档表420是图3中的简档表320的一个实施列。简档表420包括多个存储位置421(1)-421(m),每个用于存储相关的搜索简档。所述搜索简档可以是预定的简档,在内容搜索***100的操作之前载入简档表420。所述搜索简档可表明CAM块102(1)-102(n)中的哪些是为相应的搜索操作所选择的(例如,使能的)。在一实施例中,简档表420存储32个不同的搜索简档,其中的每个为相应的请求的搜索选择CAM块102的不同组合。再次参照图3A,简档表420利用由解析器电路310提供的简档ID选择存储在响应的存储位置421的搜索简档中的一个,且提供所述选择的搜索简档到比较逻辑330和块选择控制器110。因此,对于一些实施例,简档ID可用于确定包含相应搜索简档的存储位置421的地址。正因为如此,简档表420可以是任何适当的可寻址存储元件或寄存器。例如,在一些实施例中,简档表420可以是逻辑表寄存器(LTR)。
图4C描绘了根据本发明一些实施例的、存储在图4B中的搜索简档表420中的示范性搜索简档430。图中所示的搜索简档430包括用于分别存储多个相应的块使能信号BLK_EN1到BLK_ENn的多个域(field)431(1)-431(n)。对于一些实施例,当简档表420为获准的搜索请求转发所选择的搜索简档430到块选择控制器110时,块选择控制器110可利用搜索简档430中提供的块使能信号(例如,可分别选择性使能CAM块102(1)-102(n)的块使能信号BLK_EN1到BLK_ENn)。以这种方式块选择控制器110映射在所选择的搜索简档中提供的块使能信号到CAM块102,以使能所请求的CAM块102和禁用未被请求的CAM块102。再者,对于使用示范性搜索简档430的实施例,通过计算存储在搜索简档430的域431中的有效的(例如,逻辑高)使能信号的数量,比较逻辑330(参见图3A)可确定请求的CAM块102的数量。此外,尽管图4C所示的搜索简档430仅包括用于存储块使能信号的域431,搜索简档430可包括其它的域,用于存储与执行相关请求的搜索操作有关的其它信息。当然,其它实施例中,可以使用其它的搜索简档结构。
图5A是显示非线性关系的、作为块限制值的函数的功率耗散的曲线图。在这个例子中所示,随着同时搜索的CAM块的数量的增加(例如,从256到512,到768,到1024),功率耗散也在增加,并且以非线性的方式增加。在某些情况下,作为块限制的函数的功率耗散可在误差范围内的仿真中确定,误差范围表示最小功率和最大功率间的范围。在其它情况下,作为块限制的函数的功率耗散可在误差范围的实际操作中确定。此外,所述误差范围可能扩大到解释统计的可能性,所述统计的可能性指的是在执行缺陷检测后,一个或多个CAM块可能被视为有缺陷的。
图5B是显示线性关系的、作为块限制值的函数的功率耗散的曲线图。在这个例子中所示,随着同时搜索的CAM块的数量的增加(例如,从256到512,到768,到1024),功率耗散也在增加,并且以非线性的方式增加。
图5C是显示特定功率限制配置点(例如,Ps、Pr)的、作为块限制值的函数的功率耗散的曲线图。不管关系(即,线性或非线性)的特定形状是什么样的,最大功率特征可从图5C的那样的形式的曲线图确定,且这样的最大功率特征可用于对内容搜索***100的表征和/或评估(pricing)。
图6示出了用于保持内容搜索***100的功耗低于特定功率限制的示范性操作的流程图。首先,指定功率限制被确定且作为块限制值存储在配置存储器130中,所述块限制值可表明能同时搜索的没有超过所述指定功率限制的CAM块120的最大数量(602)。然后,接收可为内容搜索***中的搜索操作请求一些CAM块102的搜索请求(604)。从配置存储器130检索块限制值(606),再对块限制值与请求的CAM块102的数量进行比较(608)。继而,如果所请求的CAM块的数量小于或等于在610测定的块限制值,执行所请求的操作,且将ACK信号置为有效以表明搜索请求被获准612)。对于所请求的搜索操作,块选择控制器110利用块使能信号使能所请求的CAM块102且禁用未被请求的CAM块102,如上所述(614)。
相反地,如果所请求的CAM块的数量大于在610测定的块限制值,拒绝所请求的搜索操作,且将ERROR信号置为有效以表明所述搜索请求的拒绝。
图7是定义熔丝映像(fuse map)的方法700的流程图。正如前面指出的,选择性使能或禁用一个或多个CAM块参与搜索操作的功能,对于基于单个设备创建的不同产品配置是特别有用的,和/或对于禁用有缺陷的块是特别有用的。为创建特定产品配置而选择性使能有限数量的CAM块102可包括,结合有缺陷的块的列表和块限制。例如,在一实施例中,带有128个CAM块的内容搜索***(其中的8个被视为有缺陷)可使用在具有(最多)120个(即,128个减被认为有缺陷的8个)使能的CAM块的有限的配置中。为了结合有缺陷的块的列表和块限制值,块限制被应用到无缺陷块。方法700描绘了通过结合有缺陷的块列表和块限制值来定义熔丝映像的方法。这样的熔丝映像(例如,计算机存储器中的二进制表示)可存储在作为配置内存130的一个实施例的熔丝阵列中(参见图1)。
该方法开始于,根据商业影响、应用特定限制、或其它适当的标准,确定最大指定功率限制(例如,Ps,Pr)(步骤710)。利用所述指定的功率限制,和利用上面图5A-5C中所描述和显示的的形式的特征,可确定能同时为搜索操作进行搜索的没有超过所指定的功率限制的CAM块102的最大数量(步骤720)。
为了确定是否存在任何有缺陷的CAM块102(步骤730),可以用适当的方式对搜索***100中的每个CAM块102进行测试以确定其是或者不是有缺陷的块。如果一个CAM块102是有缺陷的,即使实际的测试在不同的步骤执行,该CAM块的有缺陷的特性可在步骤730被确定。否则,如果该CAM块102没有缺陷,该CAM块的无缺陷的特性也可在步骤730被确定。每个CAM块102可单独被处理和测试。
用***100中CAM块102的总数量减去有缺陷的CAM块102的数量以计算可用块的数量(步骤740)。如果可用块的总数量小于在步骤720中确定的CAM块的最大数量,则选择不同的功率限制(步骤710)。另一方面,如果可用块的总数量等于或大于在步骤720中确定的CAM块的最大数量,则在步骤710确定的配置是可行的,提交块映像(block map)(步骤760)。在一些实施例中,在步骤760中提交的块映像使能所有无缺陷的块。在其它实施例中,在步骤760中提交的块映像禁用有缺陷的块和进一步禁用无缺陷的块,以至于所述块映像仅使能在步骤720中确定的块的最大数量。在提交所述块映像中所执行的行为包括“烧断”熔丝阵列中的熔丝,或包括执行一些输入/输出,例如PIO(例如,在内容搜索***100和其环境间),或包括将块映像表示存储在易失或非易失存储器中,等。在步骤760提交块映像的结果(例如,块映像表示)可存储在图1中的配置存储器130中。
在一些实施例中,用于管理功耗限制的方法700能以至少与请求的搜索简档的到达速度一样快的速度在其实体中实施,因此,用于管理功耗限制的方法700可动态响应配置中的变化。
本发明的特定实施例已经进行了展示和描述,本领域的技术人员应当显而易见的知悉,在不背离本发明的范围的情况下,可在更广泛的方面对本发明做出修改或调整,因此,落入本发明的正真的精神和范围内的所有的这样的修改和调整包含在权利要求中。此外,应注意,在此公布的各种电路可利用计算机辅助设计工具描述,且作为嵌入在各种计算机可读介质中的数据和/或指令,以其行为、寄存器传输、逻辑组件、晶体管、布局几何形状、和/或其他特征的形式表达(或代表)。可以在其中实施这样的电路表达的文件和其它对象的格式包括但不限于,支持行为语言(例如,C、Verilog和VHDL)的格式、支持寄存器级描述语言(如RTL)的格式、和支持几何描述语言(例如,GDSII、GDSIII、GDSIV、CIF、MEBES和其它适当的格式和语言)的格式。

Claims (10)

1.一种用于保持其功耗低于指定功率限制的内容搜索***,其特征在于,包括:
多个内容可寻址存储器块,每个具有内容可寻址存储器单元阵列;
配置存储器,用于存储块限制值,所述块限制值表明能同时搜索的没有超过指定功率限制的所述内容可寻址存储器块的最大数量;及
连接到所述内容可寻址存储器块和所述配置存储器的调节器逻辑,用于仅当所请求的所述内容可寻址存储器块的数量小于或等于所述块限制值时,允许搜索操作在所请求的数量的所述内容可寻址存储器块中执行。
2.根据权利要求1所述的内容搜索***,其特征在于,如果所请求内容可寻址存储器块的数量大于所述块限制值,所述调节器逻辑拒绝所述搜索操作。
3.根据权利要求1所述的内容搜索***,其特征在于,所述调节器逻辑包括用于接收搜索请求的输入,所述搜索请求可表明为所述搜索操作所请求的内容可寻址存储器块的数量。
4.根据权利要求1所述的内容搜索***,其特征在于,所述块限制值是在所述内容搜索***的仿真或测试期间确定的。
5.根据权利要求1所述的内容搜索***,其特征在于,进一步包括:
连接到所述调节器逻辑的块选择控制器,用于在所述搜索操作期间选择性使能所请求的内容可寻址存储器块和禁用未被请求的内容可寻址存储器块。
6.根据权利要求5所述的内容搜索***,其特征在于,如果所述请求的数量大于所述块限制值时,所述块选择控制器禁用所有的内容可寻址存储器块。
7.根据权利要求1所述的内容搜索***,其特征在于,所述调节器逻辑包括:
解析器电路,具有用于接收搜索请求的输入且可用于从所述搜索请求提取搜索关键字和搜索简档ID;
简档表,用于选择存储在其中的多个搜索简档中的一个,以响应所述提取的搜索简档ID;及
比较逻辑,用于对所述选择的搜索简档和所述块限制值进行比较以生成可选择性使所述搜索操作被执行的搜索使能信号。
8.一种用于在搜索操作期间保持其功耗低于指定功率限制的内容搜索***,其特征在于,包括:
多个内容可寻址存储器块,每个具有内容可寻址存储器单元阵列;
调节器逻辑,具有第一输入,用于接收可表明能同时搜索的没有超过所述指定功率限制的所述内容可寻址存储器块的最大数量的块限制值、具有第二输入,用于接收可为所述搜索操作请求若干所述内容可寻址存储器块的搜索请求、和具有用于生成搜索使能信号的输出;及
块选择控制器,具有用于接收所述搜索使能信号和与所述搜索请求有关的信息的输入,和具有用于生成多个块使能信号的输出,所述输出中的每个为所述搜索操作使能所述多个内容可寻址存储器块的相应的一个。
9.一种用于保持包括多个内容可寻址存储器块的内容搜索***的功耗低于指定的功率限制的方法,其特征在于,所述方法包括:
接收为所述内容搜索***中的搜索操作请求若干所述内容可寻址存储器块的搜索请求;
从存储器元件中找回可表明能同时搜索的没有超过所述指定的功率限制的所述内容可寻址存储器块的最大数量的块限制值;及
仅当所请求的内容可寻址存储器块的数量小于或等于所述块限制值时,执行所述搜索操作。
10.一种用于在搜索操作期间保持其功耗低于指定功率限制的内容搜索***,其特征在于,包括:
用于接收为所述内容搜索***中的搜索操作请求若干所述内容可寻址存储器块的搜索请求的设备;
用于从存储器元件中检索可表明能同时搜索的没有超过所述指定的功率限制的所述内容可寻址存储器块的最大数量的块限制值的设备;及
用于仅当所请求的内容可寻址存储器块的数量小于或等于所述块限制值时执行所述搜索操作的设备。
CN201210079271.1A 2011-03-22 2012-03-22 用于保持其功耗低于指定功率限制的内容搜索***及方法 Expired - Fee Related CN102707788B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/069,220 US8467213B1 (en) 2011-03-22 2011-03-22 Power limiting in a content search system
US13/069,220 2011-03-22

Publications (2)

Publication Number Publication Date
CN102707788A true CN102707788A (zh) 2012-10-03
CN102707788B CN102707788B (zh) 2016-02-17

Family

ID=45928627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210079271.1A Expired - Fee Related CN102707788B (zh) 2011-03-22 2012-03-22 用于保持其功耗低于指定功率限制的内容搜索***及方法

Country Status (5)

Country Link
US (2) US8467213B1 (zh)
EP (1) EP2503555A1 (zh)
CN (1) CN102707788B (zh)
HK (1) HK1169724A1 (zh)
TW (1) TW201308345A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625695A (zh) * 2019-02-28 2020-09-04 帕洛阿尔托网络股份有限公司 在三元内容可寻址存储器中摊销耗散功率和电流需求

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305115B1 (en) 2010-10-04 2016-04-05 Broadcom Corporation Method and apparatus for reducing power consumption during rule searches in a content search system
US8848526B1 (en) 2011-02-24 2014-09-30 Netlogic Microsystems, Inc. Network processor with traffic shaping response bus interface
US8467213B1 (en) 2011-03-22 2013-06-18 Netlogic Microsystems, Inc. Power limiting in a content search system
US9620213B2 (en) * 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US10622071B2 (en) 2015-09-04 2020-04-14 Hewlett Packard Enterprise Development Lp Content addressable memory
JP2017097940A (ja) * 2015-11-26 2017-06-01 ルネサスエレクトロニクス株式会社 半導体装置
US10318588B2 (en) * 2017-07-01 2019-06-11 Cisco Technology, Inc. Searching varying selectable physical blocks of entries within a content-addressable memory
KR102385569B1 (ko) * 2018-01-03 2022-04-12 삼성전자주식회사 메모리 장치
US11967377B2 (en) * 2021-01-08 2024-04-23 Mediatek Singapore Pte. Ltd. Dynamically gated search lines for low-power multi-stage content addressable memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277983B1 (en) * 2004-12-15 2007-10-02 Netlogic Microsystems, Inc. Method and apparatus for smoothing current transients in a content addressable memory (CAM) device
CN101189674A (zh) * 2005-01-18 2008-05-28 Teac宇航技术公司 操作记录介质时的功率管理

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5489444A (en) 1977-12-27 1979-07-16 Fujitsu Ltd Associative memory processing system
US4670858A (en) 1983-06-07 1987-06-02 Tektronix, Inc. High storage capacity associative memory
JPS619748A (ja) 1984-06-25 1986-01-17 Nec Corp 入出力制御装置
US4656626A (en) 1984-12-14 1987-04-07 Itt Corporation Apparatus and method for providing dynamically assigned switch paths
US4813002A (en) 1986-07-21 1989-03-14 Honeywell Bull Inc. High speed high density dynamic address translator
US4959811A (en) 1986-11-03 1990-09-25 Texas Instruments Incorporated Content addressable memory including comparison inhibit and shift register circuits
DE3801380A1 (de) 1987-01-20 1988-07-28 Nec Corp Zeichenfolge-erkennungsvorrichtung mit einem speicher, dessen speicherbereiche selektiv zugreifbar sind
US4845668A (en) 1987-12-10 1989-07-04 Raytheon Company Variable field content addressable memory
US4888731A (en) 1988-05-11 1989-12-19 Advanced Micro Devices, Inc. Content addressable memory array system with multiplexed status and command information
US4996666A (en) 1988-08-12 1991-02-26 Duluk Jr Jerome F Content-addressable memory system capable of fully parallel magnitude comparisons
US5053991A (en) 1989-10-06 1991-10-01 Sanders Associates, Inc. Content-addressable memory with soft-match capability
US5485418A (en) 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory
US5123105A (en) 1990-06-25 1992-06-16 Advanced Micro Devices, Inc. Priority encoder for a content addressable memory
US5440715A (en) 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit
US5619446A (en) 1992-01-10 1997-04-08 Kawasaki Steel Corporation Hierarchical encoder including timing and data detection devices for a content addressable memory
US5555397A (en) 1992-01-10 1996-09-10 Kawasaki Steel Corporation Priority encoder applicable to large capacity content addressable memory
JP2966638B2 (ja) 1992-04-17 1999-10-25 三菱電機株式会社 ダイナミック型連想メモリ装置
US5383146A (en) 1992-06-08 1995-01-17 Music Semiconductors, Inc. Memory with CAM and RAM partitions
JPH0676583A (ja) 1992-07-06 1994-03-18 Mitsubishi Electric Corp 内容番地付記憶装置および一致ワード不要化方法
US5440753A (en) 1992-11-13 1995-08-08 Motorola, Inc. Variable length string matcher
JP2779114B2 (ja) 1993-05-19 1998-07-23 川崎製鉄株式会社 連想メモリ
JPH0721785A (ja) 1993-06-29 1995-01-24 Kawasaki Steel Corp 半導体メモリ
US5524231A (en) 1993-06-30 1996-06-04 Intel Corporation Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card
JPH07114577A (ja) 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
KR950034265A (ko) 1994-02-10 1995-12-28 도자끼 시노부 연상메모리
US5860085A (en) 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5649149A (en) 1994-08-01 1997-07-15 Cypress Semiconductor Corporation Integrated content addressable memory array with processing logical and a host computer interface
US5513134A (en) 1995-02-21 1996-04-30 Gte Laboratories Incorporated ATM shared memory switch with content addressing
JP3703518B2 (ja) 1995-03-30 2005-10-05 川崎マイクロエレクトロニクス株式会社 連想メモリシステム
JP3125884B2 (ja) 1995-04-18 2001-01-22 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 内容アドレス記憶装置
US5642322A (en) 1995-05-24 1997-06-24 Kawasaki Steel Corporation Layout of semiconductor memory and content-addressable memory
US6041389A (en) 1995-11-16 2000-03-21 E Cirrus Logic, Inc. Memory architecture using content addressable memory, and systems and methods using the same
US5828593A (en) 1996-07-11 1998-10-27 Northern Telecom Limited Large-capacity content addressable memory
US5706224A (en) 1996-10-10 1998-01-06 Quality Semiconductor, Inc. Content addressable memory and random access memory partition circuit
US5920886A (en) 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs
JP3038649B2 (ja) 1997-04-16 2000-05-08 日本電気株式会社 連想検索装置および方法
JP3190868B2 (ja) 1997-11-21 2001-07-23 エヌイーシーマイクロシステム株式会社 連想メモリ装置
JP3196720B2 (ja) 1998-03-20 2001-08-06 日本電気株式会社 連想メモリ制御回路及び制御方法
US6125049A (en) 1999-01-05 2000-09-26 Netlogic Microsystems, Inc. Match line control circuit for content addressable memory
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6044005A (en) 1999-02-03 2000-03-28 Sibercore Technologies Incorporated Content addressable memory storage device
US6166939A (en) 1999-07-12 2000-12-26 Net Logic Microsystems Method and apparatus for selective match line pre-charging in a content addressable memory
US6191969B1 (en) 1999-09-09 2001-02-20 Net Logic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6243280B1 (en) 1999-09-09 2001-06-05 Netlogic Microsystems, Inc. Selective match line pre-charging in a partitioned content addressable memory array
US6430074B1 (en) 1999-09-09 2002-08-06 Netlogic Mircosystems, Inc. Selective look-ahead match line pre-charging in a partitioned content addressable memory array
US6934795B2 (en) 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6944709B2 (en) 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6763425B1 (en) 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
US6324087B1 (en) 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6687785B1 (en) 2000-06-08 2004-02-03 Netlogic Microsystems, Inc. Method and apparatus for re-assigning priority in a partitioned content addressable memory device
US6275426B1 (en) 1999-10-18 2001-08-14 Netlogic Microsystems, Inc. Row redundancy for content addressable memory
US6195278B1 (en) 1999-12-30 2001-02-27 Nortel Networks Limited Content addressable memory cells and words
US6487131B1 (en) 1999-12-30 2002-11-26 Intel Corporation Method and apparatus for testing a CAM addressed cache
CA2321466C (en) 2000-09-29 2006-06-06 Mosaid Technologies Incorporated Priority encoder circuit and method
ATE435492T1 (de) 2000-11-21 2009-07-15 Aspex Technology Ltd Verbesserungen im bezug auf inhaltsadressierbare speicheranordnungen
US6744652B2 (en) 2001-08-22 2004-06-01 Netlogic Microsystems, Inc. Concurrent searching of different tables within a content addressable memory
US6538911B1 (en) 2001-08-24 2003-03-25 Sibercore Technologies, Inc. Content addressable memory with block select for power management
US7185141B1 (en) 2001-12-27 2007-02-27 Netlogic Microsystems, Inc. Apparatus and method for associating information values with portions of a content addressable memory (CAM) device
US6768659B2 (en) 2001-12-31 2004-07-27 Mosaid Technologies Incorporated Circuit and method for reducing power usage in a content addressable memory
US6697276B1 (en) 2002-02-01 2004-02-24 Netlogic Microsystems, Inc. Content addressable memory device
US6972978B1 (en) 2002-03-15 2005-12-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices with block select and pipelined virtual sector look-up control and methods of operating same
US6965519B1 (en) 2003-06-18 2005-11-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize dual-capture match line signal repeaters to achieve desired speed/power tradeoff and methods of operating same
US6760242B1 (en) 2002-04-10 2004-07-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having speed adjustable match line signal repeaters therein
US6867991B1 (en) 2003-07-03 2005-03-15 Integrated Device Technology, Inc. Content addressable memory devices with virtual partitioning and methods of operating the same
US6967856B1 (en) 2002-04-10 2005-11-22 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same
US7346000B1 (en) 2002-07-03 2008-03-18 Netlogic Microsystems, Inc. Method and apparatus for throttling selected traffic flows
US6804133B1 (en) 2002-08-30 2004-10-12 Netlogic Microsystems, Inc. Selective match line control circuit for content addressable memory array
US20060203529A1 (en) * 2003-09-05 2006-09-14 William Radke Cutting CAM peak power by clock regioning
US7219188B1 (en) 2004-02-06 2007-05-15 Netlogic Microsystems, Inc. Segmented content addressable memory array and priority encoder
US7251707B1 (en) 2004-02-06 2007-07-31 Netlogic Microsystems, Inc. Content based content addressable memory block enabling using search key
US7260674B2 (en) 2004-05-25 2007-08-21 Intel Corporation Programmable parallel lookup memory
US7113415B1 (en) 2004-06-01 2006-09-26 Netlogic Microsystems, Inc. Match line pre-charging in a content addressable memory having configurable rows
US7050318B1 (en) 2004-10-01 2006-05-23 Netlogic Microsystems, Inc. Selective match line pre-charging in a CAM device using pre-compare operations
US7262586B1 (en) * 2005-03-31 2007-08-28 Cypress Semiconductor Corporation Shunt type voltage regulator
US7694068B1 (en) 2005-12-08 2010-04-06 Netlogic Microsystems, Inc. Re-entrant processing in a content addressable memory
US7852652B1 (en) 2007-06-29 2010-12-14 Netlogic Microsystems, Inc. Match line precharge circuits and methods for content addressable memory (CAM) device
US7800930B1 (en) 2008-02-06 2010-09-21 Netlogic Microsystems, Inc. Precharge circuits and methods for content addressable memory (CAM) and related devices
US7848129B1 (en) 2008-11-20 2010-12-07 Netlogic Microsystems, Inc. Dynamically partitioned CAM array
US8031503B1 (en) 2010-06-23 2011-10-04 Netlogic Microsystems, Inc. System for dynamically managing power consumption in a search engine
US7920399B1 (en) 2010-10-21 2011-04-05 Netlogic Microsystems, Inc. Low power content addressable memory device having selectable cascaded array segments
US8031501B1 (en) 2010-10-21 2011-10-04 Netlogic Microsystems, Inc. Segmented content addressable memory device having pipelined compare operations
US8467213B1 (en) 2011-03-22 2013-06-18 Netlogic Microsystems, Inc. Power limiting in a content search system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277983B1 (en) * 2004-12-15 2007-10-02 Netlogic Microsystems, Inc. Method and apparatus for smoothing current transients in a content addressable memory (CAM) device
CN101189674A (zh) * 2005-01-18 2008-05-28 Teac宇航技术公司 操作记录介质时的功率管理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PEDRO ECHEVERRIA等: "A Banked Precomputation-Based CAM Architecture for Low-Power Storage-Demanding Applications", 《ELECTROTECHNICAL CONFERENCE》, 19 May 2006 (2006-05-19), pages 57 - 60 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625695A (zh) * 2019-02-28 2020-09-04 帕洛阿尔托网络股份有限公司 在三元内容可寻址存储器中摊销耗散功率和电流需求
CN111625695B (zh) * 2019-02-28 2024-03-26 帕洛阿尔托网络股份有限公司 在三元内容可寻址存储器中摊销耗散功率和电流需求

Also Published As

Publication number Publication date
US8467213B1 (en) 2013-06-18
US20130279231A1 (en) 2013-10-24
CN102707788B (zh) 2016-02-17
US9025354B2 (en) 2015-05-05
EP2503555A1 (en) 2012-09-26
HK1169724A1 (zh) 2013-02-01
TW201308345A (zh) 2013-02-16

Similar Documents

Publication Publication Date Title
CN102707788A (zh) 用于保持其功耗低于指定功率限制的内容搜索***及方法
CN105960678B (zh) 减轻交叉点存储器中的读取干扰的方法和设备
US6538911B1 (en) Content addressable memory with block select for power management
CN104115129B (zh) 用于从处理器到存储器子***智能刷新数据的***和方法
US10127282B2 (en) Partitionable ternary content addressable memory (TCAM) for use with a bloom filter
US7581059B2 (en) Controlling a searchable range within a network search engine
CN108475226A (zh) 感测电路上的错误码计算
CN105224692A (zh) 支持多核处理器的sdn多级流表并行查找的***及方法
US8797808B2 (en) Semiconductor device and semiconductor memory device
US7694068B1 (en) Re-entrant processing in a content addressable memory
US20170288885A1 (en) System, Apparatus And Method For Providing A Physically Unclonable Function (PUF) Based On A Memory Technology
US8966167B1 (en) Content search system having multiple pipelines
US20140358886A1 (en) Internal search engines architecture
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
TW201344688A (zh) 以高速磁性隨機存取記憶體為基礎的三元內容可定址的記憶體
US7251707B1 (en) Content based content addressable memory block enabling using search key
Zhou et al. High-density 3-D stackable crossbar 2D2R nvTCAM with low-power intelligent search for fast packet forwarding in 5G applications
US7219188B1 (en) Segmented content addressable memory array and priority encoder
US9305115B1 (en) Method and apparatus for reducing power consumption during rule searches in a content search system
EP3104283B1 (en) Hardware programmable device with integrated search engine
CN105487988B (zh) 基于存储空间复用提高sdram总线有效访问速率的方法
KR101989860B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
TW201830388A (zh) 經由交叉連接共享庫資源之符合記憶體庫存取
Zha et al. CMA: A reconfigurable complex matching accelerator for wire-speed network intrusion detection
JP3938124B2 (ja) データ検索装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1169724

Country of ref document: HK

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 3975 liberty Ring Road, 900 District, Santa Clara, California, USA, 95054

Applicant after: Network Logic Microsystems

Address before: 3975 liberty Ring Road, 900 District, Santa Clara, California, USA, 95054

Applicant before: Web Series Microsystems

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: NETLOGIC MICROSYSTEMS INC. TO: NETLOGIC MICROSYSTEMS INC.

C41 Transfer of patent application or patent right or utility model
CB02 Change of applicant information

Address after: California, USA

Applicant after: Network logic I LLC

Address before: 3975 liberty Ring Road, 900 District, Santa Clara, California, USA, 95054

Applicant before: Network Logic Microsystems

COR Change of bibliographic data
TA01 Transfer of patent application right

Effective date of registration: 20151109

Address after: California, USA

Applicant after: BROADCOM Corp.

Address before: California, USA

Applicant before: Network logic I LLC

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1169724

Country of ref document: HK

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

Granted publication date: 20160217

Termination date: 20170322

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