具有混合串行及并行搜索的内容可寻址存储器及其搜索方法转让专利

申请号 : CN200680044051.8

文献号 : CN101317234B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨赛森金圣克

申请人 : 高通股份有限公司

摘要 :

为高效且低功耗地搜索混合串/并行CAM单元,本发明提供了一种混合串并行内容可寻址存储器(CAM)包含布置为多个(N)列及多个(M)行的串行CAM单元及并行CAM单元。每一行包含至少一个串行CAM单元及至少两个并行CAM单元。并行地来搜索所述M个行。对于每一行,顺序地搜索所述串行CAM单元,且选择性地并行搜索所述并行CAM单元。所述CAM进一步包含产生用于N个CAM单元列的搜索线的驱动器,每列一个搜索线。所述驱动器将所述搜索线设定为用以在所述CAM中搜索的N位值。在每一搜索操作之前,所述驱动器为至少一个串行CAM单元列预设定至少一个搜索线以对每一行的匹配线预充电。

权利要求 :

1.一种内容可寻址存储器CAM,其包括:

多个串行CAM单元及多个并行CAM单元,所述CAM单元布置为多个行及多个列,每一行包括至少一个串行CAM单元及至少两个并行CAM单元;及驱动器,其经配置以产生用于所述多个列的多个搜索线,并在每一搜索操作之前为至少一个串行CAM单元列预设定至少一个搜索线以对所述行中的并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线。

2.如权利要求1所述的内容可寻址存储器CAM,其中每一行包括四个串行CAM单元。

3.如权利要求2所述的内容可寻址存储器CAM,其进一步包括:多个缓冲器电路,每一行一个缓冲器电路,每一缓冲器电路耦合在相关联行中的第二与第三串行CAM单元之间。

4.如权利要求2所述的内容可寻址存储器CAM,其中在每一搜索操作之前,所述驱动器经配置以为四个串行CAM单元列中的第二串行CAM单元列预设定搜索线。

5.如权利要求1所述的内容可寻址存储器CAM,其中在每一搜索操作之前,所述驱动器经配置以为至少一个串行CAM单元列中的最后一个串行CAM单元列预设定搜索线。

6.如权利要求1所述的内容可寻址存储器CAM,其中每一行包括三个串行CAM单元,且其中在每一搜索操作之前,所述驱动器经配置以为三个串行CAM单元列中的最后一个CAM单元列预设定搜索线。

7.如权利要求1所述的内容可寻址存储器CAM,其进一步包括:用于多个并行CAM单元行的多个虚拟接地线,每一并行CAM单元行一个虚拟接地线,每一虚拟接地线经控制以启用或停用相关联行的并行CAM单元。

8.如权利要求1所述的内容可寻址存储器CAM,其中并行地搜索所述多个行,且其中对于每一行,顺序地搜索所述至少一个串行CAM单元且并行地搜索所述至少两个并行CAM单元。

9.如权利要求8所述的内容可寻址存储器CAM,其中对于每一行,仅在所述行中的所述至少一个串行CAM单元匹配的情况下,才搜索所述至少两个并行CAM单元。

10.如权利要求8所述的内容可寻址存储器CAM,其中对于每一行,并行地且与所述顺序搜索所述至少一个串行CAM单元同时地搜索所述至少两个并行CAM单元。

11.如权利要求1所述的内容可寻址存储器CAM,其中所述多个CAM单元的每一者包括经配置以存储数据值的存储器单元及经配置以将所述所存储数据值与输入数据值进行比较的比较电路。

12.如权利要求1所述的内容可寻址存储器CAM,其中所述多个CAM单元的每一者包括第一及第二互补金属氧化物半导体(CMOS)栅极,其中所述第一及第二CMOS栅极耦合到搜索线且由所述CAM单元中所存储的数据值控制。

13.一种经配置以存储数据的高速缓冲存储器,其包括

内容可寻址存储器(CAM),其经配置以存储所述数据的地址且包括多个串行CAM单元、多个并行CAM单元及一驱动器,其中所述多个串行CAM单元及所述多个并行CAM单元布置为多个行及多个列,其中每一行包括至少一个串行CAM单元及至少两个并行CAM单元,且其中所述驱动器经配置以产生用于所述多个CAM单元列的多个搜索线,并在每一搜索操作之前为至少一个串行CAM单元列预设定至少一个搜索线以对所述行中的并行CAM单元的匹配线预充电,且其中不预设定用于并行CAM单元列的搜索线;及随机存取存储器(RAM),其经配置以存储所述数据。

14.如权利要求13所述的高速缓冲存储器,其进一步包括处理器,其经配置以执行对无线通信的处理。

15.一种搜索内容可寻址存储器(CAM)的方法,所述内容可寻址存储器由多个CAM单元行组成,每一行包括至少一个串行CAM单元及至少两个并行CAM单元,所述方法包括:针对所述多个CAM单元行的每一者,

