Interleaved Two-Pass Memory Cell Programming for Threshold Precision

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face challenges in precisely programming threshold voltages of memory cells to store multiple bits of data, leading to inaccurate data retrieval due to wide regions of threshold distribution and increased programming time.

Innovation Solution

A two-pass programming technique is employed, where a memory cell is initially coarsely programmed to a wide region and then finely tuned to a narrow region, using a group indicator to reduce the number of possible threshold levels and eliminate overlaps, allowing for accurate data retrieval with reduced resources and increased storage capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a single-pass programming technique is used to program memory cells, then programming time is reduced, but threshold voltage precision deteriorates leading to wide threshold distribution regions

Engineering Contradiction:
Improveprogramming timeVSAvoidthreshold voltage precision
Core Design Contradiction:
Loss of timeVSManufacturing precision

Solution Approach 1:

The programming operation is divided into two distinct passes: a first pass that performs coarse programming to establish initial threshold voltage regions, and a second pass that performs fine programming to precisely adjust threshold voltages within those regions. This segmentation allows each pass to be optimized independently, with the first pass prioritizing speed and the second pass prioritizing precision, thereby resolving the contradiction between programming time and threshold voltage precision.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first pass of programming performs a preliminary coarse programming operation that establishes initial threshold voltage regions before the second pass refines these regions. This preliminary action creates a foundation that reduces the complexity of the second pass, allowing for precise threshold voltage adjustment without requiring the entire programming operation to be performed at high precision from the beginning, thus reducing overall programming time while maintaining precision.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If multiple bits are stored per memory cell using coarse programming, then storage capacity increases, but data retrieval accuracy deteriorates due to overlapping threshold regions

Engineering Contradiction:
Improvestorage capacityVSAvoiddata retrieval accuracy
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The threshold voltage range is segmented into multiple discrete levels, with each level representing a specific bit value. The first pass programs memory cells to these discrete levels, and the second pass refines the threshold voltages within each level to eliminate overlaps. This segmentation allows multiple bits to be stored per cell while maintaining distinct, non-overlapping threshold regions for accurate data retrieval.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second pass of programming uses feedback from the first pass to adjust and refine threshold voltages. By measuring the actual threshold voltage distribution after coarse programming and using this feedback to guide the fine programming adjustments, the system eliminates overlapping regions and ensures accurate data retrieval while maintaining high storage capacity through multi-bit per cell operation.

Inventive Principle:
Principle #23Feedback

3Speed

If threshold voltage regions are widened to accommodate coarse programming, then programming speed increases, but read errors increase due to insufficient distinction between adjacent levels

Engineering Contradiction:
Improveprogramming speedVSAvoidread accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The programming process is segmented into two stages: coarse programming that rapidly establishes broad threshold voltage regions for high speed, and fine programming that narrows these regions to eliminate overlaps and ensure accurate reading. This segmentation allows the system to achieve both high programming speed in the first pass and high read accuracy in the second pass by optimizing each stage for its specific requirement.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first pass performs a preliminary coarse programming operation that quickly establishes initial threshold voltage regions, prioritizing speed. The second pass then uses this preliminary structure to perform targeted fine programming adjustments that narrow the regions and eliminate overlaps, ensuring read accuracy. This preliminary action allows the system to achieve high speed without sacrificing accuracy, as the fine programming refines the coarse structure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11462265B2Reading memory cells coarsely programmed via interleaved two-pass data programming techniques
Publication Date: 2022.10.04 MICRON TECHNOLOGY INC
  • US11462265B2 patent drawing
  • US11462265B2 patent drawing
  • US11462265B2 patent drawing

AI summary

A memory system to store multiple bits of data in a memory cell. After receiving the data bits, a memory device coarsely programs a threshold voltage of the memory cell to a first level representative of a combination of values of the data bits according to a mapping between combinations of values of bits and threshold levels. The threshold levels are partitioned into a plurality of groups, each containing a subset of the threshold levels. XOR (or XNOR) is used to combine the data bits into bits of a group identification of a first group, among the plurality of groups, that contains the first level. The memory device reads, using the group identification, the data bits back from the first memory cell to finely program the threshold voltage of the memory cell to represent the data bits.