DAC Nonlinearity Compensation in Flash Memory Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory devices face challenges in maintaining precise control of program voltage due to nonlinearities in digital-to-analog converters, leading to inconsistent programming and potential over-programming or extended programming times.

Innovation Solution

The method involves using a digital-to-analog converter to provide series of program voltage pulses, identifying code words with nonlinear correspondence, and adjusting the pulses or programming speed to correct nonlinearities, thereby ensuring accurate programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a digital-to-analog converter is used to provide program voltage pulses, then programming speed is improved, but nonlinearities in voltage correspondence cause manufacturing precision degradation

Engineering Contradiction:
Improveprogramming speedVSAvoidprogram voltage control precision
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent pre-characterizes the nonlinear correspondence between code words and program voltages during manufacturing or initialization. Correction data is stored in advance to compensate for the nonlinearities, allowing the system to operate at high speed without real-time calibration while maintaining precise voltage control.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent modifies the code word sequence based on pre-measured nonlinear characteristics of the digital-to-analog converter. By adjusting which code words are applied and when, the system compensates for voltage nonlinearities while maintaining fast programming speeds through the use of lookup tables and pre-computed correction data.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If program voltage pulses are applied with fixed step sizes, then device complexity is reduced, but programming precision deteriorates due to nonlinear DAC response

Engineering Contradiction:
Improveprogramming control complexityVSAvoidthreshold voltage programming precision
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The system pre-determines the nonlinear characteristics of the digital-to-analog converter and stores correction data in lookup tables. This allows the programming controller to use simple fixed-step code word sequences while automatically applying nonlinear compensation, thereby maintaining both low complexity and high precision.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary correction layer between the simple fixed-step code word generator and the digital-to-analog converter. This intermediary uses pre-stored correction data to translate simple code words into precisely compensated voltage steps, eliminating the need for complex real-time control algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Manufacturing precision

If verification operations are performed between each program pulse, then programming precision is improved, but programming time increases

Engineering Contradiction:
Improveprogramming accuracyVSAvoidprogramming time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent pre-characterizes the voltage-nonlinear-to-threshold-voltage relationship during manufacturing or initialization. This pre-computed correction data allows the system to predict the final threshold voltage outcome of pulse sequences, enabling reduced verification frequency while maintaining programming accuracy and reducing overall programming time.

Inventive Principle:
Principle #10Preliminary action

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

This approach effectively corrects nonlinearities in program voltage, ensuring precise control and efficient programming without over-programming, thereby improving the reliability and speed of data storage in non-volatile memory devices.

Implementation Method 1

where a digital-to-analog converter is used to provide the series of program voltage pulses in response to code words which are input to the digital-to-analog converter

Methodology Applied
Scientific EffectDigital-to-Analog Conversion:

Implementation Method 2

VPGM can be applied to the control gates of flash memory elements. In the periods between the program pulses, verify operations are carried out.

Methodology Applied
Scientific EffectField emission:

Implementation Method 3

When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory element is raised

Methodology Applied
Scientific EffectCharge accumulation:

Data Source

PatentUS7577034B2Reducing programming voltage differential nonlinearity in non-volatile storage
Publication Date: 2009.08.18 SANDISK TECHNOLOGIES LLC
  • US7577034B2 patent drawing
  • US7577034B2 patent drawing
  • US7577034B2 patent drawing

AI summary

A corrective action is taken to adjust for nonlinearities in a program voltage which is applied to a selected word line in a memory device. The nonlinearities result in a non-uniform program voltage step size which can cause over programming or slow programming. A digital to analog converter (DAC) which provides the program voltages can have a nonlinear output, such as when certain code words are input to the DAC. The memory device can be tested beforehand to determine where the nonlinearities occur, and configured to take corrective action when the corresponding code words are input. For example, the DAC may have a nonlinear output when a rollover code word is input, e.g., a when a string of least significant bits in successive code words change from 1's to 0's. The corrective action can include repeating a prior program pulse or adjusting a duration of a program pulse.