为所述行中的至少一个串行CAM单元预设定至少一个搜索线以对所述行中的所述至少两个并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线,以顺序次序搜索所述行中的所述至少一个串行CAM单元,及选择性地并行搜索所述行中的所述至少两个并行CAM单元。

16.如权利要求15所述的方法,其进一步包括:

并行地搜索所述多个CAM单元行。

17.如权利要求15所述的方法,其中所述为所述行中的所述至少一个串行CAM单元预设定所述至少一个搜索线包括:为所述行中的最后一个串行CAM单元预设定搜索线以对所述行中的所述至少两个并行CAM单元的所述匹配线预充电。

18.如权利要求15所述的方法,其中所述选择性地并行搜索所述行中的所述至少两个并行CAM单元包括:仅在所述行中的所述至少一个串行CAM单元匹配的情况下,才搜索所述行中的所述至少两个并行CAM单元。

19.如权利要求15所述的方法,其中所述选择性地并行搜索所述行中的所述至少两个并行CAM单元包括:并行地且与所述搜索所述行中的所述至少一个串行CAM单元同时地搜索所述行中的所述至少两个并行CAM单元。

20.如权利要求15所述的方法,其进一步包括:

针对所述多个CAM单元行中的每一者,

控制用于所述行中的所述至少两个并行CAM单元的虚拟接地线以启用或停用所述至少两个并行CAM单元的所述搜索。

21.一种搜索设备,其用于搜索内容可寻址存储器(CAM),所述内容可寻址存储器由CAM单元的多个行组成,每一行均包括至少一个串行CAM单元及至少两个并行CAM单元,对CAM单元所述多个行中的每一者,所述设备包括:预设定装置,其用于为所述行中至少一个串行CAM单元预设定至少一个搜索线来对所述行中所述至少两个并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线,第一搜索装置,其用于以顺序次序搜索所述行中的所述至少一个串行CAM单元,及第二搜索装置,其用于选择性地并行搜索所述行中的所述至少两个并行CAM单元。

22.如权利要求21所述的设备,其中所述第二搜索装置包括:

第三搜索装置,其用于仅当所述行中的所述至少一个串行CAM单元匹配时才搜索所述行中的所述至少两个并行CAM单元。

23.如权利要求21所述的设备,其中所述第二装置包括:

第四搜索装置,其用于并行地且与所述用于搜索所述行中的所述至少一个串行CAM单元的装置同时地搜索所述行中的所述至少两个并行CAM单元。

说明书 :

具有混合串行及并行搜索的内容可寻址存储器及其搜索方

技术领域

[0001] 本发明大体来说涉及电子电路,且更特定来说涉及内容可寻址存储器。

背景技术

[0002] 内容可寻址存储器(CAM)是存储器单元及相关联比较电路的阵列。这些比较电路允许快速搜索所述存储器阵列的内容。可并行地搜索/评估所述存储器阵列的所有行,以确定输入值是否匹配所述行的任一者中所存储的值。每一行与指示所述行搜索结果的各自匹配线相关联。匹配所述输入值的每一行的匹配线经断定(例如,断定为逻辑高)以指示匹配,且不匹配所述输入值的每一行的匹配线经去断定(例如,去断定为逻辑低)以指示不匹配。
[0003] CAM用于各种应用,例如,高速缓冲存储器。所述高速缓冲存储器可比其它类型的存储器更快速地存取,且用于存储更可能由处理器存取的数据。所述高速缓冲存储器可包含存储数据的随机存取存储器(RAM)及存储所述数据的地址的CAM。为确定既定数据字是否存储在所述高速缓冲存储器中,搜索所述CAM以确定此字的地址是否匹配所述CAM中所存储地址中的任一者。如果存在匹配,则可从所述RAM中检索出所需的字以供使用。
[0004] 可借助存储器存取来大范围地搜索所述CAM以查找(例如)每一处理器指令。因此,所述CAM的性能通常对处理器的性能具有重大影响。可通过并行地搜索CAM的所有行来实现快速的搜索速度。然而,所述并行搜索消耗大量的功率,这对许多应用来说都是不合需要的。
[0005] 因此,所属技术领域中需要一种具有高性能及较低功率消耗的CAM。

发明内容

