Flash Memory Controller Data Shaping for MLC Error Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

MLC Flash memories in portable devices face issues with unstable characteristics, leading to write/program errors and read errors due to specific data patterns, and challenges in generating an input seed for randomization, which affects data access control and internal data moving operations.

Innovation Solution

A method for data shaping is implemented in a Flash memory controller, where an input seed for a randomizer/derandomizer is generated based on the data content, allowing the controller to adjust data bits using a random function, thereby reducing error probability and ensuring correct seed generation during internal data operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If MLC Flash memories are used to increase storage capacity and reduce cost, then storage density and cost-effectiveness are improved, but data stability and error rate are worsened

Engineering Contradiction:
Improvestorage capacityVSAvoiddata stability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies preliminary action by performing data shaping before data is written to the MLC Flash memory. The controller analyzes the data pattern and applies appropriate shaping techniques (such as DC balancing, transition insertion, or run-length limiting) to modify the data sequence in advance. This prevents problematic data patterns from causing write errors or read failures, thereby improving data stability while maintaining the high storage capacity benefits of MLC technology.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If conventional low cost randomizer design is used, then device complexity is reduced, but data randomness and error suppression are insufficient

Engineering Contradiction:
Improverandomizer design complexityVSAvoiderror suppression capability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent employs parameter changes by dynamically adjusting the randomizer's operation parameters based on the input data characteristics. Instead of using a fixed, simple randomizer design, the system modifies parameters such as the seed value, randomization algorithm selection, or transformation intensity according to the specific data pattern being processed. This allows the randomizer to achieve better error suppression performance without requiring a fundamentally more complex device architecture.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If internal data moving operations are performed in Flash memory, then data management flexibility is improved, but seed generation correctness is worsened due to inability to correctly generate input seed

Engineering Contradiction:
Improvedata management flexibilityVSAvoidseed generation correctness
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent introduces an intermediary component - a dedicated seed generation module or seed management mechanism - that mediates between the internal data moving operations and the randomizer. This intermediary ensures that correct seeds are generated and maintained even during internal data operations such as wear leveling, bad block management, or data relocation. The intermediary seed management system prevents corruption of seed values and ensures the randomizer continues to function correctly throughout various data management operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8782329B2Method for performing data shaping, and associated memory device and controller thereof
Publication Date: 2014.07.15 SILICON MOTION INC
  • US8782329B2 patent drawing
  • US8782329B2 patent drawing
  • US8782329B2 patent drawing

AI summary

A method for performing data shaping is provided. The method is applied to a controller of a Flash memory, where the Flash memory includes a plurality of blocks. The method includes: according to contents of data to be written into or read from the Flash memory, generating/recovering an input seed of at least one randomizer/derandomizer; and utilizing the randomizer/derandomizer to generate a random function according to the input seed, for use of adjusting a plurality of bits of the data bit by bit. An associated memory device and a controller thereof are also provided.