IP Library Granted Patent US 11,853,856
Granted Patent B2
US 11,853,856 · App. 16/746,852 · Granted Dec 26, 2023

Programming methods for neural network using non-volatile memory array

Inventors: Farnood Merrikh Bayat (Goleta, CA); Xinjie Guo (Goleta, CA); Dmitri Strukov (Goleta, CA); Nhan Do (Saratoga, CA); Hieu Van Tran (San Jose, CA); Vipin Tiwari (Dublin, CA); Mark Reiten (Alamo, CA)
Assignee: SILICON STORAGE TECHNOLOGY, INC.
G06N3/04G06F3/061G06F3/0655G06F3/0688G06N3/045G06N3/063G11C11/54G11C16/08G11C16/12G11C16/16G11C16/3436G11C29/38
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,853,856
App. No.
16/746,852
Granted
Dec 26, 2023
Kind
B2
Abstract

An artificial neural network device that utilizes one or more non-volatile memory arrays as the synapses. The synapses are configured to receive inputs and to generate therefrom outputs. Neurons are configured to receive the outputs. The synapses include a plurality of memory cells, wherein each of the memory cells includes spaced apart source and drain regions formed in a semiconductor substrate with a channel region extending there between, a floating gate disposed over and insulated from a first portion of the channel region and a non-floating gate disposed over and insulated from a second portion of the channel region. Each of the plurality of memory cells is configured to store a weight value corresponding to a number of electrons on the floating gate. The plurality of memory cells are configured to multiply the inputs by the stored weight values to generate the outputs. Various algorithms for tuning the memory cells to contain the correct weight values are disclosed.

Claims (107)

1. A method of programming a non-volatile memory cell in a neural network, the method comprising

determining a first read current of the non-volatile memory cell;

when the first read current is greater than a target current, performing a programming tuning process to increase the number of electrons on a floating gate of the non-volatile memory cell;

determining a second read current of the non-volatile memory cell; and

when the second read current is less than the target current, and not more than the target current minus a delta value, performing an erasing tuning process to decrease the number of electrons on the floating gate of the non-volatile memory cell.

2. The method of claim 1 , wherein the programming tuning process comprises:

determining a programming voltage using a lookup table; and

applying the programming voltage to a terminal of the non-volatile memory cell.

3. The method of claim 2 , wherein the applying the programming voltage step is repeated one or more times.

4. The method of claim 1 , wherein the erasing tuning process comprises:

determining an erasing voltage using a lookup table; and

applying the erasing voltage to a terminal of the non-volatile memory cell.

5. The method of claim 4 , wherein the applying the erasing voltage step is repeated one or more times.

6. The method of claim 2 , wherein the erasing tuning process comprises:

determining an erasing voltage using a lookup table; and

applying the erasing voltage to a terminal of the non-volatile memory cell.

7. The method of claim 6 , wherein the applying the erasing voltage step is repeated one or more times.

8. The method of claim 3 , wherein the erasing tuning process comprises:

determining an erasing voltage using a lookup table; and

applying the erasing voltage to a terminal of the non-volatile memory cell.

9. The method of claim 8 , wherein the applying the erasing voltage step is repeated one or more times.

10. The method of claim 1 , wherein the non-volatile memory cell is a split-gate memory cell.

11. The method of claim 1 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are evenly spaced.

12. The method of claim 1 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are unevenly spaced.

13. The method of claim 1 , further comprising:

converting a set of weight digital bits into an analog voltage;

converting the analog voltage into an analog current;

determining a third read current of the non-volatile memory cell; and

comparing the analog current with the third read current to generate a signal indicating a weight stored in the non-volatile memory cell.

14. The method of claim 1 , further comprising:

converting a set of weight digital bits into an analog voltage;

determining a third read current of the non-volatile memory cell;

converting the third read current into a read voltage; and comparing the analog voltage with the read voltage to generate a signal indicating a weight stored in the non-volatile memory cell.

15. A method of programming a non-volatile memory cell in a neural network, the method comprising

determining a first read current of the non-volatile memory cell;

when the first read current is less than a target current, performing an erasing tuning process to decrease the number of electrons on a floating gate of the non-volatile memory cell;

determining a second read current of the non-volatile memory cell; and

when the second read current is greater than a target current, and not less than the target current plus a delta value, performing a programming tuning process to increase the number of electrons on the floating gate of the non-volatile memory cell.

16. The method of claim 15 , wherein the erasing tuning process comprises:

determining an erasing voltage using a lookup table; and

applying the erasing voltage to a terminal of the non-volatile memory cell.

