Low power and area ternary content addressable memory circuit
Systems, devices, and methods are provided for implementing a low power and area ternary content addressable memory (TCAM). The TCAM comprises a plurality of memristor-based TCAM (mTCAM) cells, each consisting of two memristors and two transistors. The first and second memristors are connected in series, with a first end of the first memristor connected to a first data line, first end of the second memristor connected to a second data line, and the second ends of the resistors connected together at a common node. The drain of a programming transistor is connected to the common node, with the source connected to a third data line, and the gate connected to a word line. Common node is further connected to the gate of a match-line transistor, such that if a mismatch is detected common node applies a voltage to the gate to pull-down the voltage on a pre-charged match line.
1. A memristor-based ternary content addressable memory (mTCAM) cell, comprising:
a first memristor connected in series to a second memristor, wherein:
a first end of the first memristor is connected to a first data line;
a first end of the second memristor is connected to a second data line; and
a second end of the first memristor and a second end of the second memristor are connected together at a common node;
a match-line transistor being connected on a first end to a match line, a gate of the match-line transistor being connected to the common node;
a programming transistor being connected on a first end to a third data line, a second end of the programming transistor being connected to the common node, and a word line being connected to a gate of the programming transistor.
2. The mTCAM cell of claim 1 , the match-line transistor comprising a second end, the second end connected to a voltage rail.
3. The mTCAM cell of claim 1 , further comprising control circuitry to perform one or more operations of write, read, or search the mTCAM cell.
4. The mTCAM cell of claim 3 , the control circuitry configured to perform a search operation in response to receiving an instruction from a processing circuitry of a device in which the mTCAM cell is implemented.
5. The mTCAM cell of claim 1 , the programming transistor configured to program the first memristor and the second memristor, individually or simultaneously.
6. The mTCAM cell of claim 1 , the first memristor and the second memristor comprising one of: a memory element that changes the resistance across a dielectric solid-state material; a resistive random-access memory element; a phase-change memory element PCM of PCRAM); a conductive-bridging memory element; a magnetoresistive memory element (MRAM).
7. The mTCAM cell of claim 1 , further comprising a capacitor having a first end connected to the common node and a second end connected to a ground.
8. A memristor-based ternary content addressable memory (mTCAM) comprising:
a processing circuitry;
an array of a plurality of mTCAM cells communicatively coupled to the processing circuitry;
each mTCAM cell comprises:
a first memristor connected in series to a second memristor, wherein:
a first end of the first memristor is connected to a first data line;
a first end of the second memristor is connected to a second data line; and
a second end of the first memristor and a second end of the second memristor are connected together at a common node;
a match-line transistor being connected on a first end to a match line, a gate of the match-line transistor being connected to the common node;
a programming transistor being connected on a first end to a third data line, a second end of the programming transistor being connected to the common node, and a word line being connected to a gate of the programming transistor.
9. The mTCAM of claim 8 , each match-line transistor of the plurality of mTCAM cells comprising a second end, the second end connected to a voltage rail.
10. The mTCAM of claim 8 , further comprising a control circuitry to perform one or more operations of write, read, or search the plurality of mTCAM cell.
11. The mTCAM of claim 10 , the control circuitry configured to perform a search operation in response to receiving an instruction from the processing circuitry.
12. The mTCAM of claim 8 , the programming transistor configured to program the first memristor and the second memristor, individually or simultaneously.
13. The mTCAM of claim 8 , wherein the first memristor and the second memristor comprise one of: a memory element that changes the resistance across a dielectric solid-state material; a resistive random-access memory element; a phase-change memory element PCM of PCRAM); a conductive-bridging memory element; a magnetoresistive memory element (MRAM).
14. The mTCAM of claim 8 , each mTCAM cell further comprising a capacitor having a first end connected to the common node and a second end connected to a ground.
15. The mTCAM of claim 8 , wherein each row of the array of the plurality of mTCAM cells comprises a word storage block configured to store a data word identifying an address associated with a corresponding communications pot of a communications circuitry.
16. The mTCAM of claim 8 , further comprising a non-transitory machine-readable storage media storing instructions that, when executed by the processing circuitry, cause the processing circuitry to send a control signal to the control circuitry.
17. The mTCAM of claim 8 , the control circuitry comprising one or more column drivers and one or more row drivers, wherein:
the one or more column drivers are communicatively coupled with a plurality of first data lines, a plurality of second data lines, and a plurality of third data lines;
the one or more row drivers are communicatively coupled with a plurality of match lines and word lines.
18. A method comprising:
applying, by a control circuitry of a memristor-based ternary content memory (mTCAM) comprising a plurality of mTCAM cells, a selection voltage to a word line of an associated word storage block to be programmed;
detecting, by the control circuitry, a current resistance state of a first memristor and a resistance state of a second memristor;
determining, by the control circuitry, a stored bit value for each mTCAM cell associated with the word storage block;
applying, by the control circuitry, a combination of voltages to a plurality of data lines associated with each mTCAM cell based on the determined stored bit value, a desired bit value, and the current resistance states of the first memristor and the second memristor; and
removing, by the control circuitry, the selection voltage from the word line.
19. The method of claim 18 , wherein a plurality of word storage blocks are to be programmed and applying the selection voltage comprises applying the selection voltage to a set of the plurality of word storage blocks to program a bit cell of each word storage block associated with the plurality of data lines with a same data value.
20. The method of claim 18 , wherein in response to determining all of a plurality of stored bit values of the bit cells of the word storage block are equal to each corresponding desired bit value, removing the selection voltage from the word line.