SSD Block Management for Unoccupied Meta Block Depletion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid-state drives (SSDs) with data compression functions face challenges in managing logical-physical management information, leading to depletion of unoccupied blocks due to the large size of this information, which cannot be completely cached in main memory, resulting in frequent reads and writes to the flash memory, disrupting continuous I/O operations.
Innovation Solution
The SSD employs a processor that allocates blocks in nonvolatile semiconductor memory for user data and meta data, dynamically generating unoccupied blocks and meta blocks by moving data and meta data respectively, and calculates the necessary unoccupied meta blocks to prevent depletion by optimizing block allocation and garbage collection processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data compression function is added to increase storage capacity, then storage capacity is improved, but logical-physical management information size increases causing main memory caching to become insufficient
Solution Approach 1:
The patent divides logical-physical management information into multiple segments stored in different physical locations. When the main memory cannot cache all management information due to data compression, the system segments the management information and stores portions in the flash memory, accessing only necessary segments during I/O operations.
Solution Approach 2:
The patent transitions from a single-dimension caching approach (main memory only) to a multi-dimension storage hierarchy. Management information is distributed across main memory and flash memory, creating a hierarchical structure that accommodates larger management information sizes while maintaining access efficiency.
2Quantity of substance
If logical-physical management information is stored in flash memory due to insufficient main memory, then storage capacity is improved, but frequent reads and writes occur leading to unoccupied block depletion
Solution Approach 1:
The patent performs preliminary actions by pre-allocating unoccupied blocks and proactively managing the flash memory write buffer. Before unoccupied blocks are depleted, the system initiates background processes to generate new unoccupied blocks through garbage collection, ensuring continuous I/O capability.
Solution Approach 2:
The patent implements continuous background processes for garbage collection and unoccupied block generation. These processes run concurrently with I/O operations to maintain a sufficient pool of unoccupied blocks, ensuring that I/O operations can continue without interruption despite the larger management information size.
3Quantity of substance
If garbage collection is performed to generate unoccupied blocks, then unoccupied block availability is improved, but processing time increases and I/O operations are disrupted
Solution Approach 1:
The patent implements periodic garbage collection instead of continuous or on-demand collection. The system performs garbage collection at predetermined intervals or when specific conditions are met, balancing the need for unoccupied blocks with the desire to minimize disruption to I/O operations.
Solution Approach 2:
The patent enables the flash memory system to perform self-service through background garbage collection processes that operate independently of foreground I/O operations. The controller autonomously manages unoccupied block generation without requiring external intervention, reducing the impact on user-facing I/O performance.
Data Source
AI summary
It is possible to prevent unoccupied blocks from being depleted by a write of logical-physical management information. A processor is capable of performing an unoccupied user block generation process by moving user data stored in allocated user blocks in order to generate unoccupied user blocks serving as unoccupied blocks among allocated user blocks, and performing an unoccupied meta block generation process by moving meta data stored in allocated meta blocks in order to generate unoccupied meta blocks serving as unoccupied blocks among the allocated meta blocks. The processor calculates the number of unoccupied meta blocks to be consumed, that is, the number of unoccupied meta blocks to be consumed by the unoccupied user block generation process. The processor performs the unoccupied meta block generation process based on the number of unoccupied meta blocks to be consumed.


