Precise Floating-Gate Charge Programming for Neural Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing artificial neural networks face challenges in programming non-volatile memory cells with the required precision and granularity for analog neuromorphic memory systems, particularly in vector-by-matrix multiplication arrays, due to the need for precise and efficient charge deposition on floating gates.
Innovation Solution
A precision programming algorithm and apparatus are developed to accurately and quickly deposit the correct amount of charge on the floating gate of non-volatile memory cells within a vector-by-matrix multiplication array, enabling precise programming of memory cells to hold one of N different values.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If conventional programming methods are used for non-volatile memory cells, then the programming process is simpler, but the precision and granularity of charge deposition on floating gates is insufficient for analog neuromorphic memory requirements
Solution Approach 1:
The programming process is divided into multiple stages: a coarse programming phase that quickly establishes approximate weight values, followed by a fine-tuning phase that achieves precise analog values. This segmentation allows the system to balance speed and precision requirements without requiring a single complex programming mechanism.
Solution Approach 2:
The programming algorithm dynamically adjusts the programming voltage and pulse width based on the current state of the memory cell and the desired target weight. This dynamic control enables precise charge deposition by adapting the programming parameters in real-time during the tuning process.
2Manufacturing precision
If high precision programming is implemented for each memory cell, then the accuracy of synapse weights is improved, but the time and energy required for programming increases significantly
Solution Approach 1:
The programming process is divided into multiple stages: a coarse programming phase that quickly establishes approximate weight values, followed by a fine-tuning phase that achieves precise analog values. This segmentation allows the system to balance speed and precision requirements without requiring a single complex programming mechanism.
Solution Approach 2:
The algorithm applies partial programming actions in iterative steps rather than attempting to achieve the final precise value in a single action. Each programming pulse deposits a controlled amount of charge, and the process is repeated with progressively smaller adjustments until the target precision is achieved, reducing total programming time.
3Manufacturing precision
If high precision programming is implemented for each memory cell, then the accuracy of synapse weights is improved, but the energy consumption during programming increases
Solution Approach 1:
The programming process is divided into multiple stages: a coarse programming phase that quickly establishes approximate weight values, followed by a fine-tuning phase that achieves precise analog values. This segmentation allows the system to balance speed and precision requirements without requiring a single complex programming mechanism.
Solution Approach 2:
The algorithm applies partial programming actions in iterative steps rather than attempting to achieve the final precise value in a single action. Each programming pulse deposits a controlled amount of charge, and the process is repeated with progressively smaller adjustments until the target precision is achieved, reducing total programming time.
4Measurement precision
If the number of different weight values (N) that each memory cell can hold is increased, then the computational precision of the neural network is improved, but the difficulty of programming and tuning the cells increases
Solution Approach 1:
The algorithm applies partial programming actions in iterative steps rather than attempting to achieve the final precise value in a single action. Each programming pulse deposits a controlled amount of charge, and the process is repeated with progressively smaller adjustments until the target precision is achieved, reducing total programming time.
Solution Approach 2:
The tuning process uses feedback from read operations to verify the current weight value of each memory cell and compare it against the target value. Based on this feedback, the algorithm adjusts subsequent programming pulses to converge on the desired precision, making high-resolution programming manageable through iterative correction.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
The solution allows for precise and efficient programming of non-volatile memory cells, enhancing the performance and energy efficiency of artificial neural networks by enabling fine-tuning of synapse weights, reducing computational complexity, and minimizing energy consumption.
Implementation Method 1
Each of the plurality of memory cells is configured to store a weight value corresponding to a number of electrons on the floating gate
Implementation Method 2
precisely and quickly depositing the correct amount of charge on the floating gate of a non-volatile memory cell
Data Source
Figure 1
Figure 2~3
Figure 4~5
AI summary
Numerous embodiments of a precision programming algorithm and apparatus are disclosed for precisely and quickly depositing the correct amount of charge on the floating gate of a nonvolatile 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.