Dynamic Stripe Length Manager for NAND Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory controllers use a 'one size fits all' approach to stripe size allocation, which fails to adapt to changing media conditions in NAND, leading to increased read times and reliability issues due to varying bit error rates and defects over time.

Innovation Solution

A dynamic stripe length manager that adjusts stripe lengths and error correction codes based on the health status and host protection level of memory blocks, dynamically increasing or decreasing zones to mitigate bit error rates and defect susceptibility, ensuring uniform recovery times and data protection without compromising host timings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a one size fits all approach to stripe size allocation is used, then device complexity is reduced, but reliability deteriorates due to varying bit error rates and defects over time

Engineering Contradiction:
Improvestripe size allocation complexityVSAvoiddata recovery reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements dynamic stripe length adjustment based on media health status. The system transitions from static one-size-fits-all stripe allocation to dynamic stripe length management that adapts to changing media conditions. The controller monitors media health and adjusts stripe lengths in real-time, allowing the system to optimize reliability without requiring complex manual configuration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the stripe length parameter based on media health status and observed bit error rates. By dynamically adjusting this critical parameter, the system adapts to media degradation over time, maintaining optimal error correction performance without requiring complete system redesign or complex management overhead.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If stripe lengths are increased to improve error correction, then reliability improves, but read time increases due to longer XOR/LDPC recovery operations

Engineering Contradiction:
Improveerror correction capabilityVSAvoidread recovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts stripe length parameters based on media health status. When media is healthy, shorter stripes are used for faster reads. When media degradation is detected, stripe lengths are increased to improve error correction capability. This dynamic parameter adjustment optimizes the trade-off between reliability and read time based on actual media conditions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic stripe length adjustment that responds to media health status changes. The system transitions from static stripe allocation to dynamic management, allowing stripe lengths to be optimized in real-time based on observed bit error rates and media conditions, thereby balancing error correction needs with read performance.

Inventive Principle:
Principle #15Dynamics

3Speed

If shorter stripes are used to reduce read time, then speed improves, but reliability deteriorates due to insufficient error correction for high bit error rate locations

Engineering Contradiction:
Improveread speedVSAvoiderror correction adequacy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system dynamically adjusts stripe length parameters based on media health status and bit error rate observations. This allows the system to use shorter stripes for speed when media is healthy, while automatically increasing stripe lengths when error rates rise, thereby maintaining both speed and reliability through adaptive parameter management.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic stripe length management that adapts to changing media conditions. The system monitors bit error rates and adjusts stripe lengths in real-time, transitioning from static to dynamic allocation. This ensures that read speed is optimized when possible while maintaining adequate error correction capability when media degradation occurs.

Inventive Principle:
Principle #15Dynamics

4Ease of operation

If uniform stripe lengths are applied to all blocks, then ease of operation is improved, but adaptability deteriorates due to varying health status across different memory blocks

Engineering Contradiction:
Improvestripe allocation managementVSAvoidhealth status adaptation
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic stripe length adjustment based on individual block health status. The system transitions from uniform static allocation to dynamic block-specific management. The controller automatically monitors and adjusts stripe lengths for each block based on its health status, maintaining ease of operation through automation while achieving superior adaptability to varying media conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes stripe length parameters on a per-block basis according to observed health status and bit error rates. This dynamic parameter adjustment allows the system to adapt to varying conditions across different memory blocks without requiring manual configuration, automatically optimizing both ease of operation and adaptability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20210191796A1Data storage device with dynamic stripe length manager
Publication Date: 2021.06.24 SANDISK TECHNOLOGIES LLC
  • US20210191796A1 patent drawing
  • US20210191796A1 patent drawing
  • US20210191796A1 patent drawing

AI summary

A memory controller includes, in one embodiment, a memory interface and a dynamic stripe length manager circuit configured to receive a first weighted health factor associated with a first memory block of the memory, determine a first collective stripe length of the first memory block based on the first weighted health factor, set a first number of zones in the first memory block based on the first collective stripe length, monitor the memory to detect a trigger event that triggers a calculation of a second collective stripe length of the first memory block, the second collective stripe length being larger than the first collective stripe length, receive a second weighted health factor associated with the first memory block, determine the second collective stripe length based on the second weighted health factor, and set a second number of zones in the first memory block based on the second collective stripe length.