背景技术
CAM是根据所存储数据的内容而不是存储数据的位置来访问和修改数据的存储设备。通常,典型的CAM搜索操作涉及到:接收搜索数据字,并且将搜索数据字与CAM中的所有实体进行比较,以确定在搜索数据字和CAM中的实体之间存在单个匹配、多个匹配还是不匹配。在CAM的行中的每一个存储位置与匹配线相连,所述匹配线指示在所存储的数据字和搜索字之间比较的的匹配或不匹配结果。典型地,由优先编码器(PE)来处理指示匹配状态的所有匹配线,以确定作为CAM的输出而提供的最高优先级的匹配地址。
每一个数据字和匹配线组合在CAM内具有唯一的N比特的地址。因此,对于任意搜索周期,可能存在多达2N条激活的匹配线。优先编码器与匹配线相连,并且产生与最高优先级的激活匹配线相对应的N比特地址。然后,可以将该N比特的地址诸如用作在微处理器系统中的因特网协议(IP)路由表查询、压缩和解压或完全关联高速缓冲存储器实现中的指针。由于其能够存储逻辑“1”、逻辑“0”、以及“随意”状态,三态CAM广泛地用于网络应用。对更宽数据宽度的CAM存在日益增加的需要。CAM通常可用于等于72比特和144比特、以及在最近等于288比特宽度的数据宽度(由M表示)的情况下。
随着数据宽度的增加,在搜索操作期间CAM中的能量或电流消耗变得日益重要。对此原因的解释如下。
在搜索操作中,将数据提供给CAM,以便与所存储的数据进行比较。通常对CAM单元进行设计,从而在搜索数据和存储数据之间的匹配提供了非导电的路径,而不匹配提供了导电路径。CAM的行由在被称为匹配线(ML)的通用节点和尾线(TL)之间并联的单元构成。每一个单个的ML与M单元相连(其中,M是比特数量,或者通常为数据宽度)。典型地,在搜索操作中,将M比特的搜索数据提供给搜索数据路径,所述搜索数据路径由与CAM单元的相应列相连的M条搜索线组成。然后,CAM的所有N行同时将搜索数据与每一个单元中所存储的数据进行比较-典型地实现为“异或”比较块-并且将该比较的结果提供给与CAM的每一个行相关的每一条匹配线。然后,读出、放大并典型地锁存在匹配线上的结果,以便提供搜索操作的逻辑电平结果。
在CAM的搜索操作期间,存在两种主要的实质能量消耗的源:匹配线的能量消耗和搜索线的电能消耗。传统上,将所有匹配线预充电为逻辑“H”状态(匹配状况),然后,允许与搜索数据的比较以便将匹配线变为到逻辑“L”状态(未命中状况)。
在大多数CAM应用中,“未命中”比“命中”发生得更为频繁。针对未命中而将匹配线预充电到逻辑“H”并将匹配线放电到逻辑“L”趋向于产生了较高的能量消耗,这是由于与针对每一个搜索操作的对所有匹配线充电和放电相关的高电流所造成的。此外,随着针对更宽字的CAM应用,与每一个匹配线相连的单元数量的增加,匹配线的电容相应地增加,结果,增加了对匹配线进行充电和放电所需的电流。
已经提出了多种解决方案来减少在搜索操作期间所消耗的能量,例如,将匹配线分割为多个分段,并且根据先前分段的匹配或未命中结果来顺序地激活分段。
例如,在美国专利No.6,243,280(授予Wong等人)中描述了分段匹配线结构,其中,将CAM的行分割为多个分段。对于每一条匹配线,对多个匹配线分段的第一分段进行预充电,并且对第一分段执行搜索操作。在第一分段中匹配的情况下,有选择地对第二匹配线分段进行预充电,并且对第二分段进行搜索。如果在第二分段中存在匹配,则对第三分段进行预充电并按照类似的方式来进行搜索,直到已经搜索了匹配线的所有分段。因此,后续分段的预充电仅发生在前面分段中的匹配结果的情况下。然而,在所有分段中均匹配的情况下,有选择地将每一个分段预充电为逻辑“H”仍然需要较大电流。此外,通过在进行该分段中的实际比较之前必须等待在分段中的有选择的预充电的发生,在搜索时间中引入了显著的延迟。
在美国专利No.6,191,970(授予Pereira)中,将匹配线分为多个分段,在开始搜索操作之前将所有这些分段预充电到逻辑“H”状态。此外,每一个CAM单元具有关联放电电路,用于响应来自前面的匹配线分段的禁止信号,有选择地对其相应的匹配线分段进行预充电。因此,仅当紧挨在前面的分段结果为未命中,同时所有后续分段保持预充电为逻辑“H”时,对分段进行放电。结果,一个分段的未命中状况沿该行的剩余部分传播,而不沿着该行对所有其他分段进行放电。在该方法缓解了通过有选择地预充电分段所引入的延迟问题的同时,仍然保持了针对高电流消耗的电位,这是由于必须首先将所有匹配线预充电到逻辑“H”状态。此外,每一个分段的匹配检测必须与自从匹配线预充电为命中开始而进行时钟控制的时钟信号相匹配。结果,或者必须产生大量的内部时钟,或者必须使用增加了系统等待时间的系统时钟。最后,为了防止在启用分段之前的放电,将一串联设备添加到每一个CAM单元上,从而增加芯片面积并减慢整个操作。
在由Zukowski等人在IEEE 1997中所写的题为“Use of SelectivePrecharge for Low power on the Match Lines of Content AddressableMemories”的文章中,公开了一种方法,其中,对整个匹配线中的较小分段进行预充电,并且首先用来进行局部比较,而且仅当在该第一较小分段中发生了匹配时,对匹配线的剩余分段进行预充电并最终进行搜索。该文章还提出:理论上,可以对选择性的预充电技术进行扩展,以覆盖多于一个阶段,而附加的开销、额外的时钟相位和附加缓存不将在这里所提出的单一阶段选择性预充电上提供任何较大的附加增益。该方法未考虑:假如足够快的处理技术可用于实现所需电路,具有顺序地而独立于时钟周期工作的多个匹配线分段的可能性。此外,由Zukowski等人所讨论的方法仍然依赖于预充电到逻辑“H”状态,如先前所解释的,这可能会提取大量电流。
因此,仍然需要一种在搜索操作期间消耗的能量比传统搜索技术消耗的更少的CAM。
具体实施方式
在以下描述中,相同的参考数字涉及附图中的相同结构。
参考图1a,其中示出了典型CAM 100的简化方框图,仅显示了将参考本发明进行讨论的主要元件。本领域的技术人员将会理解:CAM设备包括针对其他多种功能的许多其他的块,但是这些块并不直接与本发明相关,因此,为了简化而省略了这些块。CAM 100包括按照行和列排列的CAM单元104的阵列102,其中,每一行的单元与通用匹配线(ML)相连。在三态CAM的情况下,每一个单元存储了三种状态之一:还被称为逻辑“H”的逻辑“一”、还被称为逻辑“L”的逻辑“零”、以及还被称为“X”的“随意”状态,以便实际存储两个比特的数据。通常,CAM的每一行存储数据字。地址解码器106用来选择CAM阵列102中的任意行,以便将数据写入或读出所选择的行,尽管这是非常通用的,将数据写入或加载到CAM。双向数据访问电路114在CAM阵列102和CAM芯片数据引脚(未示出)之间传送数据,以便于外部处理器(未示出)访问。与CAM阵列102相邻的是匹配线读出电路块110,其包括N个匹配线读出电路,并且在搜索和比较操作期间使用,用于输出N比特结果112。优先编码器114处理针对所有行的匹配线读出电路块输出,以便产生与匹配字的位置相对应的最高优先级的匹配地址(即,最低物理地址)。还对多匹配检测电路116进行连接,以使其接收来自匹配线读出电路110的输出,结果,产生了两比特输出Q0、Q1,表示没有匹配、仅存在一个匹配、或多匹配的情况。
现在参考图1b,图1b示出了三态CAM的单元阵列的小子集(i和i+1)。如图所示,在阵列中的(i,i+1)单元的每一行形成了与匹配线MLi相连的行i中的每一个单元104的数据字。每一个三态单元104(j,j+1……)包含两个存储元件单元A、用于存储两个比特的单元B、以及用于将所存储的比特与搜索比特进行比较的异或(XOR)比较晶体管120。存储元件A、元件B可以具有以下任一类型:静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)单元,这两种类型均为本领域所公知的(对于本领域的技术人员显而易见,6晶体管的SRAM单元实现将明显需要额外的补充位线对)。XOR晶体管120是n沟道器件,用于在未命中的情况下,将匹配线MLi拉向“地”。
到目前为止已经提供了CAM阵列的一般结构,作为构成本发明所解决的特定问题的背景。此外,在以下描述中,仅为了简化,在CAM结构100的情况下来讨论本发明的实施例。应该理解,本发明的实施例同样适用于具有其他结构和/或采用了任何适当CAM单元的其他内容可寻址存储器。此外,在以下描述中,赋予各种信号的逻辑电平是任意的,因此,可以通过根据需要来反转相关设备的极性,对其进行修改。例如,图(c)示出了p型异或电路130的实现。
现在参考图2(a),图2(a)示出了根据本发明实施例的CAM的所选行中的分段匹配线的示意图。为了简明,未示出位线、字线、搜索线和相关电路。将n比特(例如,72比特)匹配线分为多个匹配线分段MLS0、MLS1、……、MLSn,例如,每一个均为18比特长(因此,在第一实施例中,存在4个匹配线分段,每一个18比特长,构成了72比特宽度的字)。每一个分段MLS0-MLSn在一端处与相应的读出放大器210相连。在图2(a)的实例中,读出放大器210包括CMOS反相器读出放大器。可以使用更高级的读出放大器电路来提供更低阈值的读出性能,并因而提供更高的速度操作。每一个CMOS反相器读出放大器210输出与相应的匹配线搭接电路212相连,该电路由与电流源216串联的受控反相器214构成,匹配线搭接电路的受控反相器214由串联的P和N沟道器件与附加匹配线搭接使能N沟道器件218构成。每一个匹配线搭接使能N沟道期间218的栅极受相应信号匹配线分段使能信号MATLO1、MATLOn控制,其中n是在行中的位线分段的号码。如以下还将详细描述的那样,按照顺序的方式激活和禁用匹配线分段使能信号MATLO。如图2(a)所示,第一分段MLS0与匹配线头电路220相连,该匹配线头电路也由与电流源216串联的受控反相器224构成。该反相器224也由使能N沟道器件222控制,结果,由使能信号MATLO0控制。通用使能信号例如MLEN\可以用于与第一分段同时启用所有分段,并且将所有分段保持激活,直到已经搜索到整个字为止,但是这样的方法与图2所示的优选实施例相比,将会消耗更多的能量。
每一个分段MLS0-MLSn可以具有相同数量的位单元104,然而,可以根据统计能量分布原则来选择位单元的数量。在图2所示的CAM中,这些单元是如图1c所示的P沟道型的基于SRAM的CAM单元,其中,在未命中的情况下,将匹配线拉向VDD,即正电源。在第一分段MLS0中,匹配线头电路220将第一分段预充电为未命中状况。在匹配线头电路220的情况下,受控反相器224的P沟道和N沟道晶体管由在搜索操作的开始处所产生的匹配线使能信号MLEN\来控制。
对图2(a)中的分段匹配线的操作的解释如下。在开始搜索操作之前,将匹配线中的所有匹配线分段MLS0、MLS1、……、MLSn预充电为未命中状态,即,在该实施例中,通过每一个匹配线搭接电路212中的P沟道上拉晶体管将其预充电到逻辑“H”。匹配头电路220将利用代表为逻辑“L”的MLEN\信号开始预充电,从而导通匹配线头电路220的反相器224中的P沟道器件。结果,将第一匹配线分段MLS0预充电为逻辑“H”,并且该第一分段向第一反相器210和必须充当转发器的第一匹配线搭接电路212提供逻辑“H”信号,并且向MLS1传播逻辑“H”。第二分段MLS1的反相器和第二匹配线搭接电路执行相同的功能,并依此类推,直到将整个匹配线预充电到逻辑“H”,即未命中状况为止。
在搜索操作的开始,将MATLO信号保持在逻辑“L”,并且将搜索数据施加到搜索线(未示出)上。由声明为逻辑“H”的匹配线分段MLS0的MATLO0信号来发起搜索和存储信号的比较,由此,启用匹配头电路220中的电流源。第一匹配线分段的搜索结果可能会产生为未命中或匹配。
在第一实例中,在第一分段中的未命中将导致MLS0分段保持在预充电为未命中状态,即,将保持在逻辑“H”电平,这是由于将存在将提供匹配线分段和预充电电压VDD之间的导电路径的至少一个单元。该匹配线分段和VDD之间的单一导电路径将产生比由匹配线头电路220的电流源217所提供的电流更大的电流,因此,将超过电流源电流。结果,对第一匹配搭接电路的反相器210的输入信号是逻辑“H”,将对后续分段的匹配搭接电路的输出保持为逻辑“H”,从而禁用后续分段的搜索。
在第二实例中,如果在第一分段MLS0中检测到匹配,则在该分段上的电平将开始被匹配线头电流源电流拉向逻辑“L”,创建对“地”的下拉路径。当该电平达到了第一分段的反相器读出放大器210的切换阈值时,反相器读出放大器将其输出从逻辑“L”切换到逻辑“H”,结果,迫使第一匹配线搭接电路212的P沟道上拉晶体管截止,并且实现了针对随后分段MLS1的下拉路径,假定已经启用了下一个分段匹配线搭接使能信号MATLO1。如先前所提到的,可以将所有MATLO信号同时激活到逻辑“H”,或者如稍后还将描述的那样,可以顺序地对其进行激活。结果,每一个匹配线分段使用前面分段的搜索结果来确定是否继续沿匹配线搜索。沿从MLS0到MLSn的匹配线的整个长度重复该处理,之后,将匹配线的最终匹配结果提供给优先编码器,以便进行进一步处理。
因此,通常,前面的匹配线分段的搜索结果用于启用下一匹配线分段的搜索。如果在一个分段中不存在匹配,则下一个和所有剩余分段保持在预充电为未命中状态。如果在分段中存在匹配,则将该匹配结果传递到下一分段,并且随之进行在后续分段中的匹配搜索,并且该搜索将继续进行到下一分段,直到搜索了最后的分段为止。
在上面的一般描述中,MATLO匹配线使能信号的激活和禁用均是指顺序的。可以激活每一个使能信号,以便基本上与来自前面的分段的搜索结果相一致,并且一旦获得了搜索结果,则禁用该信号。可选地,可以同时激活所有的分段使能信号,并且一旦前面的分段已经完成了搜索,则顺序地禁用该信号。
参考图2(b),图2(b)示出了用于根据上述方法来产生分段使能信号的电路。再次地,将典型匹配线MLi分割为如图2(a)所示的n个分段,由其栅极与VDD相连的N沟道晶体管230来实现电流源216。每一个分段具有其相关的匹配线搭接电路212,如图2(a)中所讨论的那样,以及“粘性”锁存器,所述锁存器包括反相器读出放大器210和N沟道下拉晶体管232以保持匹配状况,即当匹配线分段对“地”放电时的状况。即使在已经禁用了针对相关分段的匹配线分段使能信号MATLO之后,通过反相器210和下拉晶体管232之间的反馈连接,该“粘性”锁存器在其相关匹配线分段上保持逻辑“L”电平。
每一个分段从匹配线定时控制块250中接收其相关的匹配线使能信号MLS0、……、MATLOn。对定时控制块250进行连接,以使其接收也分割为n个分段的针对参考或伪匹配线260的定时信号。伪匹配线分段DMLS0、……、DMLSN与一般匹配线分段相同,即,也具有相关伪匹配线搭接和匹配线头电路,但除了伪匹配线头和伪匹配线搭接电路均接收到在搜索操作开始处由搜索控制电路(未示出)所产生的伪匹配线使能信号DMLEN\之外。与每一个伪匹配线分段相连的伪单元262均硬接线为匹配状况,即,对于图1(c)中所示的P沟道SRAM CAM单元实现,搜索和比较异或门的所有栅极与VDD进行硬接线。
伪匹配线的功能是复制普通匹配线的操作,以便产生用于禁用相应普通匹配线分段的适当定时。通过检测在伪匹配线上的匹配状况,并且根据伪匹配线的读出定时对相关普通匹配线的电流源的禁用进行定时,将会把适当的时间量分配用于读出普通匹配线分段,并且还将在完成的分段中禁用匹配线读出,以减少能量消耗。此外,使用针对该普通匹配线的自定时的伪匹配线确保了针对所有相关的匹配线分段的均匀定时,而与处理或温度变化无关。
下面将描述在图2(b)中所讨论的自定时匹配线分段的一般操作。前面参考图2(a)描述了分段匹配线的操作。图2(b)所示实施例的附加控制特征在于MATLO信号的激活定时。在预充电期间,如先前所描述的那样,将一般匹配线分段以及所有伪匹配线分段均预充电到未命中状况。当CAM接收到搜索命令时,搜索控制电路(未示出)声明了一般匹配线使能MLEN\信号和伪匹配线使能DMLEN\信号,用于启用匹配线头电路220、以及伪匹配线搭接电路212。在搜索数据路径(未示出)上提供搜索数据,并且在第一匹配线分段中开始搜索。匹配线定时控制电路产生匹配线头使能信号MATLO0,以便启用在第一匹配线分段中的读出。同时,匹配线定时控制电路250还产生针对其他分段MATLO1-MATLOn的使能信号,以便提供从一个分段到另一分段的针对搜索结果的最快可能流通路径。
同时激活所有分段的原因在于:从统计上说,如果在第一分段中存在未命中,则在沿该匹配线的后续分段中不可能找到匹配。一旦已经检测到硬接线匹配状况,即,在第一伪匹配线分段DMLS0上的逻辑“L”,则由反相器读出放大器的输出产生信号Finish MATLO0。将该Finish MATLO0提供给匹配线定时控制电路,结果,该定时控制电路解除匹配线头使能信号MATLO0的产生,从而禁用第一匹配线分段MLS0。一旦在第二伪匹配线分段中检测到匹配结果,则将Finish MATLO1信号提供给匹配线定时控制电路250,结果,该定时控制电路禁用第二一般匹配线分段MLS1。伪匹配线分段继续按照该方式读出和提供Finish MATLO信号,直到已经读出了所有伪分段为止,从而提供相应一般匹配线分段的顺序禁用。可选地,仅在已经搜索并读出了最后分段之后,可以禁用在第一分段之后的分段。
应该注意,如以上所描述的,通过将匹配线分割为多个分段,并且还结合在每一个匹配线分段上预充电为未命中状况,有选择地控制每一个匹配线分段的激活和禁用,可以实现显著的能量节省。此外,从一个分段向另一分段的搜索结果的流通实现了非常快的搜索操作。随着字宽度的增加,可以通过在匹配线分段的组之间使用管线阶段,可以扩展该方法,如以下所详细描述的那样。
参考图3(a),图3(a)示出了其中包括N沟道ML异或下拉器件的本发明的另一实施例。为了简化,所示出的典型三态CAM单元仅使用了异或下拉晶体管。每一个匹配线搭接电路212包括串联的p沟道电流源晶体管和反相器(例如,分别为P3、P4、N2)。匹配线头电路具有与“地”进行硬接线的中间P沟道晶体管。每一个匹配线分段ML1、ML2等具有如图2(a)所示的相关的反相器读出放大器,并且每一个反相器读出放大器的输出表示为MLSO1、MLSO2等。同时将使能信号/EN提供给所有匹配线搭接电路。
现在将参考图3(a)以及参考图3(b)中的时序图,来描述该实施例的一般操作。在预充电期间,使能信号处于逻辑“H”,因此,将所有匹配线分段预充电为未命中状态。预充电脉动地通过以达到所有匹配线分段,如参考图2(a)所描述的那样。在使能信号/EN为高电平的同时,可以将新搜索数据提供给搜索数据路径(未示出)。当/EN信号表示逻辑“L”时,启用第一匹配线分段ML1。设置晶体管P2的尺寸,从而单比特的未命中将会使匹配线分段保持在逻辑“L”状态,即,匹配线将保持在预充电为未命中状态。因此,与CAM单元中的任意两个串联的下拉异或器件相比,P2必须具有明显更差的电流驱动能力。在匹配线分段上的所有单元匹配的情况下,则匹配线分段ML将缓慢地上升到逻辑“H”,即,达到匹配状态。相对较慢的上升是由于相对较差的器件P2造成的。一旦ML1超过了静态匹配线分段读出放大器的切换阈值(示出了简单的反相器,尽管可以使用更为高级的电路来提供更低的阈值,并因而提供更高速的操作),则将释放第二匹配线分段。
参考图3(b),该定时图示出了其中在第二分段中存在匹配,之后在第二分段中存在匹配的第一搜索。可以利用仅作为速度的限制来实现任意数量的分段(图3(a)中示出了匹配线分段1和2)。只要匹配结果具有足够的时间,在一个/EN低电平时间段(典型地为一个时钟周期)期间通过所有匹配线分段传播,则图3(a)中所示的实施例将适当地提供搜索结果通过匹配线分段的流通操作。图3(b)还示出了其中在第一匹配线分段中存在未命中的第二搜索。结果,在随后分段中未发生另外的信号转换,结果节省了能量。
如先前所提到的,利用该方法来分段匹配线的好处包括:在前面的分段中检测到未命中之后,通过消除了不必要的信号转换,节省了能量消耗;更高的操作速度,其中关注了匹配线的电阻性/电容性RC延迟,(该技术将延迟减少为RC/n,其中n是分段数,而RC是在分段之前的整个匹配线ML的时间常数)。此外,对于深度亚微米工艺,处于“截止”的器件的泄漏可能会较显著,特别是其中72比特或144比特的CAM单元可以与单个匹配线相连的情况。如果该总计泄漏电流接近于单个比特未命中的电流,则将不能够在匹配和未命中之间进行区分。通过将匹配线断开为多个分段,减少了并联的电位泄漏路径的数量,并且解决了问题。
在匹配线分段中未命中的情况下,将存在在相关匹配线搭接电路中的使能p沟道上拉路径和在CAM单元自身中的一个或多个串联的下拉路径之间流动的静态电流。可以通过记录未命中的禁用分段和所有后续分段,消除所浪费的电流。根据本发明的另一实施例,这样的禁用信号由参考或伪匹配线直接地产生,如图4所示。应该注意,术语参考匹配线和伪匹配线可彼此交换地使用,并且表示相同的结构。如参考图3所解释的,参考匹配线具有相同数量的单元和匹配线搭接电路,以便匹配一般匹配线的电容,而所有CAM单元与“0”数据内部进行硬接线,从而创建匹配状况。当在参考匹配线分段上检测到该匹配时,通过相关的DISABLE信号来切断在该分段中的所有相关的普通匹配线中的电流。该相关的DISABLE信号还用于通过图4所示的反馈连接在禁用参考匹配线分段。
在匹配线超过可由其相关的反相器读出放大器检测的匹配阈值的时间和断开p沟道电流源的时间之间,应该存在足够的定时余量,以容许在启用匹配线分段和相关参考匹配线分段之间的任何差异。这可以通过经过驱动禁用信号的反相器链的时间延迟,或者通过在常规匹配线读出放大器中设计较低的切换阈值,而在参考匹配线读出放大器中设置较高的切换阈值来实现。
切断电流源的另一方法是仅使用参考匹配线的最后阶段的输出,以切断分段匹配线阵列的所有阶段,如参考图2(b)所简要提到的那样。将会浪费稍微多一点的能量,因为在更长的时间段内启用较早的阶段,但是将会获得更为简单的禁用方案。
参考图5(a),图5(a)示出了用于实现更高速度的操作的本发明的另一实施例。在该实施例中,每一个匹配线分段具有整个时钟周期来完成每一个分段的搜索和比较操作。因此,对每一个匹配线分段进行管线处理,从而使整个时钟周期可用于产生未命中或匹配指示。在图3和图4的实施例中与先前实现为反相器的每一个匹配线分段相关的静态匹配线读出放大器由启用信号/EN进行时钟控制的D型触发器来替代,并且存储了针对其相应的匹配线分段的搜索结果。可选地,如前所述,可以使用更高级的读出放大器,然后,将锁存读出放大器的输出。
图5(a)还示出了由多个D型触发器(每一个CAM单元的列,一个D型触发器)和用于将搜索数据路径连接到每一个CAM单元上的相关逻辑门构成的寄存器。通过在搜索数据路径中引入寄存器,可以仅在前面的分段中已经找到匹配结果的情况下,有选择地将搜索结果提供给下一个分段。可选地,在前面分段中未命中的情况下,不启用搜索数据而将其传递到后续分段的CAM单元,导致了显著的能量节省。将搜索数据和掩码信息转换为三态格式并由D型触发器进行锁存,以便驱动用于访问每一个阵列中的所有CAM单元的行的搜索线,即,由匹配线头电路所驱动的分段,由于不存在前面的分段搜索结果,因此,无条件地锁存搜索数据信号。利用/EN的上升沿,在比较操作结束时,将匹配结果作为时钟提供给D型触发器。
按照与第一阶段相同的方式,将针对第二管线阶段的搜索数据,即第二匹配线分段无条件地锁存在第一寄存器中。然而,为了使用前一个阶段的搜索结果来确定是否继续进行搜索,需要附加寄存器来延迟搜索数据,直到第一阶段匹配/未命中指示可用为止。该第二管线阶段是由多个D型触发器构成的寄存器,多个D型触发器中的每一个由表示所有第一分段匹配结果的结果来启用,如以下将更为详细描述的那样,即,仅当/EN输入为低电平时,其输出才发生改变。这防止了当前一个阶段的结果为未命中时搜索数据发生变化,从而节省了在搜索线上的不必要转换中已经另外耗散的相当大的CV能量。对于每一个附加ML分段,必须将另外的管线阶段添加到搜索数据路径上。仅最后的阶段需要由匹配线检测信号来控制。
搜索数据寄存器由受阵列的分段中的所有匹配线控制的线连或电路来启用。在该阵列分段中的任意匹配线分段上的匹配将把\SLDEN信号拉向逻辑“L”,以允许要被时钟控制的新搜索数据通过而达到搜索线。由/EN对线连或节点进行预充电,同时在匹配线分段上正在发生比较操作。
还可以将参考图4所讨论的对p沟道电流源的自定时断开添加到该实施例中,从而甚至节省更多的能量。
图5b示出了针对图5a的实施例的操作的一般定时。
尽管已经结合其特定实施例及其特定使用而描述了本发明,但是在不脱离本发明精神的情况下,各种修改对于本领域的技术人员而言将是显而易见的。
在说明书中已经采用的术语和表达用作描述术语而非限制,在使用这样的术语和表达时不存在排除所示出和描述的特征的任意等价物或其一部分的意图,但是应该意识到,在不脱离本发明范围的情况下,能够进行各种修改。