US20040032758A1 - Dual match-line, twin-cell, binary-ternary cam - Google Patents

Dual match-line, twin-cell, binary-ternary cam Download PDF

Info

Publication number
US20040032758A1
US20040032758A1 US10/064,770 US6477002A US2004032758A1 US 20040032758 A1 US20040032758 A1 US 20040032758A1 US 6477002 A US6477002 A US 6477002A US 2004032758 A1 US2004032758 A1 US 2004032758A1
Authority
US
United States
Prior art keywords
match
input
bits
cam
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.)
Granted
Application number
US10/064,770
Other versions
US6704216B1 (en
Inventor
Paul Cheng
Nelson Chow
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.)
Mosaid Technologies Inc
Original Assignee
Integrated Silicon Solution 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 Integrated Silicon Solution Inc filed Critical Integrated Silicon Solution Inc
Priority to US10/064,770 priority Critical patent/US6704216B1/en
Assigned to INTEGRATED SILICON SOLUTION, INC. reassignment INTEGRATED SILICON SOLUTION, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHENG, PAUL, CHOW, NELSON L.
Publication of US20040032758A1 publication Critical patent/US20040032758A1/en
Application granted granted Critical
Publication of US6704216B1 publication Critical patent/US6704216B1/en
Assigned to INTEGRATED SILICON SOLUTIONS, INC. reassignment INTEGRATED SILICON SOLUTIONS, INC. CHANGE OF ADDRESS Assignors: INTEGRATED SILICON SOLUTIONS, INC.
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTEGRATED SILICON SOLUTION, INC.
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED CHANGE OF ADDRESS OF ASSIGNEE Assignors: MOSAID TECHNOLOGIES INCORPORATED
Assigned to ROYAL BANK OF CANADA reassignment ROYAL BANK OF CANADA U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM Assignors: 658276 N.B. LTD., 658868 N.B. INC., MOSAID TECHNOLOGIES INCORPORATED
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MOSAID TECHNOLOGIES INCORPORATED
Assigned to CONVERSANT IP N.B. 868 INC., CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CONVERSANT IP N.B. 276 INC. reassignment CONVERSANT IP N.B. 868 INC. RELEASE OF SECURITY INTEREST Assignors: ROYAL BANK OF CANADA
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. CHANGE OF ADDRESS Assignors: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Assigned to CPPIB CREDIT INVESTMENTS INC., AS LENDER, ROYAL BANK OF CANADA, AS LENDER reassignment CPPIB CREDIT INVESTMENTS INC., AS LENDER U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Assignors: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS) Assignors: ROYAL BANK OF CANADA, AS LENDER
Adjusted 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
    • 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

