Compute-in-memory with current transition detection
A compute-in-memory system is provided in which a plurality of compute-in-memory bitcells couple to a read bit line. Depending upon sequential binary multiplications in the compute-in-memory bitcells, a current from the read bit line sequentially increases. A transition detection circuit detects and counts the current transitions to provide a multiply-and-accumulate result from the sequential binary multiplications.
1 . A compute-in-memory multiply-and-accumulate circuit, comprising;
a read bit line;
a plurality of read word lines;
a plurality of compute-in-memory bitcells corresponding to the plurality of read word lines, wherein each of the plurality of compute-in-memory bitcells includes a first transistor coupled to the read bit line and having a gate coupled to the corresponding read word line; and
a read word line driver configured to receive a plurality of activation bits corresponding to the plurality of read word lines, the read word line driver being further configured to sequentially charge each read word line for which the corresponding activation bit equals a first binary value, wherein the read bit line provides a sequentially incremented current for the each of the plurality of compute-in-memory bitcells in which the each of the plurality of compute-in-memory bitcells stores a filter weight bit equaling the first binary value and couples to a charged one read word line of the plurality of read word lines.
2 . The compute-in-memory multiply-and-accumulate circuit of claim 1 , wherein each compute-in-memory bitcell further includes:
a pair of cross-coupled inverters having a bit node and a complement bit node; and
a second transistor coupled between ground and the first transistor, wherein the bit node couples to a gate of the first transistor.
3 . The compute-in-memory multiply-and-accumulate circuit of claim 2 , wherein each compute-in-memory bitcell further includes:
a first access transistor coupled to the bit node; and
a second access transistor coupled to the complement bit node.
4 . The compute-in-memory multiply-and-accumulate circuit of claim 3 , further comprising:
a write bit line coupled to each first access transistor; and
a complement write bit line coupled to each second access transistor.
5 . The compute-in-memory multiply-and-accumulate circuit of claim 4 , further comprising:
a write word line coupled to a gate of each first access transistor and to a gate of each second access transistor.
6 . The compute-in-memory multiply-and-accumulate circuit of claim 1 , wherein the read word line driver is further configured to sequentially each read word line responsive to cycles of a clock signal.
7 . The compute-in-memory multiply-and-accumulate circuit of claim 1 , wherein the compute-in-memory multiply-and-accumulate circuit is included within a system comprising:
a differentiator coupled to the read bit line and configured to differentiate a voltage of the read bit line to produce a differentiator voltage.
8 . The compute-in-memory multiply-and-accumulate circuit of claim 7 , wherein the system further comprises:
an amplifier configured to amplify the differentiator voltage into an amplifier output voltage; and
a counter configured to count pulses of the amplifier output voltage to provide a multiply-and-accumulate result.
9 . The compute-in-memory multiply-and-accumulate circuit of claim 8 , wherein the amplifier comprises an inverting amplifier.
10 . The compute-in-memory multiply-and-accumulate circuit of claim 8 , wherein the differentiator comprises a resistor-capacitor high-pass filter.
11 . A compute-in-memory method, comprising:
determining whether each of a plurality of activation bits corresponding to a plurality of compute-in-memory bitcells equals a first binary value, wherein each of the plurality of compute-in-memory bitcells couples to a corresponding read word line from a plurality of read word lines;
sequentially charging each of the plurality of read word lines coupled to a compute-in-memory bitcell for which the corresponding activation bit is determined to equal the first binary value; and
sequentially incrementing a current from a read bit line for the each of the plurality of compute-in-memory bitcells in which the each of the plurality of compute-in-memory bitcells stores a filter weight bit equaling the first binary value and couples to a charged one read word line of the plurality of read word lines.
12 . The compute-in-memory method of claim 11 , further comprising:
differentiating a voltage of the read bit line to produce a differentiator voltage that pulses in response to the incrementing of the current from the read bit line.
13 . The compute-in-memory method of claim 12 , further comprising:
amplifying the differentiator voltage to produce an amplifier output voltage that pulses in response to the pulses of the differentiator voltage.
14 . The compute-in-memory method of claim 13 , further comprising:
counting the pulses of the amplifier output voltage to provide a multiply-and-accumulate result.
15 . The method of claim 13 , wherein amplifying the differentiator voltage comprises inverting and amplifying the differentiator voltage to produce the amplifier output voltage.
16 . A compute-in-memory system, comprising:
a plurality of compute-in-memory bitcells coupled to a read bit line; and
a current transition detection circuit configured to detect and count transitions in a current from the read bit line to provide a multiply-and-accumulate result, wherein the read bit line provides a sequentially incremented current for each of the plurality of compute-in-memory bitcells in which the each of the plurality of compute-in-memory bitcells stores a filter weight bit equaling the first binary value and couples to a charged one read word line of a plurality of read word lines.
17 . The compute-in-memory system of claim 16 , wherein the current transition detection circuit comprises:
a differentiator configure to differentiate a voltage of the read bit line to produce a differentiator voltage.
18 . The compute-in-memory system of claim 17 , wherein the current transition detection circuit further comprises:
an amplifier configured to amplify the differentiator voltage to produce an amplifier output voltage; and
a counter configured to count pulses of the amplifier output voltage to provide the multiply-and-accumulate result.
19 . The compute-in-memory system of claim 17 , wherein the differentiator comprises a resistor-capacitor high-pass filter.
20 . The compute-in-memory system of claim 16 , wherein each compute-in-memory bitcell comprises an eight-transistor compute-in-memory bitcell.