NVM Driver Scaling Logical Capacity to Reduce Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional non-volatile memory (NVM) systems face performance degradation and data fragmentation when nearing full capacity due to the mismatch between reported logical and physical capacities, leading to increased fragmentation and processing overhead.
Innovation Solution
The system reports a scaled physical capacity that is significantly larger than the actual physical capacity to the file system, allowing for a larger logical space while maintaining a commitment budget that ensures data is stored within the NVM's physical limits, thereby preventing fragmentation and performance slowdowns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the logical capacity is reduced to reserve space for garbage collection and bad blocks, then the system reliability is improved, but the productivity deteriorates due to increased fragmentation and processing overhead when nearing full capacity
Solution Approach 1:
The patent segments the capacity reporting into two distinct values: a scaled physical capacity reported to the file system for allocation purposes, and a commitment budget reported for actual data storage tracking. This segmentation allows the file system to operate with a larger logical space while the NVM is constrained by the smaller commitment budget, resolving the contradiction between reliability and productivity.
Solution Approach 2:
The NVM driver acts as an intermediary between the file system and the actual NVM hardware. It translates the scaled physical capacity into a larger logical space for the file system while simultaneously managing the actual physical capacity through the commitment budget mechanism, thereby mediating between the needs for high productivity and reliable data storage.
2Device complexity
If the logical space is made equal to physical capacity, then the device complexity is reduced, but the productivity deteriorates due to frequent fragmentation and defragmentation when nearing full capacity
Solution Approach 1:
The patent introduces dynamic capacity scaling where the logical space size is determined by the scaled physical capacity rather than being fixed equal to physical capacity. This dynamic approach allows the logical space to remain larger than actual physical usage, preventing fragmentation issues while maintaining manageable system complexity through the NVM driver's translation layer.
3Measurement precision
If the NVM is reported at full physical capacity, then the measurement precision is improved, but the productivity deteriorates due to lack of free space for ideal data allocation
Solution Approach 1:
The patent changes the parameter used for capacity reporting from the actual physical capacity to a scaled physical capacity that is larger than the physical capacity. This parameter change allows the file system to allocate data more efficiently with ample free space, while the commitment budget ensures that the actual data stored does not exceed the physical capacity limits, thus resolving the contradiction between measurement precision and productivity.
Data Source
AI summary
This can relate to handling a non-volatile memory (“NVM”) operating at a substantially full memory. The non-volatile memory can report its physical capacity to an NVM driver. The NVM driver can scale-up the physical capacity a particular number of times to generate a “scaled physical capacity,” which is then reported to the file system. Because the scaled physical capacity is greater than the NVM's actual physical capacity, the file system allocates a logical space to the NVM that is substantially greater than the NVM's capacity. This can cause less crowding of the logical block addresses within the logical space, thus making it easier for the file system to operate and improving system performance. A commitment budget can also be reported to the file system that corresponds to the NVM's physical capacity, and which can define the amount of data the file system can commit for storage in the NVM.