[0006] 本文中描述了一种能够实现高性能及较低功率消耗的混合串并行CAM。所述CAM包含布置为多个(N)列及多个(M)行的串行CAM单元及并行CAM单元。每一行包含至少一个串行CAM单元、至少两个并行CAM单元,以及用于所述行中的所述并行CAM单元的匹配线及虚拟接地线。并行地搜索所述M个行。对于每一行,顺序地搜索所述串行CAM单元,且选择性地并行搜索所述并行CAM单元。对于每一行,可(1)仅在所述串行CAM单元匹配的情况下(这样可降低功率消耗),或(2)与搜索所述串行CAM单元同时(这样可改善搜索速度)地并行搜索所述并行CAM单元。控制每一行的虚拟接地线以启用或停用对所述行中的并行CAM单元的搜索。
[0007] 所述CAM进一步包含驱动器,所述驱动器产生用于N个CAM单元列的N个搜索线,每列一个搜索线。所述驱动器将所述N个搜索线设定为用以在CAM中搜索的N位值。在每一搜索操作之前,所述驱动器为至少一个串行CAM单元列预设定至少一个搜索线以对每一行的匹配线预充电。预设定是指将线设定或强制为预定的逻辑值(例如,逻辑低)。例如,如果每一行包含四个串行CAM单元,则所述驱动器可为所述行中的第二CAM单元或第四CAM单元预设定搜索线,如下文描述。预设定至少一个搜索线可避免需要针对串行CAM区段的定时信号。省去此定时信号可改善搜索速度。
[0008] 本发明提供了一种内容可寻址存储器CAM,其包括:多个串行CAM单元及多个并行CAM单元,所述CAM单元布置为多个行及多个列,每一行包括至少一个串行CAM单元及至少两个并行CAM单元;及驱动器,其经配置以产生用于所述多个列的多个搜索线,并在每一搜索操作之前为至少一个串行CAM单元列预设定至少一个搜索线以对所述行中的并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线。
[0009] 本发明还提供了一种经配置以存储数据的高速缓冲存储器,其包括内容可寻址存储器(CAM),其经配置以存储所述数据的地址且包括多个串行CAM单元、多个并行CAM单元及一驱动器,其中所述多个串行CAM单元及所述多个并行CAM单元布置为多个行及多个列,其中每一行包括至少一个串行CAM单元及至少两个并行CAM单元,且其中所述驱动器经配置以产生用于所述多个CAM单元列的多个搜索线,并在每一搜索操作之前为至少一个串行CAM单元列预设定至少一个搜索线以对所述行中的并行CAM单元的匹配线预充电,且其中不预设定用于并行CAM单元列的搜索线;及随机存取存储器(RAM),其经配置以存储所述数据。
[0010] 本发明还提供了一种搜索内容可寻址存储器(CAM)的方法,所述内容可寻址存储器由多个CAM单元行组成,每一行包括至少一个串行CAM单元及至少两个并行CAM单元,所述方法包括:针对所述多个CAM单元行的每一者,为所述行中的至少一个串行CAM单元预设定至少一个搜索线以对所述行中的所述至少两个并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线,以顺序次序搜索所述行中的所述至少一个串行CAM单元,及选择性地并行搜索所述行中的所述至少两个并行CAM单元。
[0011] 本发明还提供了一种搜索设备,其用于搜索内容可寻址存储器(CAM),所述内容可寻址存储器由CAM单元的多个行组成,每一行均包括至少一个串行CAM单元及至少两个并行CAM单元,对CAM单元所述多个行中的每一者,所述设备包括:预设定装置,其用于为所述行中至少一个串行CAM单元预设定至少一个搜索线来对所述行中所述至少两个并行CAM单元的匹配线预充电,其中不预设定用于并行CAM单元列的搜索线,第一搜索装置,其用于以顺序次序搜索所述行中的所述至少一个串行CAM单元,及第二搜索装置,其用于选择性地并行搜索所述行中的所述至少两个并行CAM单元。
[0012] 下文将进一步详细描述本发明的各方面及实施例。

附图说明

[0013] 结合各图式根据下文所列举的详细说明,将更易于了解本发明的特征及本质,所有图式中相同的参考字符识别相同的元件。
[0014] 图1显示混合串并行CAM。
[0015] 图2A及2B显示串行CAM单元的两个例示性设计。
[0016] 图2C及2D显示并行CAM单元的两个例示性设计。
[0017] 图3显示混合串并行CAM中的一个CAM单元行。
[0018] 图4、5及6显示在没有串行CAM区段的任何定时信号的情况下混合串并行CAM中的一个CAM单元行的三个实施例。
[0019] 图7显示用于执行混合串并行搜索的过程。
[0020] 图8显示无线通信系统中的无线装置。

具体实施方式

