Memory Controller Parity Allocation for Non-Volatile Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory systems face challenges in efficiently processing and storing data, leading to operational complexity and performance degradation, which affects the durability and performance of non-volatile memory devices.

Innovation Solution

A memory system that generates parity entries for multiple data entries and determines the location for storing these parity entries, using a controller to allocate memory blocks based on program-erase cycles and update map data to optimize data storage and retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is stored in non-volatile memory devices, then data storage capacity is improved, but operational complexity and performance degradation occur

Engineering Contradiction:
Improvedata storage capacityVSAvoidoperational complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The memory system is divided into multiple memory channels, each handling independent data operations. The controller segments data processing tasks across multiple channels, allowing parallel operation and reducing the operational complexity of managing large storage capacity.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If data is stored in non-volatile memory devices, then data storage capacity is improved, but performance degradation occurs

Engineering Contradiction:
Improvedata storage capacityVSAvoidperformance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Multiple memory channels operate in parallel to handle data read/write operations simultaneously. This segmentation of storage operations across channels maintains high performance while providing large aggregate storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary data processing and parity generation before data is written to memory channels. This preliminary action prepares data in advance, reducing the time required during actual write operations and maintaining performance despite large storage capacity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If parity entries are generated for multiple data entries, then data reliability is improved, but processing complexity increases

Engineering Contradiction:
Improvedata reliabilityVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Parity generation is segmented into individual operations for each memory channel. Each channel generates its own parity entries independently, distributing the processing complexity across multiple units rather than requiring complex centralized processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each memory channel autonomously generates and manages its own parity entries without requiring complex coordination with other channels. This self-service approach to parity generation improves data reliability while keeping processing complexity manageable at the channel level.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12242731B2Apparatus and method for recovering data in a memory system
Publication Date: 2025.03.04 SK HYNIX INC
  • US12242731B2 patent drawing
  • US12242731B2 patent drawing
  • US12242731B2 patent drawing

AI summary

A memory system includes a memory device and a controller. The memory device includes a plurality of memory blocks for storing or outputting plural data entries and a first parity entry associated with the plural data entries. The controller a second parity entry based on a part of the plural data entries, an updated data entry which renews the part of the plural data entries, and the first parity entry, in response to an update event regarding the part of the plural data entries, allocate, for storing the second parity entry, a first memory block having least program-erase cycles among the plurality of memory blocks, allocate, for storing the updated data entry, a second memory block storing the first parity entry, and control the memory device to program the updated data entry and the second parity entry in the first memory block and the second memory block.