Flash Memory Partitioning With Adaptive ECC for Random Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory systems, particularly MLC flash memory, face a challenge in balancing error correction code reliability with performance, as long code words provide better error correction but incur unacceptable latencies, especially for small data chunks, and different pages exhibit varying error rates.

Innovation Solution

A method and system that partition the long-term memory into regions with different levels of ECC protection, directing data to appropriate partitions based on data type, using a controller to determine the data type and apply either a non-interleaved or interleaved ECC scheme, optimizing for random or sequential access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If long code words are used for error correction, then reliability and error correction capability are improved, but transfer and decoding times increase causing unacceptable latencies

Engineering Contradiction:
Improveerror correction capabilityVSAvoidtransfer and decoding time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the long-term memory into multiple partitions, each with different ECC protection levels. Frequently accessed data is stored in partitions with lower ECC protection (faster access), while less frequently accessed data is stored in partitions with higher ECC protection (better reliability). This segmentation resolves the contradiction by providing different ECC strengths for different data access patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic data migration between partitions based on access patterns. Data that was initially stored in high-protection partitions may be migrated to low-protection partitions when accessed frequently, and vice versa. This dynamic adjustment optimizes the balance between reliability and access speed over time.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If high density MLC flash memory is used to increase capacity, then storage capacity is improved, but error rates increase requiring stronger ECC protection

Engineering Contradiction:
Improvestorage capacityVSAvoiderror rate
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies different ECC protection levels to different partitions of the MLC flash memory based on local access patterns and data importance. Critical data receives stronger ECC protection while less critical data receives weaker protection, optimizing the overall system reliability without unnecessarily protecting all data at the highest level.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If different pages of a word line are used for storage, then storage capacity is improved, but different pages exhibit different reliabilities making consistent error correction difficult

Engineering Contradiction:
Improvestorage capacityVSAvoidpage error rate consistency
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments data across different partitions with different ECC configurations based on access patterns. By grouping pages with similar access characteristics into the same partition and applying appropriate ECC strength, the system handles page reliability variations more effectively.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8910017B2Flash memory with random partition
Publication Date: 2014.12.09 SANDISK TECHNOLOGIES LLC
  • US8910017B2 patent drawing
  • US8910017B2 patent drawing
  • US8910017B2 patent drawing

AI summary

A system and method for partitioning data in long term memory of a flash memory device is disclosed. The method may include the steps of identifying a type of data that has been received and routing the data to one of at least two partitions in the long term memory array. One partition of the flash memory device may be optimized for random data while another is optimized for sequential data. The method includes identifying the type of data and routing the data to the appropriate partition. Data may be analyzed and routed upon receipt or initially stored in a default partition and later analyzed and routed to another partition. The partition for random data may be configured for storing data using a first level of ECC protection while the second may be configured for storing data using a second, stronger level of ECC protection.