Adaptive Data Storage Layout for Solid-State Drives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid-state storage devices face performance issues due to varying read and stream times and usage characteristics, necessitating an adaptive data layout to optimize performance based on storage medium characteristics and usage patterns.

Innovation Solution

An adaptive storage apparatus that manages solid-state storage elements using an error-correcting code (ECC) write module, adaptive write module, and read module to store and retrieve data across multiple independent channels, optimizing data layout based on read and stream times, and incorporating error correction and data recovery mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is stored using traditional fixed layout on solid-state storage elements, then device structure is simple, but performance is suboptimal due to varying read and stream times

Engineering Contradiction:
Improvestorage performanceVSAvoiddata layout complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements adaptive data layout that dynamically adjusts storage configuration based on detected usage patterns and performance characteristics. The system transitions from static to dynamic data arrangement, optimizing read and stream operations by reconfiguring how data is organized across storage elements according to actual usage conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes physical or logical parameters of data storage by adjusting data layout configurations based on usage patterns. It modifies storage parameters such as data placement, striping width, and organization structure to match detected usage characteristics, thereby optimizing performance without changing hardware architecture.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If adaptive data layout is implemented to optimize performance, then storage performance improves, but device complexity increases

Engineering Contradiction:
Improveread and write operation performanceVSAvoidadaptive layout management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs self-optimization by automatically detecting its own usage patterns and adjusting data layout accordingly. The storage device monitors its performance characteristics and autonomously reconfigures data organization without external intervention, eliminating the need for complex manual management while maintaining optimal performance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback mechanisms that monitor usage patterns and performance metrics, then use this information to adjust data layout configurations. The feedback loop continuously optimizes storage performance by detecting usage characteristics and adapting the data organization structure in response to actual operational conditions.

Inventive Principle:
Principle #23Feedback

3Speed

If data is stored across multiple independent channels, then read operations can be optimized, but write operations become more complex

Engineering Contradiction:
Improveread speedVSAvoidmulti-channel data management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides storage data into segments organized across multiple independent channels or stripes. This segmentation enables parallel read operations from different channels, increasing read throughput. The data is split into manageable units that can be independently accessed, allowing simultaneous operations across multiple storage elements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multi-channel data layout serves multiple functions: it enables parallel reads for speed, provides redundancy for error correction, and allows flexible data reconstruction. The same segmented structure supports both performance optimization and data protection mechanisms without requiring separate systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Reliability

If error correction codes are applied to each data segment, then data integrity is improved, but processing overhead increases

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Error correction codes are pre-calculated and embedded with data segments during the write operation. The redundancy information is prepared in advance and stored alongside the primary data, eliminating the need for complex real-time error correction during reads. This preliminary preparation reduces processing time during data retrieval.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates redundant copies of error correction information that are stored with the data segments. These copies enable quick error detection and correction without requiring complex processing, as the correction data is already available in a ready-to-use format alongside the primary data.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10956258B2Systems and methods for adaptive data storage
Publication Date: 2021.03.23 UNIFICATION TECHNOLOGIES LLC
  • US10956258B2 patent drawing
  • US10956258B2 patent drawing
  • US10956258B2 patent drawing

AI summary

A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising two or more solid-state storage elements. The data segments may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The data arrangement may determine input/output performance characteristics. An optimal adaptive data storage configuration may be based on read and/or write patterns of storage clients, read time, stream time, and so on. Data of failed storage elements may be reconstructed by use of parity data and/or other ECC codewords stored within the array.