Flash Block SLC Configuration for Consistent Data Programming
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Speed
If blocks are allocated as SLC to ensure consistent programming speed, then data programming speed consistency is improved, but storage space utilization decreases
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.
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
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.
Data Source
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.