[0021] 本文所用“例示性”一词的意思是“充当实例、示例或图解”。在本文中,任何称作“例示性”的实施例或设计均未必应视为比其它实施例或设计更优选或更有利。
[0022] 图1显示混合串并行CAM 100的方块图。CAM 100包含CAM阵列110、搜索线驱动器140及输出电路150。CAM阵列110是M个行×N个列的CAM单元120及122的二维阵列,其中M和N可为任一整数值。CAM阵列110中的每一行包含N个CAM单元,所述CAM单元共同地存储(例如)地址的条目。每一行与一匹配线相关联,所述匹配线具有由所述行中的所有CAM单元确定的逻辑值。所述N个列中的每一者对应于N位输入地址的不同位位置。每一列与一微分搜索线相关联,所述微分搜索线耦合到所述列中的所有CAM单元。每一搜索线具有逻辑值,所述逻辑值是由所述输入地址的一个位确定的。可将每一搜索线上的逻辑值与耦合到所述搜索线的M个CAM单元的每一者中所存储的逻辑值进行比较。可将所述N位输入地址提供给所述CAM阵列的所有M个行,并同时将其与所述CAM阵列中的所有M个条目进行比较。
[0023] 搜索线驱动器140接收所述输入地址并产生用于N个CAM单元列的搜索线。输出电路150接收所述M个行的匹配线并提供所需的输出。例如,输出电路150可执行编码并提供K位值,所述值指示匹配所述输入地址的特定行,其中 且 表示最高限度操作。
[0024] 一般来说,CAM可经设计以执行并行搜索、串行搜索,或混合串并行搜索。对于所有三个搜索方案,可并行地搜索所述CAM阵列的所有M个行以寻找与所述输入地址的任何匹配。对于并行搜索方案,并行地搜索每一行的所有N个位以确定所述行是否匹配所述输入地址。在所述三个方案中,并行搜索方案以最短的时间量提供搜索结果,但由于并行比较而消耗最多功率。对于串行搜索方案,以顺序次序搜索每一行的N个位,通常以最低有效位(LSB)开始。一旦检测到输入地址位与所存储位之间的不匹配,即终止对每一行的串行搜索。在所述三个方案中,串行搜索方案消耗最少功率量,因为仅在所有先前存储的位匹配其对应的地址位的情况下,才对另一所存储位进行比较。然而,在所述三个方案中,串行搜索方案由于串行比较而以最长时间量提供搜索结果。混合串并行搜索方案对一定数目的位执行串行搜索且对剩余位执行并行搜索,以获得高速度及较低功率消耗两者。下文描述所述混合串并行方案。
[0025] 在图1中所示的实施例中,CAM阵列110包含四个串行CAM单元120列及N-4个并行CAM单元122列。一般来说,CAM可包含任一数目的串行CAM单元列及任一数目的并行CAM单元列。总列数N通常由使用CAM的应用所确定。可基于功率消耗与搜索速度之间的折衷来选择串行CAM单元列的数目。可如下文描述来实施每一串行CAM单元120及每一并行CAM单元122。
[0026] 图2A显示串行CAM单元120x的示意图,其可用于图1中的每一串行CAM单元120。CAM单元120x包含存储数据位的存储器单元210及将所存储数据位与地址位进行比较的比较电路220x。存储器单元210包含一对交叉耦合的反相器212及214。反相器212的输出耦合到反相器214的输入、N沟道场效应晶体管(N-FET)216的漏极及数据线q。反相器
214的输出耦合到反相器212的输入、N-FET 218的漏极及互补数据线qb。N-FET 216及
218的栅极耦合到字线,N-FET 216的源极耦合到位线b,且N-FET 218的源极耦合到互补位线bb。所述字线用于选择并启用CAM单元行来进行编程。所述微分位线用于将数据位写入到存储器单元210中。反相器212及214通过正反馈机制来存储所述数据位。存储器单元210的编程为所属技术领域周知。
[0027] 比较电路220x包含三个N-FET 222、224及226以及P-沟道FET(P-FET)228。N-FET222及224的栅极分别耦合到数据线q及互补数据线qb,其源极分别耦合到搜索线s及互补搜索线sb,且其漏极耦合在一起并进一步耦合到FET 226及228的栅极。N-FET 226的源极耦合到输入匹配线match_in,且其漏极耦合到输出匹配线match_out。P-FET 228的源极耦合到输出匹配线,且其漏极耦合到电源电压VDD。
[0028] 比较电路220x如下操作。将微分搜索线s及sb设定为地址位的值。如果所述地址位匹配存储器单元210中所存储的数据位,则搜索线s匹配数据线q,互补搜索线sb匹配互补数据线qb,导通N-FET 222或224,且由导通的N-FET将节点eq拉到逻辑高。节点eq上的逻辑高关断P-FET 228并导通N-FET 226,从而将输入匹配线上的逻辑值传递到输出匹配线。或者,如果所述地址位不匹配所存储发的数据位,则导通N-FET 222或224,由导通的N-FET将节点eq下拉到逻辑低,关断N-FET 226,导通P-FET 228,且将输出匹配线上拉到逻辑高。因此,比较电路220x在存在匹配的情况下将输入匹配线上的逻辑值传递到输出匹配线,且在存在不匹配的情况下提供输出匹配线上的高逻辑值。
[0029] 图2B显示串行CAM单元120y的示意图,其也可用于图1中的每一串行CAM单元120。CAM单元120y包含存储数据位的存储器单元210及将所存储数据位与地址位进行比较的比较电路220y。比较电路220y包含如上文针对图2A中的比较电路220x所描述而耦合的N-FET 222、224及226以及P-FET 228。比较电路220y进一步包含P-FET 232及234,其栅极分别耦合到互补数据线qb及数据线q,其源极分别耦合到搜索线s及互补搜索线sb,且其漏极耦合在一起并进一步耦合到FET 226及228的栅极。N-FET 222及P-FET 232形成由q及qb线控制的互补金属氧化物半导体(CMOS)栅极。N-FET 224及P-FET 234形成由qb及q线控制的另一CMOS栅极。
[0030] 图2C显示并行CAM单元122x的示意图,其可用于图1中的每一并行CAM单元122。CAM单元122x包含存储数据位的存储器单元210及将所存储数据位与地址位进行比较的比较电路240x。比较电路240x包含三个N-FET 242、244及246。N-FET242及244的栅极分别耦合到数据线q及互补数据线qb,其源极分别耦合到互补搜索线sb及搜索线s,且其漏极耦合在一起并进一步耦合到N-FET 246的栅极。N-FET 246的漏极耦合到匹配线且其源极耦合到虚拟电路接地match_gnd。
[0031] P-FET 256用于对匹配线预充电。P-FET 256的漏极耦合到电源电压VDD,其源极耦合到匹配线,且其栅极耦合到预设定线pre。
[0032] 比较电路240x如下操作。在对CAM单元行执行搜索之前,将pre线带到逻辑低,导通P-FET 256,将匹配线预充电到电源电压VDD,然后将pre线带到逻辑高,且关断P-FET256。将微分搜索线s及sb设定为地址位值。如果所述地址位匹配所存储的数据位,则N-FET 242或244导通并将节点eq拉到逻辑低,关断N-FET 246,且不将匹配线下拉到虚拟电路接地。或者,如果所述地址位不匹配所存储的数据位,则N-FET 242或244导通并将节点eq拉到逻辑高,导通N-FET 246,并将匹配线下拉到虚拟电路接地。任一不匹配的CAM单元会将匹配线下拉到逻辑低。如果所述行中的所有CAM单元均匹配,则匹配线保持在已预充电(逻辑高)状态。
[0033] 图2D显示并行CAM单元122y的示意图,其也可用于图1中的每一并行CAM单元122。CAM单元122y包含存储数据位的存储器单元210及将所存储数据位与地址位进行比较的比较电路240y。比较电路240y包含如上文针对图2C中的比较电路240x所描述而耦合的三个N-FET 242、244及246。比较电路240y进一步包含P-FET252及254,其栅极分别耦合到互补数据线qb及数据线q,其源极分别耦合到互补搜索线sb及搜索线s,且其漏极耦合在一起并进一步耦合到N-FET 246的栅极。N-FET242及P-FET 252形成由q及qb线控制的CMOS栅极。N-FET 244及P-FET 254形成由qb及q线控制的另一CMOS栅极。
[0034] 图2A到2D显示串行及并行CAM单元的某些例示性设计。还可以其它设计实施这些CAM单元。
[0035] 对于并行搜索方案,在执行搜索之前对所有M个行的匹配线预充电。通常,只有一个行(如果有)匹配输入地址,且此行的匹配线保持在逻辑高。所有其它行均不匹配,且将这些行的匹配线预充电为逻辑低。每一行具有相对大的寄生电容。对所述高电容性匹配线的持续预充电及放电导致并行搜索方案的高功率消耗。
[0036] 对于串行搜索方案,将每一行中最左边的(或LSB)串行CAM单元的输入匹配线设定为逻辑低。并行地搜索所有M个行,但每一行一次仅搜索一个位,直到存在不匹配或已搜索完所述行中的所有位。由于高电容性匹配线在存在任一既定位的不匹配时不放电,因此功率消耗降低。然而,搜索速度较低且取决于所述行中CAM单元的数目。此外,为对每一行中的所述位的顺序搜索进行控制通常需要定时信号。
[0037] 所述混合串并行搜索方案试图获得低功率消耗及高搜索速度两者。可将任一既定位的匹配概率假定为50%。如果每一行中的位是独立的(较低有效位通常如此),则n个n n位之后的匹配概率为(1/2),且n个位之后的不匹配概率为1-(1/2)。例如,两个位之后的不匹配概率为75%,三个位之后为87.5%,四个位之后为93.75%,依此类推。可对小数目的位(例如,四个位)执行串行搜索以获得低功率消耗。在搜索此小数目的位之后,多数行将不匹配,且可对匹配串行部分的每一行中的剩余位执行并行搜索。
[0038] 图3显示混合串并行CAM的一个CAM单元行300。行300包含具有四个串行CAM单元120a到120d的串行区段及具有多个并行CAM单元122的并行区段。可如图2A或2B中所示来实施每一串行CAM单元120a到120d。可如图2C或2D中所示来实施每一并行CAM单元122。
[0039] 将四个串行CAM单元120a到120d布置为两个对,以限制串行耦合的通过晶体管226的数目并降低串行CAM单元之间的输入及输出匹配线上的寄生电容。较少的通过晶体管226在其导通时降低跨越这些晶体管的电压降。较低的寄生电容改善了输入及输出匹配线的瞬态响应,此允许较快的传播时间及较高的操作速度。“或非”门330接收来自CAM单元
120b的输出匹配线m2b及preB信号,并驱动N-FET 332及P-FET 334的栅极。N-FET 332的源极耦合到电路接地且其漏极耦合到串行CAM单元120c的输入匹配线。P-FET 334的源极耦合到电路接地且其漏极耦合到CAM单元120d的输出匹配线m4b。反相器340接收来自CAM单元120d的输出匹配线m4b并提供串行区段的匹配线match_s。N-FET 342及344的栅极分别耦合到反相器340的输出及par线,其源极耦合到电路接地,且其漏极耦合到并行区段的虚拟电路接地match_gnd。“与非”门350接收来自CAM单元120d的输出匹配线m4b及par B信号。P-FET 352及354的栅极分别耦合到“与非”门350的输出及pre线,其源极耦合到并行区段的匹配线match_p,且其漏极耦合到电源电压VDD。“与”门360接收串行及并行区段的匹配线match_s及match_p,并提供所述行的匹配线。
[0040] CAM的总功率消耗的大部分通常是由对所述匹配线的持续预充电及放电及对所述搜索线的持续预充电及放电造成的。可通过如上文所述仅搜索其中串行区段匹配的一小百分比的行来降低功率消耗。在此情形下,仅对一小百分比的行的匹配线预充电及放电。也可通过不对所述搜索线预充电及放电来降低功率消耗。通常,为了避免将电源电压VDD端接到电路接地(例如通过图2C中所示的P-FET 256及N-FET 246),在对匹配线进行预充电的同时将搜索线s及互补搜索线sb两者均设定为逻辑低。然后,根据输入地址位值将s或sb线设定为逻辑高。将s及sb线预设定为逻辑低导致对这两个线中的一者的预充电及放电。可通过在对match_p线预充电的同时使match_gnd线浮动(从而防止电源电压被短接到电路接地)来避免此预设定。通过不预设定所述搜索线,仅在输入地址位改变值时而不是每次搜索时耗散功率。
[0041] 图3中所示的架构支持两种模式的混合串并行搜索。在顺序模式中,顺次搜索四个串行CAM单元,且仅在所有串行CAM单元匹配的情况下才并行地搜索并行CAM单元。在并行模式中,顺次搜索串行CAM单元,并行地搜索并行CAM单元,且同时执行串行及并行搜索以便较早地获得搜索结果。对于这两种模式,串行区段的match_s线及并行区段的match_p线“与”在一起以产生整个行的匹配线,如图3中所示。
[0042] 对于顺序模式,par信号处于逻辑低,且parB信号处于逻辑高。关断N-FET 344,由N-FET 342控制match_gnd线,且“与非”门350的输出等于match_s线。如果所有的串行CAM单元均匹配,则match_s线处于逻辑高,且match_gnd线被下拉到逻辑低。相反,如果串行CAM单元不匹配,则match_s信号处于逻辑低,导通P-FET 352,且对match_p线预充电。
[0043] 对于并行模式,par信号处于逻辑高,且parB信号处于逻辑低。导通N-FET 344,总是将match_gnd线下拉到逻辑低,且在执行串行搜索的同时并行区段是可操作的。“与非”门350的输出处于逻辑高,关断P-FET 352,且使用pre信号经由P-FET 354对match_p线预充电。
[0044] 可如下执行对行300的混合串并行搜索。在串行区段上执行串行搜索,从CAM单元120a开始一次一个CAM单元地顺序搜索,或并行地搜索所述串行区段中的所有CAM单元。每一串行CAM单元在存在匹配的情况下传递来自先前串行CAM单元的搜索结果,且在存在不匹配的情况下传递逻辑高。
[0045] 如果所有串行CAM单元120a到120d均匹配,则来自CAM单元120d的输出匹配线m4b处于逻辑低,反相器340的输出处于逻辑高,N-FET 342导通,且match_gnd线被下拉到电路接地。在先前搜索期间对match_p线预充电,且当match_gnd线处于电路接地时启用所述并行区段中的CAM单元。如果所有的并行CAM单元122均匹配,则match_p线保持处于逻辑高。如果所述串行及并行部分两者均匹配,则“与”门360的输出为逻辑高。
[0046] 相反,如果串行CAM单元120a到120d的任一者不匹配,则来自CAM单元120d的输出匹配线m4b处于逻辑高,反相器340的输出处于逻辑低,导通N-FET 342,使match_gnd线浮动,且停用并行区段。parB线在顺序模式中处于逻辑高,且m4b线上的逻辑低导致“与非”门350的输出处的逻辑低。P-FET 352导通并对match_p线预充电。如果由于所有串行CAM单元均不匹配而在先前搜索中未启用并行区段,则P-FET 352仅需归还从先前预充电起已泄露的少量电荷。
[0047] 如果仅当串行CAM单元中存在不匹配时才对match_p线预充电,则所述match_p线在某些情况下可能是错误的。一种这样的情况是如下情形:在既定搜索中,串行CAM单元匹配且并行CAM单元不匹配,且没有如上所述对match_p线预充电。如果在下一搜索中,串行CAM单元及并行CAM单元两者均匹配,则并行区段可由于在先前搜索中没有对match_p线预充电而错误地宣称不匹配。为了避免对上述情形的错误检测,可使用preB信号在每一搜索之前对match_p线预充电。可通过在preB线上提供逻辑高来实现此预充电,这将导致“或非”门330的输出处的逻辑低。来自“或非”门330的逻辑低导通P-FET 334并在m4b线上强加逻辑高,从而导通P-FET 352并对match_p线预充电。
[0048] preB线还防止在对match_p线预充电期间将match_gnd线设定为逻辑低。如果preB线不存在且m2b线处于逻辑低,则“或非”门330的输出处于逻辑高,N-FET 332导通,且串行CAM单元120c的输入匹配线处于逻辑低,m4b线可处于逻辑低,且match_s线可处于逻辑高,从而将match_gnd线带到逻辑低。然后,可启用并行区段且可短接正预充电到电源电压VDD的match_p线。如果preB线存在且在预充电期间设定为逻辑高,则防止将match_gnd线下拉到逻辑低。在预充电match_p线期间,浮动的match_gnd线停用并行区段。
[0049] preB信号以充足的定时余量产生以确保“或非”门330提供用于预充电的所需逻辑值。特定来说,为确保来自“或非”门330的有效输出,应该在断定preB线之前固定m2b信号的逻辑状态。preB线的此定时余量限制可搜索串行区段的速度,从而限制可搜索整行CAM单元的速度。
[0050] 图4显示在没有串行区段的任何定时信号的情况下,混合串并行CAM的一个CAM单元行400。行400包含具有四个串行CAM单元120a到120d的串行区段及具有多个并行CAM单元122的并行区段,如图3中所示。除“或非”门330之外,行400进一步包含图3中的行300的所有支持电路。在图4中所示的实施例中,反相器430置换“或非”门330,且其输入耦合到来自串行CAM单元120b的m2b线,而其输出耦合到N-FET 332及334的栅极。反相器430及N-FET 332形成用于m2b线的缓冲器电路。所述缓冲器电路还可以其它类型的电路来实施。
[0051] 可如下执行对行400的混合串并行搜索。在执行所述搜索之前,通过为第二串行CAM单元120b预设定搜索线来对match_p线预充电,以使s2及s2b线两者均处于逻辑低。s2及s2b线上的逻辑低导通N-FET 222b或224b,从而将eq2节点带到逻辑低。eq2节点上的逻辑低导通P-FET 228b,从而将m2b线拉到逻辑高并将反相器430的输出强加为逻辑低。反相器430输出处的逻辑低导通P-FET 334,从而将m4b线拉到逻辑高,将反相器340的输出强加为逻辑低,并将“与非”门350的输出设定为逻辑低。反相器340输出处的逻辑低关断N-FET 342,从而导致match_gnd线浮动。“与非”门350输出处的逻辑低导通P-FET
352,从而对match_p线预充电。在对match_p线预充电之后,释放串行CAM单元120b的s2及s2b线并取第二输入地址位的值。然后,可如上文针对图3所描述对串行区段执行串行搜索。可在时钟信号的一个相位上(例如,在逻辑高期间)执行预充电,且可在所述时钟信号的另一相位上(例如,在逻辑低期间)执行比较。
[0052] 在图4中所示的实施例中,在每一搜索之前仅预设定第二串行CAM单元120b的微分搜索线s2及s2b以对match_p线预充电。可预设定或可不预设定所述行中的所有其它串行CAM单元的搜索线。例如,还可预设定第一串行CAM单元120a,但对match_p线预充电无需此预设定。在另一实施例中,在每一搜索之前预设定最后一个串行CAM单元120d的搜索线,且可预设定或可不预设定所有其它串行CAM单元的搜索线。在又一实施例中,在每一搜索之前预设定所有串行CAM单元的搜索线。一般来说,可预设定任何数目的串行CAM单元的搜索线以对match_p线预充电。由于每一预设定的搜索线要耗散功率,因此可能需要的是在每一搜索之前预设定尽可能少的搜索线(例如,一个搜索线)。
[0053] 图5显示在没有串行区段的任何定时信号的情况下,仅支持顺序模式的混合串并行CAM的一个CAM单元行500。行500包含具有四个串行CAM单元120a到120d的串行区段及具有多个并行CAM单元122的并行区段,如图3及图4中所示。行500进一步包含图4中的行400的所有支持电路,除因不支持并行模式而省去的“或非”门350、N-FET 344及P-FET 354之外。P-FET 352的栅极耦合到反相器340的输出。
[0054] 在图5中所示的实施例中,在任一既定时刻导通N-FET 342或P-FET 352。在每一搜索之前,预设定第二串行CAM单元的s2及s2b线,在反相器340的输出处产生逻辑低,导通P-FET 352,且对match_p线预充电。此后,关断P-FET 352,导通N-FET342,将match_gnd线下拉到逻辑低,且启用并行区段。
[0055] 图6显示在没有串行区段的任何定时信号的情况下,仅支持顺序模式的混合串并行CAM的一个CAM单元行600。行600包含具有k个串行CAM单元120a到120k的串行区段及具有多个并行CAM单元122的并行区段。一般来说,k>1(例如,k可以是2、3、4等)。行600包含图5中的行500的所有支持电路,除省去的反相器430、N-FET 332及P-FET 334之外。在图6中所示的实施例中,每一串行CAM单元的输出匹配线直接地耦合到下一串行CAM单元的输入匹配线。在每一搜索之前,预设定最后一个串行CAM单元的sk及skb线以对match_p线预充电。
[0056] 图4、5及6显示可在不需要串行区段的任何定时信号的情况下执行混合串并行搜索的CAM的例示性设计。还可基于本文中所提供的说明以其它设计来实施混合串并行CAM。
[0057] 图7显示用于对CAM执行混合串并行搜索的过程700,所述CAM由多个行组成,其中每一行具有至少一个串行CAM单元及至少两个并行CAM单元。并行地搜索所述CAM的行(方块710)。预设定每一行中的至少一个串行CAM单元的至少一个搜索线以对所述行中的并行CAM单元的匹配线预充电(方块712)。例如,可预设定第二串行CAM单元(图4及图5中)或最后一个串行CAM单元(图6中)的搜索线。以顺序次序搜索每一行中的串行CAM单元(方块714)。选择性地并行搜索每一行中的并行CAM单元(方块716)。例如,可(1)仅在既定行中的串行CAM单元匹配的情况下或(2)与对所述串行CAM单元的搜索同时地搜索所述行中的并行CAM单元。可控制每一行中的并行CAM单元的虚拟接地线以启用或停用对所述并行CAM单元的搜索。
[0058] 本文中描述的CAM可用于各种应用。下文描述了所述CAM的一个例示性应用。
[0059] 图8显示无线通信系统中的无线装置800的方块图。无线装置800可以是蜂窝电话、手持机、无线终端、个人数字助理(PDA)或某些其它电子设备。所述无线系统可以是码分多址(CDMA)系统、时分多址(TDMA)系统、全球移动通信(GSM)系统、频分多址(FDMA)系统、正交频分多址(OFDMA)系统等。
[0060] 无线装置800能够经由接收路径及传输路径提供双向通信。在所述接收路径上,由天线812来接收基站传输的信号并将其提供给接收器单元(RCVR)814。接收器单元814调节(例如,滤波、放大、及下变频)所接收信号、数字化经调节信号并将数据样本提供给专用集成电路(ASIC)820以供进一步处理。在所述传输路径上,由ASIC 820将要从无线装置800传输的数据提供给传输器单元(TMTR)816。传输器单元816调节(例如,滤波、放大、及下变频)所述数据并产生经调制信号,所述经调制信号经由天线812传输到基站。
[0061] ASIC 820包含各种单元,例如,微处理器822、数字信号处理器(DSP)824及高速缓冲存储器826。微处理器822执行通用处理,且可以是精简指令集计算机(RISC)或某些其它类型的处理器。DSP 824执行传输路径的数据处理(例如,编码、交错、调制、码信道化、谱扩展、滤波等)及接收路径的数据处理(例如,滤波、解扩展、信道化、解调、解交错、解码等)。DSP 824将要执行的处理视通信系统而定。高速缓冲存储器830存储用于微处理器822及/或DSP 824的数据及/或程序码。高速缓冲存储器830可包含存储所述数据及/或程序码的地址的CAM 832及存储所述数据及/或程序码的RAM 834。可基于本文中描述的CAM设计的任一者或某一其它CAM设计来实施CAM 832。控制器840控制ASIC 820及无线装置800内的其它单元的操作。主存储器842存储控制器840所使用的程序码及数据。
[0062] 本文中描述的CAM可实施于各种硬件单元中,例如,ASIC、DSP、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、控制器、处理器及其它电子装置。所述CAM还可以各种IC工艺技术来制造,例如,CMOS、N-MOS、P-MOS、双极CMOS(Bi-COMS)、双极等。CMOS技术可在同一集成电路(IC)小片上制造N-FET及P-FET两者,而N-MOS技术仅可制造N-FET,且P-MOS技术仅可制造P-FET。可使用任何装置大小技术(例如,130纳米(nm)、65nm、30nm等)来制造所述CAM。
[0063] 提供上文对所揭示实施例的说明来使所属技术领域的技术人员能够制作或使用本发明。所属技术领域的技术人员将易知对这些实施例的各种修改,且本文中界定的一般原理可在不背离本发明精神或范围的情况下应用于其它实施例。因此,本发明并不打算限定为本文所示实施例,而应符合与本文所揭示原理及新颖特征相一致的最大范围。