Per-Die ECC Layout for High-Density SSD Throughput Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-density solid state drives face challenges in extending lifespan and enhancing throughput due to increased raw error rates and congestion caused by a single shared error correction coding (ECC) codec in the controller, particularly with high-density NAND flash memory like QLC NAND, which results in decreased performance and Quality of Service instability.

Innovation Solution

Implementing an ECC codec module on each NAND die to distribute error correction tasks and moving erasure coding to the controller, while offloading other operations like wear-leveling and garbage collection to the host, thereby reducing congestion and enhancing self-correction capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single ECC codec is shared across multiple NAND channels in high-density SSDs, then device complexity is reduced, but congestion and bottleneck occur resulting in decreased throughput and performance

Engineering Contradiction:
ImproveECC codec structureVSAvoidthroughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single shared ECC codec into multiple separate ECC codecs, with each NAND channel having its own dedicated ECC codec. This segmentation eliminates the congestion and bottleneck that occurred when a single ECC codec served multiple channels, thereby improving throughput and performance while maintaining manageable device complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If high-density NAND flash (e.g., QLC NAND) is used to increase capacity and reduce cost, then storage capacity increases, but raw error rate increases resulting in decreased reliability and lifespan

Engineering Contradiction:
Improvestorage capacityVSAvoiderror rate
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent changes the ECC codec parameters and algorithms to be optimized for high-density NAND flash characteristics. By adjusting the error correction capabilities and adapting the decoding parameters specifically for QLC NAND's higher error rates, the system maintains reliability while utilizing the high capacity benefits of dense storage media.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the number of NAND channels increases to enhance throughput, then data transfer capacity increases, but the burden on the shared ECC codec increases resulting in increased latency and decreased Quality of Service stability

Engineering Contradiction:
Improvedata transfer capacityVSAvoiddecoding latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent assigns dedicated ECC codecs to each NAND channel, eliminating the queuing and contention that occurred with shared ECC resources. This allows each channel to process error correction independently and simultaneously, reducing decoding latency and improving Quality of Service stability while maintaining high data transfer capacity across multiple channels.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11169873B2Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
Publication Date: 2021.11.09 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US11169873B2 patent drawing
  • US11169873B2 patent drawing
  • US11169873B2 patent drawing

AI summary

One embodiment facilitates data placement in a storage device. During operation, the system receives a request indicating first data to be written to a non-volatile memory which includes a plurality of dies, wherein a plurality of error correction code (ECC) codec modules reside on the non-volatile memory. The system receives, by a first codec module residing on a first die, the first data. The system encodes, by the first codec module operating on the first die, the first data based on an error correction code (ECC) to obtain first ECC-encoded data which includes a first set of ECC parity bits. The system writes the first ECC-encoded data to the first die.