RAID ECC Controller Using Difference Code Words for Drive Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RAID systems face challenges in efficiently adding or removing drives without requiring prolonged system downtime, as current methods often necessitate reading and writing across all data and parity drives, leading to reduced uptime.

Innovation Solution

The implementation of a RAID controller with a RAID ECC encoder module that generates code words based on a cyclic code generator polynomial, allowing for seamless drive addition and removal by maintaining the logical-to-physical mapping unchanged, and using difference code words to update parity drives without reading other data drives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional RAID systems read and write across all data and parity drives when adding or removing drives, then data integrity is maintained, but system downtime increases

Engineering Contradiction:
Improvedata integrityVSAvoidsystem downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the drive modification process into two distinct phases: (1) generating difference code words from the removed drive's data, and (2) updating only the parity drives with these difference code words. This segmentation eliminates the need to read and write all data drives during drive removal, thereby maintaining data integrity through controlled updates while significantly reducing system downtime.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-calculating difference code words from the data on the drive to be removed before actually removing it. These difference code words are then used to update the parity drives. This preliminary calculation approach ensures data integrity is maintained while avoiding the time-consuming operation of reading all other data drives during the removal process.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the logical mapping is changed when drives are added or removed, then drive flexibility is improved, but system complexity increases

Engineering Contradiction:
Improvedrive flexibilityVSAvoidmapping complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Instead of changing the logical mapping when drives are added or removed (traditional approach), the patent inverts the approach by keeping the logical mapping constant. The physical drives are updated to match the existing logical structure rather than reorganizing the logical structure to accommodate physical changes. This inversion maintains drive flexibility while significantly reducing system complexity.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent creates a universal logical mapping structure that can accommodate different numbers of drives without requiring changes to the mapping itself. The same logical-to-physical mapping table serves multiple configurations, allowing drives to be added or removed flexibly while maintaining system simplicity through a single, unchanged mapping structure.

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

3Reliability

If all data drives are read during drive removal in traditional RAID systems, then parity updates are accurate, but I/O performance decreases

Engineering Contradiction:
Improveparity update accuracyVSAvoidI/O performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the necessary information (difference code words) from the drive being removed, rather than reading all data drives. These extracted difference code words are sufficient to update the parity drives accurately, eliminating the need to read other data drives and thus maintaining parity update accuracy while preserving I/O performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces difference code words as an intermediary element that bridges the removed drive's data and the parity drives. Instead of directly reading all data drives to update parity, the system uses these intermediate difference code words to achieve accurate parity updates with minimal I/O operations, thereby maintaining reliability while improving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7657823B1Efficient RAID ECC controller for RAID systems
Publication Date: 2010.02.02 MARVELL ASIA PTE LTD
  • US7657823B1 patent drawing
  • US7657823B1 patent drawing
  • US7657823B1 patent drawing

AI summary

A Redundant Array of Inexpensive Disks (RAID) controller comprises a RAID error correction code (ECC) encoder module that receives data for storage and that generates code words stored by data drives and one or more parity drives, which have physical locations. The code words are generated based on the data and a cyclic code generator polynomial. Logical locations correspond to an index of the cyclic code generator polynomial. A mapping module maps the physical locations of the data and parity drives to the logical locations. A difference generating module generates a difference code word when data on one of the data drives is modified. The RAID ECC encoder module encodes the difference code word and adds the encoded difference code word to an original code word generated before the modification.