USRE41351E1 - CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same - Google Patents

CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same Download PDF

Info

Publication number
USRE41351E1
USRE41351E1 US10/106,420 US10642002A USRE41351E US RE41351 E1 USRE41351 E1 US RE41351E1 US 10642002 A US10642002 A US 10642002A US RE41351 E USRE41351 E US RE41351E
Authority
US
United States
Prior art keywords
line
terminal
transistor
coupled
match line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US10/106,420
Inventor
Chuen-Der Lien
Chau-Chin Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Netlogic Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netlogic Microsystems Inc filed Critical Netlogic Microsystems Inc
Priority to US10/106,420 priority Critical patent/USRE41351E1/en
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY AGREEMENT Assignors: NETLOGIC MICROSYSTEMS CAYMANS LIMITED, NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED, NETLOGIC MICROSYSTEMS, INC.
Assigned to NETLOGIC MICROSYSTEMS, INC. reassignment NETLOGIC MICROSYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTEGRATED DEVICE TECHNOLOGY, INC.
Application granted granted Critical
Publication of USRE41351E1 publication Critical patent/USRE41351E1/en
Assigned to NETLOGIC MICROSYSTEMS, INC., NETLOGIC MICROSYSTEMS CAYMANS LIMITED, NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED reassignment NETLOGIC MICROSYSTEMS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: SILICON VALLEY BANK
Assigned to NETLOGIC I LLC reassignment NETLOGIC I LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: NETLOGIC MICROSYSTEMS, INC.
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NETLOGIC I LLC
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: BROADCOM CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM CORPORATION
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/046Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/043Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using capacitive charge storage elements

