IP Library Granted Patent US 10,741,568
Granted Patent B2
US 10,741,568 · App. 16/231,231 · Granted Aug 11, 2020

Precision tuning for the programming of analog neural memory in a deep learning artificial neural network

Inventors: Hieu Van Tran (San Jose, CA); Steven Lemke (Boulder Creek, CA); Vipin Tiwari (Dublin, CA); Nhan Do (Saratoga, CA); Mark Reiten (Alamo, CA)
Assignee: SILICON STORAGE TECHNOLOGY, INC.
H01L27/11531G06N3/08G11C16/0425H01L29/7883
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 10,741,568
App. No.
16/231,231
Granted
Aug 11, 2020
Kind
B2
Abstract

Numerous embodiments of a precision tuning algorithm and apparatus are disclosed for precisely and quickly depositing the correct amount of charge on the floating gate of a non-volatile memory cell within a vector-by-matrix multiplication (VMM) array in an artificial neural network. Selected cells thereby can be programmed with extreme precision to hold one of N different values.

Claims (116)

1. A method of programming a selected non-volatile memory cell to store one of N possible values, where N is an integer greater than 2, the selected non-volatile memory cell comprising a floating gate, the method comprising:

performing a coarse programming process comprising:

selecting one of M different current values as a first threshold current value, where M<N;

adding charge to the floating gate; and

repeating the adding step until a current through the selected non-volatile memory cell during a verify operation is less than or equal to the first threshold current value; and

performing a precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a second threshold current value.

2. The method of claim 1 , further comprising:

performing a second precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a third threshold current value.

3. The method of claim 1 , wherein the precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

4. The method of claim 1 wherein the precision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

5. The method of claim 2 , wherein the second precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

6. The method of claim 2 , wherein the second precision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

7. The method of claim 1 , wherein the selected non-volatile memory cell comprises a floating gate.

8. The method of claim 7 , wherein the selected non-volatile memory cell is a split-gate flash memory cell.

9. The method of claim 1 , wherein the selected non-volatile memory cell is in a vector-by-matrix multiplication array in an analog memory deep neural network.

10. The method of claim 1 , further comprising:

before performing the coarse programming process:

programming the selected non-volatile memory cell to a ‘0’ state; and

erasing the selected non-volatile memory cell to a weakly-erased level.

11. The method of claim 1 , further comprising:

before performing the coarse programming process:

erasing the selected non-volatile memory cell to a ‘1’ state; and

programming the selected non-volatile memory cell to a weakly-programmed level.

12. The method of claim 1 , further comprising:

performing a read operation on the selected non-volatile memory cell;

integrating the current drawn by the selected non-volatile memory cell during the read operation using an integrating analog-to-digital converter to generate digital bits.

13. The method of claim 1 , further comprising:

performing a read operation on the selected non-volatile memory cell;

converting the current drawn by the selected non-volatile memory cell during the read operation into digital bits using a sigma delta analog-to-digital converter.

14. A method of programming a selected non-volatile memory cell to store one of N possible values, where N is an integer greater than 2, the selected non-volatile memory cell comprising a floating gate and a control gate, the method comprising:

performing a coarse programming process comprising:

determining a slope value based on a change in voltage of the control gate of the selected non-volatile memory cell and a change in current drawn by the selected non-volatile memory cell;

determining a next programming voltage value based on the slope value;

adding an amount of charge from the floating gate of the selected non-volatile memory cell until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a first threshold current value; and

performing a precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a second threshold current value.

15. The method of claim 14 , further comprising:

performing a second precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a third threshold current value.

16. The method of claim 14 , wherein the precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

17. The method of claim 14 , wherein the precision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

18. The method of claim 15 , wherein the precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

19. The method of claim 15 , wherein the precision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

20. The method of claim 14 , wherein the step of determining a slope value comprises:

applying a programming voltage to the control gate of the selected non-volatile memory cell;

applying a first current through the selected non-volatile memory cell and determining a first voltage of the control gate;

applying a second current through the selected non-volatile memory cell and determining a second voltage of the control gate; and

calculating the slope value by dividing the difference between the second voltage and the first voltage by the difference between the second current and the first current.

21. The method of claim 14 , wherein the selected non-volatile memory cell is a split-gate flash memory cell.

22. The method of claim 14 , wherein the selected non-volatile memory cell is in a vector-by-matrix multiplication array in an analog memory deep neural network.

23. The method of claim 14 , further comprising:

before performing the coarse programming process:

programming the selected non-volatile memory cell to a ‘0’ state; and

erasing the selected non-volatile memory cell to a weakly-erased level.

24. The method of claim 14 , further comprising:

before performing the coarse programming process:

erasing the selected non-volatile memory cell to a ‘1’ state; and

programming the selected non-volatile memory cell to a weakly-programmed level.

25. The method of claim 14 , further comprising:

performing a read operation on the selected non-volatile memory cell;

integrating the current drawn by the selected non-volatile memory cell during the read operation using an integrating analog-to-digital converter to generate digital bits.

26. The method of claim 14 , further comprising:

performing a read operation on the selected non-volatile memory cell;

converting the current drawn by the selected non-volatile memory cell during the read operation into digital bits using a sigma delta analog-to-digital converter.

27. A method of programming a selected non-volatile memory cell to store one of N possible values, where N is an integer greater than 2, the selected non-volatile memory cell comprising a floating gate and a control gate, the method comprising:

