Intelligent Storage Allocation for Flash Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices face issues with unfilled word lines and failure mechanisms, such as stuck word lines, which reduce read reliability and require a solution for effective data writing and error correction in mixed-device implementations.

Innovation Solution

A geometry-aware method of writing parity is implemented, where data and parity bits are determined using error correction coding, and parity pages are specifically targeted to fill unfilled word lines and cells, using a two-dimensional parity process that involves horizontal and vertical writing to improve data reliability and survivability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is written to flash memory devices following manufacturer requirements for filling word lines and cells, then read reliability is improved, but device complexity increases due to heterogeneous implementation requirements across different flash types

Engineering Contradiction:
Improveread reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the storage system into multiple storage devices with different performance characteristics, organizing them into performance groups. Data is distributed across these segmented devices according to their capabilities, allowing each device to operate within its optimal parameters while collectively achieving high reliability without requiring complex heterogeneous management

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of data placement strategy by using performance-based grouping rather than device-type-specific filling rules. This abstracts away the complex manufacturer-specific requirements into a unified parameter-based approach, maintaining reliability through performance matching while reducing implementation complexity

Inventive Principle:
Principle #35Parameter changes

2Reliability

If error correction coding is applied to RAID stripes, then data reliability is improved, but writing overhead increases due to additional parity calculation and writing operations

Engineering Contradiction:
Improvedata reliabilityVSAvoidwriting speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and pre-positioning parity information during the data writing process. By preparing error correction data in advance and integrating it into the write operation, the system minimizes additional overhead while ensuring data reliability through proactive error protection rather than reactive correction

Inventive Principle:
Principle #10Preliminary action

3Reliability

If parity pages are written to fill unfilled word lines and cells, then read reliability is improved, but the complexity of the writing process increases due to targeted parity placement requirements

Engineering Contradiction:
Improveread reliabilityVSAvoidwriting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a new dimension to parity writing by implementing two-dimensional parity protection that operates both across RAID stripes and within individual flash devices. This dimensional approach allows parity to be placed in unfilled word lines and cells systematically, transforming a complex placement problem into a structured grid-based solution that improves reliability while managing complexity through geometric organization

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20240193038A1Intelligent characteristic based storage device allocation in a storage system
Publication Date: 2024.06.13 PURE STORAGE INC
  • US20240193038A1 patent drawing
  • US20240193038A1 patent drawing
  • US20240193038A1 patent drawing

AI summary

Corresponding performance characteristics for storage devices are identified. A calculation is performed using the corresponding performance characteristics for the storage devices. A set of storage devices is allocated for storage of shards of a redundant array of independent drives (RAID) stripe based on results of the calculation.