Flash Memory Block Allocation via Continuous Zone Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face challenges in enhancing read and write performance when storing files, particularly in flash memory-based storage devices, due to inefficient block allocation methods that do not consider storage device characteristics.
Innovation Solution
A computing system and method that divides the storage area into zones, sections, and blocks, using a block allocation module to allocate target blocks through a continuous block allocation method, and if not possible, finding a free section to allocate the block, thereby optimizing block allocation and enhancing read and write performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional block allocation method is used, then storage area can be utilized, but read and write performance is poor due to frequent zone crossings
Solution Approach 1:
The storage area is divided into multiple zones, with each zone containing multiple sections and blocks. This segmentation allows the block allocation module to operate within confined zones, reducing zone crossings and improving read/write performance while maintaining manageable allocation complexity through hierarchical organization.
Solution Approach 2:
The storage area is pre-divided into zones, sections, and blocks before data storage operations begin. This preliminary structuring enables the block allocation module to efficiently allocate contiguous blocks within the same zone without complex real-time decisions, thereby enhancing performance while keeping the allocation process straightforward.
2Productivity
If continuous block allocation is implemented, then read and write performance improves, but allocation complexity increases
Solution Approach 1:
By segmenting the storage area into zones with multiple sections each, the system achieves continuous block allocation within zones without requiring complex global allocation strategies. The hierarchical structure simplifies the allocation logic while maintaining high productivity through contiguous block access.
Solution Approach 2:
The block allocation module applies continuous allocation locally within each zone rather than globally across the entire storage area. This local approach improves system performance by ensuring contiguous blocks are allocated where needed while keeping the allocation method simple and zone-confined.
3Speed
If blocks are allocated without considering storage device characteristics, then allocation is simple, but read and write performance deteriorates
Solution Approach 1:
The storage device characteristics are incorporated through segmentation into zones, sections, and blocks. This structure enables the block allocation module to allocate blocks considering flash memory characteristics (such as erase block requirements and wear leveling) while maintaining operational simplicity through the organized hierarchical framework.
Solution Approach 2:
The block allocation module applies allocation rules tailored to flash memory characteristics locally within each zone. This approach enhances read/write performance by respecting storage device properties while keeping the overall operation simple through consistent zone-based allocation patterns.
Data Source
AI summary
A computing system a storage device and a file system. The storage device includes a storage area having flash memory. The file system is configured to divide the storage area into multiple zones, multiple sections and multiple blocks, and to write a log in each block. The file system includes a block allocation module. The block allocation module is configured to allocate a target block, in which a log is to be written, by a continuous block allocation method according to which a block having a continuous address with a most recently selected block is set as the target block. The block allocation module is further configured to find a free section from the multiple sections when it is not possible to allocate the target block by the continuous block allocation method, and to set a block in the found free section as the target block.


