Variable-Length Memory Block Layout With Shared Remainder Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storing variable length data blocks in memory is inefficient due to the need for multiple memory access requests, especially when the blocks' size exceeds the maximum accessible data size, leading to increased memory access requests and reduced compression rates.
Innovation Solution
Grouping variable length data blocks into sets and allocating memory with a maximum accessible data unit section and a remainder section, where each block's maximum accessible data units are stored in the former and any remaining portions in the latter, reducing the number of memory access requests required for storage and modification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If variable length data blocks are stored in memory using traditional allocation methods, then each block can be stored independently, but the number of memory access requests increases when block size exceeds maximum accessible data size
Solution Approach 1:
The patent divides variable length data blocks into multiple segments, where each segment fits within the maximum accessible data size of memory. This segmentation allows the blocks to be stored and accessed more efficiently, reducing the number of memory access requests required while maintaining independent storage capability for each block.
2Loss of substance
If variable length data blocks are compressed using lossless compression algorithms, then compression rates improve, but the compressed blocks become variable length requiring complex memory management
Solution Approach 1:
The patent segments compressed variable length data blocks into fixed-size portions that align with memory access boundaries. This segmentation simplifies memory management by eliminating the need to handle variable length boundaries while preserving the compression benefits, as the segmented blocks can be stored and retrieved systematically.
Solution Approach 2:
The patent performs preliminary segmentation and organization of compressed data blocks before storage, dividing them into standardized units that match memory capacity. This preliminary action simplifies subsequent memory operations by pre-resolving the variable length issue, allowing for more straightforward allocation and access patterns.
3Adaptability or versatility
If memory is allocated to accommodate variable length blocks, then all blocks can be stored, but memory fragmentation occurs and storage efficiency decreases
Solution Approach 1:
The patent segments variable length data blocks into fixed-size memory units, allowing efficient packing of multiple segments into contiguous memory regions. This approach maintains adaptability to different block sizes while eliminating fragmentation, as the fixed segmentation enables systematic allocation and utilization of memory space.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and systems for storing a set of two or more variable length data blocks in memory. Each variable length data block having a maximum size of N ∗ B, wherein N is an integer greater than or equal to two, and B is a maximum data size that can be written to the memory using a single memory access request. The method includes: storing, for each variable length data block of the set, the first P non-overlapping portions of size B of the variable length data block in a chunk of the memory allocated to that variable length data block, wherein P is a minimum of (i) a number of non-overlapping portions of size B of the variable length data block and (ii) X which is an integer less than N; storing any remaining portions of the variable length data blocks in a remainder section of the memory that is shared between the variable length data blocks of the set; and storing in a header section of the memory information indicating the size of each of the variable length data blocks in the set.