Flash Block SLC Configuration for Consistent Data Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices, particularly NAND flash devices, lack random access capabilities, necessitating a method to efficiently program data while optimizing storage space utilization and maintaining consistent data programming speed.

Innovation Solution

A method and apparatus that divide flash module storage space into static and dynamic areas, configuring memory cells as Single Level Cells (SLCs) or Non-Single Level Cells (non-SLCs) based on background garbage collection processes and predefined thresholds to optimize data programming efficiency and maintain consistent speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory cells are configured as non-SLC blocks to increase storage capacity, then storage space utilization is improved, but data programming speed becomes inconsistent and may decrease

Engineering Contradiction:
Improvestorage space utilizationVSAvoiddata programming speed consistency
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The flash module is divided into multiple blocks, each independently configurable as SLC or non-SLC. This segmentation allows different blocks to serve different purposes: SLC blocks for high-speed programming and non-SLC blocks for high-capacity storage, thereby resolving the contradiction between storage utilization and programming speed consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically configures blocks as SLC or non-SLC based on real-time conditions such as garbage collection status and available empty blocks. This dynamic adaptation allows the system to optimize between storage capacity and programming speed consistency according to current operational state.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If blocks are dynamically reconfigured between SLC and non-SLC to optimize storage efficiency, then storage space utilization is improved, but system complexity increases

Engineering Contradiction:
Improvestorage space utilizationVSAvoidblock configuration management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system employs feedback mechanisms by monitoring garbage collection completion status and the count of empty blocks. Based on this feedback, the system automatically determines whether to switch between SLC and non-SLC configurations, simplifying the management complexity through rule-based automated decisions.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the configuration parameter of blocks (SLC vs non-SLC) based on monitored conditions such as garbage collection status and empty block availability. This parameter switching allows flexible optimization of storage efficiency without requiring complex manual intervention.

Inventive Principle:
Principle #35Parameter changes

3Speed

If blocks are allocated as SLC to ensure consistent programming speed, then data programming speed consistency is improved, but storage space utilization decreases

Engineering Contradiction:
Improvedata programming speed consistencyVSAvoidstorage space utilization
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Blocks in the flash module are designed with multi-functionality, capable of operating in both SLC and non-SLC modes. This universality allows the same physical blocks to serve different functional requirements (speed consistency or storage efficiency) depending on configuration, thereby resolving the contradiction between programming speed and storage utilization.

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

4Speed

If background garbage collection is performed frequently to maintain empty blocks for SLC configuration, then data programming speed consistency is improved, but loss of time increases

Engineering Contradiction:
Improvedata programming speed consistencyVSAvoidtime lost to garbage collection
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

Instead of performing garbage collection continuously or excessively, the system applies partial action by triggering GC only when specific conditions are met (such as when empty block count falls below a threshold). This approach maintains sufficient empty blocks for SLC configuration while minimizing the time lost to garbage collection operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12461694B2Method and non-transitory computer-readable storage medium and apparatus for configuring current block to program data
Publication Date: 2025.11.04 SILICON MOTION INC
  • US12461694B2 patent drawing
  • US12461694B2 patent drawing
  • US12461694B2 patent drawing

AI summary

The invention introduces a method for configuring a current block to program data, performed by a processing unit, which includes: dividing storage space of a flash module into a static area and a dynamic area; entering a first mode to obtain a first empty SB from the dynamic area and erase the first empty SB to configure the first empty SB as a non-SLC block; and entering a second mode from the first mode to obtain a second empty SB from the static area and erase the second empty SB to configure the second empty SB as an SLC block in response that a background garbage collection (GC) flag indicates that a background GC process has been performed, at least one empty SB is presented in the static area, and a quantity of empty SBs in the dynamic area equals or is less than a predefined quantity.