QC-LDPC Decoder Memory Bank Reordering for Parallel Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

LDPC decoders face limitations in maximizing parallel decoding operations due to hardware resource constraints, which affect the number of cycles required to process layers of quasi-cyclic LDPC codes, especially when columns of the codeword are not optimally assigned to memory banks.

Innovation Solution

The proposed solution involves a decoder circuit with reordering stages that rearrange the columns of the codeword based on the number of memory banks and the participation of columns in decoding, creating an extended base matrix to equalize column distribution across memory banks, thereby maximizing parallel decoding operations without increasing memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If columns of the codeword are assigned to memory banks in a simple sequential order, then the memory bank assignment is straightforward and simple, but the distribution of columns participating in decoding is uneven across memory banks, reducing parallel decoding efficiency

Engineering Contradiction:
Improveparallel decoding efficiencyVSAvoidmemory bank assignment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by reordering the columns of the codeword before storing them in memory banks. The reordering stage rearranges columns based on their participation in decoding operations, ensuring that columns requiring parallel processing are distributed across different memory banks in advance. This preliminary reorganization enables the memory banks to operate in parallel more efficiently during the decoding process, resolving the contradiction between simple assignment and decoding efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the number of parallel decoding operations is increased to improve throughput, then decoding speed increases, but the hardware resources required increase proportionally

Engineering Contradiction:
Improvedecoding throughputVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the decoding process into multiple stages: a reordering stage that prepares the codeword, a memory storage stage that distributes data, and a decoding stage that processes information. By segmenting the columns into different memory banks based on their decoding participation patterns, the system can process multiple columns in parallel using the same hardware resources, thereby increasing throughput without proportionally increasing hardware complexity.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If the codeword is stored in memory banks without reordering, then the memory access pattern is simple and fast, but the number of cycles required to complete a layer of decoding increases due to uneven column distribution

Engineering Contradiction:
Improvedecoding cycle timeVSAvoidreordering stage complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The reordering stage performs preliminary action by reorganizing the codeword columns before they are stored in memory banks. This reordering ensures that columns participating in the same decoding operations are distributed across different memory banks, allowing for more efficient parallel access during decoding. The one-time reordering operation reduces the total number of decoding cycles required, compensating for the additional complexity introduced by the reordering stage.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10727869B1Efficient method for packing low-density parity-check (LDPC) decode operations
Publication Date: 2020.07.28 XILINX INC
  • US10727869B1 patent drawing
  • US10727869B1 patent drawing
  • US10727869B1 patent drawing

AI summary

A decoder circuit includes an input to receive a first codeword encoded based on a quasi-cyclic low-density parity-check (QC LDPC) code and a plurality of memory banks to store the received codeword. Each column of the received codeword is assigned to one of the plurality of memory banks based at least in part on an order of the plurality of columns in the received codeword. A first reordering stage is to change the memory bank assignment for one or more of the plurality of columns by reordering the columns in the received codeword. An LDPC decoder is to decode the reordered codeword stored in the plurality of memory banks based at least in part on the QC LDPC code. A second reordering stage is to output the decoded codeword from the plurality of memory banks based at least in part on an order of the columns in the first codeword.