The present invention relates to ternary content addressable memory (TCAM) cells. More specifically, the present invention relates an improved read structure for a column of TCAM cells.
Data is written to SRAM cell 101 by applying a data value on complementary bit lines B/B# and activating the word line signal WL1. Similarly, data is written to SRAM cell 102 by applying a data value to complementary bit lines B/B# and activating the word line signal WL2. The data value written to SRAM cell 101 is stored on nodes X and X′ of latch circuit 110. Similarly, the data value written to SRAM cell 102 is stored on nodes Y and Y′ of latch circuit 120. Thus, a logic ‘1’ data value written to SRAM cell 101 will result in node X being pulled up to a positive supply voltage (VDD) through PMOS transistor 111, and node X′ being pulled down to ground through NMOS transistor 114. Conversely, a logic ‘0’ data value written to SRAM cell 101 will result in node X being pulled down to ground through NMOS transistor 113, and node X′ being pulled up to the VDD supply voltage through PMOS transistor 112. SRAM cell 102 stores data in the same manner as SRAM cell 101 (i.e., Y=VDD, Y′=0 represents logic ‘1’; and Y=0, Y′=VDD represents logic ‘0’.)
The data values stored by SRAM cells 101 and 102 specify the data value stored by TCAM cell 100. For example, when SRAM cell 101 stores a logic ‘1’ data value and SRAM cell 102 stores a logic ‘0’ data value, TCAM cell 100 stores a logic ‘1’ data value. Conversely, when SRAM cell 101 stores a logic ‘0’ data value and SRAM cell 102 stores a logic ‘1’ data value, TCAM cell 100 stores a logic ‘0’ data value. When SRAM cells 101 and 102 both store a logic ‘0’ data value, TCAM cell 100 stores a ‘Don't Care’ value. An invalid state exists if SRAM cells 101 and 102 both store a logic ‘1’ data value. That is, SRAM cells 101 and 102 do not store logic ‘1’ data values at the same time during the normal operation of TCAM cell 100.
The data values stored by SRAM cells 101 and 102 are provided to match logic 103. More specifically, nodes X and Y of SRAM cells 101 and 102 are connected to the gates of NMOS transistors 131 and 132, respectively. A search operation is performed by TCAM cell 100 as follows. The match line ML is initially precharged to a logic high voltage. A search value is then applied to complementary search lines S/S#. A search value of ‘0’ is applied by pulling down the search line S to a logic low voltage and pulling up the complementary search line S# to a logic high voltage. Conversely, a search value of ‘1’ is applied by pulling up the search line S to a logic high voltage and pulling down the complementary search line S# to a logic low voltage.
If the data stored by TCAM cell 100 matches the applied search value, or the TCAM cell 100 stores a ‘Don't
Care’ value, then the match line ML will remain in the precharged state. That is, at least one of the transistors 131 and 133 will be turned off, and at least one of the transistors 132 and 134 will also be turned off, thereby preventing the match line ML from discharging to ground. However, if the data stored by TCAM cell 100 does not match the applied search value, the match line ML is discharged, thereby indicating a non-match condition. Under these conditions, either transistors 131 and 133 will be turned on, or transistors 132 and 134 will be turned on, thereby providing a discharge path from the match line ML to ground.
The data stored in TCAM cell 100 is read by reading the contents of SRAM cells 101 and 102. A read operation is performed to SRAM cell 101 in the following manner. Bit lines B and B# are pre-charged to the VDD supply voltage, and a logic high read voltage (e.g., VDD) is applied to the corresponding word line WL1. Under these conditions, NMOS access transistors 115-116 turn on, thereby coupling nodes X and X′ to bit lines B and B#, respectively. One of these nodes X or X′ is pulled down toward the ground supply voltage, depending on the data value stored by SRAM cell 101. For example, if a logic ‘1’ data value is stored by SRAM cell 101, then NMOS transistor 114 is turned on, thereby pulling the voltage on node X′ down toward the ground supply voltage. Under these conditions, the voltage of the complementary bit line B# will be pulled down toward ground through the conductive path that exists through turned on NMOS transistors 114 and 116. Note that the low voltage on node X′ turns on PMOS transistor 111 and turns off NMOS transistor 113, such that the pre-charged bit line B is not pulled down toward the ground supply voltage. The voltage difference between bit lines B and B# is sensed to identify the state of the data value stored by SRAM cell 101.
While SRAM cell 101 is being read, a logic low voltage (e.g., ground) is applied to the word line WL2, such that the NMOS access transistors 125-126 of SRAM cell 102 are turned off. However, one of the nodes Y or Y′ of SRAM cell 102 will be pulled down toward the ground supply voltage, depending on the data value stored by SRAM cell 102. For example, if a logic ‘0’ data value is stored by SRAM cell 102, then NMOS transistor 123 is turned on, thereby pulling the voltage on node Y down toward the ground supply voltage. Under these conditions, a small leakage current will exist through NMOS access transistor 125, wherein this small leakage current will tend to pull the voltage on the corresponding bit line B down toward the ground supply voltage. However, this small leakage current, by itself, is not sufficient to disrupt the read operation to SRAM cell 101. As process technologies result in smaller devices, transistor leakage currents increase. If enough leakage current is introduced, (e.g., by other CAM cells coupled to bit lines B and B#), the voltage difference developed between bit lines B and B# may become too small to reliably read the contents of the SRAM cell 101.
It would therefore be desirable to have an improved TCAM column structure that mitigates the above-described problems.
Accordingly, the present invention provides a TCAM column structure that includes a plurality of TCAM cells arranged in a column. A bit line pair is connected to each of the TCAM cells in the column, wherein data is written to and read from the TCAM cells on the bit line pair. The bit line pair is twisted at a location at (or near) the middle of the column, such that an equal (or approximately equal) number of TCAM cells are located above and below the bit line twist location.
Data is written to (and read from) the TCAM cells located above the twist location with a first bit line polarity. Data is written to (and read from) the TCAM cells located below the twist location with a second bit line polarity, opposite the first bit line polarity. As a result, ‘Don't Care’ values stored in TCAM cells located above the twist location will introduce leakage current on a first bit line of the bit line pair during read operations, and ‘Don't Care’ values stored in TCAM cells located below the twist location will introduce leakage current on a second bit line of the bit line pair during read operations. Consequently, the read leakage current introduced by a TCAM cell that stores a ‘Don't Care’ value and is located above the twist location is offset by the read leakage current introduced by a TCAM cell that stores a ‘Don't Care’ value and is located below the twist location. Thus, the worst case condition for read operations exists when one half of the TCAM cells in the column store ‘Don't Care’ values.
The present invention will be more fully understood in view of the following description and drawings.
The SRAM cells within TCAM cells 3000-300(N−1) are connected to a complementary bit line pair, which includes bit lines B and B#. In accordance with one embodiment of the present invention, bit lines B and B# are twisted at a location 302 between the top and bottom of the column 301. That is, for TCAM cells above twist location 302, the storage nodes XZ and YZ are coupled to bit line B through the corresponding access transistors 115 and 125, and the storage nodes XZ′ and YZ′ are coupled to the complementary bit line B# through the corresponding access transistors 116 and 126. However, for TCAM cells below twist location 302, the storage nodes XZ′ and YZ′ are coupled to bit line B through the corresponding access transistors 116 and 126, and the storage nodes XZ and YZ are coupled to the complementary bit line B# through the corresponding access transistors 115 and 125.
In the illustrated example, bit lines B and B# are twisted at the half-way point of the column 301, such that TCAM cells 3000-300(N/2−1) are located above the twist location 302, and TCAM cells 300(N/2)-300(N−1) are located below the twist location 302. In other embodiments, twist location 302 may be located at other positions along column 301. As described in more detail below, twisting the bit lines B/B# advantageously minimizes the adverse affect of leakage current on read operations within column 301.
The match logic 103 within each of TCAM cells 3000-300(N−1) is coupled to a complementary search line pair, which includes search line S and complementary search line S#. It is important to note that the search lines S and S# are not twisted in the present embodiment. Search operations are performed in the same manner described above in connection with
Column 301 is operated as follows in accordance with one embodiment of the present invention. TCAM cells 3000-300(N/2−1), which are located above the bit line twist location 302 (e.g., in the top half of column 301), are written with a first bit line polarity. Conversely, TCAM cells 300(N/2)-300(N−1), which are located below the bit line twist location 302 (i.e., in the bottom half of column 301) are written with a second bit line polarity, opposite the first bit line polarity.
In accordance with one embodiment, the first bit line polarity is defined by the following example. To write a logic ‘1’ value to the SRAM cells 101-102 within upper TCAM cells 3000-300(N/2−1), a logic high voltage (VDD) is applied to bit line B and a logic low voltage (0 Volts) is applied to complementary bit line B# (and the corresponding word line is activated). Conversely, to write a logic ‘0’ value to the SRAM cells 101-102 within upper TCAM cells 3000-300(N/2−1), a logic low voltage (0 Volts) is applied to bit line B and a logic high voltage (VDD) is applied to complementary bit line B# (and the corresponding word line is activated). Thus, in the example illustrated by
In accordance with the present embodiment, the second bit line polarity is defined by the following example. To write a logic ‘1’ value to the SRAM cells 101-102 within lower TCAM cells 300(N/2)-300(N−1), a logic low voltage (0 Volts) is applied to bit line B, and a logic high voltage (VDD) is applied to complementary bit line B# (and the corresponding word line is activated). Conversely, to write a logic ‘0’ value to the SRAM cells 101-102 within lower TCAM cells 300(N/2)-300(N−1), a logic high voltage (VDD) is applied to bit line B and a logic low voltage (0 Volts) is applied to complementary bit line B# (and the corresponding word line is activated). Thus, in the example illustrated by
A logic ‘1’ data value is written within each of the TCAM cells 3000-300(N−1) by writing a logic ‘1’ value to the corresponding SRAM cell 101 and writing a logic ‘0’ value to the corresponding SRAM cell 102. Thus, in the example illustrated by
Conversely, a logic ‘0’ data value is written within each of the TCAM cells 3000-300(N−1) by writing a logic ‘0’ value to the corresponding SRAM cell 101 and writing a logic ‘1’ value to the corresponding SRAM cell 102. Thus, in the example illustrated by
A ‘don't care’ value is written within each of the TCAM cells 3000-300(N−1) by writing a logic ‘0’ value to the corresponding SRAM cells 101 and 102. Thus, in the example illustrated by
The TCAM cells in column 301 are read as follows in accordance with one embodiment of the present invention. TCAM cells 3000-300(N/2−1), which are located above the bit line twist location 302 (e.g., in the top half of column 301), are read with the first bit line polarity. Conversely, TCAM cells 300(N/2)-300(N−1), which are located below the bit line twist location 302 (i.e., in the bottom half of column 301) are read with the second bit line polarity.
To identify the state of a TCAM cell, each of the associated SRAM cells 101 and 102 is read. Each SRAM cell is read in the following manner. Bit lines B/B# are initially precharged to a logic high voltage (VDD), and the access transistors of the corresponding SRAM cell are turned on by activating the corresponding word line. Under these conditions, the one of the storage nodes of the SRAM cell will pull the corresponding bit line down toward ground, and the other one of the storage nodes of the SRAM cell will pull the corresponding bit line up toward VDD. As a result, a voltage difference is created across the bit line pair B/B#. This voltage difference is detected by a sense amplifier (not shown).
In accordance with the present embodiment, if the TCAM cell being read is above the bit line twist location 302 (i.e., in the upper half of column 301), then the first bit line polarity is used to identify the read data value. That is, a logic high voltage on bit line B and a logic low voltage on complementary bit line B# is recognized and reported as a logic ‘1’ data value; and a logic low voltage on bit line B and a logic high voltage on complementary bit line B# is recognized and reported as a logic ‘0’ data value.
Conversely, if the TCAM cell being read is below the bit line twist location 302 (i.e., in the lower half of column 301), then the second bit line polarity is used to identify the read data value. That is, a logic high voltage on bit line B and a logic low voltage on complementary bit line B# is recognized and reported as a logic ‘0’ data value; and a logic low voltage on bit line B and a logic high voltage on complementary bit line B# is recognized and reported as a logic ‘1’ data value.
In the present embodiment, worst case read conditions will exist when one of the TCAM cells in a first half of the column 301 stores a logic ‘1’ data value, the remaining TCAM cells in the same half of the column 301 store ‘Don't Care’ values, and the TCAM cells in the other half of the column 301 do not store ‘Don't Care’ values. Under these conditions, the leakage current during the read operation is equal to the leakage current through N−1 SRAM cells (compared to 2N−1 SRAM cells in the prior art TCAM column structure of
For example, assume that there are 500 TCAM cells in column 301. Worst case read conditions would exist, for example, if TCAM cell 3000 stores a logic ‘1’ data value (as illustrated in
However, the leakage currents through the SRAM cells 101-102 within TCAM cells 300250-300499 in the lower half of the column 301 will be equally split between bit lines B and B#, such that the net effect of these leakage currents does not affect the voltage difference developed across bit lines B and B#. For example, within TCAM cell 300250, SRAM cell 101 will have a leakage current through transistor 116 that tends to pull down the voltage on bit line B, while SRAM cell 102 will have an opposing leakage current through transistor 125 that tends to pull down the voltage on complementary bit line B#.
Note that if the TCAM cells 300250-300499 in the lower half of column 301 were written with ‘Don't Care’ values, the associated leakage currents would tend to pull down the voltage on complementary bit line B#, thereby substantially offsetting the leakage currents associated with TCAM cells 3000-300249, which tend to pull down the voltage on bit line B.
Also note that it is invalid to write logic ‘1’ values to both of the SRAM cells 101-102 in TCAM cells 300250-300499, thereby eliminating the worst case read conditions of the prior art.
Although the present invention has been described in connection with various embodiments, it is understood that variations of these embodiments would be obvious to one of ordinary skill in the art. For example, although the present invention has been described in accordance with a column of TCAM cells, it is understood that the teachings of the present disclosure can be extended to multiple columns (i.e., an array) of TCAM cells. Moreover, although the present invention has been described in connection with bit lines that are twisted one time within a column, it is understood that bit lines may be twisted multiple times within a column (while implementing the teachings of the present invention for each additional bit line twist) to offset cross-talk noise from neighboring columns in other embodiments. Thus, the present invention is limited only by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4045781 | Levy et al. | Aug 1977 | A |
4523301 | Kadota et al. | Jun 1985 | A |
5045899 | Arimoto | Sep 1991 | A |
5062077 | Takashima et al. | Oct 1991 | A |
5136543 | Matsuda et al. | Aug 1992 | A |
5140556 | Cho et al. | Aug 1992 | A |
5276649 | Hoshita et al. | Jan 1994 | A |
5280443 | Hidaka et al. | Jan 1994 | A |
5327372 | Oka et al. | Jul 1994 | A |
5383159 | Kubota | Jan 1995 | A |
5396449 | Atallah et al. | Mar 1995 | A |
5416734 | Hidaka et al. | May 1995 | A |
5440715 | Wyland | Aug 1995 | A |
5446685 | Holst | Aug 1995 | A |
5461589 | Hidaka et al. | Oct 1995 | A |
5483480 | Yoneda | Jan 1996 | A |
5488583 | Ong et al. | Jan 1996 | A |
5499218 | Ahn et al. | Mar 1996 | A |
5517441 | Dietz et al. | May 1996 | A |
5534732 | DeBrosse et al. | Jul 1996 | A |
5550769 | Hidaka et al. | Aug 1996 | A |
5598115 | Holst | Jan 1997 | A |
5649126 | Lynch | Jul 1997 | A |
5699288 | Kim et al. | Dec 1997 | A |
5706224 | Srinivasan et al. | Jan 1998 | A |
5740097 | Satoh | Apr 1998 | A |
5818786 | Yoneda | Oct 1998 | A |
5852569 | Srinivasan et al. | Dec 1998 | A |
5859791 | Schultz et al. | Jan 1999 | A |
5936873 | Kongetira | Aug 1999 | A |
5964857 | Srinivasan et al. | Oct 1999 | A |
5966319 | Sato | Oct 1999 | A |
5978246 | Shindo | Nov 1999 | A |
6044005 | Gibson et al. | Mar 2000 | A |
6075729 | Ohhata et al. | Jun 2000 | A |
6101115 | Ross | Aug 2000 | A |
6101116 | Lien et al. | Aug 2000 | A |
6125049 | Nataraj | Sep 2000 | A |
6128207 | Lien et al. | Oct 2000 | A |
6147891 | Nataraj | Nov 2000 | A |
6166939 | Nataraj et al. | Dec 2000 | A |
6175514 | Henderson et al. | Jan 2001 | B1 |
6191969 | Pereira | Feb 2001 | B1 |
6191970 | Pereira | Feb 2001 | B1 |
6195278 | Calin et al. | Feb 2001 | B1 |
6240001 | Ross | May 2001 | B1 |
6243280 | Wong et al. | Jun 2001 | B1 |
6243281 | Pereira | Jun 2001 | B1 |
6246601 | Pereira | Jun 2001 | B1 |
6252789 | Pereira et al. | Jun 2001 | B1 |
6256216 | Lien et al. | Jul 2001 | B1 |
6256241 | Mehalel | Jul 2001 | B1 |
6262907 | Lien et al. | Jul 2001 | B1 |
6262929 | Miyatake et al. | Jul 2001 | B1 |
6282113 | DeBrosse | Aug 2001 | B1 |
6292383 | Worley | Sep 2001 | B1 |
6324087 | Pereira | Nov 2001 | B1 |
6331942 | Peterson | Dec 2001 | B1 |
6341079 | Chadwick | Jan 2002 | B1 |
6343029 | Kengeri et al. | Jan 2002 | B1 |
6349049 | Schoy | Feb 2002 | B1 |
6362993 | Henderson et al. | Mar 2002 | B1 |
6370613 | Diede et al. | Apr 2002 | B1 |
6373738 | Towler et al. | Apr 2002 | B1 |
6430074 | Srinivasan | Aug 2002 | B1 |
6442061 | Kong et al. | Aug 2002 | B1 |
6452822 | Chai et al. | Sep 2002 | B1 |
6483733 | Lines et al. | Nov 2002 | B2 |
6499081 | Nataraj et al. | Dec 2002 | B1 |
6500706 | Chi | Dec 2002 | B1 |
6512682 | Cohen et al. | Jan 2003 | B2 |
6560670 | Ichiriu | May 2003 | B1 |
6563727 | Roth et al. | May 2003 | B1 |
6570794 | Hokenmaier et al. | May 2003 | B1 |
6597594 | Waller | Jul 2003 | B2 |
6597596 | Gordon et al. | Jul 2003 | B2 |
6646900 | Tsuda et al. | Nov 2003 | B2 |
6657880 | Callahan | Dec 2003 | B1 |
6697277 | Towler et al. | Feb 2004 | B2 |
6708250 | Gillingham | Mar 2004 | B2 |
6785179 | Bull et al. | Aug 2004 | B1 |
6795325 | Inoue | Sep 2004 | B1 |
6803610 | Koolhaas et al. | Oct 2004 | B2 |
6804134 | Proebsting et al. | Oct 2004 | B1 |
6807077 | Noda et al. | Oct 2004 | B2 |
6879504 | Lien et al. | Apr 2005 | B1 |
6888730 | Foss et al. | May 2005 | B2 |
6900999 | Yen et al. | May 2005 | B1 |
6901000 | Ichiriu et al. | May 2005 | B1 |
6906937 | Nataraj | Jun 2005 | B1 |
7154764 | Nataraj | Dec 2006 | B2 |
7277309 | Banachowicz et al. | Oct 2007 | B1 |
7319602 | Srinivasan et al. | Jan 2008 | B1 |
7355890 | Wen | Apr 2008 | B1 |
7545661 | Srinivasan et al. | Jun 2009 | B2 |
20030002351 | Beer et al. | Jan 2003 | A1 |
20030070039 | Gillingham | Apr 2003 | A1 |
20030123269 | Gillingham et al. | Jul 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20100271854 A1 | Oct 2010 | US |