RAID Flash Storage Layout for Metadata Separation and Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NAND FLASH memory systems face constraints in writing data to individual pages without erasing the entire block, and managing metadata and user data efficiently, especially in RAID configurations, which affects data integrity and storage efficiency.

Innovation Solution

A method is described where a controller separates user data blocks from metadata, assembles user data blocks without metadata to occupy contiguous memory locations, and processes data to identify repeating patterns, storing metadata to optimize storage and reduce the need for writing repeating data patterns to non-volatile memory, while using error correcting codes to ensure data integrity across RAID modules.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If metadata is stored with each user data block in traditional RAID configurations, then data integrity can be verified, but storage efficiency decreases and the number of write operations increases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments metadata from user data blocks, storing them in separate locations within the RAID group. This allows independent management of data and metadata, reducing the impact of metadata storage on overall storage efficiency while maintaining data integrity verification capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts metadata from traditional inline storage positions and relocates it to dedicated metadata regions. This extraction reduces the overhead on user data space and allows more efficient utilization of storage capacity while preserving error detection and correction capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If traditional RAID storage methods are used with full-page writes, then data can be stored reliably, but memory wear increases and system longevity decreases

Engineering Contradiction:
Improvedata storage reliabilityVSAvoidmemory longevity
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent changes the granularity of write operations from full-page writes to smaller, more targeted write operations. By modifying the write size parameter and allowing partial page updates, the system reduces unnecessary write amplification and extends NAND flash memory lifespan while maintaining data reliability through enhanced error correction codes.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If error correcting codes are implemented across RAID modules, then data integrity is improved, but computational complexity and processing time increase

Engineering Contradiction:
Improvedata integrityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary error detection and correction mechanisms by pre-calculating and storing error correction information alongside user data. This preliminary action allows for faster error handling during read operations, reducing real-time computational complexity while maintaining high data integrity standards across RAID modules.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9170757B1Optimization of raid group storage
Publication Date: 2015.10.27 INNOVATIONS IN MEMORY LLC
  • US9170757B1 patent drawing
  • US9170757B1 patent drawing
  • US9170757B1 patent drawing

AI summary

A method of operating a memory system to compress data efficiently is described. The user data and the associated metadata are separated so that user data having repeating data patterns of greater length than a single user data structure may be assembled for storage. The user metadata and the repeating pattern metadata are stored in non-volatile memory such that the repeating pattern metadata can be used to reconstruct the repeating pattern of individual user data blocks. The reconstructed user data blocks are combined with user metadata, if any, and returned to the user in response to a read request.