Turbo Decoder ACS Pipeline for Faster Error Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Add-Compare-Select-Offset (ACSO) units in Turbo Code decoders face computational complexity bottlenecks, limiting speed and efficiency.

Innovation Solution

The proposed decoder architecture includes an add stage, compare stage, select stages, and control circuitry to manage initialization values, along with alpha and beta calculation units, memory, and a log likelihood ratio calculation block, optimizing the ACSO unit by pipelining and dividing calculations into sub-blocks to enhance processing speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional ACSO unit is used in Turbo Code decoder, then forward error correction capability is achieved, but computational complexity increases and processing speed is limited

Engineering Contradiction:
Improveforward error correction capabilityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The ACSO unit is divided into separate functional stages: add stage, compare stage, select stage, and offset stage. Each stage processes data independently and passes results to the next stage, allowing parallel processing and reducing the computational burden on any single unit while maintaining the overall error correction functionality.

Inventive Principle:
Principle #1Segmentation

2Reliability

If conventional ACSO unit is used in Turbo Code decoder, then error correction processing is performed, but processing speed is limited due to critical path

Engineering Contradiction:
Improveerror correction processingVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

By segmenting the ACSO unit into distinct stages (add, compare, select, offset), the critical path is broken into manageable segments that can be processed in parallel or pipelined, thereby increasing processing speed without sacrificing error correction capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Initialization values are pre-calculated and stored in memory before the main decoding process begins. During decoding, these pre-computed values are retrieved and used directly, eliminating the need for real-time calculation and reducing processing delays.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If initialization values are managed without optimization, then decoding accuracy is maintained, but memory requirements increase

Engineering Contradiction:
Improvedecoding accuracyVSAvoidmemory requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Initialization values are computed once before decoding and stored in memory. During the decoding process, these values are reused without recalculation, maintaining decoding accuracy while minimizing memory usage compared to recomputing values at each step.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of storing multiple complete sets of initialization data, the system uses a single set of pre-computed initialization values that are copied and reused across different decoding operations, reducing memory requirements while preserving decoding precision.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7810010B1Decoder for a turbo code
Publication Date: 2010.10.05 XILINX INC
  • US7810010B1 patent drawing
  • US7810010B1 patent drawing
  • US7810010B1 patent drawing

AI summary

A Turbo Code decoder for implementation in an integrated circuit is described. An add-compare select (“ACS”) unit is configured to provide a difference between first and second outputs and to select one of the first and second outputs responsive to a difference thereof. An initialization stage is coupled to receive and configured to store for example the first output selected as an initialization value. A second select stage is coupled to receive for example the first output selected from the first select stage and coupled to obtain the initialization value stored from the initialization stage. The second select stage is configured to output either the first output selected from the ACS unit or the initialization value from the initialization stage.