三元内容可寻址存储器和用于访问该存储器的方法

文档序号:8413679阅读:725来源:国知局
三元内容可寻址存储器和用于访问该存储器的方法
【技术领域】
[0001] 各实施例一般地涉及内容可寻址存储器,更具体地说,涉及将数据存储在三元内 容可寻址存储器中。
【背景技术】
[0002] 内容可寻址存储器(CAM)是通常用于存储数据字的存储器件。CAM通常存储大量 数据字,例如32K字。此外,CAM数据字通常包括相对大量的位,例如36到144位。存储在 CAM数据字中的位可以以两种方式寻址。首先,CAM中的每个位可以根据可唯一标识的存储 元件寻址。例如,每个CAM数据字可以具有行地址,并且字中的每个位可以具有列地址。其 次,CAM数据字可以通过数据字的内容寻址。这后一种寻址方法使得CAM在某些应用中很 有用。
[0003] 按照内容对CAM数据字寻址涉及将搜索字与存储在CAM中的所有CAM数据字相比 较。可以将搜索字与所有CAM数据字并行比较。例如,CAM可以用于存储网络地址。用于 存储网络地址的CAM可以存储32K数据字,每个字是144位地址。CAM可能用于网络路由器 中,并且CAM能够将路由器接收的数据分组的地址与存储在CAM中的所有地址相比较。通 常,可以在单个循环将搜索字与所有存储的CAM数据字相比较。如果搜索字与一个或多个 存储的CAM数据字完全匹配,则断言与CAM数据字对应的匹配线。可以将匹配线馈给其输 出端与编码器耦合的匹配线读出放大器。编码器生成与匹配CAM数据字的匹配线对应的匹 配位置。继续CAM数据字是网络地址的实例,匹配位置可以标识其中应该转发数据分组的 目的地。
[0004] 三元CAM(TCAM)是CAM的变型。尽管CAM需要搜索字与存储的CAM数据字完全匹 配,但TCAM不需要搜索字与存储的TCAM数据字完全匹配。这是因为TCAM针对搜索字的每 个位提供两个位,而CAM提供单个位。每个搜索字位两个位允许TCAM存储代码,该代码可 以表示逻辑1、逻辑〇,或者逻辑1和逻辑〇两者。当TCAM字的存储位表示逻辑1和逻辑0 两者时,该存储位可以由"X"表示并且称为"随意(don't care)"值。因此,如果与搜索字 数据位对应的TCAM代码是X,则搜索字位将始终与TCAM代码匹配,而无论搜索字位是逻辑 1还是逻辑0。除了这种存储"随意"值的能力之外,TCAM的功能可以类似于CAM。

【发明内容】

