Non-volatile Memory Error Correction Code Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile memory systems face challenges in ensuring data integrity and reliability over time, particularly in maintaining atomicity during transactions, where error correction mechanisms need to prevent intermediate states of data storage.

Innovation Solution

A method and system for managing non-volatile memory that selects an error detection and correction code based on the type of information being written, allowing for high or low integrity levels, enabling efficient error correction and improved reliability by associating the information with the selected code during the writing process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single error correction code is used for all data types, then the system is simple to implement, but data reliability and security cannot be optimized for different information types

Engineering Contradiction:
Improvedata reliabilityVSAvoiderror correction system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the error correction mechanism by implementing multiple error correction codes (first EDC and second EDC) with different strength levels. The system divides data into different types (sensitive vs. non-sensitive) and applies appropriate EDC levels accordingly, rather than using a uniform approach. This segmentation allows optimization of reliability for critical data while maintaining simplicity for less critical data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making the error correction capability vary according to the specific data being stored. Sensitive data receives stronger error correction (first EDC) while non-sensitive data uses weaker correction (second EDC). This localized adaptation of correction strength to data-specific requirements optimizes overall system reliability without uniformly increasing complexity across all operations.

Inventive Principle:
Principle #3Local quality

2Reliability

If strong error correction is applied to all data, then data security and atomicity are improved, but storage efficiency and writing speed decrease

Engineering Contradiction:
Improvedata atomicityVSAvoidwriting speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements partial action by applying strong error correction (first EDC) only to sensitive data that requires high atomicity guarantees, while using weaker correction (second EDC) for non-sensitive data. This selective application ensures that writing speed is maintained for data types that don't require maximum reliability, while still providing enhanced protection where needed.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If error correction codes are selected automatically by the system, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveease of useVSAvoidcontroller complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling the memory controller to automatically determine the sensitivity level of data being written and select the appropriate error correction code without requiring manual configuration or user intervention. The system autonomously classifies data and applies the correct EDC level, making the enhanced reliability features transparent to users while maintaining operational simplicity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11669392B2Non-volatile memory
Publication Date: 2023.06.06 STMICROELECTRONICS BELGIUM
  • US11669392B2 patent drawing

AI summary

A method of managing a non-volatile memory includes during a data writing process, selecting, by a program triggering the data writing process, an error detection and correction code from among two codes depending on a type of information being written. The information is written into the non-volatile memory, where the information is associated with the selected error detection and correction code.