The present embodiments generally relate to content addressable memory (CAM) devices, and more particularly to the architecture of rows of CAM cells.
Content addressable memory (CAM) devices are frequently used in network switching and routing applications to determine forwarding destinations, to perform classification functions, to implement Quality of Service (QoS) functions, and other tasks associated with routing data packets across a network. More specifically, a CAM device includes a CAM array having a plurality of CAM cells organized in a number of rows and columns. Each row of CAM cells, which can be used to store a CAM word, is coupled to a corresponding match line that indicates match results for the row. Each column of CAM cells is typically coupled to one or more data lines or data line pairs that can be used to drive data into a selected CAM row during write operations and/or for providing a search key to the CAM rows during compare operations. During a compare operation, the search key (e.g., the comparand word) is provided to the CAM array and compared with the CAM words stored therein. For each CAM word that matches the search key, a corresponding match line is asserted to indicate the match condition, and a priority encoder determines the match address or index of the highest priority matching (HPM) entry in the CAM array.
The match lines in a CAM array are typically pre-charged high toward the supply voltage VDD for each and every compare operation. Thus, for each row having a mismatch condition, an associated match line ML is first pre-charged high toward VDD and then discharged toward low ground potential. Current flow associated with this charging and discharging of such match lines results in undesirable power consumption. Further, as the number of CAM cells in each row of a CAM array increases, capacitive loading on the match lines increases accordingly, which further increases power consumption.
Thus, there is a need to reduce the power consumption associated with pre-charging and discharging the match lines of a CAM array during successive compare operations.
Present embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
An apparatus for reducing power consumption in a CAM device is disclosed. In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present embodiments unnecessarily. Additionally, the interconnection between circuit elements or blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be a bus. Further, the logic levels assigned to various signals in the description below are arbitrary, and therefore may be modified (e.g., reversed polarity) as desired. Accordingly, the present embodiments are not to be construed as limited to specific examples described herein but rather include within their scope all embodiments defined by the appended claims.
A match line pre-charge circuit 106 is coupled between a supply voltage VDD and match line ML, and includes an input to receive a pre-charge signal (PC). Prior to each compare operation between an n-bit comparand word and an n-bit CAM word stored in CAM cells 102(1)-102(n), match line ML is pre-charged to or toward a supply voltage VDD via ML pre-charge circuit 106 in response to PC. The n-bits of the comparand word are compared with corresponding bits of the CAM word in respective CAM cells 102(1)-102(n). If all bits of the comparand word match corresponding bits of the CAM word, then the match line ML remains in its charged state to indicate a match condition. Conversely, if any one of the comparand bits does not match the corresponding CAM bit, then the CAM cell 102 storing that CAM bit discharges match line ML low toward ground potential to indicate a mismatch condition.
For example,
Note that the XY CAM cell 110 stores a data value as a complimentary bit pair, where the Y bit stores the binary data value and the X bit stores the complemented binary data value.
The present embodiments reduce power consumption of CAM devices during compare operations between a search key and data stored in the device's array by reducing the amount of electric charge by which the match line is discharged during mismatch conditions. More specifically, for some embodiments, respective rows (e.g., each row) of the CAM array include circuitry that discharges the match line to a virtual ground node (e.g., rather than to ground potential) during mismatch conditions. Because the electrical potential on the virtual ground node is greater than ground potential, power consumption associated with pre-charging the match line back to a logic high state during the next compare operation is reduced, as compared to techniques that discharges the match line completely to ground potential.
One or more instructions and related control signals may be provided to CAM device 200 from an instruction decoder (not shown for simplicity) to control read, write, compare, and other operations for CAM device 200. Other well-known signals that can be provided to CAM device 200, such as enable signals, clock signals, and power connections, are not shown for simplicity. Further, although not shown in
Each row of CAM cells (not shown in
The match lines ML provide match results for compare operations between comparand data (e.g., a search key) and data stored in CAM array 210. Priority encoder 250, which is well-known, uses the match results indicated on the match lines to determine the matching entry that has the highest priority number associated with it and generates the index or address of this highest priority match (HPM). In addition, priority encoder 250 may use the validity bits from CAM array 210 to generate the next free address that is available in CAM array 210 for storing new data. Although not shown in
Match logic 260, which is well-known, uses the match results indicated on the match lines to generate a match flag (MF) indicative of a match condition in CAM array 210. If there is more than one matching entry in CAM array 210, match logic 260 may generate a multiple match flag to indicate a multiple match condition. In addition, match logic 260 may use the validity bits from CAM array 210 to assert a full flag when all of the rows of CAM cells in CAM array 210 are filled with valid entries.
Each column of CAM cells (not shown in
Prior to compare operations, the match lines ML are pre-charged (e.g., to logic high), and each set of complementary comparand line pairs CL/CLB are driven to the same predetermined logic level (e.g., to logic low, or alternatively to logic high). Then, during compare operations, the comparand register 230 provides the search key (e.g., the comparand word) to the CAM cells 302 by driving each pair of complementary comparand lines CL/CLB to opposite logic states indicative of the corresponding bit of the search key. For example, to provide a logic low comparand bit (C) to a column of CAM cells, the corresponding comparand line CL is driven to a first logic state (e.g., logic low) and the corresponding complementary comparand line CLB is driven to a second logic state (e.g., logic high); conversely, to provide a logic high comparand bit C to the column of CAM cells, the corresponding comparand line CL is driven to the second logic state (e.g., logic high) and the corresponding complementary comparand line CLB is driven to the first logic state (e.g., logic low). Thereafter, if all the CAM cells 302 in a particular row match the corresponding bits of the search key, then the match line ML remains in its pre-charged (e.g., logic high) state to indicate the match condition. Conversely, if one or more of the CAM cells 302 in the row do not match the corresponding bit of the search key, then mismatching CAM cells 302 discharge the match line (e.g., toward ground potential) to indicate the mismatch condition.
The match line pre-charge circuit 410 is connected between a supply voltage VDD and the match line ML, and selectively pre-charges the match line ML in response to a match line pre-charge signal PC. Each of the plurality of CAM cells 420(1)-420(n) is connected between the match line ML and the VG node, and is configured to receive a corresponding complementary bit pair (C/
During a pre-charge phase of a compare operation, the PC signal is asserted (e.g., to logic high) so that the pre-charge circuit 410 pulls the match line ML high towards VDD. The logic high voltage on the match line ML turns on the discharge transistor 430, which in turn discharges the VG node to ground potential. Referring also to
Then, during an evaluation phase of the compare operation, the comparand bits C1-Cn are provided in a complementary manner to the CAM cells 420(1)-420(n) for comparison with data bits (e.g., as represented by respective combinations of X1-Xn and Y1-Yn, as illustrated for example in
Although effective in preventing the match line voltage from falling below approximately VT during mismatch conditions, the virtual ground node VG has an undesirable capacitance that can reduce the power savings associated with pre-charging the match line ML toward VDD from VT instead of from ground potential. In addition, when the match line ML is pre-charged towards VDD during the pre-charge phase of the next compare operation by the pre-charge circuit 410, the resulting logic high state on the match line ML turns on the match line discharge transistor 430, which in turn discharges the VG node to ground potential.
The match line pre-charge circuit 410 is connected between a supply voltage VDD and the match line ML, and selectively pre-charges the match line ML in response to the match line pre-charge signal PC. Each of the plurality of CAM cells 420(1)-420(n) is connected between the match line ML and the VG node, and is configured to receive a corresponding complementary bit pair (C/
During a pre-charge phase of a compare operation, the PC signal is asserted (e.g., to logic high) so that the pre-charge circuit 410 pulls the match line high towards VDD, and the control signal CTRL is de-asserted to turn off gating transistor 440, thereby isolating the gate of discharge transistor 430 from the match line ML. In this manner, node Z (i.e., the gate of the discharge transistor 430) either floats or remains in the logic state resulting from the previous compare operation.
Then, during the evaluation phase of the compare operation, the comparand bits C1-Cn are provided in a complementary manner to the CAM cells 420(1)-420(n) for comparison with data bits (e.g., as represented by respective combinations of X1-Xn and Y1-Yn, as illustrated for example in
Conversely, if there is a mismatch condition in row 400B, then the match line ML begins discharging low towards ground potential through the compare circuit of the mismatching CAM cell(s) 420 and the discharge transistor 430 to indicate the mismatch condition. As the voltage on the match line ML falls below the VT of discharge transistor 430, discharge transistor 430 turns off and de-couples the VG node from ground potential, thereby preventing the VG node (and thus the match line ML) from completely discharging to ground potential and setting a minimum match line voltage of approximately VT for mismatch conditions. The match line ML can be pre-charged to its logic high state (e.g., VDD) for the next compare operation using less current than CAM row architectures of the type depicted in
Further, by maintaining the discharge transistor 430 in a non-conductive state during the pre-charge phase, the VG node is not discharged to ground potential, which is advantageous over the CAM row 400A of
The match line pre-charge circuit 410 is connected between a supply voltage VDD and the match line ML, and selectively pre-charges the match line ML in response to the match line pre-charge signal PC. Each of the plurality of CAM cells 420(1)-420(n) is connected between the match line ML and the VG node, and is configured to receive a corresponding complementary bit pair (C/
More specifically, gating transistors MP1 and MN1 are connected in series between the match line ML and ground potential, have common drains connected to the gate of discharge transistor 430 at node Z, and have common gates to receive the control signal CTRL. When CTRL is asserted (e.g., to logic high), gating transistor MP1 turns off and isolates node Z from the match line ML, and gating transistor MN1 turns on and connects the gate of the discharge transistor 430 to ground potential. Conversely, when CTRL is de-asserted (e.g., to logic low), gating transistor MP1 turns on and connects node Z to the match line ML, and gating transistor MN1 turns off and isolates the gate of the discharge transistor 430 from ground potential. The gating transistors MP1 and MN1 form an inverter that inverts the control signal CTRL and provides the inverted control signal to the gate of discharge transistor 430 at node Z.
During a pre-charge phase of a compare operation, the PC signal is asserted (e.g., to logic high) so that the pre-charge circuit 410 pulls the match line high towards VDD, and the control signal CTRL is asserted (e.g., to logic high) to turn off gating transistor MP1 and to turn on gating transistor MN1, thereby connecting the gate of discharge transistor 430 to ground potential and isolating it from the match line ML. In this manner, node Z (i.e., the gate of the discharge transistor 430) is driven to logic low to maintain the discharge transistor 430 in a non-conductive state during the pre-charge phase of the compare operation.
Then, during the evaluation phase of the compare operation, the comparand bits C1-Cn are provided in a complementary manner to the CAM cells 420(1)-420(n) for comparison with data bits (e.g., as represented by respective combinations of X1-Xn and Y1-Yn, as illustrated for example in
If all of the CAM cells 420(1)-420(n) store data values that match corresponding bits of the comparand word, then none of the compare circuits of the CAM cells 420(1)-420(n) turns on, and the match line ML remains in its charged logic high state to indicate the match condition.
Conversely, if there is a mismatch condition in row 400C, then the match line ML begins discharging low towards ground potential through the compare circuit of the mismatching CAM cell(s) 420 and the discharge transistor 430 to indicate the mismatch condition. As the voltage on the match line ML falls below the VT of discharge transistor 430, discharge transistor 430 turns off and de-couples the VG node from ground potential, thereby preventing the VG node (and thus the match line ML) from completely discharging to ground potential and setting a minimum match line voltage of approximately VT for mismatch conditions. The match line ML can be pre-charged to its logic high state (e.g., VDD) for the next compare operation using less current than CAM row architectures of the type depicted in
Further, by connecting node Z to ground potential during the pre-charge phase and connecting node Z to the match line ML during the evaluation phase, node Z is prevented from undesirably floating.
While particular embodiments have been shown and described, it will be obvious to those skilled in the art that changes and modifications may be made without departing from this disclosure in its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as fall within the true spirit and scope of this disclosure.
Further, it should be noted that the various circuits disclosed herein may be described using computer aided design tools and expressed (or represented), as data and/or instructions embodied in various computer-readable media, in terms of their behavioral, register transfer, logic component, transistor, layout geometries, and/or other characteristics. Formats of files and other objects in which such circuit expressions may be implemented include, but are not limited to, formats supporting behavioral languages such as C, Verilog, and VHDL, formats supporting register level description languages like RTL, and formats supporting geometry description languages such as GDSII, GDSIII, GDSIV, CIF, MEBES and any other suitable formats and languages. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media).
Number | Name | Date | Kind |
---|---|---|---|
3665422 | McCoy et al. | May 1972 | A |
4112502 | Scheuneman | Sep 1978 | A |
4747080 | Yamada | May 1988 | A |
4779226 | Haraszti | Oct 1988 | A |
4791606 | Threewitt et al. | Dec 1988 | A |
4831585 | Wade et al. | May 1989 | A |
4903268 | Hidaka et al. | Feb 1990 | A |
4958352 | Noguchi et al. | Sep 1990 | A |
4991136 | Mihara | Feb 1991 | A |
5046046 | Sweha et al. | Sep 1991 | A |
5073727 | Shizu | Dec 1991 | A |
5127014 | Raynham | Jun 1992 | A |
5184325 | Lipovski | Feb 1993 | A |
5233614 | Singh | Aug 1993 | A |
5311462 | Wells | May 1994 | A |
5319589 | Yamagata et al. | Jun 1994 | A |
5319590 | Montoye | Jun 1994 | A |
5450424 | Okugaki et al. | Sep 1995 | A |
5452243 | Ansel et al. | Sep 1995 | A |
5455834 | Chang et al. | Oct 1995 | A |
5469450 | Cho et al. | Nov 1995 | A |
5491703 | Barnaby et al. | Feb 1996 | A |
5561429 | Halberstam et al. | Oct 1996 | A |
5568415 | McLellan et al. | Oct 1996 | A |
5570377 | Gonzalez et al. | Oct 1996 | A |
5572460 | Lien | Nov 1996 | A |
5598115 | Holst | Jan 1997 | A |
5604753 | Bauer et al. | Feb 1997 | A |
5629950 | Godiwala et al. | May 1997 | A |
5642320 | Jang | Jun 1997 | A |
5644583 | Garcia et al. | Jul 1997 | A |
5682394 | Blake et al. | Oct 1997 | A |
5699369 | Guha | Dec 1997 | A |
5724296 | Jang | Mar 1998 | A |
5727003 | Zook | Mar 1998 | A |
5761222 | Baldi | Jun 1998 | A |
5796671 | Wahlstrom | Aug 1998 | A |
5796758 | Levitan | Aug 1998 | A |
5872802 | Knaack et al. | Feb 1999 | A |
5890201 | McLellan et al. | Mar 1999 | A |
6009548 | Chen et al. | Dec 1999 | A |
6032214 | Farmwald et al. | Feb 2000 | A |
6058500 | DesJardins et al. | May 2000 | A |
6067656 | Rusu et al. | May 2000 | A |
6125049 | Nataraj | Sep 2000 | A |
6128207 | Lien et al. | Oct 2000 | A |
6134631 | Jennings, III | Oct 2000 | A |
6137707 | Srinivasan et al. | Oct 2000 | A |
6151247 | Estakhri et al. | Nov 2000 | A |
6154384 | Nataraj et al. | Nov 2000 | A |
6166939 | Nataraj et al. | Dec 2000 | A |
6188629 | Kaplinsky | Feb 2001 | B1 |
6191969 | Pereira | Feb 2001 | B1 |
6199140 | Srinivasan et al. | Mar 2001 | B1 |
6216246 | Shau | Apr 2001 | B1 |
6219815 | DesJardins et al. | Apr 2001 | B1 |
6233717 | Choi | May 2001 | B1 |
6243280 | Wong et al. | Jun 2001 | B1 |
6243281 | Pereira | Jun 2001 | B1 |
6262907 | Lien et al. | Jul 2001 | B1 |
6289471 | Gordon | Sep 2001 | B1 |
6324087 | Pereira | Nov 2001 | B1 |
6362990 | Gibson et al. | Mar 2002 | B1 |
6362993 | Henderson et al. | Mar 2002 | B1 |
6374325 | Simpson et al. | Apr 2002 | B1 |
6381191 | Ooishi | Apr 2002 | B2 |
6385070 | Peterson | May 2002 | B1 |
6397290 | Williams et al. | May 2002 | B1 |
6400593 | Lien et al. | Jun 2002 | B1 |
6408417 | Moudgal et al. | Jun 2002 | B1 |
6418042 | Srinivasan et al. | Jul 2002 | B1 |
6421265 | Lien et al. | Jul 2002 | B1 |
6430073 | Batson et al. | Aug 2002 | B1 |
6430074 | Srinivasan | Aug 2002 | B1 |
6434033 | Chien | Aug 2002 | B1 |
6460112 | Srinivasan et al. | Oct 2002 | B1 |
6470418 | Lien et al. | Oct 2002 | B1 |
6477615 | Tanaka | Nov 2002 | B1 |
6480406 | Jin et al. | Nov 2002 | B1 |
6496399 | Choi et al. | Dec 2002 | B1 |
6505270 | Voelkel et al. | Jan 2003 | B1 |
6538911 | Allan et al. | Mar 2003 | B1 |
6542391 | Pereira et al. | Apr 2003 | B2 |
6560156 | Lien et al. | May 2003 | B2 |
6563754 | Lien et al. | May 2003 | B1 |
6564754 | Cohen | May 2003 | B1 |
6597595 | Ichiriu et al. | Jul 2003 | B1 |
6618281 | Gordon | Sep 2003 | B1 |
6646900 | Tsuda et al. | Nov 2003 | B2 |
6665220 | Vlasenko | Dec 2003 | B2 |
6690595 | Srinivasan et al. | Feb 2004 | B1 |
6700810 | Ichiriu et al. | Mar 2004 | B1 |
6700827 | Lien et al. | Mar 2004 | B2 |
6707693 | Ichiriu | Mar 2004 | B1 |
6721202 | Roge et al. | Apr 2004 | B1 |
6728124 | Ichiriu et al. | Apr 2004 | B1 |
6741253 | Radke et al. | May 2004 | B2 |
6760241 | Gharia | Jul 2004 | B1 |
6760881 | Batson et al. | Jul 2004 | B2 |
6775168 | Park et al. | Aug 2004 | B1 |
6804133 | Khanna | Oct 2004 | B1 |
6807077 | Noda et al. | Oct 2004 | B2 |
6842360 | Srinivasan | Jan 2005 | B1 |
6845026 | Gharia | Jan 2005 | B1 |
6856527 | Srinivasan et al. | Feb 2005 | B1 |
6865098 | Ichiriu et al. | Mar 2005 | B1 |
6867989 | Roy | Mar 2005 | B1 |
6867990 | Regev et al. | Mar 2005 | B2 |
6870229 | Dessard et al. | Mar 2005 | B2 |
6888731 | Roth et al. | May 2005 | B2 |
6900999 | Yen et al. | May 2005 | B1 |
6967856 | Park et al. | Nov 2005 | B1 |
7009862 | Higeta et al. | Mar 2006 | B2 |
7050318 | Argyres | May 2006 | B1 |
7113415 | Khanna | Sep 2006 | B1 |
7133302 | Srinivasan et al. | Nov 2006 | B1 |
7298635 | Maheshwari | Nov 2007 | B1 |
7319602 | Srinivasan et al. | Jan 2008 | B1 |
7345936 | Notani | Mar 2008 | B2 |
7362602 | Meng et al. | Apr 2008 | B1 |
7433217 | Maheshwari | Oct 2008 | B1 |
7499303 | Lien et al. | Mar 2009 | B2 |
7577785 | Yoon et al. | Aug 2009 | B2 |
7800930 | Deshpande et al. | Sep 2010 | B1 |
7852652 | Fabry | Dec 2010 | B1 |
7920398 | Khanna et al. | Apr 2011 | B1 |
7924588 | Arsovski et al. | Apr 2011 | B2 |
7944724 | Chu | May 2011 | B2 |
8462532 | Argyres | Jun 2013 | B1 |
8553441 | Argyres | Oct 2013 | B1 |
8582338 | Argyres | Nov 2013 | B1 |
8625320 | Argyres | Jan 2014 | B1 |
20070097722 | Phan et al. | May 2007 | A1 |
20070247885 | Watanabe et al. | Oct 2007 | A1 |
20100165691 | Watanabe et al. | Jul 2010 | A1 |
20120206951 | Rachamadugu et al. | Aug 2012 | A1 |
Entry |
---|
International Search Report and Written Opinion for International Application No. PCT/US12/42704, Commissioner for Patents, United States, mailed on Sep. 12, 2012. |
Application Note AN-94 “Error Detection and Correction with IDT49C466”, released by Integrated Device Technology, Inc., pp. 131-141, (1996). |
Fourouzan, B., “Introduction to Telecommunications and Networking.” Chapter 8, pp. 194-226, Aug. 1997. |
Halsall, F., Data Communications, Computer Networks and OSI, 2d. Ed., pp. 499-508, Addison-Wesley Publ. Co. (1998). |
Kalter et al., “A 50-ns 16-Mb DRAM with a 10-ns Data Rate and On-Chip ECC,” IEEE Journal of Solid-State Circuits vol. 25, No. 5, pp. 1118-1127, Oct. 1990. |
SiberCore Technologies, Soft Error in TCAMS: Causes and Cures, pp. 1-5, Jul. 2003. |
Ex Parte Quayle Action, dated Nov. 7, 2012, for U.S. Appl. No. 13/015,543, filed Jan. 27, 2011, 6 pages. |
Notice of Allowance, dated Jan. 23, 2013, for U.S. Appl. No. 13/015,543, filed Jan. 27, 2011, 7 pages. |
Notice of Allowance, dated Feb. 14, 2013, for U.S. Appl. No. 13/015,543, filed Jan. 27, 2011, 8 pages. |
Non-Final Action, dated Nov. 23, 2012, for U.S. Appl. No. 13/149,878, filed May 31, 2011, 5 pages. |
Notice of Allowance, dated Mar. 7, 2013, for U.S. Appl. No. 13/149,878, filed May 31, 2011, 5 pages. |
Notice of Allowance, dated Jul. 9, 2013, for U.S. Appl. No. 13/149,878, filed May 31, 2011, 6 pages. |
Notice of Allowance, dated Oct. 10, 2012, for U.S. Appl. No. 13/149,885, filed May 31, 2011, 9 pages. |
Notice of Allowance, dated Jan. 29, 2013, for U.S. Appl. No. 13/149,885, filed May 31, 2011, 5 pages. |
Notice of Allowance, dated May 24, 2013, for U.S. Appl. No. 13/149,885, filed May 31, 2011, 6 pages. |
Non-Final Action, dated Apr. 5, 2013, for U.S. Appl. No. 13/216,104, filed Aug. 23, 2011, 8 pages. |
Notice of Allowance, dated Jul. 29, 2013, for U.S. Appl. No. 13/216,104, filed Aug. 23, 2011, 10 pages. |
Non-Final Action, dated Jan. 9, 2013, for U.S. Appl. No. 13/167,552, filed Jun. 23, 2011, 15 pages. |
Final Action, dated Jan. 27, 2013, for U.S. Appl. No. 13/167,552, filed Jun. 23, 2011, 19 pages. |
Non-Final Action, dated Jan. 6, 2014, for U.S. Appl. No. 13/167,552, filed Jun. 23, 2011, 21 pages. |
International Preliminary Report on Patentability for International Application No. PCT/US2012/042704, mailed on Dec. 23, 2013, 9 pages. |
U.S. Appl. No. 13/167,552, filed Jun. 23, 2011, entitled “Content Addressable Memory Row Having Virtual Ground and Charge Sharing”. |
Number | Date | Country | |
---|---|---|---|
20120327696 A1 | Dec 2012 | US |