performing a coarse programming process comprising:

applying a programming voltage to the control gate of the selected non-volatile memory cell;

repeating the applying step and increasing the programming voltage by an incremental voltage each time the applying step is performed until a current through the selected non-volatile memory cell during a verify operation is less than or equal to the threshold current value; and

performing a precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a second threshold current value.

28. The method of claim 27 , further comprising:

performing a precision programming process until a current through the selected non-volatile memory cell during a verify operation is less than or equal to a third threshold current value.

29. The method of claim 27 , wherein the precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

30. The method of claim 27 , wherein the prevision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

31. The method of claim 28 , wherein the precision programming process comprises applying voltage pulses of increasing magnitude to the control gate of the selected non-volatile memory cell.

32. The method of claim 28 , wherein the prevision programming process comprises applying voltage pulses of increasing duration to the control gate of the selected non-volatile memory cell.

33. The method of claim 27 , wherein the selected non-volatile memory cell comprises a floating gate.

34. The method of claim 33 , wherein the selected non-volatile memory cell is a split-gate flash memory cell.

35. The method of claim 27 , wherein the selected non-volatile memory cell is in a vector-by-matrix multiplication array in an analog memory deep neural network.

36. The method of claim 27 , further comprising:

before performing the coarse programming process:

programming the selected non-volatile memory cell to a ‘0’ state; and

erasing the selected non-volatile memory cell to a weakly-erased level.

37. The method of claim 27 , further comprising:

before performing the coarse programming process:

erasing the selected non-volatile memory cell to a ‘1’ state; and

programming the selected non-volatile memory cell to a weakly-programmed level.

38. The method of claim 27 , further comprising:

performing a read operation on the selected non-volatile memory cell;

integrating the current drawn by the selected non-volatile memory cell during the read operation using an integrating analog-to-digital converter to generate digital bits.

39. The method of claim 27 , further comprising:

performing a read operation on the selected non-volatile memory cell;

converting the current drawn by the selected non-volatile memory cell during the read operation into digital bits using a sigma delta analog-to-digital converter.

40. A method of reading a selected non-volatile memory cell storing one of N possible values, where N is an integer greater than 2, the method comprising:

applying digital input pulses to the selected non-volatile memory cell;

determining a value stored in the selected non-volatile memory cell based on an output of the selected non-volatile memory cell in response to each of the digital input pulses.

41. The method of claim 40 , wherein the number of digital input pulses corresponds to binary values.

42. The method of claim 40 , wherein the number of digital input pulses corresponds to digital bit position values.

43. The method of claim 40 , wherein the determining step comprises receiving an output neuron in an integrating analog-to-digital converter to generate digital bits indicating the value stored in the non-volatile memory cell.

44. The method of claim 40 , wherein the determining step comprises receiving an output neuron in an successive approximation register analog-to-digital converter to generate digital bits indicating the value stored in the non-volatile memory cell.

45. The method of claim 40 , wherein the output is current.

46. The method of claim 40 , wherein the output is charge.

47. The method of claim 40 , wherein the output is digital bits.

48. The method of claim 40 , wherein the selected non-volatile memory cell comprises a floating gate.

49. The method of claim 48 , wherein the selected non-volatile memory cell is a split-gate flash memory cell.

50. The method of claim 40 , wherein the selected non-volatile memory cell is in a vector-by-matrix multiplication array in an analog memory deep neural network.

51. A method of reading a selected non-volatile memory cell storing one of N possible values, where N is an integer greater than 2, the method comprising:

applying inputs to the selected non-volatile memory cell;

determining a value stored in the selected non-volatile memory cell based on an output of the selected non-volatile memory cell using an analog-to-digital converter circuit in response to the inputs.

52. The method of claim 51 , wherein the inputs are digital inputs.

53. The method of claim 51 , wherein the inputs are analog inputs.

54. The method of claim 51 , wherein the determining step comprises receiving an output neuron in an integrating single or dual slope analog-to-digital converter and generating digital bits indicating the value stored in the non-volatile memory cell.

55. The method of claim 51 , wherein the determining step comprises receiving an output neuron in an SAR analog-to-digital converter to generate digital bits indicating the value stored in the non-volatile memory cell.

56. The method of claim 51 , wherein the determining step comprises receiving an output neuron in an sigma delta analog-to-digital converter to generate digital bits indicating the value stored in the non-volatile memory cell.

57. The method of claim 51 , wherein the selected non-volatile memory cell comprises a floating gate.

58. The method of claim 51 , wherein the selected non-volatile memory cell is a split-gate flash memory cell.

59. The method of claim 51 , wherein the selected non-volatile memory cell is in a vector-by-matrix multiplication array in an analog memory deep neural network.

60. The method of claim 51 , wherein the selected non-volatile memory cell operates in sub-threshold region.

61. The method of claim 51 , wherein the selected non-volatile memory cell operates in linear region.

Assignments (16)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 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 060894/0437 →
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 →
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 059263/0001 →
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 →
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 →
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 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052856/0909 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2019
From: TRAN, HIEU VAN; LEMKE, STEVEN; TIWARI, VIPIN; DO, NHAN; REITEN, MARK
To: SILICON STORAGE TECHNOLOGY, INC.
Reel/Frame 049173/0756 →
Continuity (2)
Provisional Application 62746470 · Oct 16, 2018
Related Publication 20200119028A1 · Apr 16, 2020
Cited By (2)
US 12,200,926 US 12,530,561