Adaptive Flash Memory Programming via Row-Specific Parameter Tuning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional flash memory devices face inefficiencies in programming due to varying degradation states and cycle counts across different rows and sectors, leading to inconsistent programming quality and increased programming time.

Innovation Solution

The method involves adaptive programming techniques, including Incremental Step pulse Programming and row-based adaptive programming, where programming parameters are adjusted based on situational characteristics such as degradation state, cycle count, and row-specific characteristics to optimize programming efficiency and accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If conventional uniform programming is applied to all flash memory units, then the programming process is simple to implement, but programming quality becomes inconsistent across different rows and sectors

Engineering Contradiction:
Improveprogramming quality consistencyVSAvoidprogramming process complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by dividing the flash memory into multiple rows and sectors, then applying different programming parameters (such as different pulse voltages, pulse widths, or number of pulses) to different rows or sectors based on their specific degradation states and cycle counts. This ensures each region is programmed with optimal parameters tailored to its condition, improving programming quality consistency across the entire device.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamics by making the programming parameters adaptive and variable rather than fixed. The programming parameters are dynamically adjusted based on real-time or pre-characterized degradation states and cycle counts of different rows and sectors. This dynamic adaptation allows the programming process to respond to varying conditions across the flash memory device.

Inventive Principle:
Principle #15Dynamics

2Productivity

If adaptive programming parameters are adjusted for each row and sector, then programming efficiency is improved, but the complexity of controlling the programming process increases

Engineering Contradiction:
Improveprogramming efficiencyVSAvoidprogramming control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-characterizing the degradation states and cycle counts of different rows and sectors before the actual programming operation. This pre-characterization data is stored and used to determine the appropriate programming parameters in advance, so that when programming is needed, the optimal parameters are already selected, reducing the real-time control complexity while maintaining high efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service by enabling the flash memory device to automatically select and apply appropriate programming parameters based on its own internal state (degradation and cycle count). The device uses its own stored characterization data to make programming decisions without requiring complex external control, thereby improving efficiency while managing complexity through self-autonomy.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If programming parameters are optimized for each flash memory unit, then programming accuracy is enhanced, but the time required for programming increases

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

Solution Approach 1:

The patent applies partial or excessive action by selectively applying detailed adaptive programming only to those rows or sectors that require it based on their degradation states and cycle counts. For regions with similar or mild characteristics, simplified or uniform programming parameters may be used, avoiding the full overhead of adaptive programming everywhere. This selective approach maintains accuracy where needed while reducing overall programming time.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments the flash memory device into multiple independent rows and sectors that can be programmed separately with different parameters. This segmentation allows parallel processing where multiple rows or sectors are programmed simultaneously with their respective optimized parameters, thereby maintaining high programming accuracy for each segment while reducing total programming time through parallel execution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8799563B2Methods for adaptively programming flash memory devices and flash memory systems incorporating same
Publication Date: 2014.08.05 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8799563B2 patent drawing
  • US8799563B2 patent drawing
  • US8799563B2 patent drawing

AI summary

A method for programming data into a first plurality of rows within a second plurality of erase sectors of a flash memory device using a programming process having at least one selectable parameter, the method includes characterizing each of at least one row subsets, each row subset comprising at least one row from among said first plurality of rows, thereby to generate at least one row subset characteristic value; and programming data into at least a portion of at least one individual row belonging to at least one row subset, using a programming process having at least one selectable parameter, said at least one selectable parameter being set at least partly in accordance with the row subset characteristic value characterizing a row subset to which said individual row belongs; wherein at least two row subsets of an array of flash memory cells differ from each other by their row subset characteristic values.