Non-Volatile Memory Namespace Mapping for Dynamic Size Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer storage devices face challenges in efficiently managing namespaces with varying sizes, leading to fragmentation and inefficient usage of storage capacity due to cycles of allocation and deletion, particularly in non-volatile memory systems.
Innovation Solution
Implementing a block-by-block mapping of logical block addresses (LBA) to physical addresses, using a predetermined block size, and adjusting namespace sizes dynamically through changes in LBA address mapping, without deleting or recreating namespaces, to optimize storage capacity utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If namespaces are allocated and deleted cyclically to accommodate varying sizes, then storage capacity can be dynamically adjusted, but fragmentation increases and storage capacity utilization becomes inefficient
Solution Approach 1:
The storage device is divided into multiple namespaces, each with its own LBA address space. The controller manages these namespaces by allocating and deallocating specific LBA ranges to host applications, enabling flexible storage management while preventing fragmentation through systematic allocation strategies
Solution Approach 2:
The system dynamically adjusts namespace sizes by allocating or deallocating LBA address ranges based on host requests. The controller maintains a mapping between logical block addresses and physical storage locations, allowing namespaces to expand or shrink without deleting entire structures, thus adapting to varying storage needs while maintaining efficiency
2Productivity
If namespaces are deleted and recreated to adjust sizes, then storage capacity can be optimized, but time is lost due to repeated allocation and deletion cycles
Solution Approach 1:
The system allows dynamic resizing of namespaces by adjusting LBA address mappings without deleting the namespace structure. The controller modifies the allocation state of LBA ranges while preserving the namespace identifier and metadata, eliminating the time-consuming delete-recreate cycle while maintaining storage optimization
Solution Approach 2:
The controller pre-establishes a mapping structure between LBA addresses and physical storage locations before namespace operations are needed. This preliminary mapping allows rapid adjustment of namespace sizes by simply updating the mapping state rather than performing complete reallocation, reducing operational time
3Device complexity
If a fixed LBA address mapping is used, then the system is simple to implement, but it cannot support dynamic namespace size adjustments
Solution Approach 1:
The LBA address mapping structure is made dynamic by allowing the controller to allocate and deallocate specific LBA ranges to namespaces based on host requests. The mapping maintains associations between logical block addresses and physical storage locations while enabling flexible adjustment of namespace sizes through systematic allocation strategies
Solution Approach 2:
The LBA address space is segmented into manageable ranges that can be independently allocated to different namespaces. This segmentation allows the system to maintain a structured mapping approach while supporting dynamic namespace creation and resizing by assigning specific segments to host applications
Data Source
AI summary
A computer storage device having a host interface, a controller, non-volatile storage media, and firmware. The firmware instructs the controller to: store a namespace map mapping blocks of logical block addresses in a namespace to blocks from a logical address capacity of the non-volatile storage media; adjust the namespace map to change the size of the namespace; and translate logical addresses in the namespace to physical addresses for the non-volatile storage media using the namespace map.


