Parallel Codeword Decoding for Storage Read Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional systems for reading and decoding codewords from storage devices are inefficient due to sequential decoding, which leads to delayed output of faster-decoded codewords and requires large memory, causing potential abortion of earlier decodings when memory is full.

Innovation Solution

Implementing a system where a first and second codeword are read and decoded in parallel, allowing the decoded second codeword and completion signal to be transmitted before the first codeword is fully decoded, with tags indicating their positions, enabling out-of-order transmission and reducing memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If codewords are decoded sequentially based on position, then decoding order is maintained, but output is delayed and memory requirements increase

Engineering Contradiction:
Improvedecoding throughputVSAvoidoutput delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by reading multiple codewords in advance and decoding them in parallel before they are needed for output. The fast path decodes codewords ahead of time and stores results in buffer memory, so when a codeword is needed it is already decoded and ready for immediate output, eliminating wait time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically switches between two decoding paths based on conditions: a fast path for codewords that can be decoded quickly with high probability, and a thorough path for codewords requiring more processing. This dynamic adaptation optimizes throughput by handling different codewords differently based on their characteristics.

Inventive Principle:
Principle #15Dynamics

2Productivity

If all codewords are decoded before output, then order is preserved, but memory size must be large

Engineering Contradiction:
Improvedecoding efficiencyVSAvoidmemory size
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The system segments the decoding process into two independent paths: a fast path for quick decodes and a thorough path for comprehensive decodes. This segmentation allows parallel processing of different codewords through different paths, improving efficiency without requiring memory proportional to the total number of codewords, as each path handles its own codewords independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts and handles the critical path (fast decoding) separately from the non-critical path (thorough decoding). By taking out the fast path operations and processing them independently with minimal memory requirements, the system avoids the need for large memory to hold all codewords while maintaining decoding efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If sequential decoding is used, then memory management is simple, but system performance is reduced

Engineering Contradiction:
Improvememory management simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system introduces buffer memory as an intermediary between the parallel decoding processes and the output interface. This intermediary component manages the complexity of coordinating multiple parallel decoding operations while presenting a simple interface to the rest of the system, allowing high-performance parallel processing without complicating overall system control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10255944B2Systems and methods for reading and decoding encoded data from a storage device
Publication Date: 2019.04.09 MARVELL ASIA PTE LTD
  • US10255944B2 patent drawing
  • US10255944B2 patent drawing
  • US10255944B2 patent drawing

AI summary

Systems and methods of reading data from a storage device are provided. A first codeword and a second codeword are read from a storage device, where the second codeword is positioned after the first codeword. The first and second codewords are decoded in parallel, and the decoding of the second codeword completes before the decoding of the first codeword completes. The decoded second codeword and a signal indicating whether the decoding of the second codeword is complete are transmitted to control circuitry before the decoding of the first codeword completes.