Adaptive ECC Codeword Layout Across Storage Array Columns

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid-state storage devices face performance issues due to fixed-size error-correction code (ECC) encoding schemes that do not adapt to varying data layouts and storage conditions, affecting device performance and data security.

Innovation Solution

An adaptive ECC write module generates ECC codeword symbols for storage in solid-state storage arrays, allowing dynamic distribution across multiple storage elements, with an adaptive write module streaming these symbols between columns and generating parity data for error correction and data recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If static, fixed-size ECC encoding schemes are used, then device structure is simplified and manufacturing is easier, but device performance and adaptability to varying data layouts deteriorate

Engineering Contradiction:
ImproveECC encoding implementation simplicityVSAvoidAdaptability to varying data layouts
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic ECC encoding that adapts to varying data layouts and storage conditions. The system adjusts ECC parameters and encoding strategies based on real-time storage state, data patterns, and performance requirements, transforming the static ECC approach into a dynamic one that maintains both simplicity and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes ECC parameters such as code rate, block size, and encoding strength based on storage conditions and data characteristics. This allows the ECC scheme to optimize between performance and complexity by adjusting parameters dynamically rather than using a fixed configuration.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If fixed-size ECC encoding is used, then device complexity is reduced, but read and write performance deteriorate under varying storage conditions

Engineering Contradiction:
ImproveECC encoding scheme complexityVSAvoidRead and write performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent employs dynamic ECC encoding that adjusts its complexity and parameters based on current storage conditions and performance requirements. This allows the system to maintain lower complexity when conditions permit while maximizing performance when needed, rather than being constrained by a fixed complexity level.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system segments data into different blocks or regions that can be processed with different ECC schemes. This allows performance optimization for specific data segments without increasing overall system complexity, as only relevant segments receive enhanced processing.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If static ECC encoding is used, then implementation is simpler, but data security and error correction capability deteriorate

Engineering Contradiction:
ImproveECC encoding implementation complexityVSAvoidData security and error correction
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system dynamically changes ECC parameters such as code strength, block size, and redundancy levels based on storage conditions and data criticality. This allows the system to enhance data security and error correction capability when needed while maintaining simpler operations when conditions allow, resolving the contradiction between complexity and reliability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements feedback mechanisms that monitor storage conditions, error rates, and data integrity metrics. This feedback drives adaptive adjustments to ECC parameters, ensuring that data security and error correction capability are maintained at appropriate levels based on actual system state rather than static pre-configured values.

Inventive Principle:
Principle #23Feedback

4Device complexity

If fixed-size ECC codewords are used, then storage layout is simpler, but storage efficiency and performance deteriorate

Engineering Contradiction:
ImproveStorage layout complexityVSAvoidStorage efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic ECC codeword sizing that adapts to data patterns and storage conditions. The system can vary codeword sizes to optimize storage efficiency for different data types and access patterns, rather than being constrained by fixed-size codewords, thereby improving productivity without excessive layout complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system applies different ECC codeword sizes and configurations to different regions or types of data based on their specific requirements. This local optimization allows storage efficiency to be improved for critical data segments without complicating the overall storage layout, as each region is optimized independently.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9116823B2Systems and methods for adaptive error-correction coding
Publication Date: 2015.08.25 UNIFICATION TECHNOLOGIES LLC
  • US9116823B2 patent drawing
  • US9116823B2 patent drawing
  • US9116823B2 patent drawing

AI summary

A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising a plurality of columns. The ECC codewords may comprise ECC codeword symbols. The ECC symbols of a data segment may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The individual ECC symbols may be stored within respective columns of the array (e.g., may not cross column boundaries). Data of an unavailable ECC symbol may be reconstructed by use of other ECC symbols stored on other columns of the array.