Flash Memory Block Segmentation for Garbage Collection Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional garbage collection operations in NAND FLASH memory devices consume significant computing resources and are inefficient in managing valid and invalid data across blocks, leading to suboptimal storage array operations.

Innovation Solution

A data storage device and method that allocates data segments into different blocks based on completeness, where complete page segments are written into one block and incomplete page segments into another, with a controller using firmware to determine data attribution and type, optimizing data distribution and garbage collection processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional garbage collection operations are performed to manage valid and invalid data in NAND FLASH blocks, then storage space can be reclaimed, but computing resources are significantly consumed

Engineering Contradiction:
Improvestorage space reclamation efficiencyVSAvoidcomputing resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments data into complete page segments and incomplete page segments, storing them in separate blocks (first block and second block respectively). This segmentation allows the controller to directly identify and erase blocks containing only invalid data without performing complex garbage collection operations, thereby reducing computing resource consumption while maintaining storage space reclamation efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary classification of data segments during the write operation, organizing complete and incomplete page segments into different blocks before erasure is needed. This preliminary action eliminates the need for complex runtime analysis during garbage collection, reducing computing resource consumption while enabling efficient storage space reclamation

Inventive Principle:
Principle #10Preliminary action

2Productivity

If valid data scattered throughout several blocks is collected to other blocks through garbage collection, then spare blocks become available, but the operation consumes considerable computing resources

Engineering Contradiction:
Improvespare block availabilityVSAvoidgarbage collection operation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting data storage into first blocks for complete page segments and second blocks for incomplete page segments, the patent simplifies the garbage collection process. The controller can directly identify blocks containing only invalid data and erase them to create spare blocks, eliminating the need for complex data collection operations across multiple blocks

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts incomplete page segments from the main data storage flow and stores them separately in second blocks. This extraction allows the controller to quickly identify and erase entire blocks containing only invalid data without needing to collect and relocate valid data from scattered blocks, thereby reducing operation complexity while maintaining spare block availability

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10007601B2Data storage device and operating method for flash memory
Publication Date: 2018.06.26 SILICON MOTION INC

AI summary

A data storage device and operating method for a FLASH memory are disclosed. The data storage device includes a FLASH memory and a controller. The FLASH memory includes a first block and a second block. The first and second blocks each includes a plurality of pages. The controller executes a firmware to determine whether a data segment from a host is a complete page segment. When the data segment is a complete page segment, the controller stores the data segment into the first block. When the data segment is an incomplete page segment, the controller stores the data into segment the second block.