Flash Memory Block Utilization via Data Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory SSDs face reduced space utilization due to damaged pages in blocks, leading to inefficient data storage and waste of storage space, as they often require new blocks for overflow data instead of utilizing partially filled blocks.

Innovation Solution

A method where a primary controller in the flash memory apparatus divides data into parts based on the effective capacity of blocks, writing the first part into a block with available space and the second part into a block that has been written but not fully utilized, thereby avoiding the need for new blocks for overflow data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a new block is allocated for overflow data when the first block is insufficient, then data can be stored completely, but space utilization of blocks is reduced and storage space is wasted

Engineering Contradiction:
Improvedata storage completenessVSAvoidstorage space waste
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent merges the storage function of the first block (which has insufficient capacity) with a second block (which has unused space) to store overflow data. This combining approach allows complete data storage while utilizing existing unused space, avoiding the waste associated with allocating entirely new blocks.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent recovers unused space in partially filled blocks by allocating it for overflow data storage. Instead of discarding the remaining capacity in the first block, the system recovers and utilizes this space by writing overflow data to the second block, thereby reducing storage space waste.

Inventive Principle:
Principle #34Discarding and recovering

2Quantity of substance

If blocks with damaged pages are used, then storage capacity is reduced, but using new blocks for overflow data increases device complexity and reduces productivity

Engineering Contradiction:
Improvestorage capacityVSAvoiddata writing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent performs preliminary identification of blocks with unused space before writing overflow data. By pre-selecting the second block that has available capacity, the system avoids the need to search for and allocate new blocks during the data writing process, thereby improving writing efficiency and productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent makes the second block serve multiple functions: it stores both its original data and the overflow data from the first block. This multi-functional usage of existing blocks reduces the need for additional blocks and maintains data writing efficiency without compromising storage capacity.

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

Data Source

PatentEP3196767B1Method for writing data into flash memory device, flash memory device and storage system
Publication Date: 2020.08.05 HUAWEI TECH CO LTD
  • EP3196767B1 patent drawingFigure 1
  • EP3196767B1 patent drawingFigure 2
  • EP3196767B1 patent drawingFigure 3

AI summary

Embodiments of the present invention provide a method for writing data into a flash memory apparatus, a flash memory apparatus, and a storage system. In the embodiments of the present invention, when an effective capacity of a first block among multiple blocks is less than a size of first target data, a primary controller divides the first target data into first part and second part, where a size of the first part is the effective capacity of the first block, and a size of the second part is the size of the first target data minus the size of the first part; determines a second block from the multiple blocks, where the second block is a block that has been written with data but is not filled with data; and writes the first part into the first block and writes the second part into the second block, which can improve block utilization and save storage space of an SSD.