Adaptive Programming for Nonvolatile Memory Cell Levels
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current non-volatile memory technologies, such as flash memories and phase-change memories, face challenges in accurately programming multiple levels due to noise, cell heterogeneity, and the need for conservative programming approaches, which limit the number of data values that can be stored and the storage capacity of these devices.
Innovation Solution
An adaptive programming system that determines the maximum number of cell levels and associates specific sets of cell values with each level based on the physical properties of the memory device and the voltage applied, allowing for flexible configuration of cell levels and increased data storage capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conservative programming approach is used to avoid overshooting cell levels, then programming reliability is improved, but the number of configurable cell levels is limited
Solution Approach 1:
The patent implements dynamic cell level configuration where the number of cell levels is not fixed but adapts based on actual programming results. The system determines the maximum attainable cell level for each cell individually, allowing the memory device to flexibly utilize available programming ranges without being constrained by predetermined conservative level settings.
Solution Approach 2:
The system changes the parameter of cell level configuration from static to dynamic by measuring actual cell responses to programming voltages and adjusting the number of configurable levels accordingly. This allows the memory device to optimize between reliability and capacity by adapting parameters based on real-time cell performance data.
2Ease of operation
If fixed cell levels are used to represent data, then data storage simplicity is improved, but storage capacity is limited
Solution Approach 1:
The patent transitions from fixed cell levels to dynamic cell levels where each cell can have a different number of configurable levels based on its individual programming characteristics. This dynamic approach maintains the simplicity of level-based data representation while significantly increasing storage capacity by utilizing the full programming range of each cell.
3Productivity
If parallel programming is used to program cells, then programming speed is improved, but cell heterogeneity causes inaccurate programming
Solution Approach 1:
The patent applies local quality by treating each cell individually with its own determined maximum level and value set, rather than applying uniform programming parameters to all cells. This allows parallel programming to maintain speed while each cell receives customized programming parameters tailored to its specific characteristics, thereby improving accuracy.
Solution Approach 2:
The system incorporates feedback by measuring the actual cell values attained after programming and using this information to determine the maximum number of cell levels and associate appropriate value sets. This feedback mechanism enables the system to adjust programming parameters based on actual cell responses, improving accuracy while maintaining parallel programming efficiency.
Data Source
AI summary
A memory device having a plurality of cells, each of which stores a value, where the values of the cells are mapped to discrete levels and the discrete levels represent data, is programmed by determining a maximum number of cell levels in the memory device, and determining the set of values that are associated with each of the cell levels. The maximum number of cell levels for the memory device is determined by an adaptive programming system connected to the memory device, based on a plurality of cell values attained by at least one cell of the memory device, in response to voltage applied by the adaptive programming system to the cells of the memory device. The adaptive programming system associates, for each of the cell levels, a different set of cell values of the plurality of cell values attained by the cells to which voltage is applied. This technique increases the number of cell levels that can be configured in a memory device as compared with conventional techniques, and increases the number of data values that can be programmed into the cells of a memory device.


