Configurable precision neural network with differential binary non-volatile memory cell structure
First Claim
1. A non-volatile memory circuit, comprising:
- an array of one or more storage units connected along one or more first input lines and each configured to store an N bit weight of neural network, where N is an integer greater than 1, each of the storage units comprising N non-volatile binary storage elements connected to a corresponding output line and configured to store one bit of the N bit weight; and
one or more control circuits connected to the array of storage units, the one or more control circuits configured to;
apply a first input of a neural network to the one or more first input lines to generate an output voltage level on each of the output lines connected to a first of the storage units in response thereto;
individually weight the output voltage levels generated in response to the first input on each of the output lines according to a significance of the bit of the weight stored in the binary storage element of the first storage unit corresponding to the output line; and
determine a multi-bit value for the response of the weight stored in the first storage unit to the first input from a combination of the individually weighted output voltages to thereby perform an in-array multiplication of the first input with the weight stored in the first storage unit.
1 Assignment
0 Petitions
Accused Products
Abstract
Use of a non-volatile memory array architecture to realize a neural network (BNN) allows for matrix multiplication and accumulation to be performed within the memory array. A unit synapse for storing a weight of a neural network is formed by a differential memory cell of two individual memory cells, such as a memory cells having a programmable resistance, each connected between a corresponding one of a word line pair and a shared bit line. An input is applied as a pattern of voltage values on word line pairs connected to the unit synapses to perform the multiplication of the input with the weight by determining a voltage level on the shared bit line. The results of such multiplications are determined by a sense amplifier, with the results accumulated by a summation circuit. The approach can be extended from binary weights to multi-bit weight values by use of multiple differential memory cells for a weight.
51 Citations
20 Claims
-
1. A non-volatile memory circuit, comprising:
-
an array of one or more storage units connected along one or more first input lines and each configured to store an N bit weight of neural network, where N is an integer greater than 1, each of the storage units comprising N non-volatile binary storage elements connected to a corresponding output line and configured to store one bit of the N bit weight; and one or more control circuits connected to the array of storage units, the one or more control circuits configured to; apply a first input of a neural network to the one or more first input lines to generate an output voltage level on each of the output lines connected to a first of the storage units in response thereto; individually weight the output voltage levels generated in response to the first input on each of the output lines according to a significance of the bit of the weight stored in the binary storage element of the first storage unit corresponding to the output line; and determine a multi-bit value for the response of the weight stored in the first storage unit to the first input from a combination of the individually weighted output voltages to thereby perform an in-array multiplication of the first input with the weight stored in the first storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method, comprising:
-
receiving a plurality of input values for a neural network; translating each of the plurality of input values into a corresponding first voltage pattern, each first voltage pattern being one of a plurality of voltage patterns comprising a pair of voltage values; applying the plurality of first voltage patterns to one or more pairs of word lines, each pair of word lines connected to a first set of N pairs of non-volatile memory cells storing an N-bit weight value of the neural network, each pair of memory cells of each first set storing a bit of the weight value and comprising a first memory cell connected between a first word line of the word line pair and a corresponding bit line and a second memory cell connected between a second word line of the word line pair and the corresponding bit line; weighting an output level on each of the bit lines corresponding to the pair of memory cells of each first set in response to the applied first voltage patterns according to a significance of the bit stored in the corresponding pair of memory cells; and combining the weighted output levels to determine a multi-bit value for one or more products of the one or more input values with the one or more weight values. - View Dependent Claims (11, 12, 13)
-
-
14. An apparatus, comprising:
-
an array of non-volatile memory cells, including a plurality of N first bit lines, a first word line pair and a first group of N non-volatile memory cell pairs, a first memory cell of each pair of the first group connected between a first word line of the first word line pair and a corresponding one of the first bit lines and a second memory cell of each pair of the first group connected between a second word line of the first word line pair and the corresponding one of the first bit lines; and one or more control circuits connected to the array of non-volatile memory cells, the one or more control circuits configured to; receive a first input and apply a first voltage pattern corresponding to the first input to the first word line pair; individually weight an output level on each of the N first bit lines in response to applying the first voltage pattern to the first word line pair; combine the individually weighted output levels to form a weighted response of the first group of memory cells to the first input; and determine a multi-bit value for the weighted response of the first group of memory cells to the first input. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification