ECC and RAID Decoding for High-Density Memory Error Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage devices face challenges in efficiently correcting errors and recovering data due to increased bit error rates and memory defects, particularly when using fewer parity bits to reduce latency, which compromises error correction capacity and storage density.

Innovation Solution

Implementing a data storage device that performs joint ECC and RAID decoding, leveraging unused RAID overprovisioning for random error correction, and using erasure decoding/correction techniques to decode codewords by designating erased bits and modifying them based on inverse bit strings to improve error correction capability without significant hardware or power consumption increases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If more parity bits are used to increase error correction capacity, then error correction capability is improved, but storage density is reduced

Engineering Contradiction:
Improveerror correction capabilityVSAvoidstorage density
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system dynamically switches between ECC mode and RAID mode based on the type of errors detected. For random errors, ECC is used; for memory defects, RAID is used. This dynamic adaptation allows the system to maintain high reliability without permanently allocating excessive parity bits, thus preserving storage density.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the operational parameters by using different error correction schemes (ECC vs. RAID) depending on the error characteristics. By adjusting which correction mechanism is active based on error patterns, the system optimizes the balance between correction capacity and storage efficiency without requiring maximum parity overhead at all times.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If sufficient parity bits are allocated for worst-case error correction, then reliability is improved, but storage density is reduced

Engineering Contradiction:
Improveerror correction capabilityVSAvoidstorage density
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Instead of allocating parity bits for the absolute worst-case scenario, the system uses partial action by deploying ECC for common random errors and reserving RAID as a backup for rare memory defects. This approach provides sufficient correction capability for typical cases while using minimal overhead, avoiding the excessive storage density loss that would result from preparing for worst-case errors in advance.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system dynamically activates RAID correction only when memory defects are detected, rather than maintaining constant readiness for worst-case scenarios. This dynamic approach allows the system to achieve adequate reliability for worst-case errors without permanently dedicating the storage space required for full worst-case protection.

Inventive Principle:
Principle #15Dynamics

3Speed

If fewer parity bits are used to reduce latency, then speed is improved, but error correction capacity is reduced

Engineering Contradiction:
ImprovelatencyVSAvoiderror correction capacity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system dynamically selects between ECC and RAID modes based on error detection results. For random errors, the faster ECC mode is used; for memory defects, RAID is activated. This dynamic switching allows the system to maintain low latency for common cases while preserving the capability to correct severe errors when they occur.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the error correction parameter (ECC vs. RAID) based on the detected error type, allowing the system to optimize latency for typical random errors while maintaining adequate correction capacity for memory defects. This parameter adaptation resolves the contradiction between speed and correction capacity.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If ECC is used for random errors and RAID for memory defects, then reliability is improved, but device complexity is increased

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddecoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The error correction function is segmented into two distinct paths: ECC for random errors and RAID for memory defects. By dividing the correction task based on error type, the system manages complexity through specialization rather than attempting to handle all error types with a single complex mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary error detection mechanism identifies whether errors are random or memory defects, then routes them to the appropriate correction scheme. This intermediary classification layer simplifies the overall system by preventing the direct coupling of ECC and RAID, allowing each to operate independently in its optimal domain.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10536172B2ECC and raid-type decoding
Publication Date: 2020.01.14 SANDISK TECHNOLOGIES LLC
  • US10536172B2 patent drawing
  • US10536172B2 patent drawing
  • US10536172B2 patent drawing

AI summary

A device includes a memory and a controller coupled to the memory. The controller is configured to read a codeword from a physical location of the memory. The controller is configured to write an inverse bit string to the physical location of the memory, the inverse bit string based on the codeword. The controller is configured to read a representation of the inverse bit string from the physical location of the memory. The controller is further configured to designate one or more bits of the codeword as one or more erased bits based on the codeword and the representation of the inverse bit string.