17. The method of claim 16 , wherein the applying the erasing voltage step is repeated one or more times.

18. The method of claim 15 , wherein the programming tuning process comprises:

determining a programming voltage using a lookup table; and

applying the programming voltage to a terminal of the non-volatile memory cell.

19. The method of claim 18 , wherein the applying the programming voltage step is repeated one or more times.

20. The method of claim 16 , wherein the programming tuning process comprises:

determining a programming voltage using a lookup table; and

applying the programming voltage to a terminal of the non-volatile memory cell.

21. The method of claim 20 , wherein the applying the programming voltage step is repeated one or more times.

22. The method of claim 17 , wherein the programming tuning process comprises:

determining a programming voltage using a lookup table; and

applying the programming voltage to a terminal of the non-volatile memory cell.

23. The method of claim 22 , wherein the applying the programming voltage step is repeated one or more times.

24. The method of claim 15 , wherein the non-volatile memory cell is a split-gate memory cell.

25. The method of claim 15 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are evenly spaced.

26. The method of claim 15 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are unevenly spaced.

27. The method of claim 15 , further comprising:

converting a set of weight digital bits into an analog voltage;

converting the analog voltage into an analog current;

determining a third read current of the non-volatile memory cell; and

comparing the analog current with the third read current to generate a signal indicating a weight stored in the non-volatile memory cell.

28. The method of claim 15 , further comprising:

converting a set of weight digital bits into an analog voltage;

determining a third read current of the non-volatile memory cell;

converting the third read current into a read voltage; and

comparing the analog voltage with the read voltage to generate a signal indicating a weight stored in the non-volatile memory cell.

29. A method of programming a non-volatile memory cell in a neural network, the method comprising

determining a first read current of the non-volatile memory cell;

when the first read current is greater than a target current, performing a programming tuning process to increase the number of electrons on a floating gate of the non-volatile memory cell, the programming algorithm comprising:

determining a programming voltage from a lookup table;

applying the programming voltage to a terminal of the non-volatile memory cell;

determining a second read current; and

repeating the applying and determining a second read current steps until the second read current of the non-volatile memory cell is less than the target current and greater than the target current minus a delta value.

30. The method of claim 29 , wherein the non-volatile memory cell is a split-gate memory cell.

31. The method of claim 29 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are evenly spaced.

32. The method of claim 29 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are unevenly spaced.

33. The method of claim 29 , further comprising:

converting a set of weight digital bits into an analog voltage;

converting the analog voltage into an analog current;

determining a third read current of the non-volatile memory cell; and

comparing the analog current with the third read current to generate a signal indicating a weight stored in the non-volatile memory cell.

34. The method of claim 29 , further comprising:

converting a set of weight digital bits into an analog voltage;

determining a third read current of the non-volatile memory cell;

converting the third read current into a read voltage; and

comparing the analog voltage with the read voltage to generate a signal indicating a weight stored in the non-volatile memory cell.

35. A method of programming a non-volatile memory cell in a neural network, the method comprising

determining a first read current of the non-volatile memory cell;

when the first read current is less than a target current, performing an erasing tuning process to decrease the number of electrons on a floating gate of the non-volatile memory cell, the erasing algorithm comprising:

determining an erasing voltage from a lookup table;

applying the erasing voltage to a terminal of the non-volatile memory cell;

determining a second read current; and

repeating the applying and determining a second read current steps until the second read current of the non-volatile memory cell is greater than the target current and less than the target current plus a delta value.

36. The method of claim 35 , wherein the non-volatile memory cell is a split-gate memory cell.

37. The method of claim 35 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are evenly spaced.

38. The method of claim 35 , wherein the non-volatile memory cell can be configured to store one of a plurality of weight level assignments that are unevenly spaced.

39. The method of claim 35 , further comprising:

converting a set of weight digital bits into an analog voltage;

converting the analog voltage into an analog current;

determining a third read current of the non-volatile memory cell; and

comparing the analog current with the third read current to generate a signal indicating a weight stored in the non-volatile memory cell.

40. The method of claim 35 , further comprising:

converting a set of weight digital bits into an analog voltage;

determining a third read current of the non-volatile memory cell;

converting the third read current into a read voltage; and

comparing the analog voltage with the read voltage to generate a signal indicating a weight stored in the non-volatile memory cell.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0335 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059357/0823 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059264/0384 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0238 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058214/0380 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0625 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
Continuity (3)
Continuation 15594439 · May 12, 2017
Provisional Application 62337760 · May 17, 2016
Related Publication 20200151543A1 · May 14, 2020