Parity Buffer Reuse for Volatile Memory Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing semiconductor memory systems face challenges in efficiently using volatile memory for parity data, leading to limited capacity and increased costs due to the need for efficient error correction and data recovery, especially in systems prone to errors where ECC codeword decoding may fail.
Innovation Solution
Implementing a smart re-use of a parity buffer in volatile memory, where primary and secondary parity data are accumulated and reused, allowing for efficient use of volatile memory by replacing primary parity with recovery data and computing secondary parity from existing buffer contents, enabling parallel programming of parity data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If volatile memory is used to store parity data for error correction, then error correction capability is improved, but memory cost and complexity increase due to limited volatile memory capacity
Solution Approach 1:
The parity buffer is divided into multiple segments or portions, allowing different types of parity data (primary parity, secondary parity, recovery data) to be stored in different segments. This segmentation enables efficient utilization of limited volatile memory capacity while maintaining comprehensive error correction capabilities.
Solution Approach 2:
The system dynamically replaces parity data in the buffer based on operational needs. Primary parity data is replaced with secondary parity or recovery data when the buffer is full, and previously replaced parity data can be recovered from non-volatile memory when needed. This discarding and recovering approach allows the system to maintain error correction capability with limited volatile memory.
2Reliability
If more volatile memory is allocated for parity data storage, then data recovery capability is improved, but system cost increases
Solution Approach 1:
The parity buffer in volatile memory is designed to serve multiple functions: storing primary parity data, storing secondary parity data, and storing recovery data. This multi-functionality allows the system to achieve comprehensive data recovery capability without proportionally increasing volatile memory capacity, thereby reducing system cost.
Solution Approach 2:
The system pre-computes and stores multiple types of parity data (primary and secondary) in the buffer before actual data recovery is needed. This preliminary action ensures that when errors occur, the system can immediately use the pre-computed parity data for recovery without requiring additional computation time or memory resources.
3Productivity
If primary parity is replaced with recovery data in the buffer, then memory utilization is improved, but error correction complexity increases
Solution Approach 1:
The error correction system is designed to automatically determine which type of parity data is needed and retrieve it from the appropriate location. The controller autonomously manages the replacement of primary parity with recovery data in the buffer and handles the complexity of coordinating between volatile and non-volatile memory without requiring external intervention, thereby maintaining productivity while managing complexity.
Data Source
AI summary
Technology is disclosed herein for efficient use of volatile memory that is used for accumulating parity data of user data being written to non-volatile memory cells. A memory controller may replace primary parity in a first portion of a parity buffer with data other than primary parity while a second portion of the buffer is still being used to store the primary parity. Therefore, the memory controller smartly re-uses the parity buffer, which makes efficient use of the volatile memory. In one aspect, a memory controller accumulates secondary parity for the user data in a first portion of the parity buffer while a second portion of the parity buffer is still being used to store the primary parity. The memory controller may compute the secondary parity from present content of the first portion of the parity buffer and primary parity presently stored in the second portion of the buffer.


