IP Library › Granted Patent US 11,461,621
Granted Patent B2
US 11,461,621 · App. 16/452,217 · Granted Oct 4, 2022

Methods and systems of implementing positive and negative neurons in a neural array-based flash memory

Inventors: Vishal Sarin (Santa Clara, CA); Purackal Mammen Mammen (Fremont, CA); Taber Smith (Saratoga, CA)
G06N3/063G06F7/49942G06F17/16G06N3/04G06N3/049G06N3/0635G06N3/082
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,461,621
App. No.
16/452,217
Granted
Oct 4, 2022
Kind
B2
Abstract

In one aspect, A method for computing neural network computation includes the step of, providing plurality of neurons, coupled with a plurality of inputs, through a plurality of synapses. Each neuron output is given by an equation Σ(X i *Y i )+b. X i *Y i comprises the ith synapse of the neuron. X i comprises a set of X i input vectors. Each X i input vector is translated into an equivalent electrical signal for an ith corresponding synapse of the plurality of neurons, Y i comprises a set of Yi weight vectors, wherein each Y i weight vector comprises a parameter for the ith corresponding synapse of the plurality of neurons. Each synapse is a sub-system and the sub-system comprises a negative vector neural circuit, a positive vector neural circuit, and a set of four non-volatile memory weight cells for computation. The method includes the step of identifying the input vector x as a positive input vector or a negative input vector.

Claims (59)

1. A method for computing neural network computation comprising:

a plurality of neurons, coupled with a plurality of inputs, through a plurality of synapses:

wherein each neuron output is given by an equation Σ(X i *Y i )+b and wherein:

X i *Y i comprises the i th synapse of the neuron,

X i comprises a set of X i input vectors, and wherein each X i input vector is translated into an equivalent electrical signal for an i th corresponding synapse of the plurality of neurons,

Y i comprises a set of Y i weight vectors, wherein each Y i weight vector comprises a parameter for the i th corresponding synapse of the plurality of neurons

wherein each synapse is a sub-system, wherein the sub-system comprises a negative vector neural circuit, a positive vector neural circuit, and a set of four non-volatile memory weight cells for computation;

identifying the input vector x as a positive input vector or a negative input vector;

case a) wherein the input vector x is identified as a positive input vector and the weight vector is positive, a positive input vector circuit activates a connection from the magnitude of the input to a positive weight cell, which in turn outputs a positive valued affine function f(|X i |*|Y i |) to a positive accumulation output

case b) wherein the input vector x is identified as a negative input vector and the weight vector is negative, a negative input vector circuit activates a connection from the magnitude of the input to a negative weight cell, which in turn outputs a positive valued affine function f(|X i |*|Y i |) to a positive accumulation bitline

case c) wherein the input vector x is identified as a negative input vector and the weight vector is positive, a negative input vector circuit activates a path from the magnitude of the input to the positive weight cell, which in turn outputs a positive valued affine function f(|X i |*|Y i |) to a negative accumulation bitline

case d) wherein the input vector x is identified as a positive input vector and the weight vector is negative, a positive input vector circuit activates a path from the magnitude of the input to the negative weight cell, which in turn outputs a positive valued affine function f(|X i |*|Y i |) to a negative accumulation bitline

wherein

the positive accumulation bitline is comprised of Σ(X i *Y i )+b p for all i where X i *Y i ≥0

the negative accumulation bitline is comprised of Σ(X i *Y i )+b n for all i where X i *Y i <0

and b p +b n =b.

2. The neural network compute circuit of claim 1 , wherein the affine function f( ) is the identity function.

3. The neural network compute circuit of claim 1 , wherein:

for case a) the positive input vector circuit activates a connection from the magnitude of the input to both the positive weight, which in turn connects to the positive accumulation bitline, and the negative weight, which in turn connects to the negative accumulation line; however, in this case the negative weight value is set to zero

for case b) the negative input vector circuit activates a connection from the magnitude of the input to both the negative weight cell, which in turn outputs to a positive accumulation bitline, and the positive weight, which in turn connects to the negative accumulation line; however, in this case the positive weight value is set to zero

for case c) the positive input vector circuit activates a connection from the magnitude of the input to both the negative weight, which in turn connects to the negative accumulation bitline, and the positive weight, which in turn connects to the positive accumulation line; however, in this case the positive weight value is set to zero

for case d) the negative input vector circuit activates a connection from the magnitude of the input to both the positive weight cell, which in turn outputs to a negative accumulation bitline, and the negative weight, which in turn connects to the positive accumulation line; however, in this case the negative weight value is set to zero.

4. The neural circuit of claim 3 , wherein the affine function f( ) is the identity function.

5. A method comprising:

providing a neural flash cell system, wherein the neural flash cell system comprises a negative vector neural circuit, a positive vector neural circuit, and a set of four neural cell synapses;

identifying the input vector x as a positive input vector or a negative input vector;

