Neural network matrix multiplication in memory cells
Various examples for accelerating multiplication operations are presented, which can be employed in neural network operations, among other applications. In one example, a circuit comprises a non-volatile memory cell, and an input circuit coupled to a gate terminal of the non-volatile memory cell. The input circuit is configured to ramp a control voltage applied to the gate terminal at a ramp rate representing a multiplicand value. An output circuit coupled to an output terminal of the non-volatile memory cell and is configured to generate an output pulse based on the control voltage satisfying a threshold voltage of the non-volatile memory cell, where the output pulse has a duration comprising the multiplicand value multiplied by a multiplier value represented by the threshold voltage.
1. A circuit comprising:
a non-volatile memory cell;
an input circuit coupled to a gate terminal of the non-volatile memory cell and configured to ramp a gate voltage applied to the gate terminal at a ramp rate representing multiplicand value; and
an output circuit coupled to an output terminal of the non-volatile memory cell and configured to generate an output pulse in response to the gate voltage satisfying a threshold voltage of the non-volatile memory cell, wherein the output pulse has a duration corresponding to the multiplicand value multiplied by a multiplier value represented by the threshold voltage.
2. The circuit of claim 1 , wherein the non-volatile memory cell comprises a quad-level NOR flash memory cell, wherein the multiplicand value and the multiplier value each comprise a bit vector having a range of values corresponding to a quantity of storage states encoded by the threshold voltage of the quad-level NOR flash memory cell, and wherein the duration of the output pulse corresponds to a multiplication between a bit vector of the input value and a bit vector of the multiplier value.
3. The circuit of claim 1 , comprising:
the output circuit comprising a comparator coupled to the output terminal of the non-volatile memory cell and configured to produce the output pulse based on a comparison between a reference voltage and an output state of the non-volatile memory cell.
4. The circuit of claim 1 , comprising:
the input circuit configured to ramp the gate voltage from a program voltage of the non-volatile memory cell downward to a reference voltage of the circuit, wherein the ramp rate corresponds to an inverse of the multiplicand value scaled by a ramp time granularity.
5. The circuit of claim 4 , wherein the duration of the output pulse corresponds to a time period during the ramp time when the gate voltage exceeds the threshold voltage of the non-volatile memory cell representing the multiplier value.
6. The circuit of claim 4 , comprising:
the output circuit configured to convert the output pulse into a digital representation based on the ramp time granularity applied to the duration of the output pulse.