Memory Block Pooling Based on Performance Metrics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory systems face challenges in optimizing performance by effectively utilizing memory blocks based on measured performance characteristics, leading to inefficient data storage and retrieval due to uneven block performance.

Innovation Solution

The implementation of a system that selects and prioritizes memory blocks for use based on measured performance metrics such as programming time and fail bit count, placing better-performing blocks in SLC and MLC pools for optimal data storage and garbage collection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory blocks are used uniformly without performance measurement, then device complexity is reduced, but productivity deteriorates due to inefficient data storage and retrieval

Engineering Contradiction:
Improvedata storage and retrieval efficiencyVSAvoidblock management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary measurement of programming time for memory blocks during manufacturing or initial operation. These measurements are stored and used to predict block performance characteristics, allowing the system to pre-categorize blocks into pools before actual use, thereby improving productivity without adding complex real-time management overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory device is segmented into multiple pools (SLC pool, MLC pool, mixed pool) based on block performance characteristics. This segmentation allows different pools to be used for different types of data storage operations, optimizing overall system productivity while maintaining manageable complexity through structured organization.

Inventive Principle:
Principle #1Segmentation

2Productivity

If performance measurement and block selection is implemented, then productivity improves through optimal block usage, but device complexity increases due to additional management logic

Engineering Contradiction:
Improvememory operation speedVSAvoidblock selection mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Performance measurements are taken in advance during manufacturing or initial operation, and blocks are pre-categorized into different pools based on their characteristics. This preliminary action eliminates the need for complex real-time measurement and decision-making during normal operations, improving memory operation speed while keeping the management mechanism relatively simple.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses measured programming times as feedback to determine block performance characteristics. This feedback mechanism is simple and direct, allowing the controller to make informed decisions about block allocation without requiring complex algorithms, thereby improving productivity with minimal added complexity.

Inventive Principle:
Principle #23Feedback

3Reliability

If blocks are categorized into SLC and MLC pools based on performance, then reliability improves through optimized data storage, but device complexity increases due to pool management structure

Engineering Contradiction:
Improvedata storage reliabilityVSAvoidpool management structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory device is divided into distinct pools (SLC pool for high-reliability data, MLC pool for standard data, mixed pool for flexible usage) based on block performance characteristics. This segmentation allows each pool to be optimized for its specific purpose, improving overall data storage reliability while maintaining a clear and manageable structural organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different pools are assigned different quality characteristics based on their intended use. SLC blocks are used for high-reliability applications where data integrity is critical, while MLC blocks are used for standard applications. This local quality approach ensures that each block is used in the most appropriate context, improving reliability without requiring complex dynamic management.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10515008B2Performance based memory block usage
Publication Date: 2019.12.24 SANDISK TECHNOLOGIES LLC
  • US10515008B2 patent drawing
  • US10515008B2 patent drawing
  • US10515008B2 patent drawing

AI summary

Blocks of memory cells may be selected for use based on one or more measured performance characteristics that may include, but are not limited to, programming time or fail bit count. Blocks may be placed into a single level cell (SLC) block pool and one or more multi-level cell (MLC) block pools based on measured performance characteristic(s). For example, blocks that have a better SLC performance may be placed into the SLC block pool. Blocks may be targeted for garbage collection based on one or more measured performance characteristics. For example, blocks within an SLC block pool may be targeted for garbage collection based on a performance ranking of the SLC blocks, blocks within an MLC block pool may be targeted for garbage collection based on a performance ranking of the MLC blocks. Thus, the better performing blocks may be used more frequently, thereby improving performance.