wherein the input vector x is identified as the positive input vector, and

turning off a negative vector circuit for the input vector x by turning off a third neural synapse of the set of four synapses and turning on a fourth neural synapse of the set of four synapses, and

turning on a positive input vector circuit for x by turning on a first neural synapse and turning off a second neural synapse;

wherein the input vector x is identified as the positive input vector, and

turning off positive input vector circuit for x by turning off the first neural synapse and turning on the second neural synapse, and

turning on negative vector circuit for the input vector x by turning on the third neural synapse and turning off the fourth neural synapse.

6. The method of claim 5 further comprising:

adding the positive input vector and the positive input vector into the neural flash cell system to obtain the input vector x.

7. A neural network compute circuit comprising:

a plurality of neurons, coupled with a plurality of inputs, through a plurality of synapses, and an adjustment neural cell:

wherein each neuron output is given by an equation Σ(X i ′*Y i ′)+b and wherein:

X i ′*Y i ′ comprises the i th synapse of the neuron,

X i comprises a set of original input vectors, wherein each X i is the original unadjusted input vector,

X i ′ comprises a set of X i ′ input vectors, and wherein each X i ′ input vector is translated into an equivalent electrical signal for an i th corresponding synapse of the plurality of neurons, calculated as X i ′=X i +X NMAX

Y i comprises a set of original weight vectors, wherein each Y i is the original unadjusted weight vector, Y i ′ comprises a set of Y i ′ adjusted weight vectors, wherein each Y i ′ adjusted weight vector comprises a level for the i th corresponding neural cell of the plurality of neural cells calculated as Y i ′=Y i +Y NMAX

and the final output is calculated as

Σ( X i *Y i )=Σ( X i ′*Y i ′)−Σ( X i ′*Y NMAX )−Σ( Y i *X NMAX ).

8. The neural circuit of claim 7 , wherein X NMAX is a maximum negative input value expected for the neural circuit; X NMAX =maximum(|X i |) for all i where X i <0 for all expected values of X i .

9. The neural circuit of claim 8 , wherein the expected values of X i are estimated using a dataset.

10. The neural circuit of claim 7 , wherein X NMAX is set to a fixed vale, e.g. zero.

11. The neural circuit of claim 7 , wherein Y NMAX comprises a largest negative weight in the neuron circuit; Y NMAX =maximum(|Y i |) for all i where Y i <0.

12. The neural circuit of claim 11 , wherein Y NMAX is set to a fixed vale, e.g. zero.

13. The neural network compute circuit of claim 7 , wherein the Σ(X i ′*Y i ′) is in one neuron for each output in the plurality of neurons and one Σ(X i ′*Y NMAX ) adjustment neuron is added to the plurality of neurons.

14. The neural network compute circuit of claim 13 , wherein the output from the Σ(X i ′*Y NMAX ) adjustment neuron is subtracted from each of the Σ(X i ′*Y i ′) neurons.

15. The neural network compute circuit of claim 13 , wherein the output from the Σ(X i ′*Y NMAX ) adjustment neurons and the output of the Σ(X i ′*Y i ′) neuron are converted to digital through ADCs.

16. The neural network compute circuit of claim 15 , wherein the ADC output from the Σ(X i ′*Y NMAX ) adjustment neuron is subtracted from the ADC output of the Σ(X i ′*Y i ′) neurons.

17. The neural circuit of claim 13 , wherein the adjustment neuron provides a mirror adjustment current.

18. The neural circuit of claim 7 , wherein each synapse output of the plurality of neural cells is coupled with a current input source of the plurality of current input sources.

19. The neural circuit of claim 18 , wherein the outputs to be subtracted are currents taken through a set of current mirrors.

20. The neural circuit of claim 19 , wherein the neuron receives two currents and utilizes a mirror adjustment current.

21. The method of claim 20 , wherein each input value is split into a positive voltage and a negative voltage.

22. The neural circuit of claim 7 , wherein the plurality of non-volatile memory cells are MLC flash cells.

23. The neural circuit of claim 7 , wherein the plurality of non-volatile memory cells are SLC flash cells are ordered from a most significant bit (MSB) level to a least significant bit (LSB) level.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2026
From: ANALOG INFERENCE INC.
To: SAGENCE AI CORPORATION
Reel/Frame 073397/0464 →
SECURITY INTEREST Recorded Dec 8, 2025
From: SAGENCE AI CORPORATION
To: CUSTOMERS BANK
Reel/Frame 073136/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2023
From: SARIN, VISHAL; MAMMEN, PURACKAL; SMITH, TABER
To: ANALOG INFERENCE INC.
Reel/Frame 063479/0150 →
Continuity (5)
Provisional Application 62803562 · Feb 10, 2019
Provisional Application 62773773 · Nov 30, 2018
Provisional Application 62721116 · Aug 22, 2018
Provisional Application 62689839 · Jun 26, 2018
Related Publication 20200160156A1 · May 21, 2020