Definitions

  • the present invention relates to content addressable memory (CAM) arrays. More specifically, the present invention relates to ternary CAM cells and methods for operating these cells in a CAM array.
  • CAM content addressable memory
  • CAM arrays include memory cells that are addressed in response to their content, rather than by a physical address within a RAM array. That is, data words stored in a RAM array are accessed by applying address signals to the RAM array input terminals. In response to each unique set of address signals, a RAM array outputs a data value that is read from a portion of the RAM array designated by the address. In contrast, a CAM array receives a data value that is compared with all of the data values stored in rows of the CAM array. In response to each unique data value applied to the CAM array input terminals, the rows of CAM cells within the CAM array assert or de-assert associated match signals indicating whether or not one or more data values stored in the CAM cell rows match the applied data value.
  • RAM random access memory
  • CAM arrays are useful in many applications, such as search engines. For example, assume an employee list is searched to identify all employees with the first name “John”. The first names are written into a CAM array such that they are stored in a predetermined order (e.g., according to employee number). The input data value (“John”) is then applied to the CAM input terminals. When one or more stored data values match the input data value, the match line coupled to the one or more matching rows of CAM cells generates a high output signal. By identifying which rows have associated high match lines, and comparing those row numbers with the employee number list, all employees named “John” are identified.
  • Binary CAM cells store one of two bit values: a logic high value or a logic low value.
  • the match line coupled to the binary CAM cell is maintained at a logic high value (assuming all other CAM cells coupled to the CAM array row also match), thereby indicating that a match has occurred.
  • the match line coupled to the binary CAM cell is pulled down, thereby indicating that a match has not occurred.
  • Ternary CAM cells can store any one of three values: a logic high, a logic low, or a “don't care” value.
  • a ternary CAM cell When storing logic high and logic low values, a ternary CAM cell operates like a binary CAM cell.
  • a ternary CAM cell storing a don't care value will provide a match condition for any data bit value applied to that CAM cell.
  • This “dont't care” capability allows CAM arrays to indicate when a data value matches a selected group of ternary CAM cells in a row of the CAM array. For example, assume each row of a ternary CAM array has eight ternary CAM cells.
  • first four ternary CAM cells of each row each store one of a logic high and a logic low value (for comparison to the first four bits of an input 8-bit data value) and the last four ternary CAM cells of each row store “don't care” values.
  • a match occurs for each row of the CAM array in which the data values stored in the first four ternary CAM cells match the first four bits of the applied 8-bit data value.
  • Binary and ternary CAM cells can be characterized as volatile (i.e., in which the logic high, logic low, or don't care value is stored in volatile components, such as capacitors), or non-volatile (i.e., in which values are stored in non-volatile components, such as EPROM transistors).
  • FIG. 1 is a schematic diagram of a first prior art volatile ternary CAM cell 100 as described in U.S. Pat. No. 5,642,320.
  • CAM cell 100 includes volatile (e.g., field-effect) transistors Q 1 -Q 6 .
  • Transistor Q 1 has a drain coupled to the source of transistor Q 2 .
  • Transistor Q 3 has a drain coupled to the source of transistor Q 4 .
  • Transistor Q 2 has a gate coupled to the drain of transistor Q 6 .
  • Transistor Q 4 has a gate coupled to the drain of transistor Q 5 .
  • a match line is commonly coupled to the sources of transistors Q 1 and Q 3 .
  • a bit line BL is commonly coupled to the gate of transistor Q 1 and the source of transistor Q 5 .
  • An inverted bit line BL# is commonly coupled to the gate of transistor Q 3 and the source of transistor Q 6 .
  • a word line WL is commonly coupled to the gates of transistors Q 5 -Q 6 .
  • the drains of transistors Q 2 and Q 4 are commonly coupled to ground.
  • CAM cell 100 stores one of a logic high, a logic low, and a don't care value is dynamic storage nodes N A and N B .
  • a don't care value is a value that results in a match condition for all applied data values. To store a logic high value, a logic high value is applied to bit line BL and a logic low value applied to inverted bit line BL#.
  • a logic high value is applied to word line WL to turn on transistors Q 5 -Q 6 , thereby coupling the logic high value of the bit line BL to both node N B and the gate of transistor Q 4 and coupling the logic low value of the inverted bit line BL# to both node N A and the gate of transistor Q 2 .
  • node N A stores a logic low value
  • node N B stores a logic high value.
  • a logic low value is applied to bit line BL and a logic high value applied to inverted bit line BL#.
  • a logic high value is applied word line WL to turn on transistors Q 5 -Q 6 , thereby coupling the logic low value of the bit line BL to both node N B and the gate of transistor Q 4 and coupling the logic high value of the inverted bit line BL# to both node N A and the gate of transistor Q 2 .
  • node N A stores a logic high value
  • node N B stores a logic low value.
  • a logic low value is applied to both bit line BL and to inverted bit line BL#.
  • a logic high value is applied word line WL to turn on transistors Q 5 -Q 6 , thereby coupling the logic low value of the bit line BL to both node N B and the gate of transistor Q 4 and coupling the logic low value of the inverted bit line BL# to both node N A and the gate of transistor Q 2 .
  • both nodes N A and node N B store logic low values.
  • CAM cell 100 performs a compare operation by pre-charging the match line ML to a logic high value and then sensing any current on the match line ML.
  • a no-match condition during a compare operation results in the discharge of the match line ML to ground. The discharge causes a current to flow between match line ML and ground.
  • a current sensor coupled to match line ML senses this current flow, thereby indicating the no-match condition.
  • a match condition during a compare operation results in the match line ML remaining charged to a logic high value. Because the match line ML is not discharged during a match condition, no current will flow on match line ML. As a result, no current is sensed on match line ML by the associated current sensor, thereby indicating the match condition.
  • word line WL is held to a logic low value and the compare data is applied to bit line BL (e.g., logic high value) and inverted bit line BL# (e.g., logic low value).
  • bit line BL e.g., logic high value
  • inverted bit line BL# e.g., logic low value
  • bit line BL e.g., logic high value
  • inverted bit line BL# e.g., logic low value
  • match line ML remains pre-charged to a logic high value, thereby indicating a match condition.
  • CAM cell 100 If CAM cell 100 stores a logic low value, then the logic high value stored at node N A turns on transistor Q 2 , thereby coupling the drain of transistor Q 1 to ground, and the logic low value stored at node N B turns off transistor Q 4 , thereby de-coupling the drain of transistor Q 3 from ground.
  • the logic high value of the bit line BL turns on transistor Q 1 , thereby coupling match line ML to ground through turned on transistor Q 2 . Under these conditions, the match line ML is discharged to ground, thereby indicating a no-match condition.
  • a problem with prior art CAM cell 100 is that the drains of transistors Q 2 and Q 4 are permanently tied to ground.
  • CAM cell 100 requires bit line BL and inverted bit line BL# to have logic low values between operations, thereby turning off transistors Q 1 and Q 3 , respectively.
  • bit line BL and inverted bit line BL# typically have opposite logic values (e.g., bit line BL has a high logic value and inverted bit line BL# has a low logic value)
  • one of bit line BL and inverted bit line BL# must be grounded between operations and a logic high value re-applied for a new operation.
  • the grounding of one of bit line BL and inverted bit line BL# requires power, because the system ground is used to lower the voltage.
  • bit line BL and inverted bit line BL# require power, because the system supply voltage is used to raise the voltage. It would be desirable to operate a ternary CAM cell without these power drains.
  • the logic low value requirement for bit line BL and inverted bit line BL# between operations additionally creates noise coupling on other array lines. Because the value on one of bit line BL and inverted bit line BL# is changed asymmetrically to the other, transverse lines (i.e., lines that cross both bit line BL and inverted bit line BL#) experience noise. It would be desirable to operate a ternary CAM cell without this noise affecting other lines in the CAM array. It would also be desirable to have a ternary CAM cell that senses small changes in the charge on a match line, thereby saving power by avoiding the complete discharge of the match line during compare operations.
  • FIG. 2 is a schematic diagram of a second prior art non-volatile ternary CAM cell 200 as described in U.S. Pat. No. 5,051,948.
  • CAM cell 200 includes volatile transistors MD and MW 1 -MW 2 and non-volatile (e.g., EPROM) transistors MF 1 -MF 2 .
  • Transistor MD has a drain coupled to the sources of transistors MF 1 -MF 2 .
  • Transistors MF 1 has a gate coupled to the drain of transistor MW 2 .
  • Transistor MF 2 has a gate coupled to the drain of transistor MW 1 .
  • a match line ML is commonly coupled to a source and a gate of transistor MD.
  • a bit line BL is commonly coupled to the sources of transistors MF 1 and MW 1 .
  • An inverted bit line BL# is commonly coupled to the sources of transistors MF 2 and MW 2 .
  • a word line WL is commonly coupled to the gates of transistors MW 1 -MW 2 .
  • CAM cell 200 stores one of a logic high, a logic low, and a don't care value.
  • a logic high value e.g., a V cc supply voltage of 5 Volts
  • a logic low value e.g., 0 Volts
  • a programming voltage of approximately twice the V cc supply voltage i.e., 10 Volts
  • Turned on transistor MD applies the programming voltage on the match line ML to the sources of transistors MF 1 -MF 2 .
  • a logic high value is applied to word line WL, thereby turning on transistors MW 1 -MW 2 .
  • transistor MW 2 couples the logic low value of inverted bit line BL# to the gate of transistor MF 1 , thereby turning off transistor MF 1 .
  • the threshold voltage of a transistor is that voltage which must be applied to the transistor to cause current to flow from the source to the drain.
  • transistor MW 1 couples the logic high value to bit line BL to the gate of transistor MF 2 , thereby turning on transistor MF 2 .
  • current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF 2 . Under these conditions, electrons are injected into the floating gate of transistor MF 2 , thereby causing the threshold voltage of transistor MF 2 to increase to a high threshold voltage state.
  • a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#.
  • a programming voltage is applied to match line ML, thereby turning on transistor MD.
  • Turned on transistor MD to applies the programming voltage on the match line ML to the sources of transistors MF 1 -MF 2 .
  • a logic high value is applied to word line WL, thereby turning on transistors MW 1 -MW 2 .
  • Turned on transistor MW 2 couples the logic high value of inverted bit line BL# to the gate of transistor MF 1 , thereby turning on transistor MF 1 .
  • current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF 1 .
  • transistor MF 1 Under these conditions, electrons are injected into the floating gate of transistor MF 1 , thereby causing the threshold voltage of transistor MF 1 to increase to a high threshold voltage state. Turned on transistor MW 1 couples the logic low value of bit line BL to the gate of transistor MF 2 , thereby turning off transistor MF 2 . As a result, no current flows between the source and drain of transistor MF 2 , thereby causing transistor MF 2 to retain a low threshold voltage state.
  • transistor MF 1 To store a don't care value in CAM cell 200 , first transistor MF 1 is written and then transistor MF 2 is written.
  • transistor MF 1 To write transistor MF 1 , a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#.
  • a programming voltage is applied to match line ML, thereby turning on transistor MD. Turned on transistor MD to applies the programming voltage on the match line ML to the sources of transistors MF 1 -MF 2 .
  • a logic high value is applied to word line WL, thereby turning on transistors MW 1 -MW 2 .
  • transistor MW 2 couples the logic high value of inverted bit line BL# to the gate of transistor MF 1 , thereby turning on transistor MF 1 .
  • transistor MF 1 As a result, current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF 1 . Under these conditions, electrons are injected into the floating gate of transistor MF 1 , thereby causing the threshold voltage of transistor MF 1 to increase to a high threshold voltage state. Turned on transistor MW 1 couples the logic low value of bit line BL to the gate of transistor MF 2 , thereby turning off transistor MF 2 . As a result, no electrons are injected into the floating gate of transistor MF 2 . Transistor MF 2 is written similarly to transistor MF 1 , with a logic high value applied to bit line BL and a logic low value applied to inverted bit line BL#.
  • CAM cell 200 performs a compare operation by sensing the current on match line ML.
  • the match line ML is pre-charged to a logic high value and a current sensor senses any current flow during discharge of that logic high value.
  • word line WL is held to a logic high value, thereby turning on transistors MW 1 -MW 2 , and the compare data is applied to bit line BL (e.g., logic high value) and inverted bit line BL# (e.g., logic low value).
  • bit line BL e.g., logic high value
  • inverted bit line BL# e.g., logic low value
  • CAM cell 200 If CAM cell 200 stores a logic high value, then the logic low value of inverted bit line BL# provided to the gate of transistor MF 1 through turned on transistor MW 2 de-couples the logic high value of the bit line BL from the pre-charged match line ML. Additionally, the logic high value of the bit line BL is provided to the gate of transistor MF 2 through turned on transistor MW 1 . However, because transistor MF 2 is in a high threshold state, this logic high value is insufficient to turn on transistor MF 2 . As a result, the match line ML remains pre-charged to a logic high value.
  • match line ML is de-coupled from the logic values applied to bit line BL and inverted bit line BL#.
  • match line ML remains pre-charged to a logic high value, indicating a match condition.
  • CAM cell 200 If CAM cell 200 stores a logic low value, then the logic low value applied to inverted bit line BL# provided to the gate of transistor MF 1 turns off transistor MF 1 . Additionally, the logic high value of bit line BL is applied to the gate of transistor MF 2 , thereby coupling the logic low value of inverted bit line BL# to the pre-charged match line ML through turned on transistor MF 2 . As a result, match line ML is discharged through inverted bit line BL#, thereby causing a current to flow on match line ML. This current is sensed to indicate a no-match condition.
  • bit line BL and inverted bit line BL#
  • bit line BL can impede the discharge of match line ML.
  • many CAM cells similar to CAM cell 200 are coupled to elongated bit line BL, which must be long enough to couple each of these CAM cells. It is well known that the resistance of a long line is much greater than that of a short line having the same width. To lower the resistance of a long line, the width of the long line must be increased, thereby occupying more layout area.
  • a large current is drawn through bit line BL.
  • bit line BL must be long enough to accommodate the CAM cells and wide enough to prevent long delays and signal degradation that is caused by the resistance of the line.
  • bit line BL remains narrow, CAM arrays made up of CAM cells 200 have a limited size due to the resistance of the narrow bit line BL.
  • FIG. 3 is a schematic diagram of a third prior art volatile ternary CAM cell 300 as described in U.S. Pat. No. 5,319,589.
  • CAM cell 300 includes transistors 301 - 305 and capacitors 306 - 307 .
  • a first plate of capacitor 306 is coupled to a first plate of capacitor 307 .
  • a second plate of capacitor 306 is coupled to dynamic storage node N 0 .
  • a second plate of capacitor 307 is coupled to dynamic storage node N 1 .
  • Transistor 301 has a drain coupled to node N 0 .
  • Transistor 303 has a gate coupled to node N 0 .
  • Transistor 304 has a gate coupled to node N 1 and a drain coupled to a drain of transistor 303 .
  • Transistor 305 has a source coupled to the drains of transistors 303 - 304 .
  • Word line WL is commonly coupled to the gates of transistors 301 - 302 .
  • Bit line BL is commonly coupled to the sources of transistors 301 and 303 .
  • Inverted bit line BL# is commonly coupled to the sources of transistors 302 and 304 .
  • Match line ML is commonly coupled to a gate and a drain of transistor 305 .
  • CAM cell 300 stores one of a logic high, a logic low, and a don't care value.
  • a logic high value is applied to bit line BL and a logic low value is applied to inverted bit line BL#.
  • the match line ML is held to a logic low level, thereby turning off transistor 305 .
  • the word line WL is held to a logic high value, thereby turning on transistors 301 - 302 .
  • Turned on transistor 301 provides the logic high value of bit line BL to capacitor 306 , thereby storing a positive charge in capacitor 306 .
  • turned on transistor 302 provides the logic low value of inverted bit line BL# to capacitor 307 , thereby storing a negative charge in capacitor 307 .
  • node N 0 stores a high logic value
  • node N 1 stores a low logic value.
  • a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#.
  • the match line ML is held to a logic low level, thereby turning off transistor 305 .
  • the word line WL is held to a logic high value, thereby turning on transistors 301 - 302 .
  • Turned on transistor 301 provides the logic low value of bit line BL to capacitor 306 , thereby storing a negative charge in capacitor 306 .
  • turned on transistor 302 provides the logic high value of inverted bit line BL# to capacitor 307 , thereby storing a positive charge in capacitor 307 .
  • node No stores a logic low value
  • node N 1 stores a logic high value.
  • bit line BL and inverted bit line BL# To store a don't care logic value in CAM cell 300 , logic low values are applied to bit line BL and inverted bit line BL#.
  • the match line ML is held to a logic low level, thereby turning off transistor 305 .
  • the word line WL is held to a logic high value, thereby turning on transistors 301 - 302 .
  • Turned on transistor 301 provides the logic low value of bit line BL to capacitor 306 , thereby storing a negative charge in capacitor 306 .
  • turned on transistor 302 provides the logic low value of inverted bit line BL# to capacitor 307 , thereby storing a negative charge in capacitor 307 .
  • nodes N 0 and N 1 store low logic values.
  • CAM cell 300 performs a compare operation by sensing the current on match line ML.
  • match line ML Prior to a compare operation, match line ML is pre-charged to a logic high value.
  • a no-match condition between the applied data and the value stored at nodes N 0 -N 1 of CAM cell 300 causes match line ML to discharge to a logic low value.
  • the voltage on match line ML is discharged through transistor 305 to one of the bit lines BL and BL# (i.e., through one of transistors 303 - 304 , respectively). This discharge causes a current on match line ML.
  • CAM cell 300 One problem with CAM cell 300 is similar to that of second prior art CAM cell 200 , discussed above. In large CAM arrays, many CAM cells similar to CAM cell 300 are coupled to bit line BL. Namely, because match line ML is discharged through bit line BL and inverted bit line BL#, the size of a CAM array including CAM cells 300 is limited.
  • the present invention provides a CAM array including volatile or non-volatile ternary CAM cells that discharge their associated match line through a special discharge line (e.g., a “low match” line), instead of through the bit line.
  • a special discharge line reduces power requirements and reduces noise coupling on other lines in the CAM cell array. Power requirements are further reduced by a low voltage swing on both the match line and the special discharge line.
  • Each ternary CAM cell includes a pair of storage elements that are used to store a data bit value, a comparison element that is used to compare the stored value with an applied data value, and a discharge element that is coupled between the discharge line and the match line.
  • the discharge element de-couples the discharge line from the match line (i.e., a high voltage on the match line remains high). Conversely, when the applied data value does not match the stored value, the discharge elements couple the discharge line to the match line, thereby discharging the match line to the discharge line.
  • the size of the CAM array is not limited by the length bit lines.
  • Voltage on the match line is sensed by a conventional voltage sensor to determine the match/no-match condition of a CAM cell. Therefore, a slight drop in the voltage of the match line will register as a no-match condition. By sensing the voltage on the match line, the match line does not need to be completely discharged to determine the match/no-match condition of a CAM cell.
  • FIG. 1 is a schematic diagram of a first prior art volatile ternary CAM cell
  • FIG. 2 is a schematic diagram of a second prior art non-volatile ternary CAM cell
  • FIG. 3 is a schematic diagram of a third prior art volatile ternary CAM cell
  • FIG. 4A is a schematic diagram of a ternary CAM cell in accordance with an embodiment of the present invention.
  • FIG. 4B is a timing diagram in accordance with the CAM cell of FIG. 4A ;
  • FIG. 5A is a schematic diagram of a ternary CAM cell in accordance with an embodiment of the present invention.
  • FIGS. 5B-5F are a schematic diagrams of ternary CAM cells in accordance with variations of the embodiment of FIG. 5A ;
  • FIG. 6 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention.
  • FIG. 8 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention.
  • FIG. 4A is a simplified schematic diagram showing a portion of a CAM array 400 that includes CAM cells 410 ( 1 ) through 410 ( 4 ) in accordance with the present invention.
  • CAM cells 410 ( 1 ) through 410 ( 4 ) are coupled to bit lines BLA and BLB, inverted bit lines IBA and IBB, word lines WLA and WLB, data lines DLA and DLB, inverted data lines IDA and IDB, match lines MLA and MLB, and discharge lines LMA and LMB.
  • the data lines and bit lines are co-formed (i.e., the same line is used to transmit data signals during write and comparison operations, discussed below).
  • CAM array 400 also includes one or more control circuits 420 coupled to discharge lines LMA and LMB.
  • CAM array 400 also includes signal generation circuitry and detection circuitry (not shown) that generates voltage levels on the various lines in accordance with known techniques.
  • each of CAM cells 410 ( 1 ) through 410 ( 4 ) includes one or more volatile or non-volatile elements (not shown) that are coupled to one of bit lines BLA and BLB and one of word lines WLA and WLB for storing a data value that is transmitted on the bit lines during a memory write operation.
  • each of CAM cells 410 ( 1 ) through 410 ( 4 ) also includes a switch (comparison circuit) 415 that is coupled between an associated match line MLA or MLB and an associated discharge line LMA or LMB.
  • switch 415 of CAM cell 410 ( 1 ) is coupled between match line MLA and discharge line LMA.
  • FIG. 4B is a timing diagram that shows signal (voltage) levels on the various lines of CAM cell 410 ( 1 ) for a particular embodiment of the present invention (e.g., FIGS. 5A and 6 described below) during standby (STBY), write (WRITE), read (READ including a pre-charge operation, PC) and comparison (CMPR including a pre-charge operation, PC) operations.
  • the one or more control circuits 420 generate the signal levels on discharge lines LMA and LMB.
  • Well known control circuitry (not shown) is used to generate signal levels on the remaining lines. Shaded values in the timing diagram indicate a “don't care” state where a specific voltage level is not required and therefore the last voltage level of the line is typically maintained.
  • FIGS. 4A and 4B The operation of an individual CAM cell in CAM array 400 will now be described with reference to FIGS. 4A and 4B .
  • word line WL is pulled down to a logic low value, thereby turning off CAM cell 410 ( 1 ).
  • the data line DLA and inverted data line IDA are held to logic low values to turn off switch 415 .
  • the values of the other coupled lines (BLA, IBA, MLA and LMA) are preferentially left in their last state.
  • a data value (e.g., a logic high value) is written to CAM cell 410 ( 1 ) by pulling up word line WLA and applying the data value (i.e., a logic high value) on bit line BLA and the inverted data value (i.e., a logic low value) on inverted bit line IBA.
  • data line DLA, inverted data line IDA, match line MLA and discharge line LMA are preferentially held to their last values.
  • bit line BLA and inverted bit line IBA are pre-charged to a logic high value and then word line WLA is brought to a logic high value.
  • the logic high value stored in CAM cell 410 ( 1 ) causes bit line BLA to remain at a logic high value, but discharges inverted bit line IBA to a logic low value.
  • the data stored in CAM cell 410 ( 1 ) is read from bit line BLA and inverted bit line IBA.
  • CAM cell 410 ( 1 ) After CAM cell 410 ( 1 ) returns to a standby condition, a comparison operation is performed in which the stored data value is compared with an applied data value (e.g., a logic low value) transmitted on data line DLA and inverted data line IDA.
  • Word line WLA and discharge line LMA are held to logic low values and match line MLA is pre-charged to a logic high value. If the received data value matches the stored data value, switch 415 remains open and match line MLA remains de-coupled from discharge line LMA. However, if the received data value does not match the stored data value, switch 415 closes, thereby connecting match line MLA to discharge line LMA (i.e., pulling down match line MLA to a low voltage level).
  • each match line MLA and MLB By discharging each match line MLA and MLB to corresponding discharge lines LMA and LMB instead of to bit line BLA, the limitations associated with prior art CAM arrays (discussed above) are avoided.
  • the length of bit lines BLA and BLB is not limited, as in prior art CAM arrays. Therefore, a CAM array incorporating the structure shown in FIG. 4A can be much larger than prior art CAM arrays in which the match lines discharge to the bit line.
  • data line DLA and inverted data line IDA are equalized during a standby operation. Because equalization requires no power drain from the V cc system supply voltage or the ground supply voltage, the only power required during the standby operation is that of recharging the data line DLA (e.g., to a logic high voltage) and the inverted data line IDA (e.g., to a logic low voltage) at the end of the standby operation.
  • a controlled voltage on low match line 517 allows data line DLA and inverted data line IDA to be left in their last state. For example, during a standby operation, low match line 517 is held to the voltage of match line 516 , thereby preventing the discharge of match line 516 .
  • This embodiment beneficially allows power savings by eliminating the need to change the voltage on data line DLA and inverted data line IDA unless the applied data value changes.
  • the voltage on match line 516 is equalized with the voltage on low match line 517 .
  • low match line 517 is coupled to a drain of a transistor having a source coupled to ground and a gate coupled to a control signal.
  • the control signal has a logic low value during pre-charge of match line 516 and equalization of data line DLA and inverted data line IDA, thereby allowing match line 516 and low match line 517 to equalize by de-coupling low match line 517 from ground.
  • the control signal has a logic high value otherwise, thereby coupling low match line 517 to ground.
  • a voltage level on each discharge line LMA and LMB is controlled by a control circuit 420 to have a first (e.g., high) voltage level during at least one of memory write, read, and pre-charge operations, and to have a second (e.g., low) voltage level during comparison operations.
  • a first (e.g., high) voltage level during at least one of memory write, read, and pre-charge operations
  • second (e.g., low) voltage level during comparison operations Because the discharge lines LMA and LMB have a high voltage level during some operations, data lines DLA and DLB and inverted data lines IDA and IDB may be maintained at their last values or equalized to a different value without discharging any voltage present on match lines MLA and MLB.
  • data words are stored in the rows of CAM cells, and compared with data words transmitted on data lines DLA and DLB and inverted data lines DLB and IDB.
  • a first two-bit data word is stored in CAM cells 410 ( 1 ) and 410 ( 3 )
  • a second two-bit data word is stored in CAM cells 410 ( 2 ) and 410 ( 4 ).
  • a “match” data word is simultaneously compared with both stored data words by transmitting the “match” data word on data lines DLA and DLB and the inverse of the “match” data word on inverted data lines IDA and IDB.
  • match line MLA is maintained at a logic high level, thereby indicating a match. Conversely, if one or more bits of the “match” data word differ from those stored in CAM cells 410 ( 1 ) and 410 ( 3 ), then match line MLA is discharged to discharge line LMA, thereby switching match line MLA to a logic low level.
  • CAM cells 410 ( 1 ) through 410 ( 4 ) are described in additional detail below with reference to various embodiments the incorporate the novel aspects of the present invention.
  • FIG. 5A is a schematic diagram of a novel five-transistor volatile ternary CAM cell 500 A in accordance with an embodiment of the present invention.
  • Ternary CAM cell 500 A includes n-channel transistors 501 - 505 and storage capacitors 506 - 507 .
  • Transistors 501 - 502 have drains coupled to dynamic storage nodes N A and N B , respectively.
  • Transistors 503 - 504 have gates coupled to dynamic storage nodes N A and N B , respectively.
  • Capacitor 506 has a first plate coupled to a first plate of capacitor 507 .
  • Capacitors 506 - 507 have second plates coupled to dynamic storage nodes N A and N B , respectively.
  • Transistor 505 has a gate commonly coupled to the drains of transistors 503 - 504 .
  • Word lines WL 1 -WL 2 are coupled to the gates of transistors 501 - 502 , respectively.
  • a first voltage i.e., half of the V cc supply voltage
  • a bit line 512 is coupled to a source of transistor 501 .
  • An inverted bit line 513 is coupled to a source of transistor 502 .
  • An inverted data line 515 is coupled to a source of transistor 503 .
  • a data line 514 is coupled to a source of transistor 504 .
  • a match line 516 is coupled to a source of transistor 505 .
  • a low match (discharge line) 517 is coupled to a drain of transistor 505 .
  • Low match line 517 is coupled to a low match control circuit (e.g., control circuit 420 of FIG. 4A ) that provides a voltage to low match line 517 .
  • the low match circuit provides a steady state value of the V ss voltage supply source to ternary CAM cell 500 A.
  • the low match circuit provides a signal to ternary CAM cell 500 A which has a logic high value during the write or pre-charge operation of the match line, and a logic low value otherwise.
  • match line 516 and low match line 517 are controlled with a small signal swing (e.g., 0.6 Volts to 1.2 Volts).
  • match line 516 and low match line 517 As a result, less power is consumed charging match line 516 and low match line 517 to a logic high value (e.g., 1.2 Volts) or a logic low value (e.g., 0.6 Volts).
  • a logic high value e.g., 1.2 Volts
  • a logic low value e.g., 0.6 Volts
  • the voltage corresponding to a logic low value on match line 516 and low match line 517 depends on the size of the signal swing.
  • a signal swing of 0.6 Volts to 1.2 Volts has a logic low value of 0.6 Volts
  • a signal swing of 0 Volts to 3.3 Volts has a logic low value of 0 Volts.
  • ternary CAM cell 500 A is placed in various conditions, including standby, write, read, and compare.
  • a standby condition exists when CAM cell 500 A is not undergoing a read, write, or comparison operation.
  • word lines 510 - 511 are held to logic low values, thereby turning off transistors 501 - 502 .
  • Data line 514 and inverted data line 515 are held to logic low values, thereby ensuring that transistor 505 is turned off.
  • Bit line 512 , inverted bit line 513 , match line 516 , and low match line 517 can have any value, but are preferentially held to their previous logic values.
  • a write operation for CAM cell 500 A is performed as follows. Word lines 510 - 511 are held to logic high values. The data to be written to CAM cell 500 A are provided on bit line 512 and inverted bit line 513 . Data line 514 , inverted data line 515 , match line 516 , and low match line 517 can have any value, but are preferentially held to their previous logic values.
  • CAM cell 500 A stores one of three values: a logic high value, a logic low value, and a “don't care” logic value.
  • a logic low value is applied to bit line 512 and a logic high value is applied to inverted bit line 513 .
  • the logic high value of word line 510 turns on transistor 501 , thereby applying the logic low value of bit line 512 to node N A and capacitor 506 .
  • the logic high value of word line 511 turns on transistor 502 , thereby applying the logic high value of inverted bit line 513 to node N B and capacitor 507 .
  • node N A stores a logic low value
  • node N B stores a logic high value.
  • a logic high value is applied to bit line 512
  • a logic low value is applied to inverted bit line 513 .
  • the logic high value of word line 510 turns on transistor 501 , thereby applying the logic high value of bit line 512 to node N A and capacitor 506 .
  • the logic high value of word line 511 turns on transistor 502 , thereby applying the logic low value of inverted bit line 513 to N B and capacitor 107 .
  • node N A stores a logic high value and N A stores a logic low value.
  • logic low values are applied to bit line 512 and inverted bit line 513 .
  • the logic high value of word line 510 turns on transistor 501 , thereby applying the logic low value of bit line 512 to node N A and capacitor 106 .
  • the logic high value of word line 511 turns on transistor 502 , thereby applying the logic low value of inverted bit line 513 to node N B and capacitor 507 .
  • nodes N A and N B store logic low values.
  • a read operation for CAM cell 500 A is performed as follows. Word lines 510 - 511 are held to logic high values. Bit line 512 and inverted bit line 513 are pre-charged to logic high values. Data line 514 , inverted data line 515 , match line 516 , and low match line 517 can have any value, but are preferentially held to their last logic values.
  • the logic high value of word line 510 turns on transistor 501 , thereby coupling the value stored at node N A to bit line 512 .
  • bit line 512 is pulled down to a logic low value.
  • node N A stores a logic high value
  • the logic value of bit line 512 remains unchanged.
  • the logic high value of word line 511 turns on transistor 502 , thereby coupling the value stored by node N B to inverted bit line 513 .
  • node N B stores a logic low value
  • the logic value of inverted bit line 513 is pulled down to a logic low value.
  • node N B stores a logic high value
  • the logic value of inverted bit line 513 remains unchanged.
  • CAM cell 500 A stores a logic low value
  • a read operation causes bit line 512 to have a logic low value and inverted bit line 513 to remain at a logic high value. If CAM cell 500 A stores a logic high value, a read operation causes inverted bit line 513 to have a logic low value and bit line 512 to remain at a logic high value. If CAM cell 500 A stores a “don't care” logic value, a read operation causes both bit line 512 and inverted bit line 513 to have logic low values.
  • a compare operation for CAM cell 500 A is performed as follows.
  • Match line 516 is pre-charged to a logic high value.
  • Low match line 517 is held to a logic low value.
  • Data to be compared is provided on data line 514 and inverted data line 515 .
  • Word lines 510 - 511 are held to logic low values.
  • Bit line 512 and inverted bit line 513 can have any value, but are preferentially held to their last logic values.
  • CAM cell 500 A stores a logic low value
  • the logic low value stored at node N A turns off transistor 503 , thereby de-coupling inverted data line 515 to the gate of transistor 505 .
  • the logic high value stored at node N B turns on transistor 504 , thereby coupling data line 514 to the gate of transistor 505 .
  • a logic high value applied to data line 514 turns on transistor 505 , thereby coupling match line 516 to low match line 517 .
  • match line 516 is discharged through low match line 517 , thereby indicating a no-match condition.
  • match line 516 remains at a logic high value, thereby indicating a match condition.
  • CAM cell 500 A stores a logic high value
  • the logic high value stored at node N A turns on transistor 503 , thereby coupling inverted data line 515 to the gate of transistor 505 .
  • the logic low value stored at node N B turns off transistor 504 , thereby de-coupling data line 514 to the gate of transistor 505 .
  • a logic high value applied to inverted data line 515 turns on transistor 505 , thereby coupling match line 516 to low match line 517 .
  • match line 516 is discharged through low match line 517 , thereby indicating a no-match condition.
  • inverted data line 515 turns off transistor 505 , thereby de-coupling match line 516 from low match line 517 .
  • match line 516 remains at a logic high value, thereby indicating a match condition.
  • CAM cell 500 A If CAM cell 500 A stores a “don't care” logic value, the logic low values stored at nodes N A and N B turn off transistors 503 - 504 , respectively. Therefore, transistor 505 is turned off, thereby de-coupling match line 516 from low match line 517 . As a result, when CAM cell 500 A stores a “don't care” logic value, CAM cell 500 A does not affect the charge on match line 516 .
  • match line 516 and low match line 517 are signal lines and match line 516 discharges to low match line 517 , the voltage on match line 516 and low match line 517 may be equalized during operations.
  • the logic values stored at nodes N A and N B may turn on transistors 503 - 504 , respectively, during standby operations without affecting the voltage on match line 516 .
  • data line 514 and inverted data line 515 may be left in their last state without affecting the voltage on match line 516 .
  • FIG. 5B is a schematic diagram of a novel ternary CAM cell 500 B in accordance with a variation of the embodiment of FIG. 5 A.
  • the second terminals of capacitors 306 - 307 are not held to a fixed voltage.
  • a connection to a fixed voltage is eliminated from CAM cell 500 B, thereby lessening cell size from that of CAM cell 500 A.
  • cell size may be further lessened by combining series capacitors 506 - 507 into a single capacitor with an equivalent capacitance. Similar elements between FIGS. 5A and 5B are labeled similarly.
  • CAM cell 500 B operates similarly to CAM cell 500 A.
  • FIG. 5C is a schematic diagram of a novel ternary CAM cell 500 C in accordance with another variation of the embodiment of FIG. 5 A.
  • the removal of capacitors 506 - 507 result in a smaller cell size than that of CAM cell 500 A. Additionally, the removal of capacitors 506 - 507 results in a less complicated process. Similar elements between FIGS. 5A and 5C are labeled similarly.
  • CAM cell 500 C operates similarly to CAM cell 500 A.
  • FIG. 5D is a schematic diagram of a novel ternary CAM cell 500 D in accordance with another variation of the embodiment of FIG. 5 A. Removal of data line 514 and inverted data line 515 by co-forming bit line 512 with inverted data line 515 ( FIG. 5A ) into bit/data line 520 and co-forming inverted bit line 513 with data line 514 ( FIG. 5A ) into inverted bit/data line 521 results in a smaller overall array size. Similar elements between FIGS. 5A and 5D are labeled similarly.
  • CAM cell 500 D operates similarly to CAM cell 500 A. However, now the read/write data applied to bit line 512 ( FIG. 5A ) and the compare data applied to inverted data line 515 ( FIG.
  • bit line 520 are now both applied to bit line 520 .
  • the read/write data formerly applied to inverted bit line 513 ( FIG. 5A ) and the compare data formerly applied to data line 514 ( FIG. 5A ) are now both applied to bit line 521 .
  • FIG. 5E is a schematic diagram of a novel ternary CAM cell 500 E in accordance with another variation of the embodiment of FIG. 5 A.
  • CAM cell 500 E discharges to ground instead of discharging to low match line 517 (FIG. 5 A).
  • the low match circuit FIG. 1A
  • FIGS. 5A and 5E Similar elements between FIGS. 5A and 5E are labeled similarly.
  • CAM cell 500 E operates similarly to CAM cell 500 A.
  • FIG. 5F is a schematic diagram of a novel ternary CAM cell SOOF in accordance with another embodiment of the present invention.
  • a CAM array including CAM cell 50 OF requires only one word line 522 (e.g., by co-forming word lines 510 - 511 (FIG. 5 A)) for each row of CAM cells 500 F, thereby lessening CAM array size as compared to a CAM array including CAM cell 500 A. Similar elements between FIGS. 5A and 5F are labeled similarly.
  • CAM cell 500 F operates similarly to CAM cell 500 A.
  • FIGS. 5A-5F may be combined to produce additional embodiments which would be apparent to a person skilled in the art.
  • FIGS. 5C-5D may be combined to produce an embodiment having a combined bit line and inverted data line and having the voltage between capacitors determined by relative capacitance of the capacitors.
  • FIG. 6 is a schematic diagram of a novel ternary CAM cell 600 in accordance with another embodiment of the present invention.
  • Ternary CAM cell 600 includes n-channel transistors 601 - 606 and storage capacitors 607 - 608 .
  • Capacitor 607 has a first plate coupled to a first plate of capacitor 608 and a second plate coupled to dynamic storage node N A .
  • Capacitor 608 has a second plate coupled to dynamic storage node N B .
  • Transistors 601 - 602 have drains coupled to nodes N A and N B , respectively.
  • Transistors 603 - 604 have gates coupled to nodes N A and N B , respectively.
  • Transistors 605 - 606 have sources coupled to the drains of transistors 603 - 604 , respectively.
  • a first voltage e.g., half of the V cc supply voltage
  • Word lines 610 - 611 are coupled to the gates to the gates of transistors 601 - 602 , respectively.
  • Bit line 612 is coupled to the source of transistor 601 and inverted bit line 613 is coupled to the source of transistor 602 .
  • Data line 614 is coupled to the gate of transistor 606 and inverted data line 615 is coupled to the gate of transistor 605 .
  • Match line 616 is commonly coupled to the sources of transistors 603 - 604 and low match line 617 is commonly coupled to the drains of transistors 605 - 606 .
  • ternary CAM cell 600 Similar to CAM cell 500 A, during normal operation, CAM cell 600 is placed in various conditions, including standby, write, read, and compare. Standby, write, and read operations for CAM cell 600 are similar to standby, write, and read operations for CAM cell 500 A (described above).
  • a compare operation for CAM cell 600 is performed as follows.
  • Match line 616 is pre-charged to a logic high value.
  • Low match line 617 is held to a logic low value.
  • Data to be compared is provided on data line 614 and inverted data line 615 .
  • Word lines 610 - 611 are held to logic low values.
  • Bit line 612 and inverted bit line 613 can have any value, but are preferentially held their last logic values.
  • CAM cell 600 If CAM cell 600 stores a logic low value, then the logic low value stored at node N A turns off transistor 603 , thereby de-coupling the source of transistor 605 from match line 616 . Additionally, the logic high value stored at node N B turns on transistor 604 , thereby coupling match line 616 to the source of transistor 606 . As a result, a logic high value applied to data line 614 turns on transistor 606 , thereby coupling match line 616 to low match line 617 . Under these conditions, match line 616 is pulled down to a logic low value, thereby indicating a no-match condition. Conversely, a logic low value applied to data line 614 turns off transistor 606 , thereby de-coupling match line 616 from low match line 617 . Under these conditions, match line 616 will remain at a logic high value, thereby indicating a match condition.
  • CAM cell 600 If CAM cell 600 stores a logic high value, then the logic high value stored at node N A turns on transistor 203 , thereby coupling match line 616 to the source of transistor 605 . Additionally, the logic low value stored by capacitor 608 turns off transistor 604 , thereby de-coupling match line 616 from the source of transistor 606 . As a result, a logic high value applied to inverted data line 615 turns on transistor 605 , thereby coupling match line 616 to low match line 617 . Under these conditions, match line 616 will be pulled down to a logic low value, thereby indicating a no-match condition.
  • inverted data line 615 turns off transistor 605 , thereby de-coupling match line 616 from low match line 617 .
  • match line 616 will remain at a logic high value, thereby indicating a match condition.
  • CAM cell 600 If CAM cell 600 stores a “don't care” value, then the logic low values stored at nodes N A and N B turn off transistors 603 - 604 , respectively. Therefore, match line 606 is de-coupled from low match line 617 , thereby maintaining match line 616 at a logic high value. As a result, when CAM cell 600 stores a “don't care” value, CAM cell 600 returns a match condition.
  • CAM cell 600 may be modified according to the structural variations described with reference to FIGS. 5B through 5F , along with combinations thereof, without altering the novel aspects of the present invention.
  • FIG. 7 is a schematic diagram of a novel ternary CAM cell 700 in accordance with another embodiment of the present invention.
  • Ternary CAM cell 700 includes nchannel transistors 701 - 704 and non-volatile (e.g., EPROM) transistors 705 - 706 .
  • Transistor 705 has a gate coupled to a drain of transistor 701 at dynamic storage node N A and a drain coupled to a source of transistor 703 .
  • Transistor 706 has a gate coupled to a drain of transistor 702 at dynamic storage node N B and a drain coupled to a source of transistor 704 .
  • Word lines 710 - 711 are coupled to the gates of transistors 701 - 702 , respectively.
  • Bit line 712 and inverted bit line 713 are coupled to the sources of transistors 701 - 702 , respectively.
  • Data line 714 and inverted data line 715 are coupled to the gates of transistors 703 - 704 , respectively.
  • Match line 716 is commonly coupled to the sources of transistors 705 - 706 .
  • Low match line 716 is commonly coupled to the drains of transistors 703 - 704 , respectively.
  • ternary CAM cell 700 is placed in various conditions, including standby, write, read, and compare. During a standby condition, word lines 710 - 711 are held to logic low values, thereby turning off transistors 701 - 702 . Bit line 712 , inverted bit line 713 , data line 714 , inverted data line 715 , match line 716 , and low match line 717 can have any value, but are preferentially held to their previous logic values.
  • a write operation for CAM cell 700 is performed as follows.
  • Word lines 710 - 711 are held to logic high values, thereby turning on transistors 701 - 702 , respectively.
  • the data to be written to CAM cell 700 are provided on data line 714 and inverted data line 715 .
  • Bit line 712 is held to the value applied to data line 714 and inverted bit line 713 is held to the value applied to inverted data line 715 .
  • Match line 716 is held to a programming voltage of roughly twice the V cc voltage supply source (e.g., 6.6 Volts) and low match line 717 is held to a logic low value.
  • CAM cell 700 stores one of three values: a logic high value, a logic low value, and a “don't care” value.
  • non-volatile transistor 705 has a low threshold voltage and non-volatile transistor 706 has a high threshold voltage.
  • Word lines 710 - 711 are held to logic high values, thereby turning on transistors 701 - 702 , respectively.
  • Bit line 712 is held to a logic low voltage, thereby providing a voltage equivalent to 0 Volts to the gate of non-volatile transistor 705 through turned on transistor 701 .
  • Inverted bit line 713 is held to a logic high voltage, thereby providing a voltage equivalent to the V cc supply voltage to the gate of non-volatile transistor 706 through turned on transistor 702 .
  • Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705 - 706 .
  • Data line 714 is held to a logic low value, thereby turning off transistor 703 .
  • Inverted data line 715 is held to a logic high value, thereby turning on transistor 704 .
  • Low match line 717 is held to a logic low voltage, thereby providing a voltage of 0 Volts to the drain of non-volatile transistor 706 through turned on transistor 704 .
  • non-volatile transistor 706 has a high threshold voltage and non-volatile transistor 705 stores a low threshold voltage.
  • non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 has a low threshold voltage.
  • Word lines 710 - 711 are held to logic high values, thereby turning on transistors 701 - 702 , respectively.
  • Bit line 712 is held to a logic high voltage, thereby providing a logic high voltage to the gate of non-volatile transistor 705 through turned on transistor 701 .
  • Inverted bit line 713 is held to a logic low value, thereby providing a logic low value to the gate of non-volatile transistor 706 through turned on transistor 702 .
  • Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705 - 706 .
  • Data line 714 is held to a logic high value, thereby turning on transistor 703 .
  • Low match line 717 is held to a logic low voltage, thereby providing a logic low voltage to the drain of non-volatile transistor 705 through turned on transistor 703 .
  • Inverted data line 715 is held to a logic low value, thereby turning off transistor 704 . Under these conditions, current flows between the source and the drain and electrons are injected into the floating gate of turned-on non-volatile transistor 705 , thereby raising the threshold voltage of non-volatile transistor 705 .
  • non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 stores has a low threshold voltage.
  • non-volatile transistors 705 - 706 both have high threshold voltages.
  • Word lines 710 - 711 are held to logic high values, thereby turning on transistors 701 - 702 , respectively.
  • Bit line 712 and inverted bit line 713 are held to logic high values, thereby providing a logic high value to the gates of non-volatile transistors 705 - 706 , respectively, through turned on transistors 701 - 702 , respectively.
  • Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705 - 706 .
  • Low match line 717 is held to a logic low voltage.
  • Data line 714 and inverted data line 715 are held to a logic high values, thereby turning on transistors 703 - 704 , respectively.
  • the drains of non-volatile transistors 705 - 706 are coupled to the logic low voltage of low match line 717 .
  • current flows between the source and drain and electrons are injected into the floating gates of each of turned-on non-volatile transistors 705 - 706 , thereby raising the threshold voltage of each of non-volatile transistors 705 - 706 .
  • a read operation for CAM cell 700 is performed as follows.
  • Data line 714 , inverted data line 715 , match line 716 , and low match line 717 are held to logic low values.
  • Bit line 712 and inverted bit line 713 are pre-charged to a value equal to one-half the V cc voltage supply source (e.g., 1.65 Volts).
  • Word lines 710 - 711 are held to logic high values, thereby turning on transistors 701 - 702 . If non-volatile transistor 705 has a high threshold voltage, the logic high voltage stored at node N A pulls up on the voltage of bit line 712 .
  • non-volatile transistor 705 has a low threshold voltage
  • the logic low voltage stored at node N A pulls down on the voltage of bit line 712 . Therefore, the resultant voltage on bit line 712 changes in response to the threshold voltage of non-volatile transistor 705 .
  • non-volatile transistor 706 has a high threshold voltage
  • the logic high voltage stored at node N B pulls up on the voltage of inverted bit line 713 .
  • the logic low voltage stored at node N B pulls down on the voltage of inverted bit line 713 . Therefore, the resultant voltage on inverted bit line 713 changes in response to the threshold voltage of non-volatile transistor 706 .
  • bit line 712 is pulled up and inverted bit line 713 is pulled down, then CAM cell 700 stores a logic high value. If bit line 712 is pulled down and inverted bit line 713 is pulled up, then CAM cell 700 stores a logic low value. If both bit line 712 and inverted bit line 713 are pulled up, then CAM cell 700 stores a don't care logic value.
  • a compare operation for CAM cell 700 is performed as follows. Word lines 710 - 711 , bit line 312 , and inverted bit line 713 are held to logic high values. As a result, logic high values are applied to the gates of non-volatile transistors 705 - 706 through turned on transistors 701 - 702 , respectively. Under these conditions, a non-volatile transistor having a low threshold voltage turns on and a non-volatile transistor having a high threshold voltage remains off.
  • Match line 716 is pre-charged to a logic high value.
  • Low match line 717 is held to a logic low value. Data to be compared is provided on data line 714 and inverted data line 715 .
  • non-volatile transistor 705 has a low threshold voltage and non-volatile transistor 706 has a high threshold voltage. If a logic high value is compared to CAM cell 700 , then a no-match condition exists. As a result, the logic low value applied to inverted data line 715 turns off transistor 704 and the logic high value applied to data line 714 turns on transistor 703 , thereby coupling match line 716 to low match line 717 through turned on non-volatile transistor 705 . Under these circumstances, match line 716 will be pulled down to a logic low value, thereby indicating the no-match condition. Conversely, if a logic low value is compared to CAM cell 700 , then a match condition exists.
  • match line 716 will remain at a logic high value, thereby indicating the match condition.
  • non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 has a low threshold voltage. If a logic low value is compared to CAM cell 700 , then a no-match condition exists. As a result, the logic low value applied to data line 714 turns off transistor 703 and the logic high value applied to inverted data line 715 turns on transistor 704 , thereby coupling match line 716 to low match line 717 through turned on non-volatile transistor 706 . Under these circumstances, match line 716 will be pulled down to a logic low value, thereby indicating the no-match condition. Conversely, if a logic high value is compared to CAM cell 700 , then a match condition exists.
  • CAM cell 700 If CAM cell 700 stores a “don't care” value, then non-volatile transistors 705 - 706 have high threshold voltages. Therefore, non-volatile transistors 705 - 706 are turned off, thereby de-coupling match line 716 from low match line 717 . As a result, match line 716 remains unchanged at a logic high value. Thus, when CAM cell 700 stores a “don't care” value, CAM cell 700 does not affect the charge on match line 716 .
  • CAM cell 700 may be modified according to the structural variations described with reference to FIGS. 5B through 5F , along with combinations thereof, without altering the novel aspects of the present invention.
  • FIG. 8 is a schematic diagram of a novel ternary CAM cell 800 in accordance with another embodiment of the present invention.
  • Ternary CAM cell 800 includes n-channel transistors 801 - 804 and capacitors 805 - 806 .
  • Transistor 801 has a drain coupled through node N A to a gate of transistor 803 .
  • Capacitor 805 has a first plate coupled to node N A .
  • Transistor 802 has a drain coupled through node N B to a gate of transistor 804 .
  • Capacitor 806 has a first plate coupled to node N B .
  • Word lines 810 - 811 are coupled to the gates of transistors 801 - 802 , respectively.
  • a bit line 812 is coupled to a source of transistor 801 and an inverted bit line 813 is coupled to a source of transistor 802 .
  • a data line 815 is coupled to a second plate of capacitor 806 and an inverted data line 814 is coupled to a second plate of capacitor 805 .
  • a match line 816 is commonly coupled to the sources of transistors 803 - 804 .
  • a low match line is commonly coupled to the drains of transistors 803 - 804 .
  • ternary CAM cell 800 is placed in various conditions, including standby, write, read, and compare.
  • word lines 810 - 811 are held to logic low values, thereby turning off transistors 801 - 802 .
  • Bit line 812 , inverted bit line 813 , data line 815 , inverted data line 814 , and match line 816 can have any value, but are preferentially held to their last logic values.
  • Low match line 817 is held to the same logic value as match line 816 .
  • a write operation for CAM cell 800 is performed as follows. Word lines 810 - 811 are held to logic high values, thereby turning on transistors 801 - 802 , respectively. Data line 815 and inverted data line 814 are held to logic high values while match line 816 and low match line 817 are held to logic low values. The data to be written to CAM cell 800 are provided on bit line 812 and inverted bit line 813 . Data is maintained in CAM cell 800 at dynamic storage nodes N A and N B by the relative capacitance between capacitors 801 - 802 and the gate capacitance of transistors 803 - 804 , respectively. CAM cell 800 stores one of three values: a logic low value, a logic high value, and a “don't care” value.
  • CAM cell 800 To store a logic low value is CAM cell 800 , a logic low value is applied to bit line 812 , and a logic high value is applied to inverted bit line 813 .
  • the logic high value of word line 810 turns on transistor 801 , thereby applying the logic low value of bit line 812 at node N A .
  • the logic high value of word line 811 turns on transistor 802 , thereby applying the logic high value of inverted bit line 813 at node N B .
  • node N A stores a logic low value (e.g., 0 Volts) and node N B stores a logic high value (e.g., 3.3 Volts).
  • a logic high value is applied to bit line 812
  • a logic low value is applied to inverted bit line 813 .
  • the logic high value of word line 810 turns on transistor 801 , thereby applying the logic high value of bit line 812 at node N A .
  • the logic high value of word line 811 turns on transistor 802 , thereby applying the logic low value of inverted bit line 813 at node N B .
  • node N A stores a logic high value (e.g., 3.3 Volts)
  • node N B stores a logic low value (e.g., 0 Volts).
  • logic low values are applied to bit line 812 and inverted bit line 813 .
  • the logic high value of word line 810 turns on transistor 801 , thereby applying the logic low value of bit line 812 at node N A .
  • the logic high value of word line 811 turns on transistor 802 , thereby applying the logic low value of inverted bit line 813 at node N B .
  • both node N A and node N B store logic low values (e.g., 0 Volts).
  • a read operation for CAM cell 800 is performed as follows.
  • Word lines 810 - 811 are held to logic high values, thereby turning on transistors 801 - 802 .
  • Bit line 612 and inverted bit line 613 are pre-charged to a voltage approximately equal to half the V cc supply voltage (e.g., 1.65 Volts).
  • Data line 815 and inverted data line 814 are held to logic high values, while match line 816 and low match line 817 are held to logic low values.
  • word line 810 turns on transistor 801 , thereby coupling the voltage stored at node N A to bit line 812 .
  • node N A stores a logic low value (e.g., 0 Volts)
  • the voltage on bit line 812 is pulled down slightly.
  • node N A stores a logic high value (e.g., 3.3 Volts)
  • the voltage on bit line 812 is pulled up slightly. (Note that the amount of change on bit line 812 is proportional to the ratio of the capacitance of bit line 812 to the total capacitance of bit line 812 and capacitor 805 ).
  • the logic high value of word line 811 turns on transistor 802 , thereby coupling the voltage stored at node N B to inverted bit line 813 .
  • node N B stores a logic low value (e.g., 0 Volts)
  • the logic value of inverted bit line 813 is pulled down slightly.
  • node N B stores a logic high value (e.g., 3.3 Volts)
  • the voltage on inverted bit line 813 is pulled up slightly.
  • the amount of change on inverted bit line 813 is proportional to the ratio of the capacitance of inverted bit line 813 to the total capacitance of inverted bit line 813 and capacitor 806 ).
  • a read operation causes bit line 812 to have a voltage of less than half of the V cc supply voltage and inverted bit line 613 to have a voltage of more than half of the V cc supply voltage. If CAM cell 800 stores a logic high value, a read operation causes bit line 812 to have a voltage of more than half of the V cc supply voltage and inverted bit line 613 to have a voltage of less than half of the V cc supply voltage. If CAM cell 800 stores a “don't care” value, a read operation causes both bit line 812 and inverted bit line 813 to have a voltage of less than half of the V cc supply voltage. The voltage change on bit line 812 and inverted bit line 813 is sensed to determine the value stored by CAM cell 800 .
  • a compare operation for CAM cell 800 is performed as follows.
  • Match line 816 is pre-charged to a logic high value.
  • Low match line 817 is held to a logic low value.
  • Word lines 810 - 811 are held to logic low values, thereby turning off transistors 801 - 802 .
  • Bit line 812 and inverted bit line 813 can have any value, but are preferentially held to their previous logic values.
  • Data to be compared is provided on data line 815 and inverted data line 814 . These applied comparison data affect the voltage stored at nodes N A and N B in proportion to the capacitive coupling between capacitor 805 and transistor 803 and between capacitor 806 and transistor 804 , respectively.
  • the compare operation changes the voltage stored at node N A in proportion to the voltage applied to capacitor 805 (i.e., the inverted comparison data D#) and the ratio of the capacitance of capacitor 805 and the total capacitance of capacitor 805 and transistor 803 .
  • the compare operation changes the voltage stored at node N B in proportion to the voltage applied to capacitor 806 (i.e., the comparison data D) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 .
  • a logic high value applied to inverted data line 814 maintains the voltage stored at node N A
  • a logic low value applied to inverted data line 814 reduces the voltage stored at node N A .
  • a logic high value applied to data line 815 maintains the voltage stored at node N B
  • a logic low value applied to data line 815 reduces the voltage stored at node N B .
  • CAM cell 800 stores a logic high value and a logic low value is compared to CAM cell 800 , a no-match condition occurs.
  • the logic low value e.g., 0 Volts
  • any reduction in the voltage at node N B maintains transistor 804 in an off state, thereby de-coupling match line 816 from low match line 817 .
  • the logic high value (i.e., 3.3 Volts) applied to inverted data line 814 reduces the voltage stored at node N A (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10).
  • the voltage at node N A does not change, thereby remaining at a logic high value.
  • the logic high value at node N A which is greater than the threshold voltage of transistor 803 , turns on transistor 803 , thereby coupling match line 816 to low match line 817 .
  • match line 816 is pulled down to a logic low value, thereby indicating a no-match condition. If CAM cell 800 stores a logic high value and a logic high value is compared to CAM cell 800 , a match condition occurs.
  • the logic high value (e.g., 3.3 Volts) applied to data line 815 reduces the voltage stored at node N B (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9 : 10 ).
  • the logic low value (i.e., 0 Volts) applied to inverted data line 814 reduces the voltage stored at node N A (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10).
  • the new voltage stored at node N A which is less than the threshold voltage of transistor 803 , is insufficient to turn on transistor 803 , thereby de-coupling match line 816 to low match line 817 .
  • match line 816 remains at a logic high value, thereby indicating a match condition.
  • CAM cell 800 stores a logic low value and a logic high value is compared to CAM cell 800 , a no-match condition occurs.
  • the logic low value i.e., 0 Volts
  • the logic low value applied to inverted data line 814 reduces the voltage stored at node N A (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10).
  • match line 816 is de-coupled from low match line 817 through transistor 803 .
  • the logic low value (e.g., 3.3 Volts) applied to data line 815 reduces the voltage stored at node N B (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9:10).
  • match line 816 indicates a no-match condition.
  • CAM cell 800 stores a logic low value and a logic low value is compared to CAM cell 800 , a match condition occurs.
  • the logic low value e.g., 0 Volts
  • the voltage stored at node N B e.g., 3.3 Volts
  • the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 e.g., 9:10.
  • the new voltage stored at node N B which is less than the threshold voltage of transistor 804 , is insufficient to turn on transistor 804 , thereby de-coupling match line 816 from low match line 817 .
  • the logic high value (i.e., 3.3 Volts) applied to inverted data line 814 reduces the voltage stored at node N A (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10). Because the voltage at node N A is already at 0 Volts, and therefore less than the threshold voltage of transistor 803 , transistor 803 remains turned off. As a result, match line 816 remains at a logic high value, thereby indicating a match condition.
  • CAM cell 800 may be modified according to the structural variations described with reference to FIGS. 5B through 5F , along with combinations thereof, without altering the novel aspects of the present invention.

Abstract

A CAM array including volatile or non-volatile ternary CAM cells that discharge their associated match line through a special discharge line (e.g., a low match line), instead of through the bit line, is disclosed. Each ternary CAM cell includes a pair of storage elements that are used to store a data bit value, a comparison element that is used to compare the stored value with an applied data value, and a discharge element that is coupled between the discharge line and the match line. During operation, when the applied data value matches the stored value, the discharge element de-couples the discharge line from the match line (i.e., a high voltage on the match line remains high). Conversely, when the applied data value does not match the stored value, the discharge elements couple the discharge line to the match line, thereby discharging the match line to the discharge line. By discharging the match line to the discharge line instead of the bit lines of the CAM array, the size of the CAM array is not limited by the length bit lines. Because the voltage on the match line is sensed to determine the match/no-match condition of a CAM cell, the match line does not need to be completely discharged.

Description

FIELD OF THE INVENTION
The present invention relates to content addressable memory (CAM) arrays. More specifically, the present invention relates to ternary CAM cells and methods for operating these cells in a CAM array.
DISCUSSION OF RELATED ART
Unlike conventional random access memory (RAM) arrays, CAM arrays include memory cells that are addressed in response to their content, rather than by a physical address within a RAM array. That is, data words stored in a RAM array are accessed by applying address signals to the RAM array input terminals. In response to each unique set of address signals, a RAM array outputs a data value that is read from a portion of the RAM array designated by the address. In contrast, a CAM array receives a data value that is compared with all of the data values stored in rows of the CAM array. In response to each unique data value applied to the CAM array input terminals, the rows of CAM cells within the CAM array assert or de-assert associated match signals indicating whether or not one or more data values stored in the CAM cell rows match the applied data value.
CAM arrays are useful in many applications, such as search engines. For example, assume an employee list is searched to identify all employees with the first name “John”. The first names are written into a CAM array such that they are stored in a predetermined order (e.g., according to employee number). The input data value (“John”) is then applied to the CAM input terminals. When one or more stored data values match the input data value, the match line coupled to the one or more matching rows of CAM cells generates a high output signal. By identifying which rows have associated high match lines, and comparing those row numbers with the employee number list, all employees named “John” are identified. In contrast, to search a RAM array containing the same employee list, a series of addresses must be applied to the RAM array so that each stored data value is read out and compared with the “John” data value. Because each RAM read operation takes one clock cycle, a relatively large amount of time is required to read and compare a particular data value with all data values stored in a RAM array.
There are two types of CAM cells typically used in CAM arrays: binary CAM cells and ternary CAM cells. Binary CAM cells store one of two bit values: a logic high value or a logic low value. When the logic value stored in the binary CAM cell matches an applied data value, then the match line coupled to the binary CAM cell is maintained at a logic high value (assuming all other CAM cells coupled to the CAM array row also match), thereby indicating that a match has occurred. In contrast, when the logic value stored in the binary CAM cell does not match an applied data value, then the match line coupled to the binary CAM cell is pulled down, thereby indicating that a match has not occurred. Ternary CAM cells can store any one of three values: a logic high, a logic low, or a “don't care” value. When storing logic high and logic low values, a ternary CAM cell operates like a binary CAM cell. In addition, a ternary CAM cell storing a don't care value will provide a match condition for any data bit value applied to that CAM cell. This “dont't care” capability allows CAM arrays to indicate when a data value matches a selected group of ternary CAM cells in a row of the CAM array. For example, assume each row of a ternary CAM array has eight ternary CAM cells. Additionally assume that the first four ternary CAM cells of each row each store one of a logic high and a logic low value (for comparison to the first four bits of an input 8-bit data value) and the last four ternary CAM cells of each row store “don't care” values. Under these conditions, when an 8-bit data value is applied to the ternary CAM array, a match occurs for each row of the CAM array in which the data values stored in the first four ternary CAM cells match the first four bits of the applied 8-bit data value.
Binary and ternary CAM cells can be characterized as volatile (i.e., in which the logic high, logic low, or don't care value is stored in volatile components, such as capacitors), or non-volatile (i.e., in which values are stored in non-volatile components, such as EPROM transistors).
FIG. 1 is a schematic diagram of a first prior art volatile ternary CAM cell 100 as described in U.S. Pat. No. 5,642,320. CAM cell 100 includes volatile (e.g., field-effect) transistors Q1-Q6. Transistor Q1 has a drain coupled to the source of transistor Q2. Transistor Q3 has a drain coupled to the source of transistor Q4. Transistor Q2 has a gate coupled to the drain of transistor Q6. Transistor Q4 has a gate coupled to the drain of transistor Q5. A match line is commonly coupled to the sources of transistors Q1 and Q3. A bit line BL is commonly coupled to the gate of transistor Q1 and the source of transistor Q5. An inverted bit line BL# is commonly coupled to the gate of transistor Q3 and the source of transistor Q6. A word line WL is commonly coupled to the gates of transistors Q5-Q6. The drains of transistors Q2 and Q4 are commonly coupled to ground. CAM cell 100 stores one of a logic high, a logic low, and a don't care value is dynamic storage nodes NA and NB. A don't care value is a value that results in a match condition for all applied data values. To store a logic high value, a logic high value is applied to bit line BL and a logic low value applied to inverted bit line BL#. A logic high value is applied to word line WL to turn on transistors Q5-Q6, thereby coupling the logic high value of the bit line BL to both node NB and the gate of transistor Q4 and coupling the logic low value of the inverted bit line BL# to both node NA and the gate of transistor Q2. As a result, node NA stores a logic low value and node NB stores a logic high value.
To store a logic low value, a logic low value is applied to bit line BL and a logic high value applied to inverted bit line BL#. A logic high value is applied word line WL to turn on transistors Q5-Q6, thereby coupling the logic low value of the bit line BL to both node NB and the gate of transistor Q4 and coupling the logic high value of the inverted bit line BL# to both node NA and the gate of transistor Q2. As a result, node NA stores a logic high value and node NB stores a logic low value.
To store a don't care value, a logic low value is applied to both bit line BL and to inverted bit line BL#. A logic high value is applied word line WL to turn on transistors Q5-Q6, thereby coupling the logic low value of the bit line BL to both node NB and the gate of transistor Q4 and coupling the logic low value of the inverted bit line BL# to both node NA and the gate of transistor Q2. As a result, both nodes NA and node NB store logic low values.
CAM cell 100 performs a compare operation by pre-charging the match line ML to a logic high value and then sensing any current on the match line ML. A no-match condition during a compare operation results in the discharge of the match line ML to ground. The discharge causes a current to flow between match line ML and ground. A current sensor coupled to match line ML senses this current flow, thereby indicating the no-match condition. In contrast, a match condition during a compare operation results in the match line ML remaining charged to a logic high value. Because the match line ML is not discharged during a match condition, no current will flow on match line ML. As a result, no current is sensed on match line ML by the associated current sensor, thereby indicating the match condition.
During a compare operation, word line WL is held to a logic low value and the compare data is applied to bit line BL (e.g., logic high value) and inverted bit line BL# (e.g., logic low value). If CAM cell 100 stores a logic high value, then the logic low value stored at node NA turns off transistor Q2, thereby de-coupling the drain of transistor Q1 from ground and the logic high value stored at node NB turns on transistor Q4, thereby coupling the drain of transistor Q3 to ground. The logic low value of the inverted bit line BL# turns off transistor Q3, thereby de-coupling match line ML from ground. Under these conditions, the match line ML remains pre-charged to a logic high value, thereby indicating a match condition.
Similarly, if CAM cell 100 stores a don't care value, then the logic low values stored at nodes NA and NB turn off transistors Q2 and Q4, respectively, thereby de-coupling the drains of transistors Q1 and Q3, respectively, from ground. Under these conditions, match line ML remains pre-charged to a logic high value, thereby indicating a match condition.
If CAM cell 100 stores a logic low value, then the logic high value stored at node NA turns on transistor Q2, thereby coupling the drain of transistor Q1 to ground, and the logic low value stored at node NB turns off transistor Q4, thereby de-coupling the drain of transistor Q3 from ground. The logic high value of the bit line BL turns on transistor Q1, thereby coupling match line ML to ground through turned on transistor Q2. Under these conditions, the match line ML is discharged to ground, thereby indicating a no-match condition.
A problem with prior art CAM cell 100 is that the drains of transistors Q2 and Q4 are permanently tied to ground. CAM cell 100 requires bit line BL and inverted bit line BL# to have logic low values between operations, thereby turning off transistors Q1 and Q3, respectively. Because bit line BL and inverted bit line BL# typically have opposite logic values (e.g., bit line BL has a high logic value and inverted bit line BL# has a low logic value), one of bit line BL and inverted bit line BL# must be grounded between operations and a logic high value re-applied for a new operation. The grounding of one of bit line BL and inverted bit line BL# requires power, because the system ground is used to lower the voltage. Similarly, the re-application of a logic high value to one of bit line BL and inverted bit line BL# requires power, because the system supply voltage is used to raise the voltage. It would be desirable to operate a ternary CAM cell without these power drains. The logic low value requirement for bit line BL and inverted bit line BL# between operations additionally creates noise coupling on other array lines. Because the value on one of bit line BL and inverted bit line BL# is changed asymmetrically to the other, transverse lines (i.e., lines that cross both bit line BL and inverted bit line BL#) experience noise. It would be desirable to operate a ternary CAM cell without this noise affecting other lines in the CAM array. It would also be desirable to have a ternary CAM cell that senses small changes in the charge on a match line, thereby saving power by avoiding the complete discharge of the match line during compare operations.
FIG. 2 is a schematic diagram of a second prior art non-volatile ternary CAM cell 200 as described in U.S. Pat. No. 5,051,948. CAM cell 200 includes volatile transistors MD and MW1-MW2 and non-volatile (e.g., EPROM) transistors MF1-MF2. Transistor MD has a drain coupled to the sources of transistors MF1-MF2. Transistors MF1 has a gate coupled to the drain of transistor MW2. Transistor MF2 has a gate coupled to the drain of transistor MW1. A match line ML is commonly coupled to a source and a gate of transistor MD. A bit line BL is commonly coupled to the sources of transistors MF1 and MW1. An inverted bit line BL# is commonly coupled to the sources of transistors MF2 and MW2. A word line WL is commonly coupled to the gates of transistors MW1-MW2.
CAM cell 200 stores one of a logic high, a logic low, and a don't care value. To store a logic high value, a logic high value (e.g., a Vcc supply voltage of 5 Volts) is applied to bit line BL and a logic low value (e.g., 0 Volts) is applied to inverted bit line BL#. A programming voltage of approximately twice the Vcc supply voltage (i.e., 10 Volts) is applied to match line ML, thereby turning on transistor MD. Turned on transistor MD applies the programming voltage on the match line ML to the sources of transistors MF1-MF2. A logic high value is applied to word line WL, thereby turning on transistors MW1-MW2. Turned on transistor MW2 couples the logic low value of inverted bit line BL# to the gate of transistor MF1, thereby turning off transistor MF1. As a result, no current flows between the source and drain of transistor MF1, thereby causing transistor MF1 to retain a low threshold voltage state. The threshold voltage of a transistor is that voltage which must be applied to the transistor to cause current to flow from the source to the drain. Turned on transistor MW1 couples the logic high value to bit line BL to the gate of transistor MF2, thereby turning on transistor MF2. As a result, current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF2. Under these conditions, electrons are injected into the floating gate of transistor MF2, thereby causing the threshold voltage of transistor MF2 to increase to a high threshold voltage state.
To store a logic low value in CAM cell 200, a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#. A programming voltage is applied to match line ML, thereby turning on transistor MD. Turned on transistor MD to applies the programming voltage on the match line ML to the sources of transistors MF1-MF2. A logic high value is applied to word line WL, thereby turning on transistors MW1-MW2. Turned on transistor MW2 couples the logic high value of inverted bit line BL# to the gate of transistor MF1, thereby turning on transistor MF1. As a result, current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF1. Under these conditions, electrons are injected into the floating gate of transistor MF1, thereby causing the threshold voltage of transistor MF1 to increase to a high threshold voltage state. Turned on transistor MW1 couples the logic low value of bit line BL to the gate of transistor MF2, thereby turning off transistor MF2. As a result, no current flows between the source and drain of transistor MF2, thereby causing transistor MF2 to retain a low threshold voltage state.
To store a don't care value in CAM cell 200, first transistor MF1 is written and then transistor MF2 is written. To write transistor MF1, a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#. A programming voltage is applied to match line ML, thereby turning on transistor MD. Turned on transistor MD to applies the programming voltage on the match line ML to the sources of transistors MF1-MF2. A logic high value is applied to word line WL, thereby turning on transistors MW1-MW2. Turned on transistor MW2 couples the logic high value of inverted bit line BL# to the gate of transistor MF1, thereby turning on transistor MF1. As a result, current flows between the source (10 Volts) and the drain (0 Volts) of transistor MF1. Under these conditions, electrons are injected into the floating gate of transistor MF1, thereby causing the threshold voltage of transistor MF1 to increase to a high threshold voltage state. Turned on transistor MW1 couples the logic low value of bit line BL to the gate of transistor MF2, thereby turning off transistor MF2. As a result, no electrons are injected into the floating gate of transistor MF2. Transistor MF2 is written similarly to transistor MF1, with a logic high value applied to bit line BL and a logic low value applied to inverted bit line BL#.
Similar to first prior art CAM cell 100 (discussed above), CAM cell 200 performs a compare operation by sensing the current on match line ML. Thus, the match line ML is pre-charged to a logic high value and a current sensor senses any current flow during discharge of that logic high value. During a compare operation, word line WL is held to a logic high value, thereby turning on transistors MW1-MW2, and the compare data is applied to bit line BL (e.g., logic high value) and inverted bit line BL# (e.g., logic low value). The pre-charged logic high value of the match line ML turns on transistor MD, thereby applying the pre-charged logic high value at the sources of transistors MF1-MF2.
If CAM cell 200 stores a logic high value, then the logic low value of inverted bit line BL# provided to the gate of transistor MF1 through turned on transistor MW2 de-couples the logic high value of the bit line BL from the pre-charged match line ML. Additionally, the logic high value of the bit line BL is provided to the gate of transistor MF2 through turned on transistor MW1. However, because transistor MF2 is in a high threshold state, this logic high value is insufficient to turn on transistor MF2. As a result, the match line ML remains pre-charged to a logic high value.
Similarly, if CAM cell 200 stores a don't care value, a logic high value is insufficient to turn on transistors MF1-MF2, which are in high threshold voltage states. As a result, match line ML is de-coupled from the logic values applied to bit line BL and inverted bit line BL#. Thus, match line ML remains pre-charged to a logic high value, indicating a match condition.
If CAM cell 200 stores a logic low value, then the logic low value applied to inverted bit line BL# provided to the gate of transistor MF1 turns off transistor MF1. Additionally, the logic high value of bit line BL is applied to the gate of transistor MF2, thereby coupling the logic low value of inverted bit line BL# to the pre-charged match line ML through turned on transistor MF2. As a result, match line ML is discharged through inverted bit line BL#, thereby causing a current to flow on match line ML. This current is sensed to indicate a no-match condition.
One problem with prior art CAM cell 200 is that, in large CAM arrays, the resistance of bit line BL (and inverted bit line BL#) can impede the discharge of match line ML. In large CAM arrays, many CAM cells similar to CAM cell 200 are coupled to elongated bit line BL, which must be long enough to couple each of these CAM cells. It is well known that the resistance of a long line is much greater than that of a short line having the same width. To lower the resistance of a long line, the width of the long line must be increased, thereby occupying more layout area. During a match operation in a large CAM array, a large current is drawn through bit line BL. As a result, bit line BL must be long enough to accommodate the CAM cells and wide enough to prevent long delays and signal degradation that is caused by the resistance of the line. Conversely, when the bit line BL remains narrow, CAM arrays made up of CAM cells 200 have a limited size due to the resistance of the narrow bit line BL.
FIG. 3 is a schematic diagram of a third prior art volatile ternary CAM cell 300 as described in U.S. Pat. No. 5,319,589. CAM cell 300 includes transistors 301-305 and capacitors 306-307. A first plate of capacitor 306 is coupled to a first plate of capacitor 307. A second plate of capacitor 306 is coupled to dynamic storage node N0. A second plate of capacitor 307 is coupled to dynamic storage node N1. Transistor 301 has a drain coupled to node N0. Transistor 303 has a gate coupled to node N0. Transistor 304 has a gate coupled to node N1 and a drain coupled to a drain of transistor 303. Transistor 305 has a source coupled to the drains of transistors 303-304. Word line WL is commonly coupled to the gates of transistors 301-302. Bit line BL is commonly coupled to the sources of transistors 301 and 303. Inverted bit line BL# is commonly coupled to the sources of transistors 302 and 304. Match line ML is commonly coupled to a gate and a drain of transistor 305.
CAM cell 300 stores one of a logic high, a logic low, and a don't care value. To store a logic high value, a logic high value is applied to bit line BL and a logic low value is applied to inverted bit line BL#. The match line ML is held to a logic low level, thereby turning off transistor 305. The word line WL is held to a logic high value, thereby turning on transistors 301-302. Turned on transistor 301 provides the logic high value of bit line BL to capacitor 306, thereby storing a positive charge in capacitor 306. Similarly, turned on transistor 302 provides the logic low value of inverted bit line BL# to capacitor 307, thereby storing a negative charge in capacitor 307. As a result, when word line WL is brought low, thereby turning off transistors 301-302, node N0 stores a high logic value and node N1 stores a low logic value.
Similarly, to store a logic low value, a logic low value is applied to bit line BL and a logic high value is applied to inverted bit line BL#. The match line ML is held to a logic low level, thereby turning off transistor 305. The word line WL is held to a logic high value, thereby turning on transistors 301-302. Turned on transistor 301 provides the logic low value of bit line BL to capacitor 306, thereby storing a negative charge in capacitor 306. Similarly, turned on transistor 302 provides the logic high value of inverted bit line BL# to capacitor 307, thereby storing a positive charge in capacitor 307. As a result, when word line WL is brought low, thereby turning off transistors 301-302, node No stores a logic low value and node N1 stores a logic high value.
To store a don't care logic value in CAM cell 300, logic low values are applied to bit line BL and inverted bit line BL#. The match line ML is held to a logic low level, thereby turning off transistor 305. The word line WL is held to a logic high value, thereby turning on transistors 301-302. Turned on transistor 301 provides the logic low value of bit line BL to capacitor 306, thereby storing a negative charge in capacitor 306. Similarly, turned on transistor 302 provides the logic low value of inverted bit line BL# to capacitor 307, thereby storing a negative charge in capacitor 307. As a result, when word line WL is brought low, thereby turning off transistors 301-302, nodes N0 and N1 store low logic values.
Similar to first prior art CAM cell 100 (discussed above), CAM cell 300 performs a compare operation by sensing the current on match line ML. Prior to a compare operation, match line ML is pre-charged to a logic high value. During a compare operation, a no-match condition between the applied data and the value stored at nodes N0-N1 of CAM cell 300 causes match line ML to discharge to a logic low value. Thus, the voltage on match line ML is discharged through transistor 305 to one of the bit lines BL and BL# (i.e., through one of transistors 303-304, respectively). This discharge causes a current on match line ML.
One problem with CAM cell 300 is similar to that of second prior art CAM cell 200, discussed above. In large CAM arrays, many CAM cells similar to CAM cell 300 are coupled to bit line BL. Namely, because match line ML is discharged through bit line BL and inverted bit line BL#, the size of a CAM array including CAM cells 300 is limited.
It would therefore be desirable to have a volatile ternary CAM cell that does not discharge through the bit line, thereby avoiding match condition delays.
SUMMARY
Accordingly, the present invention provides a CAM array including volatile or non-volatile ternary CAM cells that discharge their associated match line through a special discharge line (e.g., a “low match” line), instead of through the bit line. The use of a special discharge line reduces power requirements and reduces noise coupling on other lines in the CAM cell array. Power requirements are further reduced by a low voltage swing on both the match line and the special discharge line. Each ternary CAM cell includes a pair of storage elements that are used to store a data bit value, a comparison element that is used to compare the stored value with an applied data value, and a discharge element that is coupled between the discharge line and the match line. During operation, when the applied data value matches the stored value, the discharge element de-couples the discharge line from the match line (i.e., a high voltage on the match line remains high). Conversely, when the applied data value does not match the stored value, the discharge elements couple the discharge line to the match line, thereby discharging the match line to the discharge line. By discharging the match line to the discharge line instead of the bit lines of the CAM array, the size of the CAM array is not limited by the length bit lines.
Voltage on the match line is sensed by a conventional voltage sensor to determine the match/no-match condition of a CAM cell. Therefore, a slight drop in the voltage of the match line will register as a no-match condition. By sensing the voltage on the match line, the match line does not need to be completely discharged to determine the match/no-match condition of a CAM cell.
The present invention will be more fully understood in view of the following description and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of a first prior art volatile ternary CAM cell;
FIG. 2 is a schematic diagram of a second prior art non-volatile ternary CAM cell; and
FIG. 3 is a schematic diagram of a third prior art volatile ternary CAM cell;
FIG. 4A is a schematic diagram of a ternary CAM cell in accordance with an embodiment of the present invention;
FIG. 4B is a timing diagram in accordance with the CAM cell of FIG. 4A;
FIG. 5A is a schematic diagram of a ternary CAM cell in accordance with an embodiment of the present invention;
FIGS. 5B-5F are a schematic diagrams of ternary CAM cells in accordance with variations of the embodiment of FIG. 5A;
FIG. 6 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention;
FIG. 7 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention; and
FIG. 8 is a schematic diagram of a novel ternary CAM cell in accordance with another embodiment of the present invention.
DETAILED DESCRIPTION
FIG. 4A is a simplified schematic diagram showing a portion of a CAM array 400 that includes CAM cells 410(1) through 410(4) in accordance with the present invention. CAM cells 410(1) through 410(4) are coupled to bit lines BLA and BLB, inverted bit lines IBA and IBB, word lines WLA and WLB, data lines DLA and DLB, inverted data lines IDA and IDB, match lines MLA and MLB, and discharge lines LMA and LMB. Note that, in some embodiments, the data lines and bit lines are co-formed (i.e., the same line is used to transmit data signals during write and comparison operations, discussed below). CAM array 400 also includes one or more control circuits 420 coupled to discharge lines LMA and LMB. CAM array 400 also includes signal generation circuitry and detection circuitry (not shown) that generates voltage levels on the various lines in accordance with known techniques.
Similar to prior art CAM cells, each of CAM cells 410(1) through 410(4) includes one or more volatile or non-volatile elements (not shown) that are coupled to one of bit lines BLA and BLB and one of word lines WLA and WLB for storing a data value that is transmitted on the bit lines during a memory write operation. In addition, each of CAM cells 410(1) through 410(4) also includes a switch (comparison circuit) 415 that is coupled between an associated match line MLA or MLB and an associated discharge line LMA or LMB. For example, switch 415 of CAM cell 410(1) is coupled between match line MLA and discharge line LMA.
FIG. 4B is a timing diagram that shows signal (voltage) levels on the various lines of CAM cell 410(1) for a particular embodiment of the present invention (e.g., FIGS. 5A and 6 described below) during standby (STBY), write (WRITE), read (READ including a pre-charge operation, PC) and comparison (CMPR including a pre-charge operation, PC) operations. The one or more control circuits 420 generate the signal levels on discharge lines LMA and LMB. Well known control circuitry (not shown) is used to generate signal levels on the remaining lines. Shaded values in the timing diagram indicate a “don't care” state where a specific voltage level is not required and therefore the last voltage level of the line is typically maintained.
The operation of an individual CAM cell in CAM array 400 will now be described with reference to FIGS. 4A and 4B. In a standby state, for example, of CAM cell 410(1), word line WL is pulled down to a logic low value, thereby turning off CAM cell 410(1). The data line DLA and inverted data line IDA are held to logic low values to turn off switch 415. The values of the other coupled lines (BLA, IBA, MLA and LMA) are preferentially left in their last state.
A data value (e.g., a logic high value) is written to CAM cell 410(1) by pulling up word line WLA and applying the data value (i.e., a logic high value) on bit line BLA and the inverted data value (i.e., a logic low value) on inverted bit line IBA. During the data write operation, data line DLA, inverted data line IDA, match line MLA and discharge line LMA are preferentially held to their last values.
Some time after CAM cell 410(1) returns to a standby state, a read operation is performed in which the stored data value is read. Bit line BLA and inverted bit line IBA are pre-charged to a logic high value and then word line WLA is brought to a logic high value. The logic high value stored in CAM cell 410(1) causes bit line BLA to remain at a logic high value, but discharges inverted bit line IBA to a logic low value. The data stored in CAM cell 410(1) is read from bit line BLA and inverted bit line IBA. After CAM cell 410(1) returns to a standby condition, a comparison operation is performed in which the stored data value is compared with an applied data value (e.g., a logic low value) transmitted on data line DLA and inverted data line IDA. Word line WLA and discharge line LMA are held to logic low values and match line MLA is pre-charged to a logic high value. If the received data value matches the stored data value, switch 415 remains open and match line MLA remains de-coupled from discharge line LMA. However, if the received data value does not match the stored data value, switch 415 closes, thereby connecting match line MLA to discharge line LMA (i.e., pulling down match line MLA to a low voltage level). By discharging each match line MLA and MLB to corresponding discharge lines LMA and LMB instead of to bit line BLA, the limitations associated with prior art CAM arrays (discussed above) are avoided. In particular, although additional space is required to provide discharge lines LMA and LMB in CAM array 400, the length of bit lines BLA and BLB is not limited, as in prior art CAM arrays. Therefore, a CAM array incorporating the structure shown in FIG. 4A can be much larger than prior art CAM arrays in which the match lines discharge to the bit line.
For example, in one embodiment data line DLA and inverted data line IDA are equalized during a standby operation. Because equalization requires no power drain from the Vcc system supply voltage or the ground supply voltage, the only power required during the standby operation is that of recharging the data line DLA (e.g., to a logic high voltage) and the inverted data line IDA (e.g., to a logic low voltage) at the end of the standby operation.
In another embodiment, a controlled voltage on low match line 517 allows data line DLA and inverted data line IDA to be left in their last state. For example, during a standby operation, low match line 517 is held to the voltage of match line 516, thereby preventing the discharge of match line 516. This embodiment beneficially allows power savings by eliminating the need to change the voltage on data line DLA and inverted data line IDA unless the applied data value changes. In a variation on this embodiment, the voltage on match line 516 is equalized with the voltage on low match line 517.
In one embodiment, low match line 517 is coupled to a drain of a transistor having a source coupled to ground and a gate coupled to a control signal. In this embodiment, the control signal has a logic low value during pre-charge of match line 516 and equalization of data line DLA and inverted data line IDA, thereby allowing match line 516 and low match line 517 to equalize by de-coupling low match line 517 from ground. The control signal has a logic high value otherwise, thereby coupling low match line 517 to ground.
In accordance with another aspect of the present invention, a voltage level on each discharge line LMA and LMB is controlled by a control circuit 420 to have a first (e.g., high) voltage level during at least one of memory write, read, and pre-charge operations, and to have a second (e.g., low) voltage level during comparison operations. Because the discharge lines LMA and LMB have a high voltage level during some operations, data lines DLA and DLB and inverted data lines IDA and IDB may be maintained at their last values or equalized to a different value without discharging any voltage present on match lines MLA and MLB. As a result, less power is required to maintain a voltage (e.g., a logic low voltage) on data lines DLA and DLB and inverted data lines IDA and IDB. Similarly, because none of data lines DLA and DLB and inverted data lines IDA and IDB need to be coupled to system power or ground between operations, less total power is consumed by CAM array 400 than in conventional CAM arrays. Further power savings occur by having a low voltage swing on match lines MLA-MLB and discharge lines LMA-LBM. For example, one embodiment uses a voltage swing of 0.6 Volts to 1.2 Volts. Therefore, the control circuit 420 provides a power savings in the operation of CAM array 400. As an additional benefit, because data lines DLA and DLB may be maintained at a voltage symmetrical to inverted data lines IDA and IDB, respectively, noise coupling is reduced on other lines crossing the CAM array.
With the operation of each CAM cell 410(1) through 410(4) established, the operation of CAM array 400 will now be explained. Namely, data words are stored in the rows of CAM cells, and compared with data words transmitted on data lines DLA and DLB and inverted data lines DLB and IDB. For example, a first two-bit data word is stored in CAM cells 410(1) and 410(3), and a second two-bit data word is stored in CAM cells 410(2) and 410(4). A “match” data word is simultaneously compared with both stored data words by transmitting the “match” data word on data lines DLA and DLB and the inverse of the “match” data word on inverted data lines IDA and IDB. If each bit of the “match” data word is equal to the data bits stored in CAM cells 410(1) and 410(3), then match line MLA is maintained at a logic high level, thereby indicating a match. Conversely, if one or more bits of the “match” data word differ from those stored in CAM cells 410(1) and 410(3), then match line MLA is discharged to discharge line LMA, thereby switching match line MLA to a logic low level.
CAM cells 410(1) through 410(4) are described in additional detail below with reference to various embodiments the incorporate the novel aspects of the present invention.
First Embodiment: 5T Volatile CAM Cell
FIG. 5A is a schematic diagram of a novel five-transistor volatile ternary CAM cell 500A in accordance with an embodiment of the present invention. Ternary CAM cell 500A includes n-channel transistors 501-505 and storage capacitors 506-507. Transistors 501-502 have drains coupled to dynamic storage nodes NA and NB, respectively. Transistors 503-504 have gates coupled to dynamic storage nodes NA and NB, respectively. Capacitor 506 has a first plate coupled to a first plate of capacitor 507. Capacitors 506-507 have second plates coupled to dynamic storage nodes NA and NB, respectively. Transistor 505 has a gate commonly coupled to the drains of transistors 503-504. Word lines WL1-WL2 are coupled to the gates of transistors 501-502, respectively. A first voltage (i.e., half of the Vcc supply voltage) is coupled to the first plates of capacitors 506-507. A bit line 512 is coupled to a source of transistor 501. An inverted bit line 513 is coupled to a source of transistor 502. An inverted data line 515 is coupled to a source of transistor 503. A data line 514 is coupled to a source of transistor 504. A match line 516 is coupled to a source of transistor 505. A low match (discharge line) 517 is coupled to a drain of transistor 505.
Low match line 517 is coupled to a low match control circuit (e.g., control circuit 420 of FIG. 4A) that provides a voltage to low match line 517. In one embodiment, the low match circuit provides a steady state value of the Vss voltage supply source to ternary CAM cell 500A. In another embodiment, the low match circuit provides a signal to ternary CAM cell 500A which has a logic high value during the write or pre-charge operation of the match line, and a logic low value otherwise. In another embodiment, match line 516 and low match line 517 are controlled with a small signal swing (e.g., 0.6 Volts to 1.2 Volts). As a result, less power is consumed charging match line 516 and low match line 517 to a logic high value (e.g., 1.2 Volts) or a logic low value (e.g., 0.6 Volts). Note that the voltage corresponding to a logic low value on match line 516 and low match line 517 depends on the size of the signal swing. Thus, a signal swing of 0.6 Volts to 1.2 Volts has a logic low value of 0.6 Volts and a signal swing of 0 Volts to 3.3 Volts has a logic low value of 0 Volts.
The operation of ternary CAM cell 500A will now be described. During normal operation, CAM cell 500A is placed in various conditions, including standby, write, read, and compare. A standby condition exists when CAM cell 500A is not undergoing a read, write, or comparison operation. During a standby condition in CAM cell 500A, word lines 510-511 are held to logic low values, thereby turning off transistors 501-502. Data line 514 and inverted data line 515 are held to logic low values, thereby ensuring that transistor 505 is turned off. Bit line 512, inverted bit line 513, match line 516, and low match line 517 can have any value, but are preferentially held to their previous logic values.
A write operation for CAM cell 500A is performed as follows. Word lines 510-511 are held to logic high values. The data to be written to CAM cell 500A are provided on bit line 512 and inverted bit line 513. Data line 514, inverted data line 515, match line 516, and low match line 517 can have any value, but are preferentially held to their previous logic values.
CAM cell 500A stores one of three values: a logic high value, a logic low value, and a “don't care” logic value. To store a logic low value in CAM cell 500A, a logic low value is applied to bit line 512 and a logic high value is applied to inverted bit line 513. The logic high value of word line 510 turns on transistor 501, thereby applying the logic low value of bit line 512 to node NA and capacitor 506. The logic high value of word line 511 turns on transistor 502, thereby applying the logic high value of inverted bit line 513 to node NB and capacitor 507. As a result, node NA stores a logic low value and node NB stores a logic high value.
To store a logic high value in CAM cell 500A, a logic high value is applied to bit line 512, and a logic low value is applied to inverted bit line 513. The logic high value of word line 510 turns on transistor 501, thereby applying the logic high value of bit line 512 to node NA and capacitor 506. The logic high value of word line 511 turns on transistor 502, thereby applying the logic low value of inverted bit line 513 to NB and capacitor 107. As a result, node NA stores a logic high value and NA stores a logic low value.
To store a “don't care” logic value, logic low values are applied to bit line 512 and inverted bit line 513. The logic high value of word line 510 turns on transistor 501, thereby applying the logic low value of bit line 512 to node NA and capacitor 106. The logic high value of word line 511 turns on transistor 502, thereby applying the logic low value of inverted bit line 513 to node NB and capacitor 507. As a result, nodes NA and NB store logic low values.
A read operation for CAM cell 500A is performed as follows. Word lines 510-511 are held to logic high values. Bit line 512 and inverted bit line 513 are pre-charged to logic high values. Data line 514, inverted data line 515, match line 516, and low match line 517 can have any value, but are preferentially held to their last logic values.
The logic high value of word line 510 turns on transistor 501, thereby coupling the value stored at node NA to bit line 512. As a result, if node NA stores a logic low value, bit line 512 is pulled down to a logic low value. If node NA stores a logic high value, the logic value of bit line 512 remains unchanged. The logic high value of word line 511 turns on transistor 502, thereby coupling the value stored by node NB to inverted bit line 513. As a result, if node NB stores a logic low value, the logic value of inverted bit line 513 is pulled down to a logic low value. If node NB stores a logic high value, the logic value of inverted bit line 513 remains unchanged. Therefore, if CAM cell 500A stores a logic low value, a read operation causes bit line 512 to have a logic low value and inverted bit line 513 to remain at a logic high value. If CAM cell 500A stores a logic high value, a read operation causes inverted bit line 513 to have a logic low value and bit line 512 to remain at a logic high value. If CAM cell 500A stores a “don't care” logic value, a read operation causes both bit line 512 and inverted bit line 513 to have logic low values.
A compare operation for CAM cell 500A is performed as follows. Match line 516 is pre-charged to a logic high value. Low match line 517 is held to a logic low value. Data to be compared is provided on data line 514 and inverted data line 515. Word lines 510-511 are held to logic low values. Bit line 512 and inverted bit line 513 can have any value, but are preferentially held to their last logic values.
If CAM cell 500A stores a logic low value, then the logic low value stored at node NA turns off transistor 503, thereby de-coupling inverted data line 515 to the gate of transistor 505. Additionally, the logic high value stored at node NB turns on transistor 504, thereby coupling data line 514 to the gate of transistor 505. As a result, a logic high value applied to data line 514 turns on transistor 505, thereby coupling match line 516 to low match line 517. Under these circumstances, match line 516 is discharged through low match line 517, thereby indicating a no-match condition. Conversely, a logic low value applied to data line 514 turns off transistor 505, thereby de-coupling match line 516 from low match line 517. Under these circumstances, match line 516 remains at a logic high value, thereby indicating a match condition.
If CAM cell 500A stores a logic high value, then the logic high value stored at node NA turns on transistor 503, thereby coupling inverted data line 515 to the gate of transistor 505. Additionally, the logic low value stored at node NB turns off transistor 504, thereby de-coupling data line 514 to the gate of transistor 505. As a result, a logic high value applied to inverted data line 515 turns on transistor 505, thereby coupling match line 516 to low match line 517. Under these circumstances, match line 516 is discharged through low match line 517, thereby indicating a no-match condition. Conversely, a logic low value applied to inverted data line 515 turns off transistor 505, thereby de-coupling match line 516 from low match line 517. Under these circumstances, match line 516 remains at a logic high value, thereby indicating a match condition.
If CAM cell 500A stores a “don't care” logic value, the logic low values stored at nodes NA and NB turn off transistors 503-504, respectively. Therefore, transistor 505 is turned off, thereby de-coupling match line 516 from low match line 517. As a result, when CAM cell 500A stores a “don't care” logic value, CAM cell 500A does not affect the charge on match line 516.
Note that because match line 516 and low match line 517 are signal lines and match line 516 discharges to low match line 517, the voltage on match line 516 and low match line 517 may be equalized during operations. As a result, the logic values stored at nodes NA and NB may turn on transistors 503-504, respectively, during standby operations without affecting the voltage on match line 516. Under these conditions, data line 514 and inverted data line 515 may be left in their last state without affecting the voltage on match line 516.
FIG. 5B is a schematic diagram of a novel ternary CAM cell 500B in accordance with a variation of the embodiment of FIG. 5A. The second terminals of capacitors 306-307 are not held to a fixed voltage. As a result, a connection to a fixed voltage is eliminated from CAM cell 500B, thereby lessening cell size from that of CAM cell 500A. Note that cell size may be further lessened by combining series capacitors 506-507 into a single capacitor with an equivalent capacitance. Similar elements between FIGS. 5A and 5B are labeled similarly. CAM cell 500B operates similarly to CAM cell 500A.
FIG. 5C is a schematic diagram of a novel ternary CAM cell 500C in accordance with another variation of the embodiment of FIG. 5A. The removal of capacitors 506-507 result in a smaller cell size than that of CAM cell 500A. Additionally, the removal of capacitors 506-507 results in a less complicated process. Similar elements between FIGS. 5A and 5C are labeled similarly. CAM cell 500C operates similarly to CAM cell 500A.
FIG. 5D is a schematic diagram of a novel ternary CAM cell 500D in accordance with another variation of the embodiment of FIG. 5A. Removal of data line 514 and inverted data line 515 by co-forming bit line 512 with inverted data line 515 (FIG. 5A) into bit/data line 520 and co-forming inverted bit line 513 with data line 514 (FIG. 5A) into inverted bit/data line 521 results in a smaller overall array size. Similar elements between FIGS. 5A and 5D are labeled similarly. CAM cell 500D operates similarly to CAM cell 500A. However, now the read/write data applied to bit line 512 (FIG. 5A) and the compare data applied to inverted data line 515 (FIG. 5A) are now both applied to bit line 520. Similarly, the read/write data formerly applied to inverted bit line 513 (FIG. 5A) and the compare data formerly applied to data line 514 (FIG. 5A) are now both applied to bit line 521.
FIG. 5E is a schematic diagram of a novel ternary CAM cell 500E in accordance with another variation of the embodiment of FIG. 5A. CAM cell 500E discharges to ground instead of discharging to low match line 517 (FIG. 5A). As a result, the low match circuit (FIG. 1A) is not required for a CAM array including CAM cell 500E, thereby lessening CAM array requirements from those of a CAM array including CAM cell 500A. Similar elements between FIGS. 5A and 5E are labeled similarly. CAM cell 500E operates similarly to CAM cell 500A.
FIG. 5F is a schematic diagram of a novel ternary CAM cell SOOF in accordance with another embodiment of the present invention. A CAM array including CAM cell 50OF requires only one word line 522 (e.g., by co-forming word lines 510-511 (FIG. 5A)) for each row of CAM cells 500F, thereby lessening CAM array size as compared to a CAM array including CAM cell 500A. Similar elements between FIGS. 5A and 5F are labeled similarly. CAM cell 500F operates similarly to CAM cell 500A.
It is understood that the embodiments of FIGS. 5A-5F may be combined to produce additional embodiments which would be apparent to a person skilled in the art. For example, FIGS. 5C-5D may be combined to produce an embodiment having a combined bit line and inverted data line and having the voltage between capacitors determined by relative capacitance of the capacitors.
Second Embodiment: 6T Volatile CAM Cell
FIG. 6 is a schematic diagram of a novel ternary CAM cell 600 in accordance with another embodiment of the present invention. Ternary CAM cell 600 includes n-channel transistors 601-606 and storage capacitors 607-608. Capacitor 607 has a first plate coupled to a first plate of capacitor 608 and a second plate coupled to dynamic storage node NA. Capacitor 608 has a second plate coupled to dynamic storage node NB. Transistors 601-602 have drains coupled to nodes NA and NB, respectively. Transistors 603-604 have gates coupled to nodes NA and NB, respectively. Transistors 605-606 have sources coupled to the drains of transistors 603-604, respectively. A first voltage (e.g., half of the Vcc supply voltage) is commonly coupled to the first plates of capacitors 607-608. Word lines 610-611 are coupled to the gates to the gates of transistors 601-602, respectively. Bit line 612 is coupled to the source of transistor 601 and inverted bit line 613 is coupled to the source of transistor 602. Data line 614 is coupled to the gate of transistor 606 and inverted data line 615 is coupled to the gate of transistor 605. Match line 616 is commonly coupled to the sources of transistors 603-604 and low match line 617 is commonly coupled to the drains of transistors 605-606.
The operation of ternary CAM cell 600 will now be described. Similar to CAM cell 500A, during normal operation, CAM cell 600 is placed in various conditions, including standby, write, read, and compare. Standby, write, and read operations for CAM cell 600 are similar to standby, write, and read operations for CAM cell 500A (described above).
A compare operation for CAM cell 600 is performed as follows. Match line 616 is pre-charged to a logic high value. Low match line 617 is held to a logic low value. Data to be compared is provided on data line 614 and inverted data line 615. Word lines 610-611 are held to logic low values. Bit line 612 and inverted bit line 613 can have any value, but are preferentially held their last logic values.
If CAM cell 600 stores a logic low value, then the logic low value stored at node NA turns off transistor 603, thereby de-coupling the source of transistor 605 from match line 616. Additionally, the logic high value stored at node NB turns on transistor 604, thereby coupling match line 616 to the source of transistor 606. As a result, a logic high value applied to data line 614 turns on transistor 606, thereby coupling match line 616 to low match line 617. Under these conditions, match line 616 is pulled down to a logic low value, thereby indicating a no-match condition. Conversely, a logic low value applied to data line 614 turns off transistor 606, thereby de-coupling match line 616 from low match line 617. Under these conditions, match line 616 will remain at a logic high value, thereby indicating a match condition.
If CAM cell 600 stores a logic high value, then the logic high value stored at node NA turns on transistor 203, thereby coupling match line 616 to the source of transistor 605. Additionally, the logic low value stored by capacitor 608 turns off transistor 604, thereby de-coupling match line 616 from the source of transistor 606. As a result, a logic high value applied to inverted data line 615 turns on transistor 605, thereby coupling match line 616 to low match line 617. Under these conditions, match line 616 will be pulled down to a logic low value, thereby indicating a no-match condition. Conversely, a logic low value applied to inverted data line 615 turns off transistor 605, thereby de-coupling match line 616 from low match line 617. Under these conditions, match line 616 will remain at a logic high value, thereby indicating a match condition.
If CAM cell 600 stores a “don't care” value, then the logic low values stored at nodes NA and NB turn off transistors 603-604, respectively. Therefore, match line 606 is de-coupled from low match line 617, thereby maintaining match line 616 at a logic high value. As a result, when CAM cell 600 stores a “don't care” value, CAM cell 600 returns a match condition.
Similar to CAM cell 500A, CAM cell 600 may be modified according to the structural variations described with reference to FIGS. 5B through 5F, along with combinations thereof, without altering the novel aspects of the present invention.
Third Embodiment: 6T Non-Volatile CAM Cell
FIG. 7 is a schematic diagram of a novel ternary CAM cell 700 in accordance with another embodiment of the present invention. Ternary CAM cell 700 includes nchannel transistors 701-704 and non-volatile (e.g., EPROM) transistors 705-706. Transistor 705 has a gate coupled to a drain of transistor 701 at dynamic storage node NA and a drain coupled to a source of transistor 703. Transistor 706 has a gate coupled to a drain of transistor 702 at dynamic storage node NB and a drain coupled to a source of transistor 704. Word lines 710-711 are coupled to the gates of transistors 701-702, respectively. Bit line 712 and inverted bit line 713 are coupled to the sources of transistors 701-702, respectively. Data line 714 and inverted data line 715 are coupled to the gates of transistors 703-704, respectively. Match line 716 is commonly coupled to the sources of transistors 705-706. Low match line 716 is commonly coupled to the drains of transistors 703-704, respectively.
The operation of ternary CAM cell 700 will now be described. CAM cell 700 is placed in various conditions, including standby, write, read, and compare. During a standby condition, word lines 710-711 are held to logic low values, thereby turning off transistors 701-702. Bit line 712, inverted bit line 713, data line 714, inverted data line 715, match line 716, and low match line 717 can have any value, but are preferentially held to their previous logic values.
A write operation for CAM cell 700 is performed as follows. Word lines 710-711 are held to logic high values, thereby turning on transistors 701-702, respectively. The data to be written to CAM cell 700 are provided on data line 714 and inverted data line 715. Bit line 712 is held to the value applied to data line 714 and inverted bit line 713 is held to the value applied to inverted data line 715. Match line 716 is held to a programming voltage of roughly twice the Vcc voltage supply source (e.g., 6.6 Volts) and low match line 717 is held to a logic low value.
Similarly to CAM cell 500A, CAM cell 700 stores one of three values: a logic high value, a logic low value, and a “don't care” value. To store a logic low value in CAM cell 700, non-volatile transistor 705 has a low threshold voltage and non-volatile transistor 706 has a high threshold voltage. Word lines 710-711 are held to logic high values, thereby turning on transistors 701-702, respectively. Bit line 712 is held to a logic low voltage, thereby providing a voltage equivalent to 0 Volts to the gate of non-volatile transistor 705 through turned on transistor 701. Inverted bit line 713 is held to a logic high voltage, thereby providing a voltage equivalent to the Vcc supply voltage to the gate of non-volatile transistor 706 through turned on transistor 702. Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705-706. Data line 714 is held to a logic low value, thereby turning off transistor 703. Inverted data line 715 is held to a logic high value, thereby turning on transistor 704. Low match line 717 is held to a logic low voltage, thereby providing a voltage of 0 Volts to the drain of non-volatile transistor 706 through turned on transistor 704. Under these conditions, current flows between the source and the drain and electrons are injected into the floating gate of turned-on non-volatile transistor 706, thereby raising the threshold voltage of non-volatile transistor 706. No current flows between the source and the drain of turned-off non-volatile transistor 705, which thus remains in a low threshold voltage state. As a result, non-volatile transistor 706 has a high threshold voltage and non-volatile transistor 705 stores a low threshold voltage.
To store a logic high value in CAM cell 700, non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 has a low threshold voltage. Word lines 710-711 are held to logic high values, thereby turning on transistors 701-702, respectively. Bit line 712 is held to a logic high voltage, thereby providing a logic high voltage to the gate of non-volatile transistor 705 through turned on transistor 701. Inverted bit line 713 is held to a logic low value, thereby providing a logic low value to the gate of non-volatile transistor 706 through turned on transistor 702. Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705-706. Data line 714 is held to a logic high value, thereby turning on transistor 703. Low match line 717 is held to a logic low voltage, thereby providing a logic low voltage to the drain of non-volatile transistor 705 through turned on transistor 703. Inverted data line 715 is held to a logic low value, thereby turning off transistor 704. Under these conditions, current flows between the source and the drain and electrons are injected into the floating gate of turned-on non-volatile transistor 705, thereby raising the threshold voltage of non-volatile transistor 705. No current flows between the source and the drain of turned-off non-volatile transistor 706, which thus remains in a low threshold voltage state. As a result, non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 stores has a low threshold voltage.
To store a “don't care” value, non-volatile transistors 705-706 both have high threshold voltages. Word lines 710-711 are held to logic high values, thereby turning on transistors 701-702, respectively. Bit line 712 and inverted bit line 713 are held to logic high values, thereby providing a logic high value to the gates of non-volatile transistors 705-706, respectively, through turned on transistors 701-702, respectively. Match line 716 is held to a programming voltage of 6.6 Volts, thereby providing a voltage of 6.6 Volts to the sources of non-volatile transistors 705-706. Low match line 717 is held to a logic low voltage. Data line 714 and inverted data line 715 are held to a logic high values, thereby turning on transistors 703-704, respectively. As a result, the drains of non-volatile transistors 705-706 are coupled to the logic low voltage of low match line 717. Under these conditions, current flows between the source and drain and electrons are injected into the floating gates of each of turned-on non-volatile transistors 705-706, thereby raising the threshold voltage of each of non-volatile transistors 705-706.
A read operation for CAM cell 700 is performed as follows. Data line 714, inverted data line 715, match line 716, and low match line 717 are held to logic low values. Bit line 712 and inverted bit line 713 are pre-charged to a value equal to one-half the Vcc voltage supply source (e.g., 1.65 Volts). Word lines 710-711 are held to logic high values, thereby turning on transistors 701-702. If non-volatile transistor 705 has a high threshold voltage, the logic high voltage stored at node NA pulls up on the voltage of bit line 712. However, if non-volatile transistor 705 has a low threshold voltage, the logic low voltage stored at node NA pulls down on the voltage of bit line 712. Therefore, the resultant voltage on bit line 712 changes in response to the threshold voltage of non-volatile transistor 705. Similarly, if non-volatile transistor 706 has a high threshold voltage, the logic high voltage stored at node NB pulls up on the voltage of inverted bit line 713. If non-volatile transistor 706 has a low threshold voltage, the logic low voltage stored at node NB pulls down on the voltage of inverted bit line 713. Therefore, the resultant voltage on inverted bit line 713 changes in response to the threshold voltage of non-volatile transistor 706. If bit line 712 is pulled up and inverted bit line 713 is pulled down, then CAM cell 700 stores a logic high value. If bit line 712 is pulled down and inverted bit line 713 is pulled up, then CAM cell 700 stores a logic low value. If both bit line 712 and inverted bit line 713 are pulled up, then CAM cell 700 stores a don't care logic value.
A compare operation for CAM cell 700 is performed as follows. Word lines 710-711, bit line 312, and inverted bit line 713 are held to logic high values. As a result, logic high values are applied to the gates of non-volatile transistors 705-706 through turned on transistors 701-702, respectively. Under these conditions, a non-volatile transistor having a low threshold voltage turns on and a non-volatile transistor having a high threshold voltage remains off. Match line 716 is pre-charged to a logic high value. Low match line 717 is held to a logic low value. Data to be compared is provided on data line 714 and inverted data line 715.
If CAM cell 700 stores a logic low value, then non-volatile transistor 705 has a low threshold voltage and non-volatile transistor 706 has a high threshold voltage. If a logic high value is compared to CAM cell 700, then a no-match condition exists. As a result, the logic low value applied to inverted data line 715 turns off transistor 704 and the logic high value applied to data line 714 turns on transistor 703, thereby coupling match line 716 to low match line 717 through turned on non-volatile transistor 705. Under these circumstances, match line 716 will be pulled down to a logic low value, thereby indicating the no-match condition. Conversely, if a logic low value is compared to CAM cell 700, then a match condition exists. As a result, the logic low value applied to data line 714 turns off transistor 703, thereby de-coupling low match line 717 from the drain of non-volatile transistor 705 and the logic high value applied to inverted data line 715 turns on transistor 704, thereby coupling low match line 717 to the drain of turned-off non-volatile transistor 706. Under these circumstances, match line 716 will remain at a logic high value, thereby indicating the match condition.
If CAM cell 700 stores a logic high value, then non-volatile transistor 705 has a high threshold voltage and non-volatile transistor 706 has a low threshold voltage. If a logic low value is compared to CAM cell 700, then a no-match condition exists. As a result, the logic low value applied to data line 714 turns off transistor 703 and the logic high value applied to inverted data line 715 turns on transistor 704, thereby coupling match line 716 to low match line 717 through turned on non-volatile transistor 706. Under these circumstances, match line 716 will be pulled down to a logic low value, thereby indicating the no-match condition. Conversely, if a logic high value is compared to CAM cell 700, then a match condition exists. As a result, the logic low value applied to inverted data line 715 turns off transistor 704, thereby de-coupling low match line 717 from the drain of non-volatile transistor 706 and the logic high value applied to data line 714 turns on transistor 703, thereby coupling low match line 717 to the drain of turned-off non-volatile transistor 705. Under these circumstances, match line 716 will remain at a logic high value, thereby indicating the match condition.
If CAM cell 700 stores a “don't care” value, then non-volatile transistors 705-706 have high threshold voltages. Therefore, non-volatile transistors 705-706 are turned off, thereby de-coupling match line 716 from low match line 717. As a result, match line 716 remains unchanged at a logic high value. Thus, when CAM cell 700 stores a “don't care” value, CAM cell 700 does not affect the charge on match line 716.
Similar to CAM cell 500A, CAM cell 700 may be modified according to the structural variations described with reference to FIGS. 5B through 5F, along with combinations thereof, without altering the novel aspects of the present invention.
Fourth Embodiment: 4T Volatile CAM Cell
FIG. 8 is a schematic diagram of a novel ternary CAM cell 800 in accordance with another embodiment of the present invention. Ternary CAM cell 800 includes n-channel transistors 801-804 and capacitors 805-806. Transistor 801 has a drain coupled through node NA to a gate of transistor 803. Capacitor 805 has a first plate coupled to node NA. Transistor 802 has a drain coupled through node NB to a gate of transistor 804. Capacitor 806 has a first plate coupled to node NB. Word lines 810-811 are coupled to the gates of transistors 801-802, respectively. A bit line 812 is coupled to a source of transistor 801 and an inverted bit line 813 is coupled to a source of transistor 802. A data line 815 is coupled to a second plate of capacitor 806 and an inverted data line 814 is coupled to a second plate of capacitor 805. A match line 816 is commonly coupled to the sources of transistors 803-804. A low match line is commonly coupled to the drains of transistors 803-804.
The operation of ternary CAM cell 800 will now be described. During normal operation, CAM cell 800 is placed in various conditions, including standby, write, read, and compare. During a standby condition, word lines 810-811 are held to logic low values, thereby turning off transistors 801-802. Bit line 812, inverted bit line 813, data line 815, inverted data line 814, and match line 816 can have any value, but are preferentially held to their last logic values. Low match line 817 is held to the same logic value as match line 816.
A write operation for CAM cell 800 is performed as follows. Word lines 810-811 are held to logic high values, thereby turning on transistors 801-802, respectively. Data line 815 and inverted data line 814 are held to logic high values while match line 816 and low match line 817 are held to logic low values. The data to be written to CAM cell 800 are provided on bit line 812 and inverted bit line 813. Data is maintained in CAM cell 800 at dynamic storage nodes NA and NB by the relative capacitance between capacitors 801-802 and the gate capacitance of transistors 803-804, respectively. CAM cell 800 stores one of three values: a logic low value, a logic high value, and a “don't care” value. To store a logic low value is CAM cell 800, a logic low value is applied to bit line 812, and a logic high value is applied to inverted bit line 813. The logic high value of word line 810 turns on transistor 801, thereby applying the logic low value of bit line 812 at node NA. The logic high value of word line 811 turns on transistor 802, thereby applying the logic high value of inverted bit line 813 at node NB. As a result, node NA stores a logic low value (e.g., 0 Volts) and node NB stores a logic high value (e.g., 3.3 Volts).
To store a logic high value in CAM cell 800, a logic high value is applied to bit line 812, and a logic low value is applied to inverted bit line 813. The logic high value of word line 810 turns on transistor 801, thereby applying the logic high value of bit line 812 at node NA. The logic high value of word line 811 turns on transistor 802, thereby applying the logic low value of inverted bit line 813 at node NB. As a result, node NA stores a logic high value (e.g., 3.3 Volts) and node NB stores a logic low value (e.g., 0 Volts).
To store a “don't care” logic value in CAM cell 800, logic low values are applied to bit line 812 and inverted bit line 813. The logic high value of word line 810 turns on transistor 801, thereby applying the logic low value of bit line 812 at node NA. The logic high value of word line 811 turns on transistor 802, thereby applying the logic low value of inverted bit line 813 at node NB. As a result, both node NA and node NB store logic low values (e.g., 0 Volts).
A read operation for CAM cell 800 is performed as follows. Word lines 810-811 are held to logic high values, thereby turning on transistors 801-802. Bit line 612 and inverted bit line 613 are pre-charged to a voltage approximately equal to half the Vcc supply voltage (e.g., 1.65 Volts). Data line 815 and inverted data line 814 are held to logic high values, while match line 816 and low match line 817 are held to logic low values.
The logic high value of word line 810 turns on transistor 801, thereby coupling the voltage stored at node NA to bit line 812. As a result, if node NA stores a logic low value (e.g., 0 Volts), then the voltage on bit line 812 is pulled down slightly. If node NA stores a logic high value (e.g., 3.3 Volts), then the voltage on bit line 812 is pulled up slightly. (Note that the amount of change on bit line 812 is proportional to the ratio of the capacitance of bit line 812 to the total capacitance of bit line 812 and capacitor 805). Similarly, the logic high value of word line 811 turns on transistor 802, thereby coupling the voltage stored at node NB to inverted bit line 813. As a result, if node NB stores a logic low value (e.g., 0 Volts), then the logic value of inverted bit line 813 is pulled down slightly. If node NB stores a logic high value (e.g., 3.3 Volts), then the voltage on inverted bit line 813 is pulled up slightly. (Similarly, note that the amount of change on inverted bit line 813 is proportional to the ratio of the capacitance of inverted bit line 813 to the total capacitance of inverted bit line 813 and capacitor 806). Therefore, if CAM cell 800 stores a logic low value, a read operation causes bit line 812 to have a voltage of less than half of the Vcc supply voltage and inverted bit line 613 to have a voltage of more than half of the Vcc supply voltage. If CAM cell 800 stores a logic high value, a read operation causes bit line 812 to have a voltage of more than half of the Vcc supply voltage and inverted bit line 613 to have a voltage of less than half of the Vcc supply voltage. If CAM cell 800 stores a “don't care” value, a read operation causes both bit line 812 and inverted bit line 813 to have a voltage of less than half of the Vcc supply voltage. The voltage change on bit line 812 and inverted bit line 813 is sensed to determine the value stored by CAM cell 800.
A compare operation for CAM cell 800 is performed as follows. Match line 816 is pre-charged to a logic high value. Low match line 817 is held to a logic low value. Word lines 810-811 are held to logic low values, thereby turning off transistors 801-802. Bit line 812 and inverted bit line 813 can have any value, but are preferentially held to their previous logic values. Data to be compared is provided on data line 815 and inverted data line 814. These applied comparison data affect the voltage stored at nodes NA and NB in proportion to the capacitive coupling between capacitor 805 and transistor 803 and between capacitor 806 and transistor 804, respectively. In other words, the compare operation changes the voltage stored at node NA in proportion to the voltage applied to capacitor 805 (i.e., the inverted comparison data D#) and the ratio of the capacitance of capacitor 805 and the total capacitance of capacitor 805 and transistor 803. Similarly, the compare operation changes the voltage stored at node NB in proportion to the voltage applied to capacitor 806 (i.e., the comparison data D) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804. As a result, a logic high value applied to inverted data line 814 maintains the voltage stored at node NA, while a logic low value applied to inverted data line 814 reduces the voltage stored at node NA. Similarly, a logic high value applied to data line 815 maintains the voltage stored at node NB, while a logic low value applied to data line 815 reduces the voltage stored at node NB.
If CAM cell 800 stores a logic high value and a logic low value is compared to CAM cell 800, a no-match condition occurs. Specifically, the logic low value (e.g., 0 Volts) applied to data line 815 reduces the voltage stored at node NB (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9:(9+1=10)). As the voltage at node NB is already at 0 Volts and therefore below the threshold voltage of transistor 804, any reduction in the voltage at node NB maintains transistor 804 in an off state, thereby de-coupling match line 816 from low match line 817. The logic high value (i.e., 3.3 Volts) applied to inverted data line 814 reduces the voltage stored at node NA (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10). Because there is no change in the voltage on inverted data line 814, the voltage at node NA does not change, thereby remaining at a logic high value. The logic high value at node NA, which is greater than the threshold voltage of transistor 803, turns on transistor 803, thereby coupling match line 816 to low match line 817. As a result, match line 816 is pulled down to a logic low value, thereby indicating a no-match condition. If CAM cell 800 stores a logic high value and a logic high value is compared to CAM cell 800, a match condition occurs. Specifically, the logic high value (e.g., 3.3 Volts) applied to data line 815 reduces the voltage stored at node NB (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9:10). Both because there is no change in voltage applied to bit line 815 and because the voltage at node NB is already at 0 Volts and therefore below the threshold voltage of transistor 804, the voltage at node NB maintains transistor 804 in an off state, thereby de-coupling match line 816 from low match line 817. The logic low value (i.e., 0 Volts) applied to inverted data line 814 reduces the voltage stored at node NA (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10). Thus, the voltage stored at node NA during a write operation (i.e., 3.3 Volts) less the capacitive coupling effect, which is determined by calculating the change in voltage (i.e., 3.3 Volts−0 Volts=3.3 Volts) applied to the inverted data line 814 multiplied by the capacitance ratio (i.e., 9/10), determines the new voltage stored at node NA (i.e., 3.3 Volts−(3.3 Volts)*(9/10)=0.33 Volts). The new voltage stored at node NA, which is less than the threshold voltage of transistor 803, is insufficient to turn on transistor 803, thereby de-coupling match line 816 to low match line 817. As a result, match line 816 remains at a logic high value, thereby indicating a match condition.
If CAM cell 800 stores a logic low value and a logic high value is compared to CAM cell 800, a no-match condition occurs. Specifically, the logic low value (i.e., 0 Volts) applied to inverted data line 814 reduces the voltage stored at node NA (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10). Because the voltage at node NA is already at 0 Volts, and therefore less than the threshold voltage of transistor 803, transistor 803 remains turned off. As a result, match line 816 is de-coupled from low match line 817 through transistor 803. The logic low value (e.g., 3.3 Volts) applied to data line 815 reduces the voltage stored at node NB (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9:10). Because the change in applied voltage is 0 Volts, the voltage at node NB remains at 3.3 Volts, and therefore above the threshold voltage of transistor 804, thereby coupling match line 816 to low match line 817. The discharge of match line 816 indicates a no-match condition.
If CAM cell 800 stores a logic low value and a logic low value is compared to CAM cell 800, a match condition occurs. Specifically, the logic low value (e.g., 0 Volts) applied to data line 815 reduces the voltage stored at node NB (e.g., 3.3 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 0 Volts during a compare operation) and the ratio of the capacitance of capacitor 806 to the total capacitance of capacitor 806 and transistor 804 (e.g., 9:10). Thus, the voltage stored at node NB during a write operation (i.e., 3.3 Volts) less the capacitive coupling effect, which is determined by calculating the change in voltage (i.e., 3.3 Volts−0 Volts=3.3 Volts) applied to the inverted data line 814 multiplied by the capacitance ratio (i.e., 9/10), determines the new voltage stored at node NB (i.e., 3.3 Volts−(3.3 Volts)*(9/10) =0.33 Volts). The new voltage stored at node NB, which is less than the threshold voltage of transistor 804, is insufficient to turn on transistor 804, thereby de-coupling match line 816 from low match line 817. The logic high value (i.e., 3.3 Volts) applied to inverted data line 814 reduces the voltage stored at node NA (e.g., 0 Volts) in proportion to the change in applied voltage (from 3.3 Volts during standby, write, or read operations to 3.3 Volts during a compare operation) and the ratio of the capacitance of capacitor 805 to the total capacitance of capacitor 805 and transistor 803 (e.g., 9:10). Because the voltage at node NA is already at 0 Volts, and therefore less than the threshold voltage of transistor 803, transistor 803 remains turned off. As a result, match line 816 remains at a logic high value, thereby indicating a match condition.
Similarly, if a “don't care” logic value is stored in CAM cell, a match condition occurs for all applied compare data. Both node NA and node NB store logic low values, thereby turning off transistors 803 and 804. The capacitive coupling effect maintains nodes NA and NB at voltages below the threshold voltages of transistors 803-804, respectively. As a result, match line 816 remains de-coupled from low match line 817 and therefore at a logic high value.
Similar to CAM cell 500A, CAM cell 800 may be modified according to the structural variations described with reference to FIGS. 5B through 5F, along with combinations thereof, without altering the novel aspects of the present invention.
Although the invention has been described in connection with a number of described embodiments, it is understood that this invention is not limited to the embodiments disclosed, but is capable of various modifications which would be apparent to a person skilled in the art. For example, capacitors may be added to the embodiment of FIG. 700 to aid in data storage. Thus, the invention is limited only by the following claims.

Claims (59)

1. A content-addressable memory (CAM) array comprising:
a bit line;
a word line;
a match line;
a discharge line;
a content-addressable memory (CAM) cell including:
means coupled to the bit line and the word line for storing a first data value during a set-up phase, and
a comparison circuit coupled between the match line and the discharge line for comparing the stored value received from the storage circuit with an applied data value and for connecting the match line to the discharge line if the stored value is different from the data value; and
a control circuit coupled to the discharge line for applying a first voltage to the discharge line during the set-up phase, and for applying a second voltage to the discharge line during the comparison phase.
2. An integrated circuit including a bit line, a word line, a match line, a discharge line, and a content-addressable memory (CAM) cell, the CAM cell comprising:
a first volatile transistor having a first terminal coupled to the bit line, a second terminal, and a gate terminal coupled to the word line;
a second volatile transistor having a first terminal coupled to receive a data signal, a second terminal, and a gate terminal coupled to the second terminal of the first volatile transistor; and
a third volatile transistor having a first terminal coupled to the match line, a second terminal coupled to the discharge line, and a gate terminal coupled to the second terminal of the second volatile transistor;
wherein the third volatile transistor is turned on to shunt the match line to the discharge line when the bit line, the word line, and the data signal received by the second volatile transistor are high during a predetermined time period.
3. A ternary content addressable memory (CAM) cell comprising:
a first storage element;
a second storage element;
a first access transistor having a first terminal coupled to the first storage element, a second terminal, and a gate terminal;
a first word line coupled to the gate terminal of the first access transistor;
a first bit line coupled to the second terminal of the first access transistor;
a second access transistor having a first terminal coupled to the second storage element, a second terminal, and a gate terminal;
a second word line coupled to the gate terminal of the second access transistor;
a second bit line coupled to the second terminal of the second access transistor;
a first comparison transistor having a gate terminal coupled to the first storage element, a first terminal and a second terminal;
a first data line coupled to the first terminal of the first comparison transistor;
a second comparison transistor having a gate terminal coupled to the second storage element, a first terminal and a second terminal;
a second data line coupled to the first terminal of the second comparison transistor;
a third comparison transistor having a gate terminal coupled to the second terminal of the first comparison transistor and coupled to the second terminal of the second comparison transistor, a first terminal and a second terminal;
a match line coupled to the first terminal of the third comparison transistor; and
a low match line coupled to the second terminal of the third comparison transistor.
4. The ternary CAM cell of claim 3, wherein the first storage element comprises a wire.
5. The ternary CAM cell of claim 3, wherein the first storage element comprises a first capacitor.
6. The ternary CAM cell of claim 5, wherein the second storage element comprises a second capacitor.
7. The ternary CAM cell of claim 6, wherein a plate of the first capacitor is coupled to a plate of the second capacitor.
8. The ternary CAM cell of claim 6, wherein a first voltage source is coupled between the first capacitor and the second capacitor.
9. The ternary CAM cell of claim 3, wherein the first bit line is co-formed with the first data line and the second bit line is co-formed with the second data line.
10. The ternary CAM cell of claim 3, wherein the first word line is co-formed with the second word line.
11. The ternary CAM cell of claim 3, wherein the low match line comprises a voltage controlling circuit.
12. The ternary CAM cell of claim 3, wherein the low match line is coupled to a ground.
13. A ternary content addressable memory (CAM) cell comprising:
a first storage element;
a second storage element;
a first access transistor having a first terminal coupled to the first storage element, a second terminal, and a gate terminal;
a first word line coupled to the gate terminal of the first access transistor;
a first bit line coupled to the second terminal of the first access transistor;
a second access transistor having a first terminal coupled to the second storage element, a second terminal, and a gate terminal;
a second word line coupled to the gate terminal of the second access transistor;
a second bit line coupled to the second terminal of the second access transistor;
a first comparison transistor having a gate terminal coupled to the first storage element, a first terminal and a second terminal;
a second comparison transistor having a first terminal coupled to the first terminal of the first comparison transistor, a second terminal and a gate terminal;
a first data line coupled to the gate terminal of the second comparison transistor;
a third comparison transistor having a gate terminal coupled to the second storage element, a first terminal, and a second terminal;
a fourth comparison transistor having a first terminal coupled to a drain of the third comparison transistor, a second terminal, and a gate terminal;
a second data line coupled to the gate terminal of the fourth comparison transistor;
a match line coupled to the second terminal of the first comparison transistor and to the second terminal of the third comparison transistor; and
a low match line coupled to the second terminal of the second comparison transistor and to the second terminal of the fourth comparison transistor.
14. The ternary CAM cell of claim 13, wherein the first storage element comprises a wire.
15. The ternary CAM cell of claim 13, wherein the first storage element comprises a first capacitor.
16. The ternary CAM cell of claim 15, wherein the second storage element comprises a second capacitor.
17. The ternary CAM cell of claim 16, wherein a plate of the first capacitor is coupled to a plate of the second capacitor.
18. The ternary CAM cell of claim 16, wherein a first voltage source is coupled between the first capacitor and the second capacitor.
19. The ternary CAM cell of claim 13, wherein the first bit line is co-formed with the first data line, and the second bit line is co-formed with the second data line.
20. The ternary CAM cell of claim 13, wherein the first word line is co-formed with the second word line.
21. The ternary CAM cell of claim 13, wherein the low match line comprises a voltage controlling circuit.
22. The ternary CAM cell of claim 13, wherein the low match line is coupled to a ground.
23. A ternary content addressable memory (CAM) cell comprising:
a first non-volatile transistor having a first terminal, a second terminal, and a gate terminal;
a second non-volatile transistor having a first terminal, a second terminal, and a gate terminal;
a first access transistor having a first terminal coupled to a gate of the first non-volatile transistor, a second terminal, and a gate terminal;
a first word line coupled to the gate terminal of the first access transistor;
a first bit line coupled to the second terminal of the first access transistor;
a second access transistor having a first terminal coupled to the gate terminal of the second non-volatile transistor, a second terminal, and a gate terminal;
a second word line coupled to the gate terminal of the second access transistor;
a second bit line coupled to the second terminal of the second access transistor;
a first comparison transistor having a first terminal coupled to the first terminal of the first non-volatile transistor, a second terminal, and a gate terminal;
a first data line coupled to the gate terminal of the first comparison transistor;
a second comparison transistor having a first terminal coupled to the first terminal of the second non-volatile transistor, a second terminal, and a gate terminal;
a second data line coupled to the gate terminal of the second comparison transistor;
a match line coupled to the second terminal of the first non-volatile transistor and to the second terminal of the second non-volatile transistor; and
a low match line coupled to the second terminal of the first comparison transistor and to the second terminal of the second comparison transistor.
24. The ternary CAM cell of claim 23, wherein the first bit line is co-formed with the first data line and the second bit line is co-formed with the second data line.
25. The ternary CAM cell of claim 23, wherein the first word line is co-formed with the second word line.
26. The ternary CAM cell of claim 23, wherein the low match line comprises a voltage controlling circuit.
27. The ternary CAM cell of claim 23, wherein the low match line is coupled to a ground.
28. A ternary content addressable memory (CAM) cell comprising:
a first capacitor;
a second capacitor;
a first access transistor having a first terminal coupled to a first plate of the first capacitor, a second terminal, and a gate terminal;
a first word line coupled to the gate terminal of the first access transistor;
a first bit line coupled to the second terminal of the first access transistor;
a first data line coupled to a second plate of the first capacitor;
a second access transistor having a first terminal coupled to a first plate of the second capacitor, a second terminal, and a gate terminal;
a second word line coupled to the gate terminal of the second access transistor;
a second bit line coupled to the second terminal of the second access transistor;
a second data line coupled to a second plate of the second capacitor;
a first comparison transistor having a gate coupled to the first plate of the first capacitor;
a second comparison transistor having the gate terminal coupled to the second plate of the second capacitor;
a match line coupled to the first terminal of the first comparison transistor and to the first terminal of the second comparison transistor; and
a low match line coupled to the second terminal of the first comparison transistor and to the second terminal of the second comparison transistor.
29. A method of operating a CAM array including a match line, a low match line, a plurality of data lines, and a plurality of CAM cells arranged in a row, each CAM cell being connected to an associated data line and including a switch connected between the match line and the low match line, the switch being controlled by a first data value stored in said each CAM cell, the method comprising:
during a pre-charge operation, equalizing a voltage level on the low match line with a the voltage level on the match line, thereby preventing current flow between the low match line and the match line through the switch; and
during a subsequent operation, pulling down on the voltage level on the low match line to a logic low voltage level, thereby causing the match line to discharge to the low match line.
30. The method of claim 29, wherein the subsequent operation is a read operation.
31. The method of claim 29, wherein the subsequent operation is a compare operation.
32. The method of claim 29, wherein the subsequent operation is a write operation.
33. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line and low match line that are connected to a CAM cell to a logic high level; and
equalizing a potential of a data line and an inverted data line connected to the CAM cell by transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line while the match line and low match line are at a logic high level.
34. The method of claim 33, further comprising the step of:
comparing data on the data line and the inverted data line with data stored in the CAM cell in-sync with discharging the low match line from its precharged high level.
35. The method of claim 34, wherein said comparing step is preceded by the step of driving the data line high (or low) from the equalized potential and driving the inverted data line low (or high) from the equalized potential.
36. A method of operating a content addressable memory (CAM) cell having a comparison circuit therein that is electrically coupled to a data line, an inverted data line, a match line and a low match line, the method comprising the steps of:
storing a data value in the CAM cell during a write operation;
comparing an applied data value established across the data line and the inverted data line with the data value stored in the CAM cell during a compare operation; and
transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line during an operation that precedes or follows the compare operation.
37. The method of claim 36, wherein said comparing step is performed in response to discharging the low match line from a precharged high level.
38. The method of claim 36, wherein said transferring step comprises transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line while the match line and the low match line are being precharged to or held at a logic high level.
39. The method of claim 38, further comprising discharging the low match line from its logic high level during the compare operation.
40. The method of claim 39, wherein said comparing step is preceded by the step of driving the data line high (or low) and the inverted data line low (or high) to represent the applied data value.
41. The method of claim 36, wherein said comparing step is preceded by the step of driving the data line high (or low) and the inverted data line low (or high) to represent the applied data value.
42. A method of operating a content addressable memory (CAM) cell having a comparison circuit therein that is electrically coupled to a data line, an inverted data line, a match line and a low match line, the method comprising the steps of:
disabling the comparison circuit by precharging the match line to a first logic high level and precharging the low match line to a second logic high level less than Vcc during a precharge operation, where Vcc is a power supply voltage; and
enabling the comparison circuit by discharging the low match line from the second logic high level to a logic low level at a commencement of a compare operation.
43. The method of claim 42, wherein the first logic high level is less than Vcc.
44. The method of claim 43, wherein the first logic high level equals the second logic high level.
45. A content addressable memory (CAM) array, comprising:
a plurality of CAM cells;
a low match line electrically coupled to a respective comparison circuit in each of said plurality of CAM cells;
a match line electrically coupled to the respective comparison circuit in each of said plurality of CAM cells; and
a control circuit that is configured to precharge said match line to a first logic high level and precharge said low match line to a second logic high level that is less than Vcc during a precharge operation, where Vcc is a power supply voltage.
46. The CAM array of claim 45, wherein said control circuit is configured to pull-down the low match line from its precharged second logic high level upon commencement of a compare operation.
47. The CAM array of claim 45, wherein the first logic high level is less than Vcc.
48. The CAM array of claim 47, wherein the first logic high level equals the second logic high level.
49. A content addressable memory (CAM) array, comprising:
a row of CAM cells that is electrically coupled to a match line and a low match line and is configured to undergo an operation to compare an applied data word to a stored data word in said row of CAM cells in-sync with a high-to-low transition of the low match line from a logic high level that is less than Vcc to a logic low level, where Vcc is a power supply voltage.
50. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line that is connected to a CAM cell to a first logic high level and a low match line that is connected to the CAM cell to a second logic high level that is less than Vcc during a precharge operation, where Vcc is a power supply voltage;
equalizing a potential of a data line and an inverted data line connected to the CAM cell by transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line while the match line and low match line are precharged; and
driving a bit line and an inverted bit line that are connected to the CAM cell with write data during a write operation.
51. The method of claim 50, wherein the first logic high level is less than Vcc.
52. The method of claim 51, wherein the first logic high level equals the second logic high level.
53. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line segment that is connected to a CAM cell to a first logic high level during a precharge operation;
precharging a low match line segment that is connected to the CAM cell to a second logic high level having a maximum voltage less than Vcc during the precharge operation, where Vcc is a power supply voltage;
equalizing a potential of a data line and an inverted data line connected to the CAM cell by transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line while the match line segment and the low match line segment are precharged; and
comparing data on the data line and the inverted data line with data stored in the CAM cell in-sync with discharging the low match line segment from its precharged second logic high level to a logic low level.
54. The method of claim 53, wherein said comparing step is preceded by the step of driving the data line high (or low) from the equalized potential and driving the inverted data line low (or high) from the equalized potential.
55. A content addressable memory (CAM) array, comprising:
a row of CAM cells that is electrically coupled to a match line segment and a low match line segment and is configured to undergo an operation to compare an applied data word to a data word stored in said row of CAM cells in-sync with a high-to-low transition of the low match line segment from a precharged logic high level, which has a maximum voltage less than Vcc, to a logic low level, where Vcc is a power supply voltage.
56. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line segment that is connected to a CAM cell to a first logic high level and a low match line segment that is connected to the CAM cell to a second logic high level having a maximum voltage less than Vcc during a precharge operation, where Vcc is a power supply voltage; and
comparing data applied to the CAM cell to data stored in the CAM cell in-sync with discharging the low match line segment from the second logic high level to a logic low level.
57. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line segment that is connected to a CAM cell during a precharge operation;
precharging a low match line segment that is connected to the CAM cell to a first logic high level having a maximum voltage that is less than Vcc during the precharge operation, where Vcc is a power supply voltage;
equalizing a potential of a data line and an inverted data line connected to the CAM cell by transferring charge from a more positively biased one of the data line and the inverted data line to a less positively biased one of the data line and the inverted data line while the match line segment and the low match line segment are precharged;
driving the data line and inverted data line with data by pulling up the data line to a second logic high level that exceeds the maximum voltage and pulling down the inverted data line to a logic low level, while the match line segment and the low match line segment are precharged; and
comparing the data on the data line and the inverted data line with data stored in the CAM cell in-sync with discharging the low match line segment from its precharged first logic high level to a logic low level.
58. A content addressable memory (CAM) array, comprising:
a row of CAM cells that is electrically coupled to a match line segment, a low match line segment and a plurality of pairs of differential data lines, said row configured to perform a compare operation between a search word applied to the plurality of pairs of differential data lines and data stored in said row in-sync with a high-to-low transition of the low match line segment from a precharged logic high level, which has a maximum voltage that is less than a maximum voltage on the plurality of pairs of differential data lines during the compare operation, to a logic low level.
59. A method of operating a content addressable memory (CAM) array, comprising the step of:
precharging a match line segment that is connected to a CAM cell to a first logic high level during a precharge operation;
precharging a low match line segment that is connected to the CAM cell to a second logic high level having a maximum voltage that is less than Vcc during the precharge operation, where Vcc is a power supply voltage;
driving a data line and an inverted data line that are connected to the CAM cell with data by pulling up the data line to a logic high level that exceeds the maximum voltage and pulling down the inverted data line to a logic low level, while the match line segment and the low match line segment are precharged; and
comparing data applied to the CAM cell with data stored in the CAM cell in-sync with discharging the low match line segment from the second logic high level to a logic low level.
US10/106,420 2000-05-18 2002-03-26 CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same Expired - Fee Related USRE41351E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/106,420 USRE41351E1 (en) 2000-05-18 2002-03-26 CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/574,747 US6262907B1 (en) 2000-05-18 2000-05-18 Ternary CAM array
US10/106,420 USRE41351E1 (en) 2000-05-18 2002-03-26 CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/574,747 Reissue US6262907B1 (en) 2000-05-18 2000-05-18 Ternary CAM array

Publications (1)

Publication Number Publication Date
USRE41351E1 true USRE41351E1 (en) 2010-05-25

Family

ID=24297462

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/574,747 Ceased US6262907B1 (en) 2000-05-18 2000-05-18 Ternary CAM array
US10/106,420 Expired - Fee Related USRE41351E1 (en) 2000-05-18 2002-03-26 CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/574,747 Ceased US6262907B1 (en) 2000-05-18 2000-05-18 Ternary CAM array

Country Status (1)

Country Link
US (2) US6262907B1 (en)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549042B2 (en) 2000-06-23 2003-04-15 Integrated Device Technology, Inc. Complementary data line driver circuits with conditional charge recycling capability that may be used in random access and content addressable memory devices and method of operating same
US6632686B1 (en) * 2000-09-29 2003-10-14 Intel Corporation Silicon on insulator device design having improved floating body effect
US6411538B1 (en) * 2000-11-28 2002-06-25 Silicon Access Networks Compact load-less static ternary CAM
US6373739B1 (en) * 2000-12-06 2002-04-16 Integrated Device Technology, Inc. Quad CAM cell with minimum cell size
US6496398B2 (en) * 2000-12-15 2002-12-17 International Business Machines Corporation Content addressable memory
US6496399B1 (en) * 2001-08-28 2002-12-17 Integrated Device Technology, Inc. Compact ternary content addressable memory cell
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US6657878B2 (en) 2002-02-27 2003-12-02 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having reliable column redundancy characteristics and methods of operating same
US6781857B1 (en) 2002-02-27 2004-08-24 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize multi-port CAM cells and control logic to support multiple overlapping search cycles that are asynchronously timed relative to each other
US6751110B2 (en) * 2002-03-08 2004-06-15 Micron Technology, Inc. Static content addressable memory cell
US6760242B1 (en) 2002-04-10 2004-07-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having speed adjustable match line signal repeaters therein
US7050317B1 (en) 2002-03-15 2006-05-23 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that support power saving longest prefix match operations and methods of operating same
US6839256B1 (en) 2002-03-15 2005-01-04 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having dedicated mask cell sub-arrays therein and methods of operating same
US6965519B1 (en) 2003-06-18 2005-11-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize dual-capture match line signal repeaters to achieve desired speed/power tradeoff and methods of operating same
US6879532B1 (en) 2002-04-10 2005-04-12 Integrated Device Technology, Inc. Content addressable and random access memory devices having high-speed sense amplifiers therein with low power consumption requirements
US6967856B1 (en) 2002-04-10 2005-11-22 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same
US6836419B2 (en) * 2002-08-23 2004-12-28 Micron Technology, Inc. Split word line ternary CAM architecture
GB2395196B (en) * 2002-11-14 2006-12-27 Univ Cardiff Microfluidic device and methods for construction and application
JP2004220677A (en) * 2003-01-14 2004-08-05 Renesas Technology Corp Memory device
US6900999B1 (en) 2003-06-30 2005-05-31 Integrated Device Technology, Inc. Ternary content addressable memory (TCAM) cells with small footprint size and efficient layout aspect ratio
JP2005032991A (en) * 2003-07-14 2005-02-03 Renesas Technology Corp Semiconductor device
US7126834B1 (en) * 2003-09-12 2006-10-24 Netlogic Microsystems, Inc. Sense amplifier architecture for content addressable memory device
US7173837B1 (en) 2003-09-26 2007-02-06 Netlogic Microsystems, Inc. Content addressable memory (CAM) cell bit line architecture
ES2238923B1 (en) * 2004-02-16 2006-11-01 Laboratorios Del Dr. Esteve, S.A. NEW SUBSTITUTED PIRAZOLINIC DERIVATIVES.
US7187571B1 (en) 2004-04-09 2007-03-06 Integrated Device Technology, Inc. Method and apparatus for CAM with reduced cross-coupling interference
US7120040B2 (en) * 2004-06-01 2006-10-10 Mosaid Technologies Incorporation Ternary CAM cell for reduced matchline capacitance
US7196921B2 (en) * 2004-07-19 2007-03-27 Silicon Storage Technology, Inc. High-speed and low-power differential non-volatile content addressable memory cell and array
US7499303B2 (en) * 2004-09-24 2009-03-03 Integrated Device Technology, Inc. Binary and ternary non-volatile CAM
US7233512B2 (en) * 2005-02-01 2007-06-19 Stmicroelectronics, Inc. Content addressable memory circuit with improved memory cell stability
US20060190679A1 (en) * 2005-02-18 2006-08-24 Albrecht Alan R Content addressable memory supporting multiple width searches
CN100529829C (en) * 2005-06-08 2009-08-19 鸿富锦精密工业(深圳)有限公司 Lens of digital camera
US7362602B1 (en) 2005-08-08 2008-04-22 Netlogic Microsystems, Inc. Sense amplifier circuit and method
US7729149B2 (en) * 2007-05-01 2010-06-01 Suvolta, Inc. Content addressable memory cell including a junction field effect transistor
US7633784B2 (en) * 2007-05-17 2009-12-15 Dsm Solutions, Inc. Junction field effect dynamic random access memory cell and content addressable memory cell
US7944724B2 (en) 2009-04-28 2011-05-17 Netlogic Microsystems, Inc. Ternary content addressable memory having reduced leakage effects
US20110051484A1 (en) * 2009-08-28 2011-03-03 International Business Machines Corporation Low active power content addressable memory
US7920397B1 (en) 2010-04-30 2011-04-05 Netlogic Microsystems, Inc. Memory device having bit line leakage compensation
US8582338B1 (en) 2010-08-31 2013-11-12 Netlogic Microsystems, Inc. Ternary content addressable memory cell having single transistor pull-down stack
US8625320B1 (en) 2010-08-31 2014-01-07 Netlogic Microsystems, Inc. Quaternary content addressable memory cell having one transistor pull-down stack
US8553441B1 (en) 2010-08-31 2013-10-08 Netlogic Microsystems, Inc. Ternary content addressable memory cell having two transistor pull-down stack
US8462532B1 (en) * 2010-08-31 2013-06-11 Netlogic Microsystems, Inc. Fast quaternary content addressable memory cell
JP5907524B2 (en) * 2011-02-25 2016-04-26 国立大学法人東北大学 Nonvolatile functional memory device
US8773880B2 (en) 2011-06-23 2014-07-08 Netlogic Microsystems, Inc. Content addressable memory array having virtual ground nodes
US8837188B1 (en) 2011-06-23 2014-09-16 Netlogic Microsystems, Inc. Content addressable memory row having virtual ground and charge sharing
US20230147770A1 (en) * 2020-04-17 2023-05-11 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device

Citations (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4397003A (en) 1980-06-02 1983-08-02 Mostek Corporation Dynamic random access memory
US4723224A (en) 1986-01-02 1988-02-02 Motorola, Inc. Content addressable memory having field masking
US4780845A (en) 1986-07-23 1988-10-25 Advanced Micro Devices, Inc. High density, dynamic, content-addressable memory cell
US5051949A (en) 1989-11-15 1991-09-24 Harris Corporation Content addressable memory device
US5051948A (en) 1988-02-23 1991-09-24 Mitsubishi Denki Kabushiki Kaisha Content addressable memory device
US5111427A (en) 1988-06-01 1992-05-05 Mitsubishi Denki Kabushiki Kaisha Nonvolatile content-addressable memory and operating method therefor
US5258946A (en) 1991-02-13 1993-11-02 At&T Bell Laboratories Content-addressable memory
US5319589A (en) 1992-04-17 1994-06-07 Mitsubishi Denki Kabushiki Kaisha Dynamic content addressable memory device and a method of operating thereof
US5406508A (en) 1992-09-30 1995-04-11 Kawasaki Steel Corporation Content addressable memory and method of use thereof
US5446685A (en) 1993-02-23 1995-08-29 Intergraph Corporation Pulsed ground circuit for CAM and PAL memories
US5515310A (en) 1992-08-03 1996-05-07 Advanced Hardware Architectures, Inc. Six transistor dynamic content addressable memory circuit
US5642320A (en) 1994-07-11 1997-06-24 Hyundai Electronics Industries Co., Ltd. Self-refreshable dual port dynamic CAM cell and dynamic CAM cell array refreshing circuit
US5852569A (en) 1997-05-20 1998-12-22 Quality Semiconductor, Inc. Content addressable memory multiple match detection circuit
US5949696A (en) 1997-06-30 1999-09-07 Cypress Semiconductor Corporation Differential dynamic content addressable memory and high speed network address filtering
US6044005A (en) 1999-02-03 2000-03-28 Sibercore Technologies Incorporated Content addressable memory storage device
US6125049A (en) 1999-01-05 2000-09-26 Netlogic Microsystems, Inc. Match line control circuit for content addressable memory
US6128207A (en) 1998-11-02 2000-10-03 Integrated Device Technology, Inc. Low-power content addressable memory cell
US6137707A (en) 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6148364A (en) 1997-12-30 2000-11-14 Netlogic Microsystems, Inc. Method and apparatus for cascading content addressable memory devices
US6154384A (en) 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US6157557A (en) 1998-02-26 2000-12-05 Korea Advanced Institute Of Science And Technology CAM cell and memory employing such, used for both field configurable RAM and PLA
US6166939A (en) 1999-07-12 2000-12-26 Net Logic Microsystems Method and apparatus for selective match line pre-charging in a content addressable memory
US6175513B1 (en) 1999-07-12 2001-01-16 Netlogic Microsystems Method and apparatus for detecting multiple matches in a content addressable memory
US6181591B1 (en) 1998-10-29 2001-01-30 International Business Machines Corporation High speed CAM cell
US6191970B1 (en) 1999-09-09 2001-02-20 Netlogic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6195278B1 (en) 1999-12-30 2001-02-27 Nortel Networks Limited Content addressable memory cells and words
US6199140B1 (en) 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6229742B1 (en) 1999-10-18 2001-05-08 Netlogic Microsystems, Inc. Spare address decoder
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6243281B1 (en) 2000-06-14 2001-06-05 Netlogic Microsystems, Inc. Method and apparatus for accessing a segment of CAM cells in an intra-row configurable CAM system
US6243280B1 (en) 1999-09-09 2001-06-05 Netlogic Microsystems, Inc. Selective match line pre-charging in a partitioned content addressable memory array
US6246601B1 (en) 2000-06-14 2001-06-12 Netlogic Microsystems, Inc. Method and apparatus for using an inter-row configurable content addressable memory
US6249467B1 (en) 1999-10-18 2001-06-19 Netlogic Microsystems, Inc Row redundancy in a content addressable memory
US6252789B1 (en) 2000-06-14 2001-06-26 Netlogic Microsystems, Inc. Inter-row configurability of content addressable memory
US6266262B1 (en) 1998-11-05 2001-07-24 Lara Technology, Inc. Enhanced binary content addressable memory for longest prefix address matching
US6288922B1 (en) 2000-08-11 2001-09-11 Silicon Access Networks, Inc. Structure and method of an encoded ternary content addressable memory (CAM) cell for low-power compare operation
US6317350B1 (en) 2000-06-16 2001-11-13 Netlogic Microsystems, Inc. Hierarchical depth cascading of content addressable memory devices
US6320777B1 (en) * 1999-03-31 2001-11-20 Mosaid Technologies Incorporated Dynamic content addressable memory cell
US6324087B1 (en) 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6373738B1 (en) 2000-11-20 2002-04-16 International Business Machines Corporation Low power CAM match line circuit
US6430073B1 (en) * 2000-12-06 2002-08-06 International Business Machines Corporation Dram CAM cell with hidden refresh

Patent Citations (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4397003A (en) 1980-06-02 1983-08-02 Mostek Corporation Dynamic random access memory
US4723224A (en) 1986-01-02 1988-02-02 Motorola, Inc. Content addressable memory having field masking
US4780845A (en) 1986-07-23 1988-10-25 Advanced Micro Devices, Inc. High density, dynamic, content-addressable memory cell
US5051948A (en) 1988-02-23 1991-09-24 Mitsubishi Denki Kabushiki Kaisha Content addressable memory device
US5111427A (en) 1988-06-01 1992-05-05 Mitsubishi Denki Kabushiki Kaisha Nonvolatile content-addressable memory and operating method therefor
US5051949A (en) 1989-11-15 1991-09-24 Harris Corporation Content addressable memory device
US5258946A (en) 1991-02-13 1993-11-02 At&T Bell Laboratories Content-addressable memory
US5319589A (en) 1992-04-17 1994-06-07 Mitsubishi Denki Kabushiki Kaisha Dynamic content addressable memory device and a method of operating thereof
US5515310A (en) 1992-08-03 1996-05-07 Advanced Hardware Architectures, Inc. Six transistor dynamic content addressable memory circuit
US5406508A (en) 1992-09-30 1995-04-11 Kawasaki Steel Corporation Content addressable memory and method of use thereof
US5446685A (en) 1993-02-23 1995-08-29 Intergraph Corporation Pulsed ground circuit for CAM and PAL memories
US5598115A (en) 1993-02-23 1997-01-28 Intergraph Corporation Comparator cell for use in a content addressable memory
US5642320A (en) 1994-07-11 1997-06-24 Hyundai Electronics Industries Co., Ltd. Self-refreshable dual port dynamic CAM cell and dynamic CAM cell array refreshing circuit
US5852569A (en) 1997-05-20 1998-12-22 Quality Semiconductor, Inc. Content addressable memory multiple match detection circuit
US5949696A (en) 1997-06-30 1999-09-07 Cypress Semiconductor Corporation Differential dynamic content addressable memory and high speed network address filtering
US6199140B1 (en) 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6148364A (en) 1997-12-30 2000-11-14 Netlogic Microsystems, Inc. Method and apparatus for cascading content addressable memory devices
US6157557A (en) 1998-02-26 2000-12-05 Korea Advanced Institute Of Science And Technology CAM cell and memory employing such, used for both field configurable RAM and PLA
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6181591B1 (en) 1998-10-29 2001-01-30 International Business Machines Corporation High speed CAM cell
US6128207A (en) 1998-11-02 2000-10-03 Integrated Device Technology, Inc. Low-power content addressable memory cell
US6266262B1 (en) 1998-11-05 2001-07-24 Lara Technology, Inc. Enhanced binary content addressable memory for longest prefix address matching
US6125049A (en) 1999-01-05 2000-09-26 Netlogic Microsystems, Inc. Match line control circuit for content addressable memory
US6147891A (en) 1999-01-05 2000-11-14 Netlogic Microsystems Match line control circuit for content addressable memory
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6044005A (en) 1999-02-03 2000-03-28 Sibercore Technologies Incorporated Content addressable memory storage device
US6137707A (en) 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6320777B1 (en) * 1999-03-31 2001-11-20 Mosaid Technologies Incorporated Dynamic content addressable memory cell
US6483733B2 (en) * 1999-03-31 2002-11-19 Mosaid Technologies Incorporated Dynamic content addressable memory cell
US6175513B1 (en) 1999-07-12 2001-01-16 Netlogic Microsystems Method and apparatus for detecting multiple matches in a content addressable memory
US6166939A (en) 1999-07-12 2000-12-26 Net Logic Microsystems Method and apparatus for selective match line pre-charging in a content addressable memory
US6243280B1 (en) 1999-09-09 2001-06-05 Netlogic Microsystems, Inc. Selective match line pre-charging in a partitioned content addressable memory array
US6191969B1 (en) 1999-09-09 2001-02-20 Net Logic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6191970B1 (en) 1999-09-09 2001-02-20 Netlogic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6229742B1 (en) 1999-10-18 2001-05-08 Netlogic Microsystems, Inc. Spare address decoder
US6275426B1 (en) 1999-10-18 2001-08-14 Netlogic Microsystems, Inc. Row redundancy for content addressable memory
US6249467B1 (en) 1999-10-18 2001-06-19 Netlogic Microsystems, Inc Row redundancy in a content addressable memory
US6154384A (en) 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US6195278B1 (en) 1999-12-30 2001-02-27 Nortel Networks Limited Content addressable memory cells and words
US6324087B1 (en) 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6252789B1 (en) 2000-06-14 2001-06-26 Netlogic Microsystems, Inc. Inter-row configurability of content addressable memory
US6246601B1 (en) 2000-06-14 2001-06-12 Netlogic Microsystems, Inc. Method and apparatus for using an inter-row configurable content addressable memory
US6243281B1 (en) 2000-06-14 2001-06-05 Netlogic Microsystems, Inc. Method and apparatus for accessing a segment of CAM cells in an intra-row configurable CAM system
US6317350B1 (en) 2000-06-16 2001-11-13 Netlogic Microsystems, Inc. Hierarchical depth cascading of content addressable memory devices
US6288922B1 (en) 2000-08-11 2001-09-11 Silicon Access Networks, Inc. Structure and method of an encoded ternary content addressable memory (CAM) cell for low-power compare operation
US6373738B1 (en) 2000-11-20 2002-04-16 International Business Machines Corporation Low power CAM match line circuit
US6430073B1 (en) * 2000-12-06 2002-08-06 International Business Machines Corporation Dram CAM cell with hidden refresh

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
U.S. Appl. No. 10/246,586, filed Sep. 18, 2002.

Also Published As

Publication number Publication date
US6262907B1 (en) 2001-07-17

Similar Documents

Publication Publication Date Title
USRE41351E1 (en) CAM arrays having CAM cells therein with match line and low match line connections and methods of operating same
US6256216B1 (en) Cam array with minimum cell size
USRE39227E1 (en) Content addressable memory (CAM) arrays and cells having low power requirements
US6421265B1 (en) DRAM-based CAM cell using 3T or 4T DRAM cells
US7154764B2 (en) Method of controlling a bit line for a content addressable memory
US6373739B1 (en) Quad CAM cell with minimum cell size
US6101116A (en) Six transistor content addressable memory cell
US20030161209A1 (en) Searchline control circuit and power reduction method
US6400594B2 (en) Content addressable memory with potentials of search bit line and/or match line set as intermediate potential between power source potential and ground potential
KR20010007403A (en) Static random access memory circuit
JPH06223572A (en) Dram structure
US6426905B1 (en) High speed DRAM local bit line sense amplifier
US7633784B2 (en) Junction field effect dynamic random access memory cell and content addressable memory cell
US6370052B1 (en) Method and structure of ternary CAM cell in logic process
US8724359B2 (en) Methods and circuits for limiting bit line leakage current in a content addressable memory (CAM) device
US5625588A (en) Single-ended sensing using global bit lines for DRAM
US7216284B2 (en) Content addressable memory having reduced power consumption
US20030156440A1 (en) Content addressable momory device having an operation mode setting means
US20030002317A1 (en) Ferroelectric memory and method for driving the same
US20080137387A1 (en) Low-power cam cell
US7173837B1 (en) Content addressable memory (CAM) cell bit line architecture
US6847566B1 (en) Method and circuit configuration for multiple charge recycling during refresh operations in a DRAM device
US5894444A (en) Cell plate referencing for dram sensing
US20040170077A1 (en) Semiconductor memory device
KR100206917B1 (en) Both direction global bitline sensing circuit of memory cell

Legal Events

Date Code Title Description
AS Assignment

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:NETLOGIC MICROSYSTEMS, INC.;NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED;NETLOGIC MICROSYSTEMS CAYMANS LIMITED;REEL/FRAME:022973/0710

Effective date: 20090717

Owner name: SILICON VALLEY BANK,CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:NETLOGIC MICROSYSTEMS, INC.;NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED;NETLOGIC MICROSYSTEMS CAYMANS LIMITED;REEL/FRAME:022973/0710

Effective date: 20090717

AS Assignment

Owner name: NETLOGIC MICROSYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEGRATED DEVICE TECHNOLOGY, INC.;REEL/FRAME:022995/0618

Effective date: 20090717

Owner name: NETLOGIC MICROSYSTEMS, INC.,CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEGRATED DEVICE TECHNOLOGY, INC.;REEL/FRAME:022995/0618

Effective date: 20090717

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: NETLOGIC MICROSYSTEMS CAYMANS LIMITED, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:026830/0141

Effective date: 20110826

Owner name: NETLOGIC MICROSYSTEMS INTERNATIONAL LIMITED, CALIF

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:026830/0141

Effective date: 20110826

Owner name: NETLOGIC MICROSYSTEMS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:026830/0141

Effective date: 20110826

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
AS Assignment

Owner name: NETLOGIC I LLC, DELAWARE

Free format text: CHANGE OF NAME;ASSIGNOR:NETLOGIC MICROSYSTEMS, INC.;REEL/FRAME:035443/0824

Effective date: 20130123

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NETLOGIC I LLC;REEL/FRAME:035443/0763

Effective date: 20150327

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

AS Assignment

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001

Effective date: 20170119