Memory Controller ECC Segmentation for Storage Efficiency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