Definitions

  • the present invention relates generally to static information storage and retrieval systems, and more particularly to associative memories, which are also referred to as content or tag memories.
  • an input word (the data-in word) consists of an ordered group of K bits which is compared bit-by-bit with a plurality of stored words in the CAM. If all of the bits of one of the stored words match those of the data-in word, the address of that stored word is output to the user. Sometimes more than one stored word matches the data-in word. In this case, usually only one address is output, based on a pre-specified priority criterion.
  • a CAM wherein stored words must be compared bit-by-bit without exception is called a binary CAM, and its memory cells have two logic states: a “0” state and a “1” state.
  • a CAM that allows stored words to have masked bits is called a ternary CAM.
  • the memory cell of a ternary CAM has three logic states: a “0” state, a “1” state, and a “DON'T CARE” state that returns an unconditional match.
  • FIG. 1 shows a typical stored word in a binary CAM. It consists of a row of SRAM cells having differential outputs DSk and DSkB (DSk bar) which are compared with corresponding differential data-in lines Dlk and DlkB through a comparator.
  • the pre-charge gate is then turned off, leaving the match line floating.
  • the data-in lines Dl and DlB are connected in the same fashion as in FIG. 1, forming an EXCLUSIVE OR logic function.
  • a match condition is guaranteed and the cell has no effect on the overall result.
  • the DSk and DSkB outputs of all odd numbered SRAM are the mirror images of the associated even numbered SRAM for easy layout.
  • a binary CAM cell As can be seen by comparing FIG. 1 and FIG. 2, the only difference between a binary CAM cell and a ternary CAM cell is that in a ternary cell a single comparator is shared by two SRAM cells. Most ternary CAM on the market today uses this configuration to save die area and to simplify component connection. Such CAM can still be used as a binary cell, but then the die area is not used efficiently, because two SRAM cells are being used to hold only one bit of data.
  • CAM memory
  • power consumption Another major concern regarding the efficient use of CAM is power consumption. As those skilled in the electronic arts well know, reducing power consumption is generally desirable in a circuit. However, in CAM it is an increasingly concern because CAM is often used in portable, battery operated devices and the consumption of power relates directly to how long such devices can be operated. Any reduction in CAM power consumption is therefore a highly desirable benefit.
  • FIG. 3 depicts a logical approach, based on industry trends, to achieving a binary-ternary CAM. It should be noted, however, that the present inventors do not know of any products actually using this approach. FIG. 3 is included here as a useful comparison to the present invention. Yet another manner of achieving binary-ternary CAM, and one which takes a much different approach, is described in U.S. Pat. No. 6,362,992.
  • a common feature of CAM is the use of a match line (ML). Only a few memory cells are shown in the examples, with all in a single row connected to only a single match line. In actual practice, there typically will be thousands of cells in each row and hundreds or thousands of such rows, each having a respective match line. Each such match line is pre-charged with a voltage and when a match condition occurs the match line discharges, nominally to ground.
  • ML match line
  • the pre-charge sub-circuit (e.g., MP 0 in FIG. 1) has to handle this, and will typically take up a relatively large amount of die space or “real estate.”
  • the row also necessarily operates at a particular clock rate, performing pre-charging, comparison, and match detection in each cycle. In this approach, the match line necessarily also runs at that clock frequency.
  • CAM in the form of binary CAM, ternary CAM, or configurable binary-ternary CAM, which consumes less power.
  • CAM which operates sub-circuits at low effective frequency, particularly including the match line sub-circuit.
  • Another object of the invention is to provide a CAM which provides substantial power savings.
  • one preferred embodiment of the present invention is a content addressable memory (CAM).
  • the CAM includes an input sub-circuit to present input data to multiple cell sub-circuits.
  • a further included match sub-circuit has a match-high line, a match-low line, and a pre-charge sub-circuit.
  • the pre-charge sub-circuit is able to connect the match-high line to a voltage source, to charge it, and also to connect the match-low line to a ground, to discharge it.
  • the cell sub-circuits each compare one bit of the input data with one bit of pre-stored storage data and determine whether pre-specified match criteria are met. If so, the cell sub-circuit connects the match-high line and match-low line, thereby signaling detection of a mismatch condition.
  • another preferred embodiment of the present invention is a content addressable memory (CAM) for binary mode comparison of input bits with storage bits.
  • the CAM includes an input sub-circuit to present the input bits to multiple cell sub-circuits.
  • a further included match sub-circuit has a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the cell sub-circuits in number.
  • the pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state.
  • Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal.
  • the cell sub-circuits each store one of the storage bits and generate a respective match signal based on the states of the input bit and its storage bit, thereby permitting the CAM to compare the input bits with the storage bits to detect a mismatch condition.
  • another preferred embodiment of the present invention is a content addressable memory (CAM) for ternary mode comparison of input bits with storage bits.
  • the CAM includes an input sub-circuit to present the input bits to multiple composite cells.
  • a further included match sub-circuit has a match circuit including a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the cell sub-circuits in number.
  • the pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state.
  • Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal.
  • the composite cells each store one of the storage bits and one of the mask bits as a ternary unit having three possible states: 1, 0, and X, wherein X represents masked.
  • the composite cells then each generate a respective match signal based on the states of the input bit and the ternary unit, thereby permitting the CAM to compare one of the input bits with one of the storage bits and one of the mask bits to detect a mismatch condition.
  • CAM content addressable memory
  • the CAM includes an input circuit suitable for presenting input bits from the data set to multiple composite cells.
  • a further included match circuit has a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the composite cells in number.
  • the pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state.
  • Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal.
  • each composite cell selectively operate in either the binary mode or the ternary mode.
  • each composite cell stores two storage bits, receives two input bits from the input circuit, and generates two match signals respectively based on the states of an input bit and a storage bit, thereby permitting the CAM to compare the data set with the storage bits in binary manner to detect a mismatch condition.
  • each composite cell stores one storage bit and one mask bit as a ternary unit having three possible states: 1, 0, and X, wherein X represents masked.
  • the composite cells each receive one input bit from the input circuit and generate a respective match signal based on the states of the input bit and the ternary unit, thereby also permitting the CAM to compare the data set with the storage bits and the mask bits in ternary manner to detect a mismatch condition.
  • An advantage of the present invention is that it provides a CAM that is configurable to operate in either binary mode or ternary mode while efficiently utilizing all memory cells.
  • Another advantage of the invention is that it provides substantial power savings in input data handling, by floating signals that do not need to be changed, and thereby not requiring reconditioning (charging or discharging) of those signals for later use.
  • Another advantage of the invention is that it halves the operation rate or frequency of key sub-circuits which handle and consume substantial power. This directly avoids direct adverse frequency related effects in the CAM, such as electromagnetic interference. Concurrently, this provides substantial further power savings in match detection, by reduced operation of large devices and capacitances, while still providing match detection capability during every clock cycle.
  • FIG. 1 (background art) is a schematic diagram showing a typical word in a conventional binary CAM
  • FIG. 2 (background art) is a schematic diagram showing a typical word in a conventional ternary CAM
  • FIG. 3 is a schematic diagram showing a word in a dual-function CAM, a binary-ternary CAM
  • FIG. 4 is schematic diagram showing a word in a binary-ternary CAM according to the present invention.
  • FIG. 5 is schematic diagram particularly showing one suitable match detection decoding circuit which may be used in the binary-ternary CAM
  • FIG. 6 is a timing diagram depicting signal relationships at various points in the circuit shown in FIG. 5;
  • FIG. 7 is a block diagram showing the binary-ternary CAM applied in the context of a larger CAM having rows.
  • FIG. 8 is a series of schematic diagrams showing examples of generally conventional binary and ternary cells improved by addition of a match detection scheme according to the present invention.
  • a preferred embodiment of the present invention is a dual-match line, twin-cell binary-ternary CAM. As illustrated in the various drawings herein, and particularly in the view of FIG. 4, embodiments of the invention are depicted by the general reference character 10 .
  • FIG. 3 One method to implement such a “dual function” CAM is shown in FIG. 3.
  • the layout of the CAM array here is identical to that of a binary CAM, so that it functions exactly like a binary CAM when required.
  • To use the array as a ternary CAM one may simply ground the unused differential lines and feed the input word through the central data-in lines with multiplexers, as shown. The result is then a ternary cell, which functions exactly the same as the case in FIG. 2.
  • the dual-function, twin-cell binary-ternary CAM (CAM 10 ) in this circuit consists of two identical sub-circuits: sub-circuit 12 and sub-circuit 14 , each of which stores a single bit of information in a SRAM cell 16 .
  • Circuitry for storing the bits of information in the SRAM cells 16 has been omitted here for clarity in presenting the salient points of the invention, but such circuitry may be entirely conventional in any case.
  • each SRAM cell 16 provides two states and the sub-circuits 12 , 14 behave as two independent binary CAM cells. By combining the sub-circuits 12 , 14 and properly encoding the four states provided by the two SRAM cells 16 , however, it is possible to store and detect the three states required by the ternary mode.
  • the SRAM cell 16 When the SRAM cell 16 is in the “1” state, the X node 20 is high and a third node 28 follows an input line 30 (D 1 B), and when the SRAM cell 16 is in the “0” state, the Y node 22 is high and the third node 28 follows an input line 32 (Dl 1 ). Together, the X node 20 and the input line 32 (DS 1 and DI 1 ) form an EXCLUSIVE OR logic function.
  • the third node 28 controls a first match gate 34 . Once this first match gate 34 is turned on, the potential of a match-high line 36 (MHL) and a match-low line 38 (MLL) equalize.
  • Each compare cycle consists of three phases: a data input phase, a compare phase, and a sampling phase.
  • the data input phase the CAM 10 is initialized to one of two possible states and data is input to it through the data-in sub-circuit 44 .
  • the two possible states are a charged-high state and a charged-low state.
  • the CAM 10 is in the charged-high state when a first pre-charge device 40 is turned on and a second pre-charge device 42 is turned off.
  • the match-high line 36 then goes high and the match-low line 38 floats.
  • the CAM 10 is in the charged-low state when the first pre-charge device 40 is turned off and the second pre-charge device 42 is turned on.
  • the match-high line 36 then floats and the match-low line 38 goes low.
  • a data bit is driven on the input lines 30 , 32 differentially (as DI 1 B and DI 1 ).
  • the input data should be stable and all of the match gates 34 for a given row of SRAM cells 16 should be turned either on or off.
  • the changing of the polarity of pre-charge signal marks the beginning of the second phase, the compare phase.
  • the first pre-charge device 40 and second pre-charge device 42 change from on to off, or from off to on, depending on their previous states. Since in a CAM array the SRAM cells 16 of an entire row are connected to the match-high line 36 and the match-low line 38 , it takes just one single non-matching cell unit, like sub-circuit 12 , to equalize the match-high line 36 to the match-low line 38 .
  • the match-high line 36 stays high only if all of the bits in the SRAM cells 16 match the bits appearing in the data-in sub-circuit 44 .
  • the match-high line 36 and match-low line 38 will be equalized, and both signals will stay either high or low, depending on the pre-charge condition. If no match gate 34 in a row is turned on, i.e., a match condition; the match-high line 36 will stay high and the match-low line 38 will stay low.
  • the third phase begins, the sample phase.
  • the rising edge of a clock signal (FIG. 5) marks the beginning of this phase.
  • a sense amplifier (FIG. 5) samples both of the match lines 36 , 38 . If they are the same a mismatch condition exists, and if the match-high line 36 is high and the match-low line 38 is low a match condition exists.
  • each compare cycle can also be viewed as having three phases: a data input phase, a compare phase, and a sampling phase.
  • the data input phase the CAM 10 is initialized to one of two possible states and data is input to the CAM through the data-in sub-circuit 44 .
  • a data bit drives the input line 32 and an input line 48 differentially (DI 1 B and DI 1 ) and the input line 30 and an input line 50 are driven to ground.
  • a “1” means a high voltage and “0” means a low voltage, as is customary in this art.
  • the input data should be stable and all of the match gates 34 , 52 for a given row should be either on or off.
  • the changing of the polarity of pre-charge signal marks the beginning of the second phase, the compare phase.
  • the pre-charge devices 40 , 42 change from on to off, or from off to on, depending on their previous states. Since the SRAM cells 16 of a whole row in a CAM array are connected to the match lines 36 , 38 , it takes only one single non-matching cell unit, like the sub-circuit 12 , to equalize the match lines 36 , 38 .
  • the match-high line 36 stays high only if all bits in the SRAM cells 16 match the bits appearing in the data-in sub-circuit 44 .
  • the match lines 36 , 38 will be equalized and both will stay either high or low. If no match gate 34 , 52 in a row is turned on, i.e., a match condition exists; the match-high line 36 will stay high and the match-low line 38 will stay low.
  • the third phase begins, the sample phase. This is also much the same as in the binary mode; the rising edge of the clock (FIG. 5) marks the beginning of this phase.
  • the sense amplifier (FIG. 5) samples both of the match lines 36 , 38 . If they are the same a mismatch condition exists, and if the match-high line 36 is high and the match-low line 38 is low a match condition exists.
  • FIG. 5 is a schematic diagram particularly showing one suitable decoding circuit 60 for match detection, which may be used in the CAM 10 , such as that depicted in FIG. 4. For simplicity only one CAM cell is shown, together with the decoding circuit 60 .
  • FIG. 6 is a timing diagram depicting signal relationships at various points in the circuit shown in FIG. 5.
  • a clock signal 62 is provided and a pre-charge signal 64 in the decoding circuit 60 is basically the clock signal 62 divided-by-two.
  • the pre-charge signal 64 in this embodiment follows the falling edge of the clock signal 62 and switches either low-to-high or high-to-low once every clock cycle.
  • data-in drives a DI line 66 (and its differentially related DIB line 68 in FIG. 5; e.g., signals on input lines 30 , 32 , 48 in FIG. 4), and stays valid throughout the whole clock cycle.
  • the levels of the match-high line 36 (MHL) and the match-low line 38 (MLL) are then sensed during the low time of each cycle of the clock signal 62 and latched by the rising edge of the next clock cycle.
  • a cell node 70 (e.g., the third node 28 or the fifth node 56 ) exhibits the EXCLUSIVE OR function of a DS node 72 (e.g., the X node 20 (DS in FIG. 5) and the DI line 66 (e.g., input lines 32 , 48 ).
  • a DS node 72 e.g., the X node 20 (DS in FIG. 5)
  • the DI line 66 e.g., input lines 32 , 48
  • DI DS
  • the cell node 70 is low and the match-high line 36 is cut off from the match-low line 38 .
  • the pre-charge signal 64 switches at half the rate of the clock signal 62 , the dynamic power consumed by large devices, like the pre-charge devices 40 , 42 , and large capacitances like the match-high line 36 and the match-low line 38 are all cut by half, as compared with the conventional method in which pre-charge and detection occur during every clock cycle.
  • this aspect of the inventive CAM 10 accordingly provides yet more substantial power savings.
  • the device 82 is preferably a PMOS type and is used to supply power during sensing, while the device 88 post-conditions (discharges) the AND node 96 after sensing. Care must be taken that the switching threshold of an inverter 98 lies within the switching window of the AND node 96 under all circuit conditions. As shown in FIG. 6, a resulting latched voltage 100 (VO) goes high when a match occurs.
  • Using a natural device for device 86 is a recommendation. However, say, in a case where such is not available, more conventional methods can also be considered, including using PMOS devices for pass-gates 90 , 94 .
  • the present CAM 10 can be configured, as desired, to function as a binary or ternary type CAM. And as has also been described, particularly with respect to FIG. 5- 6 , the CAM 10 provides substantial power savings in two particular regards. It should be appreciated, however, that the necessarily limited examples which can be presented in a discussion such as this cannot depict all possible details of all possible embodiments of the invention. For example, the examples used have employed SRAM type memory cells, but those skilled in the art will appreciate that the present invention has applicability with many other types of memory.
  • FIG. 7 is a block diagram showing the SRAM cells 16 of the CAM 10 extended in to the context of a larger CAM 102 having a plurality of rows 104 . Accordingly, it can be seen that the present invention can be applied in large CAM based memory schemes, as is increasingly common.
  • FIG. 8 is a series of schematic diagrams showing examples of generally conventional binary and ternary cells improved by addition of a match detection scheme according to the present invention. Internal details of binary CAM cells are shown in items (a) and (b), and internal details of ternary CAM cells are shown in items (c), (d) and (e).
  • the present CAM 10 is well suited for use in a wide variety of applications. Comparing FIG. 1 (background art) and FIG. 4 reveals that when used as binary CAM, the CAM 10 employs a different gate arrangement than is conventional. By employing three gates in association with each memory cell, power savings is achieved in two particular manners. Firstly, the lines (MHL, MLL) used for match detection are floated, so that the input data lines do not have to be grounded. Secondly, the lines (MHL, MLL) used for match detection are operated at half of the overall clock frequency. Comparing FIG. 2 (background art) and FIG. 4 similarly reveals that when used as ternary CAM, the CAM 10 also employs a non-conventional gate arrangement.
  • FIG. 3 depicts a logical approach to implementing a binary-ternary CAM.
  • the invention may employ only three gates per cell and be used as a binary-ternary CAM which additionally provides the noted power savings.
  • the inventive CAM 10 may be implemented as a binary CAM, a ternary CAM, or a selectively configurable binary-ternary CAM and it may provide substantial benefits in all of these roles.
  • the principals of the CAM 10 may be extended and used in larger schemes, such as the CAM 102 of FIG. 7 in which a number of cells are arranged into multiple rows, each having a common match sensing sub-circuit. Arrangement in columns or into sub arrays is likewise possible.
  • the CAM 10 may also be implemented in a wide range of conventional memory and logic types, using essentially conventional manufacturing processes. This, in turn, facilitates immediate application of the inventive CAM 10 in discrete integrated circuits and modules, or as a sub-part of larger assemblies such as Systems on a Chip (SoC).
  • SoC Systems on a Chip

Abstract

A content addressable memory (CAM)(10, 102) and method having a data-in sub-circuit (44), memory cells (16, 18), a match-high line (36), a match-low line (38), and pre-charge devices (40, 42). Input lines (30, 32, 48, 50) from the data-in sub-circuit (44) are not necessarily discharged to ground in every cycle of a clock signal (62) used by the memory cells (16, 18). Further, the pre-charge devices (40, 42) may be operated at one half of the rate of the clock signal (62). Yet further, the CAM (10, 102) may be selectively configured to operate in either binary or ternary mode.

Description

    BACKGROUND OF INVENTION
  • 1. Technical Field [0001]
  • The present invention relates generally to static information storage and retrieval systems, and more particularly to associative memories, which are also referred to as content or tag memories. [0002]
  • 2. Background Art [0003]
  • In a content addressable memory (CAM), an input word (the data-in word) consists of an ordered group of K bits which is compared bit-by-bit with a plurality of stored words in the CAM. If all of the bits of one of the stored words match those of the data-in word, the address of that stored word is output to the user. Sometimes more than one stored word matches the data-in word. In this case, usually only one address is output, based on a pre-specified priority criterion. [0004]
  • On the other hand, in many cases not all bits need to match when such comparisons are performed. Some bits in a stored word may then be masked out, and not compared with the corresponding bits in the data-in word. It is considered a legitimate match here if the stored word matches the data-in word for all but the masked bits. Technically, a masked bit always returns a match condition so that it does not affect the overall result. [0005]
  • A CAM wherein stored words must be compared bit-by-bit without exception is called a binary CAM, and its memory cells have two logic states: a “0” state and a “1” state. In contrast, a CAM that allows stored words to have masked bits is called a ternary CAM. The memory cell of a ternary CAM has three logic states: a “0” state, a “1” state, and a “DON'T CARE” state that returns an unconditional match. [0006]
  • FIG. 1 shows a typical stored word in a binary CAM. It consists of a row of SRAM cells having differential outputs DSk and DSkB (DSk bar) which are compared with corresponding differential data-in lines Dlk and DlkB through a comparator. The set of connections for the comparator logic, also commonly termed a logic comparison function, is equivalent to (DSk*DlkB)+(DSkB*Dlk)=DSk(+)Dlk, which is effectively an EXCLUSIVE OR function. At the beginning of each compare cycle a match line (ML) is pulled high by connection to a voltage source (V[0007] DD) via a pre-charge gate (MP0; typically a PMOS device), and all of the data lines Dlk and DlkB, where k=1 . . . K, are held low. The pre-charge gate is then turned off, leaving the match line floating. At the same time the Dlk data lines are driven by the input data. If DSk=Dlk then DSk (+)Dlk=0 and the cell k leaves the match line alone. This is a match condition.
  • On the other hand, if DSk≠Dlk then DSK(+)Dlk=1 and one of the series pairs of pass-gates (typically NMOS devices) will conduct and discharge the match line to ground. This is a non-match condition. Since it takes only one non-matched cell to discharge the match line to ground, a word is said to match with the data-in word if DSk=Dlk for all k=1 . . . K. That is if the match line stays high. Since all cells are counted in the compare here this is a binary CAM. The two states of the cell are: a “1” state with DSK=1 (high) and DSkB=0 (low); and a “0” state with DSK=0 and DSkB=1. [0008]
  • FIG. 2 shows a typical stored word in a ternary CAM. Since the memory cell of a ternary CAM needs three states, two SRAM cells sharing a comparator form a ternary cell. There are now three usable states: a “1” state, with DS[0009] 1=1 and DS2=0; a “0” state with DS1=0 and DS2=1; and a “DON'T CARE” state with DS1=DS2=0. The data-in lines Dl and DlB are connected in the same fashion as in FIG. 1, forming an EXCLUSIVE OR logic function. The pre-charged match line (ML) stays high if Dl1=1 and the cell is in the “1” state or Dl1=0 and the cell is in the “0” state. When the cell is in the “DON'T CARE” state, with both series pairs of pass-gates cut off and preventing the match line discharging to ground, a match condition is guaranteed and the cell has no effect on the overall result. Notice that the DSk and DSkB outputs of all odd numbered SRAM are the mirror images of the associated even numbered SRAM for easy layout.
  • As can be seen by comparing FIG. 1 and FIG. 2, the only difference between a binary CAM cell and a ternary CAM cell is that in a ternary cell a single comparator is shared by two SRAM cells. Most ternary CAM on the market today uses this configuration to save die area and to simplify component connection. Such CAM can still be used as a binary cell, but then the die area is not used efficiently, because two SRAM cells are being used to hold only one bit of data. [0010]
  • Another major concern regarding the efficient use of CAM is power consumption. As those skilled in the electronic arts well know, reducing power consumption is generally desirable in a circuit. However, in CAM it is an increasingly concern because CAM is often used in portable, battery operated devices and the consumption of power relates directly to how long such devices can be operated. Any reduction in CAM power consumption is therefore a highly desirable benefit. [0011]
  • FIG. 3 depicts a logical approach, based on industry trends, to achieving a binary-ternary CAM. It should be noted, however, that the present inventors do not know of any products actually using this approach. FIG. 3 is included here as a useful comparison to the present invention. Yet another manner of achieving binary-ternary CAM, and one which takes a much different approach, is described in U.S. Pat. No. 6,362,992. [0012]
  • As can also be seen by comparing FIG. 1-[0013] 3, a common feature of CAM (and many other parallel comparison circuits, for that matter) is the use of a match line (ML). Only a few memory cells are shown in the examples, with all in a single row connected to only a single match line. In actual practice, there typically will be thousands of cells in each row and hundreds or thousands of such rows, each having a respective match line. Each such match line is pre-charged with a voltage and when a match condition occurs the match line discharges, nominally to ground. Conceptually similar circuits can be constructed, but are not common, where the match line is pre-grounded and a match condition causes charging to some voltage level which is detected. Unfortunately, these approaches to match detection have a number of problems.
  • One can consider just one row. In view of the large number of cells present, it should be clear that the match line for such a row will have an appreciable capacitance. The pre-charge sub-circuit (e.g., MP[0014] 0 in FIG. 1) has to handle this, and will typically take up a relatively large amount of die space or “real estate.” The row also necessarily operates at a particular clock rate, performing pre-charging, comparison, and match detection in each cycle. In this approach, the match line necessarily also runs at that clock frequency. However, as those skilled in the electronic arts also accept as a maxim, it is generally desirable to reduce sub-circuit frequency wherever possible, while maintaining overall system frequency. Lower operating frequency typically correlates with reduced power consumption, component life, etc. Additionally, switching high power and reactive loads at high frequency is undesirable because of possible collateral effects due to electromagnetic radiation.
  • In summary, it is desirable to have a more flexible CAM, which can be efficiently applied as either binary or ternary CAM. It is also desirable to have CAM, in the form of binary CAM, ternary CAM, or configurable binary-ternary CAM, which consumes less power. And it is further desirable to have CAM which operates sub-circuits at low effective frequency, particularly including the match line sub-circuit. [0015]
  • DISCLOSURE OF INVENTION
  • Accordingly, it is an object of the present invention to provide a CAM which is configurable to operate in either binary mode or ternary mode, yet which is efficiently able to utilize all memory cells in either mode. [0016]
  • Another object of the invention is to provide a CAM which provides substantial power savings. [0017]
  • Briefly, one preferred embodiment of the present invention is a content addressable memory (CAM). The CAM includes an input sub-circuit to present input data to multiple cell sub-circuits. A further included match sub-circuit has a match-high line, a match-low line, and a pre-charge sub-circuit. The pre-charge sub-circuit is able to connect the match-high line to a voltage source, to charge it, and also to connect the match-low line to a ground, to discharge it. The cell sub-circuits each compare one bit of the input data with one bit of pre-stored storage data and determine whether pre-specified match criteria are met. If so, the cell sub-circuit connects the match-high line and match-low line, thereby signaling detection of a mismatch condition. [0018]
  • Briefly, another preferred embodiment of the present invention is a content addressable memory (CAM) for binary mode comparison of input bits with storage bits. The CAM includes an input sub-circuit to present the input bits to multiple cell sub-circuits. A further included match sub-circuit has a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the cell sub-circuits in number. The pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state. Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal. The cell sub-circuits each store one of the storage bits and generate a respective match signal based on the states of the input bit and its storage bit, thereby permitting the CAM to compare the input bits with the storage bits to detect a mismatch condition. [0019]
  • Briefly, another preferred embodiment of the present invention is a content addressable memory (CAM) for ternary mode comparison of input bits with storage bits. The CAM includes an input sub-circuit to present the input bits to multiple composite cells. A further included match sub-circuit has a match circuit including a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the cell sub-circuits in number. The pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state. Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal. The composite cells each store one of the storage bits and one of the mask bits as a ternary unit having three possible states: 1, 0, and X, wherein X represents masked. The composite cells then each generate a respective match signal based on the states of the input bit and the ternary unit, thereby permitting the CAM to compare one of the input bits with one of the storage bits and one of the mask bits to detect a mismatch condition. [0020]
  • And, briefly, another preferred embodiment of the present invention is a content addressable memory (CAM) for comparison of a data set in either binary mode or ternary mode. The CAM includes an input circuit suitable for presenting input bits from the data set to multiple composite cells. A further included match circuit has a match-high line, a match-low line, a pre-charge sub-circuit, and multiple match-gates, at least equaling the composite cells in number. The pre-charge sub-circuit is able to controllably bring the match-high line to a high state and the match-low line to a low state. Each match-gate is able to operationally connect the match-high line with the match-low line in response to a match signal. The composite cells selectively operate in either the binary mode or the ternary mode. In the binary mode, each composite cell stores two storage bits, receives two input bits from the input circuit, and generates two match signals respectively based on the states of an input bit and a storage bit, thereby permitting the CAM to compare the data set with the storage bits in binary manner to detect a mismatch condition. In the ternary mode, each composite cell stores one storage bit and one mask bit as a ternary unit having three possible states: 1, 0, and X, wherein X represents masked. The composite cells each receive one input bit from the input circuit and generate a respective match signal based on the states of the input bit and the ternary unit, thereby also permitting the CAM to compare the data set with the storage bits and the mask bits in ternary manner to detect a mismatch condition. [0021]
  • An advantage of the present invention is that it provides a CAM that is configurable to operate in either binary mode or ternary mode while efficiently utilizing all memory cells. [0022]
  • Another advantage of the invention is that it provides substantial power savings in input data handling, by floating signals that do not need to be changed, and thereby not requiring reconditioning (charging or discharging) of those signals for later use. [0023]
  • And another advantage of the invention is that it halves the operation rate or frequency of key sub-circuits which handle and consume substantial power. This directly avoids direct adverse frequency related effects in the CAM, such as electromagnetic interference. Concurrently, this provides substantial further power savings in match detection, by reduced operation of large devices and capacitances, while still providing match detection capability during every clock cycle.[0024]
  • These and other objects and advantages of the present invention will become clear to those skilled in the art in view of the description of the best presently known mode of carrying out the invention and the industrial applicability of the preferred embodiment as described herein and as illustrated in the several figures of the drawings. [0025]
  • BRIEF DESCRIPTION OF DRAWINGS
  • The purposes and advantages of the present invention will be apparent from the following detailed description in conjunction with the appended figures of drawings in which: [0026]
  • FIG. 1 (background art) is a schematic diagram showing a typical word in a conventional binary CAM; [0027]
  • FIG. 2 (background art) is a schematic diagram showing a typical word in a conventional ternary CAM; [0028]
  • FIG. 3 is a schematic diagram showing a word in a dual-function CAM, a binary-ternary CAM; [0029]
  • FIG. 4 is schematic diagram showing a word in a binary-ternary CAM according to the present invention; [0030]
  • FIG. 5 is schematic diagram particularly showing one suitable match detection decoding circuit which may be used in the binary-ternary CAM; [0031]
  • FIG. 6 is a timing diagram depicting signal relationships at various points in the circuit shown in FIG. 5; [0032]
  • FIG. 7 is a block diagram showing the binary-ternary CAM applied in the context of a larger CAM having rows; and [0033]
  • FIG. 8 is a series of schematic diagrams showing examples of generally conventional binary and ternary cells improved by addition of a match detection scheme according to the present invention.[0034]
  • In the various figures of the drawings, like references are used to denote like or similar elements or steps. [0035]
  • DETAILED DESCRIPTION BEST MODE FOR CARRYING OUT THE INVENTION
  • A preferred embodiment of the present invention is a dual-match line, twin-cell binary-ternary CAM. As illustrated in the various drawings herein, and particularly in the view of FIG. 4, embodiments of the invention are depicted by the [0036] general reference character 10.
  • In applications where both binary and ternary CAM is required on a single chip, it is important that both binary and ternary modes are supported in the most efficient manner. One method to implement such a “dual function” CAM is shown in FIG. 3. The layout of the CAM array here is identical to that of a binary CAM, so that it functions exactly like a binary CAM when required. To use the array as a ternary CAM, one may simply ground the unused differential lines and feed the input word through the central data-in lines with multiplexers, as shown. The result is then a ternary cell, which functions exactly the same as the case in FIG. 2. [0037]
  • It is thus apparent that such utilization of a twin-cell to perform binary/ternary dual functions can be accomplished as long as differential signals are available and the two SRAM cells used can be encoded into three states. The present invention uses such a concept, and at the same time saves dynamic power as is now described. [0038]
  • Consider the circuit shown in FIG. 4. The dual-function, twin-cell binary-ternary CAM (CAM [0039] 10) in this circuit consists of two identical sub-circuits: sub-circuit 12 and sub-circuit 14, each of which stores a single bit of information in a SRAM cell 16.
  • Circuitry for storing the bits of information in the [0040] SRAM cells 16 has been omitted here for clarity in presenting the salient points of the invention, but such circuitry may be entirely conventional in any case.
  • Collectively a pair of the sub-circuits [0041] 12, 14 form a composite cell 18. Internal details of one possible SRAM cell 16 are shown in insert A.
  • In binary mode, each [0042] SRAM cell 16 provides two states and the sub-circuits 12, 14 behave as two independent binary CAM cells. By combining the sub-circuits 12, 14 and properly encoding the four states provided by the two SRAM cells 16, however, it is possible to store and detect the three states required by the ternary mode.
  • Let us consider the binary mode first. Since the sub-circuits [0043] 12, 14 operate independently, it suffices to investigate only the sub-circuit 12. A cross-coupled pair inside the SRAM cell 16 defines two states: a “1” state with a X node 20 high (DS1=1) and a Y node 22 low (DS1B=0), and a “0” state with the X node 20 low (DS1=0) and the Y node 22 high (DS1B=1). Note that these nodes 20, 22 (DS1, DS1B here in binary mode) respectively control a first pass gate 24 and a second pass gate 26. When the SRAM cell 16 is in the “1” state, the X node 20 is high and a third node 28 follows an input line 30 (D1B), and when the SRAM cell 16 is in the “0” state, the Y node 22 is high and the third node 28 follows an input line 32 (Dl1). Together, the X node 20 and the input line 32 (DS1 and DI1) form an EXCLUSIVE OR logic function. The third node 28, in turn, controls a first match gate 34. Once this first match gate 34 is turned on, the potential of a match-high line 36 (MHL) and a match-low line 38 (MLL) equalize.
  • Each compare cycle consists of three phases: a data input phase, a compare phase, and a sampling phase. During the first phase, the data input phase, the [0044] CAM 10 is initialized to one of two possible states and data is input to it through the data-in sub-circuit 44. The two possible states are a charged-high state and a charged-low state. The CAM 10 is in the charged-high state when a first pre-charge device 40 is turned on and a second pre-charge device 42 is turned off. The match-high line 36 then goes high and the match-low line 38 floats. The CAM 10 is in the charged-low state when the first pre-charge device 40 is turned off and the second pre-charge device 42 is turned on. The match-high line 36 then floats and the match-low line 38 goes low.
  • Under control of the data-in sub-circuit [0045] 44 a data bit is driven on the input lines 30, 32 differentially (as DI1B and DI1). When the SRAM cell 16 is in the “1” state (DS1=1, DS1B=0) the first pass gate 24 is on and the third node 28 follows the input line 30 (DI1B). If the input line 32 is high (DI1=1), the input line 30 (DI1B) is low and the first match gate 34 is off. This is a match condition. Alternately, if the input line 32 is low (DI1=0) the input line 30 (DI1B=1) is high, so the third node 28 will go high and the first match gate 34 will turn on. This is a mismatch condition.
  • Similarly if the [0046] SRAM cell 16 is in the “0” state (DS1=0, DS1B=1), the second pass gate 26 is on and the third node 28 follows the input line 32 (DI1). The first match gate 34 is off and a match condition now occurs if the input line 32 is low (DI1=0). Whereas, the first match gate 34 is on and a mismatch condition occurs if the input line 32 is high (DI1=1).
  • At the end of the first phase, the input data should be stable and all of the [0047] match gates 34 for a given row of SRAM cells 16 should be turned either on or off. The changing of the polarity of pre-charge signal marks the beginning of the second phase, the compare phase. During this phase, the first pre-charge device 40 and second pre-charge device 42 change from on to off, or from off to on, depending on their previous states. Since in a CAM array the SRAM cells 16 of an entire row are connected to the match-high line 36 and the match-low line 38, it takes just one single non-matching cell unit, like sub-circuit 12, to equalize the match-high line 36 to the match-low line 38. On the other hand, the match-high line 36 stays high only if all of the bits in the SRAM cells 16 match the bits appearing in the data-in sub-circuit 44. In other words, if any match gate 34 is turned on in a given row, i.e., a mismatch condition; the match-high line 36 and match-low line 38 will be equalized, and both signals will stay either high or low, depending on the pre-charge condition. If no match gate 34 in a row is turned on, i.e., a match condition; the match-high line 36 will stay high and the match-low line 38 will stay low.
  • After both of the match lines [0048] 36, 38 settle down, the third phase begins, the sample phase. The rising edge of a clock signal (FIG. 5) marks the beginning of this phase. During this phase, a sense amplifier (FIG. 5) samples both of the match lines 36, 38. If they are the same a mismatch condition exists, and if the match-high line 36 is high and the match-low line 38 is low a match condition exists.
  • In ternary mode, each compare cycle can also be viewed as having three phases: a data input phase, a compare phase, and a sampling phase. During the first phase, the data input phase, the [0049] CAM 10 is initialized to one of two possible states and data is input to the CAM through the data-in sub-circuit 44. A data bit drives the input line 32 and an input line 48 differentially (DI1B and DI1) and the input line 30 and an input line 50 are driven to ground.
  • The [0050] SRAM cells 16 in the sub-circuits 12, 14 (CK1 and CK2) are combined such that the composite cell 18 forms three states: a “1” state where (DS1, DS2)=(1, 0); a “0” state where (DS1, DS2)=(0, 1); and a “DON'T CARE” state where (DS1, DS2)=(0, 0). The state (DS1, DS2)=(1, 1) is not allowed. In these expressions a “1” means a high voltage and “0” means a low voltage, as is customary in this art.
  • If the [0051] composite cell 18 is in the “1” state, the second pass gate 26 is on and a third pass gate 54 is off. If DI=1, the input line 32 (DI1B) will be low and the input line 48 (DI1) will be high. Both the third node 28 and a fifth node 56 are low, and both of the first match gate 34 and a second match gate 52 are off. This is a match condition. On the other hand, if DI=0, the input line 32 (DI1B) will be high and the input line 48 (DI1) will be low. The third node 28 will then follow the input line 32 (DI1B), turning on the first match gate 34. This is therefore a mismatch condition. Similar analysis will show the validity for the case of the “0” state. For the “DON'T CARE” state, since both the second pass gate 26 and the third pass gate 54 are off, the match gates 34, 52 are off. A match condition is therefore guaranteed. It follows that by appropriate multiplexing and by encoding the states of the composite cell 18, the two binary SRAM cells 16 behave like a single ternary cell.
  • At the end of the first phase, the input data should be stable and all of the [0052] match gates 34, 52 for a given row should be either on or off. The changing of the polarity of pre-charge signal marks the beginning of the second phase, the compare phase. During this phase, much the same as in the binary mode, the pre-charge devices 40, 42 change from on to off, or from off to on, depending on their previous states. Since the SRAM cells 16 of a whole row in a CAM array are connected to the match lines 36, 38, it takes only one single non-matching cell unit, like the sub-circuit 12, to equalize the match lines 36, 38. On the other hand, the match-high line 36 stays high only if all bits in the SRAM cells 16 match the bits appearing in the data-in sub-circuit 44. In other words, if any match gate 34, 52 is turned on in a given row, i.e., a mismatch condition exists; the match lines 36, 38 will be equalized and both will stay either high or low. If no match gate 34, 52 in a row is turned on, i.e., a match condition exists; the match-high line 36 will stay high and the match-low line 38 will stay low.
  • After both of the match lines [0053] 36, 38 settle down, the third phase begins, the sample phase. This is also much the same as in the binary mode; the rising edge of the clock (FIG. 5) marks the beginning of this phase. During this phase, the sense amplifier (FIG. 5) samples both of the match lines 36, 38. If they are the same a mismatch condition exists, and if the match-high line 36 is high and the match-low line 38 is low a match condition exists.
  • Since either of the match lines is floating during the data input phase, the data-in lines do not have to be connected to the ground. In the case an input data bit does not change from one compare cycle to the next no dynamic power is consumed by the data-in lines during the data input phase. Since there usually are many data-in lines that do not change, this aspect of the present [0054] inventive CAM 10 provides a substantial power savings.
  • FIG. 5 is a schematic diagram particularly showing one [0055] suitable decoding circuit 60 for match detection, which may be used in the CAM 10, such as that depicted in FIG. 4. For simplicity only one CAM cell is shown, together with the decoding circuit 60. FIG. 6 is a timing diagram depicting signal relationships at various points in the circuit shown in FIG. 5.
  • As shown in FIG. 6 a [0056] clock signal 62 is provided and a pre-charge signal 64 in the decoding circuit 60 is basically the clock signal 62 divided-by-two. Note that the pre-charge signal 64 in this embodiment follows the falling edge of the clock signal 62 and switches either low-to-high or high-to-low once every clock cycle. At the rising edge of the clock signal 62, data-in drives a DI line 66 (and its differentially related DIB line 68 in FIG. 5; e.g., signals on input lines 30, 32, 48 in FIG. 4), and stays valid throughout the whole clock cycle. The levels of the match-high line 36 (MHL) and the match-low line 38 (MLL) are then sensed during the low time of each cycle of the clock signal 62 and latched by the rising edge of the next clock cycle.
  • With reference also to FIG. 4, a cell node [0057] 70 (e.g., the third node 28 or the fifth node 56) exhibits the EXCLUSIVE OR function of a DS node 72 (e.g., the X node 20 (DS in FIG. 5) and the DI line 66 (e.g., input lines 32, 48). For simplicity it is assumed that the DS node 72 is low (DS=0) all of the time and that the DI line 66 switches. As shown in FIG. 6, whenever the DI line 66 and the DS node 72 are different (DI≠DS), the cell node 70 goes high and brings the match-high line 36 (MHL) and the match-low line 38 (MLL) together, so that (MHL, MLL)=(0, 0) or (1, 1) at the end of each cycle of the clock signal 62, depending on the level of the pre-charge signal 64 (1 or 0). This is the non-match condition.
  • On the other hand, if [0058] DI line 66 and the DS node 72 are the same (DI=DS), the cell node 70 is low and the match-high line 36 is cut off from the match-low line 38. Since the pre-charge signal 64 always switches once during each clock cycle, the match-high line 36 is charged high and the match-low line 38 is discharged low during the clock cycle and (MHL, MLL)=(1, 0) at the rising edge of the next clock cycle. This is therefore the match condition.
  • Since the [0059] pre-charge signal 64 switches at half the rate of the clock signal 62, the dynamic power consumed by large devices, like the pre-charge devices 40, 42, and large capacitances like the match-high line 36 and the match-low line 38 are all cut by half, as compared with the conventional method in which pre-charge and detection occur during every clock cycle. As power consumption in CAM is closely related to the pre-charge rate, this aspect of the inventive CAM 10 accordingly provides yet more substantial power savings.
  • As those skilled in the electronic arts are well aware, reducing the rate or frequency of operation of circuits, all or in part, provides a veritable cornucopia of benefits. For instance, lower speed components may be used and signal interference is reduced between components and the circuit environment, generally. Additionally, when both power savings and frequency reduction can be concurrently achieved, the benefit is often synergistically increased. [0060]
  • Next let us consider a [0061] sensing sub-circuit 80 consisting of devices 82, 84, 86, and 88. Notice that the match-low line 38 follows the DI line 66 or the DIB line 68 through two gates, the DI pass gate 90 and the match gate 92, or the DIB pass gate 94 and the match gate 92. Its high level is therefore VDD−2*VTN where VTN is the threshold voltage of an NMOS device (in this embodiment), and is typically rather low. For device 86 a natural NMOS device having a threshold voltage that is nominally positive, but around “0,” is preferably used. With device 84 and device 86 an AND function controlled by the match-high line 36 is formed at an AND node 96. To avoid a worst case in which the threshold voltage of the device 86 goes slightly negative, and hence never cuts off, the device 82 is preferably a PMOS type and is used to supply power during sensing, while the device 88 post-conditions (discharges) the AND node 96 after sensing. Care must be taken that the switching threshold of an inverter 98 lies within the switching window of the AND node 96 under all circuit conditions. As shown in FIG. 6, a resulting latched voltage 100 (VO) goes high when a match occurs.
  • Using a natural device for [0062] device 86 is a recommendation. However, say, in a case where such is not available, more conventional methods can also be considered, including using PMOS devices for pass- gates 90, 94.
  • In summary, as has been described above particularly with respect to FIG. 4, the [0063] present CAM 10 can be configured, as desired, to function as a binary or ternary type CAM. And as has also been described, particularly with respect to FIG. 5-6, the CAM 10 provides substantial power savings in two particular regards. It should be appreciated, however, that the necessarily limited examples which can be presented in a discussion such as this cannot depict all possible details of all possible embodiments of the invention. For example, the examples used have employed SRAM type memory cells, but those skilled in the art will appreciate that the present invention has applicability with many other types of memory. Similarly, while a dual-function binary-ternary CAM has been presented as the inventor's presently preferred embodiment, there is no reason why the approaches to power saving and sub-circuit frequency reduction taught herein cannot also be applied to single function CAM of either binary or ternary types. Indeed, since match detection is widely used with circuitry other than CAM, there is no reason why the approaches to match detection taught herein cannot also be used with such other circuitry.
  • FIG. 7 is a block diagram showing the [0064] SRAM cells 16 of the CAM 10 extended in to the context of a larger CAM 102 having a plurality of rows 104. Accordingly, it can be seen that the present invention can be applied in large CAM based memory schemes, as is increasingly common.
  • Finally, FIG. 8 is a series of schematic diagrams showing examples of generally conventional binary and ternary cells improved by addition of a match detection scheme according to the present invention. Internal details of binary CAM cells are shown in items (a) and (b), and internal details of ternary CAM cells are shown in items (c), (d) and (e). [0065]
  • Accordingly, while various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the invention should not be limited by any of the above described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. [0066]
  • INDUSTRIAL APPLICABILITY
  • The [0067] present CAM 10 is well suited for use in a wide variety of applications. Comparing FIG. 1 (background art) and FIG. 4 reveals that when used as binary CAM, the CAM 10 employs a different gate arrangement than is conventional. By employing three gates in association with each memory cell, power savings is achieved in two particular manners. Firstly, the lines (MHL, MLL) used for match detection are floated, so that the input data lines do not have to be grounded. Secondly, the lines (MHL, MLL) used for match detection are operated at half of the overall clock frequency. Comparing FIG. 2 (background art) and FIG. 4 similarly reveals that when used as ternary CAM, the CAM 10 also employs a non-conventional gate arrangement. But again, this provides the dual types of power savings discussed above. Comparing FIG. 3 and FIG. 4 reveals yet a further distinction. As discussed elsewhere, FIG. 3 depicts a logical approach to implementing a binary-ternary CAM. However, rather than use four gates per memory cell as in FIG. 3, the invention may employ only three gates per cell and be used as a binary-ternary CAM which additionally provides the noted power savings. Accordingly, the inventive CAM 10 may be implemented as a binary CAM, a ternary CAM, or a selectively configurable binary-ternary CAM and it may provide substantial benefits in all of these roles.
  • In straight forward manner the principals of the [0068] CAM 10 may be extended and used in larger schemes, such as the CAM 102 of FIG. 7 in which a number of cells are arranged into multiple rows, each having a common match sensing sub-circuit. Arrangement in columns or into sub arrays is likewise possible. The CAM 10 may also be implemented in a wide range of conventional memory and logic types, using essentially conventional manufacturing processes. This, in turn, facilitates immediate application of the inventive CAM 10 in discrete integrated circuits and modules, or as a sub-part of larger assemblies such as Systems on a Chip (SoC).
  • The range of ultimate uses for CAM is also wide, and growing very rapidly, so a detailed discussion is not possible. But one particularly promising area of use for the [0069] present CAM 10 that deserves mention is in portable devices. Such devices often require sparing use of power and the inventive CAM 10 clearly excels over conventional CAM in this regard.
  • For the above, and other reasons, it is expected that the [0070] CAM 10 of the present invention will have widespread industrial applicability. Therefore, it is expected that the commercial utility of the present invention will be extensive and long lasting.

Claims (26)

1. A content addressable memory (CAM), comprising:
an input circuit suitable for presenting input data to a plurality of cell circuits;
a match circuit including a match-high line, a match-low line, and a pre-charge sub-circuit able to controllably connect said match-high line to a voltage source and to controllably connect said match-low line to a ground, thereby charging said match-high line and discharging said match-low line; and
said plurality of cell circuits each able to compare one bit of said input data with one bit of pre-stored storage data to determine whether pre-specified match criteria are met, and to operationally connect said match-high line and said match-low line if said match criteria are met, thereby permitting detection of a mismatch condition.
2. The CAM of claim 1, further comprising a clock suitable for cycling at a clock frequency, and wherein:
said plurality of cell circuits each perform one comparison per cycle of said clock; and
said pre-charge sub-circuit connects said match-high line to said voltage source and said match-low line to said ground at half of said clock frequency.
3. The CAM of claim 1, wherein said match criteria define a binary mode comparison between said one bit of said input data and said one bit of pre-stored storage data.
4. The CAM of claim 1, wherein said match criteria define a ternary mode comparison between said one bit of said input data, said one bit of pre-stored storage data, and one bit of pre-stored mask data.
5. The CAM of claim 1, wherein said input circuit controllably specifies whether said match criteria define a binary mode comparison or a ternary mode comparison.
6. The CAM of claim 1, wherein a plurality of said plurality of cell circuits define rows such that each said row has a respective common said match circuit, thereby permitting comparison of said input data and a plurality of instances of said pre-stored storage data.
7. A method for comparing input data with pre-stored storage data in an associative manner, the method comprising the steps of:
(a) pre-charging a match-high line to a high state and a match-low line to a low state;
(b) presenting the input data to a plurality of cell circuits;
(c) comparing one bit of the input data with one bit of the pre-stored storage data in each of said plurality of cell circuits to determine whether pre-specified match criteria are met; and
(d) connecting said match-high line and said match-low line if said match criteria are met, thereby permitting detection of a mismatch condition.
8. The method of claim 7, wherein:
said step (c) occurs at a clock frequency; and
step (a) includes pre-charging said match-high line and said match-low line at half of said clock frequency.
9. The method of claim 7, wherein said step (c) includes binary mode comparison between said one bit of the input data and said one bit of the pre-stored storage data.
10. The method of claim 7, wherein said step (c) includes ternary mode comparison between said one bit of the input data, said one bit of the pre-stored storage data, and one bit of pre-stored mask data.
11. The method of claim 7, further comprising (e) specifying whether said match criteria define a binary mode comparison or a ternary mode comparison.
12. A content addressable memory (CAM) for binary mode comparison of input bits with storage bits, comprising:
an input circuit suitable for presenting the input bits to a plurality of cell circuits;
a match circuit including a match-high line, a match-low line, a pre-charge sub-circuit able to controllably bring said match-high line to a high state and said match-low line to a low state, and a plurality of match-gates at least equaling said plurality of cell circuits, wherein each said match-gate is able to operationally connect said match-high line with said match-low line in response to a match signal; and
said plurality of cell circuits each suitable for:
storing one of the storage bits; and
generating a said match signal based on the states of the input bit and its storage bit, thereby permitting the CAM to compare the input bits with the storage bits to detect a mismatch condition.
13. The CAM of claim 12, further comprising a clock suitable for cycling at a clock frequency, and wherein:
said input circuit presents the input bits to said plurality of cell circuits at said clock frequency; and
said pre-charge sub-circuit operates at half of said clock frequency.
14. The CAM of claim 12, wherein a plurality of said plurality of cell circuits define rows such that each said row has a respective common said match circuit, thereby permitting comparison of said input data and a plurality of instances of said storage data.
15. A method for comparing input bits with storage bits in a binary associative manner, the method comprising the steps of:
(a) pre-charging a match-high line to a high state and a match-low line to a low state;
(b) storing each of the storage bits in a respective memory cell;
(c) generating respective match signals based on the states of the input bits and said memory cells; and
(d) connecting said match-high line and said match-low line responsive to any one of said match signals, thereby comparing each of the input bits with each of the storage bits to detect a mismatch condition.
16. The method of claim 15, wherein:
said step (c) occurs at a clock frequency; and
said step (a) occurs at half of said clock frequency.
17. A content addressable memory (CAM) for ternary mode comparison of input bits with storage bits and mask bits, comprising:
an input circuit suitable for presenting the input bits to a plurality of composite cells;
a match circuit including a match-high line, a match-low line, a pre-charge sub-circuit able to controllably bring said match-high line to a high state and said match-low line to a low state, and a plurality of match-gates at least equaling said plurality of cell circuits, wherein each said match-gate is able to operationally connect said match-high line with said match-low line in response to a match signal; and
said plurality of composite cells each suitable for:
storing one of the storage bits and one of the mask bits as a ternary unit having three possible states (1, 0, and X, wherein X represents masked); and
generating a said match signal based on the states of the input bit and said ternary unit, thereby permitting the CAM to compare one of the input bits with one of the storage bits and one of the mask bits to detect a mismatch condition.
18. The CAM of claim 17, further comprising a clock suitable for cycling at a clock frequency, and wherein:
said input circuit presents the input bits to said plurality of composite cells at said clock frequency; and
said pre-charge sub-circuit operates at half of said clock frequency.
19. The CAM of claim 17, wherein a plurality of said plurality of cell circuits define rows such that each said row has a respective common said match circuit, thereby permitting comparison of said input data and a plurality of instances of said storage data.
20. A method for comparing input bits with storage bits and mask bits in a ternary associative manner, the method comprising the steps of:
(a) pre-charging a match-high line to a high state and a match-low line to a low state;
(b) storing the storage bits and the mask bits in composite cells as a ternary units having one of three possible states (1, 0, and X, wherein X represents masked);
(c) generating respective match signals based on the states of the input bits and said composite cells; and
(d) connecting said match-high line and said match-low line responsive to any one of said match signals, thereby comparing each of the input bits with each of the storage bits to detect a mismatch condition.
21. The method of claim 20, wherein:
said step (c) occurs at a clock frequency; and
said step (a) occurs at half of said clock frequency.
22. A content addressable memory (CAM) for comparison of a data set in either binary mode or ternary mode, comprising:
an input circuit suitable for presenting input bits from the data set to a plurality of composite cells;
a match circuit including a match-high line, a match-low line, a pre-charge sub-circuit able to controllably bring said match-high line to a high state and said match-low line to a low state, and a plurality of match-gates at least equaling said plurality of composite cells, wherein each said match-gate is able to operationally connect said match-high line with said match-low line in response to a match signal; and
said plurality of composite cells each suitable for selective operation in either the binary mode or the ternary mode, wherein:
in the binary mode each said composite cell is suitable for:
storing two storage bits;
receiving two said input bits from said input circuit; and generating two said match signals respectively based on the states of a said input bit and a said storage bit, thereby permitting the CAM to compare the data set with said storage bits in binary manner to detect a mismatch condition; and
in the ternary mode each said composite cell is suitable for:
storing one storage bit and one mask bit as a ternary unit having three possible states (1, 0, and X, wherein X represents masked);
receiving one said input bit from said input circuit; and generating a said match signal based on the states of said input bit and said ternary unit, thereby also permitting the CAM to compare the data set with said storage bits and said mask bits in ternary manner to detect a mismatch condition.
23. The CAM of claim 22, further comprising a clock suitable for cycling at a clock frequency, and wherein:
said input circuit presents said input bits to said plurality of composite cells at said clock frequency; and
said pre-charge sub-circuit operates at half of said clock frequency.
24. The CAM of claim 22, wherein a plurality of said plurality of composite cells define rows, thereby permitting comparison of said data set with a plurality of sets of said storage bits in the binary mode and with a plurality of sets of said storage bits and said mask bits in the ternary mode.
25. A method for comparison of a data set in either binary or ternary associative manner, the method comprising the steps of:
(a) pre-charging a match-high line to a high state and a match-low line to a low state;
(b) selecting operation in either the binary mode or the ternary mode;
(c) in the binary mode:
(1) storing two storage bits in a composite cell
(2) selecting two input bits from the data set; and
(3) generating a match signal based on the states of said input bits and said storage bits; and
(d) in the ternary mode:
(1) storing a storage bit and a mask bit in said composite cell as a ternary unit having one of three possible states (1, 0, and X, wherein X represents masked);
(2) selecting one input bit from the data set; and
(3) generating said match signal based on the states of said input bit and said ternary unit; and
(e) connecting said match-high line and said match-low line responsive to any one of said match signals, thereby permitting the CAM to compare the data set with said storage bits in binary manner to detect a match and to also compare the data set with said storage bits and said mask bits in ternary manner to detect a mismatch condition.
26. The method of claim 25, wherein:
said step (c)(3) and said step (d)(3) occur at a clock frequency; and
said step (a) occurs at half of said clock frequency.
US10/064,770 2002-08-15 2002-08-15 Dual match-line, twin-cell, binary-ternary CAM Expired - Fee Related US6704216B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/064,770 US6704216B1 (en) 2002-08-15 2002-08-15 Dual match-line, twin-cell, binary-ternary CAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/064,770 US6704216B1 (en) 2002-08-15 2002-08-15 Dual match-line, twin-cell, binary-ternary CAM

Publications (2)

Publication Number Publication Date
US20040032758A1 true US20040032758A1 (en) 2004-02-19
US6704216B1 US6704216B1 (en) 2004-03-09

Family

ID=31713839

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/064,770 Expired - Fee Related US6704216B1 (en) 2002-08-15 2002-08-15 Dual match-line, twin-cell, binary-ternary CAM

Country Status (1)

Country Link
US (1) US6704216B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138278A1 (en) * 2003-12-23 2005-06-23 Aadsen Duane R. Content addressable memories (CAMs) based on a binary CAM and having at least three states
US20100309736A1 (en) * 2009-06-05 2010-12-09 Russell Andrew C Sram with read and write assist
US20140347906A1 (en) * 2013-05-24 2014-11-27 Stmicroelectronics Sa Tcam memory cell and component incorporating a matrix of such cells
CN113113075A (en) * 2021-06-11 2021-07-13 新华三半导体技术有限公司 Chip testing method and device, control circuit and chip
US11431692B2 (en) * 2017-03-30 2022-08-30 Arizona Board Of Regents On Behalf Of Northern Arizona University Multi-functional units for ternary computing

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751110B2 (en) * 2002-03-08 2004-06-15 Micron Technology, Inc. Static content addressable memory cell
JP4282319B2 (en) * 2002-12-13 2009-06-17 株式会社ルネサステクノロジ Semiconductor memory device
US7126837B1 (en) * 2004-03-26 2006-10-24 Netlogic Microsystems, Inc. Interlocking memory/logic cell layout and method of manufacture
US20050213359A1 (en) * 2004-03-26 2005-09-29 Kim Jin K Hybrid content addressable memory
US7499303B2 (en) * 2004-09-24 2009-03-03 Integrated Device Technology, Inc. Binary and ternary non-volatile CAM
US7203082B1 (en) 2005-05-31 2007-04-10 Sun Microsystems, Inc. Race condition improvements in dual match line architectures
US7200019B1 (en) 2005-05-31 2007-04-03 Sun Microsystems, Inc. Dual match line architecture for content addressable memories and other data structures
US7474546B2 (en) * 2007-04-02 2009-01-06 Sun Microsystems, Inc. Hybrid dual match line architecture for content addressable memories and other data structures
JP5064171B2 (en) * 2007-10-31 2012-10-31 ルネサスエレクトロニクス株式会社 Associative memory
US8130525B2 (en) * 2009-10-09 2012-03-06 International Business Machines Corporation Method and apparatus for configuring a content-addressable memory (CAM) design as binary CAM or ternary CAM
US8848411B2 (en) * 2012-09-25 2014-09-30 Broadcom Corporation Shared stack dual phase content addressable memory (CAM) cell
US8929116B2 (en) 2013-01-04 2015-01-06 International Business Machines Corporation Two phase search content addressable memory with power-gated main-search
JP2015225682A (en) * 2014-05-27 2015-12-14 ルネサスエレクトロニクス株式会社 Semiconductor integrated circuit
US10910056B2 (en) * 2018-02-22 2021-02-02 Renesas Electronics Corporation Semiconductor device
US11908519B2 (en) 2021-08-31 2024-02-20 International Business Machines Corporation Pre-compare operation for compact low-leakage dual-compare cam cell
US11837289B2 (en) 2021-08-31 2023-12-05 International Business Machines Corporation Compact low-leakage multi-bit compare CAM cell

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072422A (en) * 1989-05-15 1991-12-10 E-Systems, Inc. Content-addressed memory system with word cells having select and match bits
US6101115A (en) * 1998-08-07 2000-08-08 Cisco Technology, Inc. CAM match line precharge
US6108227A (en) * 1999-07-23 2000-08-22 Lara Technology, Inc. Content addressable memory having binary and ternary modes of operation
US6147891A (en) * 1999-01-05 2000-11-14 Netlogic Microsystems Match line control circuit for content addressable memory
US6163473A (en) * 2000-02-02 2000-12-19 Hewlett-Packard Company Memory for storing encoded mask and data bits
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
US6191969B1 (en) * 1999-09-09 2001-02-20 Net Logic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6362992B1 (en) * 2000-10-06 2002-03-26 Purple Ray, Inc. Binary-ternary content addressable memory
US6373739B1 (en) * 2000-12-06 2002-04-16 Integrated Device Technology, Inc. Quad CAM cell with minimum cell size
US6385070B1 (en) * 2001-03-13 2002-05-07 Tality, L.P. Content Addressable Memory array, cell, and method using 5-transistor compare circuit and avoiding crowbar current
US6430074B1 (en) * 1999-09-09 2002-08-06 Netlogic Mircosystems, Inc. Selective look-ahead match line pre-charging in a partitioned content addressable memory array
US6442090B1 (en) * 1999-06-07 2002-08-27 Mosaid Technologies Inc. Differential sensing amplifier for content addressable memory
US6477071B1 (en) * 2001-05-07 2002-11-05 Switchcore Ab Method and apparatus for content addressable memory with a partitioned match line
US20030072171A1 (en) * 2001-10-12 2003-04-17 Samsung Electronics Co., Ltd. Content addressable memory device
US20030161194A1 (en) * 2000-05-01 2003-08-28 Ma Stanley Jeh-Chun Matchline sense circuit and method

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072422A (en) * 1989-05-15 1991-12-10 E-Systems, Inc. Content-addressed memory system with word cells having select and match bits
US6101115A (en) * 1998-08-07 2000-08-08 Cisco Technology, Inc. CAM match line precharge
US6147891A (en) * 1999-01-05 2000-11-14 Netlogic Microsystems Match line control circuit for content addressable memory
US20020145452A1 (en) * 1999-06-07 2002-10-10 Abdullah Ahmed Differential sensing amplifier for content addressable memory
US6442090B1 (en) * 1999-06-07 2002-08-27 Mosaid Technologies Inc. Differential sensing amplifier for 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
US6108227A (en) * 1999-07-23 2000-08-22 Lara Technology, Inc. Content addressable memory having binary and ternary modes of operation
US6430074B1 (en) * 1999-09-09 2002-08-06 Netlogic Mircosystems, Inc. Selective look-ahead 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
US6163473A (en) * 2000-02-02 2000-12-19 Hewlett-Packard Company Memory for storing encoded mask and data bits
US20030161194A1 (en) * 2000-05-01 2003-08-28 Ma Stanley Jeh-Chun Matchline sense circuit and method
US6362992B1 (en) * 2000-10-06 2002-03-26 Purple Ray, Inc. Binary-ternary content addressable memory
US6373739B1 (en) * 2000-12-06 2002-04-16 Integrated Device Technology, Inc. Quad CAM cell with minimum cell size
US6385070B1 (en) * 2001-03-13 2002-05-07 Tality, L.P. Content Addressable Memory array, cell, and method using 5-transistor compare circuit and avoiding crowbar current
US6477071B1 (en) * 2001-05-07 2002-11-05 Switchcore Ab Method and apparatus for content addressable memory with a partitioned match line
US20030072171A1 (en) * 2001-10-12 2003-04-17 Samsung Electronics Co., Ltd. Content addressable memory device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138278A1 (en) * 2003-12-23 2005-06-23 Aadsen Duane R. Content addressable memories (CAMs) based on a binary CAM and having at least three states
US7191280B2 (en) * 2003-12-23 2007-03-13 Agere Systems Inc. Content addressable memories (CAMs) based on a binary CAM and having at least three states
US20070103953A1 (en) * 2003-12-23 2007-05-10 Agere Systems Inc. CONTENT ADDRESSABLE MEMORIES (CAMs) BASED ON A BINARY CAM AND HAVING AT LEAST THREE STATES
US7363424B2 (en) 2003-12-23 2008-04-22 Agere Systems Inc. Content addressable memories (CAMs) based on a binary CAM and having at least three states
US20100309736A1 (en) * 2009-06-05 2010-12-09 Russell Andrew C Sram with read and write assist
US8004907B2 (en) * 2009-06-05 2011-08-23 Freescale Semiconductor, Inc. SRAM with read and write assist
US20140347906A1 (en) * 2013-05-24 2014-11-27 Stmicroelectronics Sa Tcam memory cell and component incorporating a matrix of such cells
US11431692B2 (en) * 2017-03-30 2022-08-30 Arizona Board Of Regents On Behalf Of Northern Arizona University Multi-functional units for ternary computing
CN113113075A (en) * 2021-06-11 2021-07-13 新华三半导体技术有限公司 Chip testing method and device, control circuit and chip

Also Published As

Publication number Publication date
US6704216B1 (en) 2004-03-09

Similar Documents

Publication Publication Date Title
US6704216B1 (en) Dual match-line, twin-cell, binary-ternary CAM
US6191969B1 (en) Selective match line discharging in a partitioned content addressable memory array
US6243280B1 (en) Selective match line pre-charging in a partitioned content addressable memory array
US6597596B2 (en) Content addressable memory having cascaded sub-entry architecture
EP1470554B1 (en) Circuit and method for reducing power usage in a content addressable memory
US6584003B1 (en) Low power content addressable memory architecture
US7050318B1 (en) Selective match line pre-charging in a CAM device using pre-compare operations
US6430074B1 (en) Selective look-ahead match line pre-charging in a partitioned content addressable memory array
US7602629B2 (en) Content addressable memory
US6747885B2 (en) Ternary content addressable memory device
WO2009032457A1 (en) Low power ternary content-addressable memory (tcam)
WO2021021507A1 (en) Sram with burst mode address comparator
US7113415B1 (en) Match line pre-charging in a content addressable memory having configurable rows
US7400520B2 (en) Low-power CAM
EP1461811B1 (en) Low power content addressable memory architecture
US7206212B1 (en) Content addressable memory (CAM) device with entries having ternary match and range compare functions
US7920399B1 (en) Low power content addressable memory device having selectable cascaded array segments
US9312006B2 (en) Non-volatile ternary content-addressable memory with resistive memory device
US8493763B1 (en) Self-timed match line cascading in a partitioned content addressable memory array
US8773880B2 (en) Content addressable memory array having virtual ground nodes
US20050071544A1 (en) Segmented content addressable memory architecture for improved cycle time and reduced power consumption
US6654276B2 (en) Four-transistor static memory cell array
US8848411B2 (en) Shared stack dual phase content addressable memory (CAM) cell
EP1526546B1 (en) Magnitude (relational) content addressable memory
US6580628B2 (en) Associative memory

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEGRATED SILICON SOLUTION, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHENG, PAUL;CHOW, NELSON L.;REEL/FRAME:012987/0843

Effective date: 20020814

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 4

SULP Surcharge for late payment
FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: INTEGRATED SILICON SOLUTIONS, INC., CALIFORNIA

Free format text: CHANGE OF ADDRESS;ASSIGNOR:INTEGRATED SILICON SOLUTIONS, INC.;REEL/FRAME:021165/0802

Effective date: 20080626

AS Assignment

Owner name: MOSAID TECHNOLOGIES INCORPORATED, CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEGRATED SILICON SOLUTION, INC.;REEL/FRAME:021890/0760

Effective date: 20080611

AS Assignment

Owner name: MOSAID TECHNOLOGIES INCORPORATED, CANADA

Free format text: CHANGE OF ADDRESS OF ASSIGNEE;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:022542/0876

Effective date: 20090209

Owner name: MOSAID TECHNOLOGIES INCORPORATED,CANADA

Free format text: CHANGE OF ADDRESS OF ASSIGNEE;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:022542/0876

Effective date: 20090209

FEPP Fee payment procedure

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

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: ROYAL BANK OF CANADA, CANADA

Free format text: U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM;ASSIGNORS:658276 N.B. LTD.;658868 N.B. INC.;MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:027512/0196

Effective date: 20111223

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: CHANGE OF NAME;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:032439/0638

Effective date: 20140101

AS Assignment

Owner name: CONVERSANT IP N.B. 276 INC., CANADA

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

Owner name: CONVERSANT IP N.B. 868 INC., CANADA

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CANADA

Free format text: CHANGE OF ADDRESS;ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033678/0096

Effective date: 20140820

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: CHANGE OF ADDRESS;ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033678/0096

Effective date: 20140820

AS Assignment

Owner name: CPPIB CREDIT INVESTMENTS INC., AS LENDER, CANADA

Free format text: U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033706/0367

Effective date: 20140611

Owner name: ROYAL BANK OF CANADA, AS LENDER, CANADA

Free format text: U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033706/0367

Effective date: 20140611

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20160309

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CANADA

Free format text: RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:ROYAL BANK OF CANADA, AS LENDER;REEL/FRAME:047645/0424

Effective date: 20180731

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:ROYAL BANK OF CANADA, AS LENDER;REEL/FRAME:047645/0424

Effective date: 20180731