Logical Sub-Block Allocation for Small-File Storage Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage management systems using SPI NAND flash result in reduced space utilization due to allocating entire blocks for small data files, leading to inefficient use of storage space.

Innovation Solution

Divide logical blocks into logical sub-blocks and allocate data of varying types using logical identification codes that record status flags, sub-block numbers, and block numbers to optimize storage allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If entire blocks are allocated for small data files, then data storage is simplified, but space utilization rate decreases

Engineering Contradiction:
Improvedata storage simplicityVSAvoidspace utilization rate
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent divides a logical block into multiple logical sub-blocks, allowing fine-grained allocation of storage space. Instead of allocating entire blocks for small files, the system can allocate individual sub-blocks, thereby improving space utilization while maintaining manageable allocation units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces different allocation strategies for different types of data by creating status flags (first value for small data, second value for large data). This allows the system to apply appropriate allocation methods locally - using sub-block allocation for small files and full block allocation for large files, optimizing both space utilization and allocation simplicity where needed.

Inventive Principle:
Principle #3Local quality

2Loss of substance

If logical blocks are divided into logical sub-blocks, then space utilization improves, but system complexity increases

Engineering Contradiction:
Improvespace utilization rateVSAvoidstorage management complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent introduces logical identification codes as an intermediary layer between the file system and physical blocks. These codes contain status flags that indicate whether data is small or large, enabling the system to automatically select appropriate allocation strategies without complex manual intervention, thus managing the increased complexity through structured intermediaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses status flags (parameter changes) in logical identification codes to dynamically determine allocation behavior. By encoding data type information (small vs. large data) in these flags, the system can automatically adjust allocation granularity - allocating sub-blocks for small data and full blocks for large data - thereby managing complexity through parameter-based decision making.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20260093408A1Storage management method and storage management device
Publication Date: 2026.04.02 SIGMASTAR TECH LTD
  • US20260093408A1 patent drawing
  • US20260093408A1 patent drawing
  • US20260093408A1 patent drawing

AI summary

A storage management method accesses a storage apparatus including multiple blocks by a file system. The file system includes multiple logical blocks mapped to the blocks, and each of the logical blocks has a logical block number. The storage management method includes: receiving a first storage request to store first data of a first type; dividing a first logical block of the logical blocks into multiple logical sub-blocks in response to the first storage request; allocating a first logical sub-block of the logical sub-blocks to the first data; and generating a first logical identification code mapped to the first logical sub-block so as to record in the first logical identification code a status flag of the first type corresponding to a first value, a logical sub-block number of the first logical sub-block, and a logical block number of the first logical block.