Tapered Variable Node Memory for Multi-Rate LDPC Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems using Low Density Parity Check (LDPC) error correction coding face challenges in efficiently managing memory resources across varying code rates, leading to either inadequate protection or wasteful storage space, as different code rates require different encoder/decoder designs and memory allocations.
Innovation Solution
A system and method that includes a decoder with variable node memories and a processor to determine circulant size and number based on the code rate, allocating memory proportionally to store confidence values, with memory capacities tapering according to the position of variable nodes, optimizing memory usage across multiple code rates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If more redundancy (lower code rate) is added to improve error correction performance, then reliability improves, but storage space is wasted
Solution Approach 1:
The decoder dynamically configures the number of variable node memories and their memory capacities based on the detected code rate. This allows the system to adapt memory resources to the actual error correction needs, using more memory for lower code rates (higher redundancy) and less memory for higher code rates, thereby resolving the contradiction between reliability and storage space efficiency
Solution Approach 2:
The system changes the operational parameters of the memory subsystem by adjusting the number of active variable node memories and their capacity allocations according to the code rate. This parameter adaptation enables optimal balance between error correction performance and memory resource utilization for different coding scenarios
2Adaptability or versatility
If different encoder/decoder designs are implemented for different code rates, then adaptability improves, but device complexity increases
Solution Approach 1:
A single unified decoder design is created that can handle multiple code rates through dynamic configuration of variable node memories. The decoder uses a message buffer and processor that operate universally across different code rates, eliminating the need for separate encoder/decoder designs for each code rate while maintaining full adaptability
Solution Approach 2:
The decoder incorporates dynamic configuration capabilities where the number and capacity of variable node memories are adjusted based on the code rate being used. This dynamic adaptation allows one decoder design to serve multiple code rates, reducing device complexity while maintaining versatility
3Ease of manufacture
If fixed memory capacity is allocated to variable node memories, then ease of manufacture improves, but memory efficiency deteriorates across varying code rates
Solution Approach 1:
The system transitions from fixed memory capacity allocation to dynamic capacity allocation based on code rate. The processor determines the appropriate memory capacity for each variable node memory based on the detected code rate, allowing efficient memory utilization across different coding scenarios while maintaining manufacturing feasibility through standardized memory components
Data Source
AI summary
The subject technology provides a decoding solution that conserves variable node memory in Low Density Parity Check decoding operations, while supporting multiple choices of code rates. A decoder includes a plurality of variable node memories, with each of the variable node memories having a predetermined memory capacity based on a position of a respective variable node associated with the variable node memory relative to a first variable node in a series of variable nodes. The code rate determines how many of the variable node memories are used, and the size of the data stored in each memory. The capacity of the memories is predetermined so that, as the code rate and number of memories utilized by the decoder increases or decreases, utilization of the memory capacity of each variable node memory is maximized.


