Flash Memory Controller Data Scrambling for MLC Error Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

MLC flash memories experience unstable characteristics, leading to write/program and read errors due to specific data patterns being constantly written to the same logical address, necessitating improved data pattern management mechanisms in flash memory controllers.

Innovation Solution

A method involving the use of a random seed to generate a random sequence for scrambling data and performing error correction encoding, resulting in a parity check code, which is stored in the flash memory to reduce error occurrence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is constantly written to the same logical address in MLC flash memory, then storage capacity is utilized efficiently, but write/program errors and read errors increase due to unstable characteristics and data pattern interference

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoiddata access reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies preliminary action by generating random sequences and performing error correction encoding before data is written to flash memory. The controller generates a random sequence, performs error correction encoding on the data using this random sequence, and stores both the encoded data and the random sequence. This preprocessing prevents data pattern interference before it occurs during storage, thereby maintaining data reliability even when constantly writing to the same logical addresses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses a random sequence as an intermediary between the original data and the stored data. This random sequence acts as a mediator that transforms the data pattern, preventing direct interference between repeated writes to the same location. The random sequence is generated by the controller, used to encode the data, and stored alongside the data so the controller can regenerate the same sequence for accurate data retrieval, thus maintaining reliability while allowing high storage utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If error correction encoding is performed without random sequence scrambling, then processing speed is maintained, but data pattern interference causes increased error occurrence

Engineering Contradiction:
Improveprocessing speedVSAvoiderror rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs error correction encoding as a preliminary action before data storage, using a random sequence that is generated and prepared in advance. This allows the encoding to be completed efficiently without adding significant processing delay, while still providing the benefit of pattern randomization that reduces errors. The random sequence is generated once and reused, maintaining processing speed while improving reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of data representation by introducing random sequences that transform the original data patterns. Instead of storing data in its original form, the data is encoded with random sequences that alter its pattern characteristics. This parameter change reduces data pattern interference and error occurrence while maintaining processing efficiency through optimized encoding operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8984373B2Method for accessing flash memory and associated flash memory controller
Publication Date: 2015.03.17 SILICON MOTION INC
  • US8984373B2 patent drawing
  • US8984373B2 patent drawing
  • US8984373B2 patent drawing

AI summary

An exemplary method for accessing a flash memory. The method comprising obtaining a first random sequence; utilizing the first random sequence as a first seed for generating a second random sequence, wherein the first random sequence is not equivalent to the second random sequence; scrambling data according to the second random sequence for generating scrambled data; performing an error correction encoding operation upon the first random sequence and the scrambled data for generating parity check code; and storing the scrambled data and the parity check code to the flash memory.