Memory Controller ECC Segmentation for Storage Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory systems face challenges in reducing the error correction code (ECC) ratio in non-volatile memory, leading to increased storage overhead and efficiency issues.

Innovation Solution

A memory system that encodes data into non-volatile memory using a first error correction code, stores it in volatile memory, and subsequently generates a smaller second error correction code for non-volatile storage, reducing ECC size and storage overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a first error correction code is generated and stored in non-volatile memory to ensure data reliability, then the reliability of data storage is improved, but the ECC ratio increases leading to reduced storage efficiency

Engineering Contradiction:
Improvedata storage reliabilityVSAvoidstorage efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The error correction code is segmented into two parts: a first ECC generated and stored in volatile memory during normal operation, and a second ECC generated only when non-volatization is requested. This segmentation allows the system to maintain reliability through the first ECC while avoiding the storage overhead of a complete ECC in non-volatile memory during normal operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first error correction code is generated in advance and stored in volatile memory before any potential data loss scenario occurs. This preliminary action ensures that data can be recovered if power is lost, without requiring a second ECC to be stored in non-volatile memory, thus maintaining storage efficiency while ensuring reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If error correction code is stored in non-volatile memory to protect against power loss, then data reliability is improved, but the amount of useful storage space decreases

Engineering Contradiction:
Improvepower loss protectionVSAvoiduseful storage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Volatile memory serves as an intermediary storage medium that holds the first ECC during normal operations, eliminating the need to store ECC in non-volatile memory. When power loss protection is needed, the system generates a second ECC specifically for non-volatile storage. This intermediary approach allows the system to maintain power loss protection while maximizing useful storage space in non-volatile memory.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If a smaller second error correction code is generated for non-volatile storage, then storage efficiency is improved, but the complexity of the error correction system increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiderror correction system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The error correction system dynamically adapts its behavior based on operational context: during normal operation, it uses only the first ECC stored in volatile memory; when non-volatization is requested, it generates and stores a second ECC in non-volatile memory. This dynamic approach allows the system to optimize storage efficiency while managing complexity through context-dependent operation rather than a permanently complex dual-ECC architecture.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11789643B2Memory system and control method
Publication Date: 2023.10.17 KIOXIA CORP
  • US11789643B2 patent drawing
  • US11789643B2 patent drawing
  • US11789643B2 patent drawing

AI summary

According to one embodiment, a memory system includes non-volatile memory and volatile memory. A controller encodes a first unit size data portion to be written into the non-volatile memory and generates a first error correction code for the data portion, then writes the data portion into the non-volatile memory. The controller also stores the first error correction code in the volatile memory. When non-volatilization of an error correction code protect the data portion is requested, the controller encodes the data portion to generate a second error correction code for the data portion, and then writes the second error correction code into the non-volatile memory. The second error correction code is smaller in size than the first error correction code.