Deterministic Memory Programming via Voltage Subgrouping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices face inefficiencies in programming speed and final voltage distribution, leading to variations in programming time among memory elements, which affects reliability, density, and efficiency.
Innovation Solution
The implementation of deterministic programming techniques, where memory elements are divided into subgroups based on current threshold voltage levels, allowing for tailored program pulses and verify levels to ensure all elements reach the target voltage efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the same program pulse is applied to all memory elements in a group, then the programming process is simple to control, but some memory elements are programmed more quickly than others, requiring additional time to program slower elements
Solution Approach 1:
The patent divides a group of memory elements into multiple subgroups based on their current threshold voltage levels. Each subgroup receives a tailored program pulse optimized for its specific voltage range, allowing faster programming of all elements simultaneously rather than waiting for the slowest element in a uniform group.
Solution Approach 2:
The patent applies different program pulse characteristics (amplitude, width, or shape) to different subgroups of memory elements based on their individual or group-specific threshold voltage levels. This localized optimization ensures each subgroup is programmed at its optimal speed without affecting other subgroups.
2Manufacturing precision
If multiple programming pulses are applied to reach the target threshold voltage level, then memory elements can be programmed to the desired state, but the programming time varies significantly among different memory elements
Solution Approach 1:
The patent performs a preliminary read operation to determine the current threshold voltage level of each memory element or subgroup before applying program pulses. This preliminary information is used to pre-calculate and apply the appropriate number and strength of program pulses, eliminating the need to wait for slower elements during iterative programming cycles.
Solution Approach 2:
The patent implements a feedback mechanism where the current threshold voltage level of memory elements is measured, and this information is used to dynamically adjust the program pulse parameters. This closed-loop control ensures that each memory element receives the precise amount of programming needed to reach the target voltage level without over-programming or unnecessary waiting time.
3Productivity
If memory elements are programmed with loose voltage distributions, then programming is faster, but reliability and density of the memory are reduced
Solution Approach 1:
The patent dynamically adjusts program pulse parameters (amplitude, width, shape) based on the specific threshold voltage level and distribution characteristics of each subgroup of memory elements. This parameter optimization allows the system to achieve tight voltage distributions and high programming speed simultaneously by matching the pulse characteristics to the specific needs of each subgroup.
Data Source
AI summary
Systems, methods, and devices that employ deterministic programming techniques to facilitate efficient programming of memory elements in a memory are presented. A memory component comprises an optimized program component that can divide a group of memory elements selected for programming into a desired number of subgroups based in part on respective current threshold voltage levels (Vt) of the memory elements; apply respective program pulses to each memory element in respective subgroups; measure respective Vt levels of memory elements after the pulse; and verify as passed memory elements that meet a target Vt. The optimized program component can divide a subset of memory elements that do not meet the target Vt into a desired number of subgroups based in part on respective current Vt levels of the memory elements and can continue to perform this deterministic programming process until all memory elements are verified as passing for the target Vt.


