Flash Memory Vertical ECC RAID Group Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory cells can malfunction due to particles or mask defects during manufacturing, leading to failures in accessing storage units, which can result in data loss and require methods to protect stored data.

Innovation Solution

The implementation of a method and apparatus that uses a processing unit to determine if a vertical ECC has been generated within a RAID group, directing a DMA controller to obtain and store the ECC in a buffer or DRAM to enable programming and decoding of data in flash memory storage units, ensuring data integrity and protection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If flash memory storage units are used for data storage, then data storage capacity is improved, but reliability deteriorates due to particle defects and mask defects causing storage unit failures

Engineering Contradiction:
Improvedata storage capacityVSAvoidstorage unit reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent divides the storage system into multiple storage units organized in a RAID group, where each storage unit can be independently managed. When a storage unit fails due to particle defects or mask defects, only that specific unit is affected while other units remain operational, thus segmenting the failure impact and maintaining overall system reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements error correction codes (ECC) and redundancy mechanisms in advance to protect against storage unit failures. The ECC data is generated and stored beforehand in the RAID group, providing a cushioning effect that enables data recovery when a storage unit malfunctions, thus preventing complete data loss.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Reliability

If error correction codes are implemented to protect data, then reliability is improved, but device complexity increases due to additional ECC generation and management operations

Engineering Contradiction:
Improvedata integrityVSAvoidECC management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a processing unit that can generate and manage vertical ECC for multiple storage units within a RAID group using a unified approach. The same processing unit handles ECC generation, storage, and verification across different storage units, reducing the need for separate ECC management mechanisms for each unit and thereby reducing overall device complexity.

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

3Reliability

If vertical ECC is generated and stored for each RAID group, then data protection capability is improved, but loss of time increases due to additional ECC generation and verification steps

Engineering Contradiction:
Improvedata protection capabilityVSAvoidECC processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent generates and stores vertical ECC data in advance during the data writing process, rather than generating it only when reading or verifying data. The ECC is calculated and stored in the RAID group alongside the data, so that when a storage unit fails, the verification and recovery process can proceed quickly using the pre-computed ECC, thereby reducing the time loss during error correction.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9411686B2Methods for accessing a storage unit of a flash memory and apparatuses using the same
Publication Date: 2016.08.09 SILICON MOTION INC
  • US9411686B2 patent drawing
  • US9411686B2 patent drawing
  • US9411686B2 patent drawing

AI summary

An embodiment of a method for accessing a storage unit of a flash memory, performed by a processing unit, includes at least the following steps. After all messages within a RAID (Redundant Array of Independent Disk) group are programmed, it is determined whether a vertical ECC (Error Correction Code) within the RAID group has been generated. The processing unit directs a DMA (Direct Memory Access) controller to obtain the vertical ECC from a DRAM (Dynamic Random Access Memory) and store the vertical ECC to a buffer when the vertical ECC within the RAID group has been generated, thereby enabling the vertical ECC to be programmed to the storage unit.