Data Block Compaction Layout for Zero-Waste SSD Buffer Packing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data compression and compaction methods result in significant wasted space and CPU inefficiency due to inefficient packing of compressed and uncompressed data blocks, leading to reduced storage capacity and increased wear on SSDs.
Innovation Solution
A device and method that compact compressed and uncompressed data blocks sequentially into an output buffer, eliminating wasted space by using predefined regions for each type of block and calculating optimal block addresses and headers, allowing for actual compressed data sizes to be used without grain unit alignment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If compressed data blocks are packed using fixed-size grain units (1 KB alignment), then data can be written to storage media using standardized units, but significant wasted space is created when compressed blocks do not align with grain unit boundaries
Solution Approach 1:
The patent segments the output buffer into distinct regions: a first region for compressed data blocks and a second region for uncompressed data blocks. This segmentation allows each type of data to be managed independently, eliminating the need for grain unit alignment and thereby eliminating wasted space while maintaining organizational structure.
Solution Approach 2:
The patent changes the packing parameter from fixed grain unit size (1 KB) to variable block sizes that fit actual compressed data. By calculating optimal block addresses and headers based on actual data sizes rather than fixed alignment units, the system eliminates wasted space while maintaining efficient storage.
2Device complexity
If grain unit alignment is used for packing compressed data blocks, then data structure simplicity is maintained, but CPU inefficiency increases due to wasted space and additional alignment calculations
Solution Approach 1:
By segmenting the output buffer into dedicated regions for compressed and uncompressed data, the patent eliminates the need for complex grain unit alignment calculations. The simplified structure directly maps data to appropriate regions without requiring alignment checks, thereby improving CPU efficiency while maintaining structural organization.
Solution Approach 2:
The patent extracts the grain unit alignment requirement from the data packing process. By removing this constraint and allowing variable-sized blocks to be packed directly into designated regions, the system eliminates unnecessary CPU cycles spent on alignment calculations while maintaining data structure integrity.
3Quantity of substance
If compression is applied to all input data blocks, then storage capacity is increased, but some non-compressible blocks produce larger output blocks requiring additional handling logic
Solution Approach 1:
The patent segments the output buffer into separate regions for compressed and uncompressed data blocks. This segmentation provides a natural destination for both compressible and non-compressible data, eliminating the need for complex handling logic. Compressed blocks go to the first region, uncompressed blocks to the second region, simplifying the decision-making process.
Solution Approach 2:
The output buffer is designed with multi-functionality, containing both a first region for compressed data and a second region for uncompressed data. This universal structure can accommodate any type of input block regardless of compressibility, eliminating the need for special handling logic for non-compressible blocks.
Data Source
AI summary
A device and a method for an improved compacting of compressed and uncompressed data blocks into an output buffer are provided. The device is configured to obtain a set of input data blocks comprising at least one of a compressed data block and an uncompressed data block; compact the compressed data blocks into the output buffer, starting from a first predefined region in the output buffer, such that the compressed data blocks are sequentially compacted; and compact the uncompressed data blocks into the output buffer, starting from a second predefined region in the output buffer, such that the uncompressed data blocks are sequentially compacted.


