Hybrid ECC for NAND Flash Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NAND flash devices face challenges in error correction due to the complexity and cost of hardware-based ECC mechanisms, which are limited to weak error correction, while software-based solutions are slow and resource-intensive, and dedicated hardware ECC controllers introduce delays and increased costs as device complexity and error rates increase.

Innovation Solution

A hybrid hardware/software ECC mechanism that determines whether to use hardware or software ECC based on the error bit count, with hardware correcting up to k-bits and software correcting beyond k-bits, allowing for efficient error handling without increasing hardware complexity or resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware-based ECC mechanisms are used, then error correction capability is improved, but device complexity and cost increase

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

Solution Approach 1:

The error correction function is segmented into two parts: hardware ECC for common error cases (up to k-bit errors) and software ECC for rare severe error cases (beyond k-bit errors). This segmentation allows the hardware to handle the majority of error correction needs with simple logic, while software handles the exceptional cases, thereby reducing overall hardware complexity while maintaining comprehensive error correction capability.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If software-based ECC is used, then resource utilization is reduced, but correction speed deteriorates

Engineering Contradiction:
Improveresource utilizationVSAvoidcorrection speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

Different correction strategies are applied based on the local condition of error severity. For common error cases (≤k-bit errors), hardware ECC provides fast correction. For rare severe error cases (>k-bit errors), software ECC is invoked. This local quality approach ensures that the fast hardware path handles the majority of cases, maintaining high average correction speed, while software handles only the rare exceptions.

Inventive Principle:
Principle #3Local quality

3Reliability

If dedicated hardware ECC controller is added, then error correction reliability is improved, but device cost and complexity increase

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

Solution Approach 1:

The node controller is designed with multi-functionality, serving both as a regular memory controller and as an ECC engine. The controller determines error bit counts and directs data to appropriate correction routines (hardware or software), eliminating the need for a separate dedicated ECC controller. This universal approach maintains high error correction reliability while avoiding the added complexity and cost of dedicated hardware.

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

Data Source

PatentUS10102061B2Error checking and correction for NAND flash devices
Publication Date: 2018.10.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10102061B2 patent drawing
  • US10102061B2 patent drawing
  • US10102061B2 patent drawing

AI summary

Mechanisms are provided, in a Not AND (NAND) flash memory device, for providing hybrid error correction management. A NAND flash memory module and a node controller coupled to the NAND flash memory module are provided along with a hardware logic implemented error correction code (ECC) engine associated with the node controller. The node controller is configured to determine whether an error count is less than or equal to a first threshold number of error bits and, in response to the error count being less than or equal to the first threshold number of error bits, performing correction of the error bits by the hardware logic implemented ECC engine associated with the node controller. The node controller is also configured to forward uncorrected data to a software logic implemented ECC engine, in response to the error count being greater than the first threshold number of error bits.