[0005] 各实施例涉及TCAM。所述TCAM可以具有多行单元。每个行可以具有匹配线。每 个单元可以具有用于存储第一和第二位的元件。每个单元可以具有与所述单元关联的比较 电路,以便确定搜索字的位与存储在该单元中的数据之间的匹配。对于所述行中的至少一 个第一行,所述TCAM包括有效行单元。所述有效行单元可以具有用于存储部分更新指示的 至少一个元件。当启用与所述第一行关联的所述部分更新指示时,所述有效行单元可以导 致与所述第一行关联的所述匹配线用信号通知所述第一行与搜索字不匹配。此外,当禁用 与所述第一行关联的所述部分更新指示时,单独通过所述比较电路执行确定搜索字的位与 存储在所述第一行的单元中的数据之间的匹配,而不受所述有效行单元的影响。
[0006] 其它实施例涉及用于访问TCAM的方法。所述TCAM可以具有多行单元。每个行可 以具有匹配线。每个单元可以具有用于存储第一和第二位的元件。每个单元可以包括用于 确定搜索字的位与存储在所述单元中的数据之间的匹配的比较电路。所述比较电路用信号 通知关联行的匹配线上的匹配。各种方法可以包括将第一位存储在所述TCAM的第一行中 的单元的第一存储元件中。有效行单元可以与所述第一行关联。所述有效行单元可以具有 用于存储部分更新指示的至少一个元件。响应于将所述第一位存储在所述第一存储元件 中,可以启用与所述TCAM的所述第一行关联的部分更新指示。当启用与所述TCAM的所述 第一行关联的所述指示时,响应于用于确定搜索字的位与存储在所述单元中的数据之间的 匹配的信号,所述有效行单元可以提供指示所述TCAM的所述第一行与所述搜索字不匹配 的信号。此外,所述方法可以包括将第二位存储在所述第一存储元件中。响应于将所述第 二位存储在所述第一存储元件中,可以禁用与所述TCAM的所述第一行关联的所述部分更 新指示。当禁用与所述第一行关联的所述部分更新指示时,响应于用于确定搜索字的位与 存储在所述单元中的数据之间的匹配的所述信号,单独通过所述比较电路执行确定搜索字 的位与存储在所述第一行的单元中的数据之间的匹配,而不受所述有效行单元的影响。
[0007] 其它实施例涉及TCAM的设计结构。
【附图说明】
[0008] 图1是根据各种实施例的示例性TCAM的框图;
[0009] 图2是根据一个实施例的图1的TCAM的一部分的框图;
[0010] 图3是根据一个实施例的图1的TCAM的一部分的框图;
[0011] 图4是根据一个实施例的图1的TCAM的一部分的框图;
[0012] 图5是根据一个实施例的图1的TCAM的一部分的框图;
[0013] 图6是根据一个实施例的图1的TCAM的一部分的框图;
[0014] 图7是根据各种实施例的用于半导体设计、制造或测试的设计过程的流程图。
[0015] 在附图和【具体实施方式】中,相同标号通常指相同组件、部件、步骤和过程。
【具体实施方式】
[0016] TCAM可以需要两个周期来更新功能单元。在操作期间,TCAM可以具有在搜索之间 出现的单个空闲周期,但TCAM可能无法使用该周期更新功能单元,因为需要两个周期。根 据各种实施例,在TCAM的每个行中提供有效行单元。有效行单元存储部分更新指示。当部 分更新功能单元时,有效行单元用信号向行的匹配线通知行与搜索字不匹配。当更新完成 时,有效行单元为匹配线提供"随意"信号。有效行单元使TCAM能够使用单个空闲周期。
[0017] 图1是根据各种实施例的示例性TCAM 100的框图。在各种实施例中,TCAM 100可 以是XY样式NOR TCAM。示出的TCAM 100包括九个功能单元,它们布置在三个列102和三 个行104中。每个行存储TCAM字。每个功能单元与搜索字的一个位对应。每个功能单元 包括两个存储元件,一个用于"X"位并且一个用于"Y"位。此外,每个功能单元包括比较逻 辑CL。尽管TCAM 100是3X3功能单元阵列,但在各种实施例中,各实施例可以用于在行和 列方向具有数百或数千个位的TCAM阵列。出于示例性目的示出九个功能单元。如下所述, TCAM 100的功能单元可以以两种方式寻址。
[0018] 根据各种实施例,TCAM 100的每个行可以包括有效行逻辑单元110, 即,可以为每 个TCAM数据字提供有效行逻辑单元110( "VRL")。根据各种实施例,有效行逻辑110可以 修改在基于内容搜索TCAM时获得的结果。
[0019] 寻址方法
[0020] 首先,每个功能单元可以具有行地址和列地址。单元的X位可以使用行104的字 线X(WLX)寻址。Y位可以使用行104的字线Y(WLY)寻址。可以通过将位及其补码分别放 在列102的写入位线(WBLT)和写入位线补码线(WBLC)上,将位存储在X或Y存储元件中。 一旦位在WBLT和WBLC上,断言WLX或WLY。可以需要两个周期将TCAM字存储在TCAM 100 的行104中。在第一周期中,可以存储X值。在第二周期中,可以存储Y值。
[0021] 其次,TCAM数据字可以通过字的内容寻址。每个行与匹配线(ML)关联。每个匹 配线可以与预充电器件(PCH)耦合。在内容搜索中,预充电器件PCH可以将TCAM 100的匹 配线预充电为逻辑高值。将搜索字的位放在相应的X搜索线(SLX)上。将搜索字的位的补 码放在相应的Y搜索线(SLY)上。如果存储在功能单元中的代码(1、0或X)与放在搜索线 上的位不匹配,则功能单元的比较逻辑CL将匹配线ML拉到逻辑低值。处于逻辑低状态的 匹配线ML指示未命中。另一方面,处于逻辑高状态的匹配线ML指示匹配。如果存储在行 的功能单元中的代码与搜索字的对应位匹配,则比较逻辑CL不会拉低匹配线。如果匹配线 保持高状态,则它用信号通知搜索字与存储的TCAM字的所有位匹配。每个匹配线ML可以 与匹配线读出放大器108耦合。匹配线读出放大器108读出每个匹配线ML的状态,并且将 状态输出到编码器(未示出)。
[0022] 在各种实施例中,预充电器件PCH可以从PMOS晶体管形成,该晶体管的源极耦合 到电压源,漏极与匹配线耦合,并且栅极与预充电信号耦合。在各种备选实施例中,预充电 器件可以从NMOS晶体管形成。
[0023] 在一个备选实施例中,在此描述为与列关联或者布置在列中的TCAM 100的元件 可以与行关联或者布置在行中。同样,在此描述为与行关联或者布置在行中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1