Variable-Length Memory Block Layout with Shared Remainder Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for storing variable length data blocks in memory are inefficient, leading to increased memory access requests and reduced compression rates, especially when dealing with compressed blocks like frame buffer data.
Innovation Solution
The method involves grouping variable length data blocks into sets and allocating a portion of memory that includes a maximum accessible data unit section and a remainder section. Each block is stored in chunks of the maximum accessible data unit section, with any remaining portions stored in the shared remainder section, and information about block sizes is stored in a header section.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If variable length data blocks are stored using traditional allocation methods, then each block can be stored independently, but the number of memory access requests increases and memory usage efficiency decreases
Solution Approach 1:
The patent combines multiple variable length data blocks into a single continuous memory allocation called a 'superblock'. Instead of allocating separate memory regions for each block, multiple blocks are merged and stored contiguously within one superblock allocation, reducing the number of memory access requests and improving memory usage efficiency.
Solution Approach 2:
The patent segments the superblock into individual variable length data blocks that can be independently accessed and managed. Each block within the superblock maintains its own boundaries and can be individually modified or retrieved, preserving operational independence while benefiting from consolidated memory allocation.
2Quantity of substance
If compression is applied to reduce data size, then storage efficiency improves, but the compression rate decreases when using fixed allocation methods
Solution Approach 1:
The patent implements dynamic memory allocation where the superblock size and internal block structure adapt to the actual data requirements. Rather than using fixed allocation sizes, the system dynamically adjusts the superblock to fit the total compressed data size, allowing for optimal compression rates while efficiently utilizing memory resources.
Data Source
AI summary
A set of two or more variable length data blocks is stored in memory. Each variable length data block has 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. For each variable length data block of the set, the first P non-overlapping portions of size B of the variable length data block are stored 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. Any remaining portions of the variable length data blocks are stored in a remainder section of the memory shared between the variable length data blocks of the set. Information indicating the size of each of the variable length data blocks in the set is stored in a header.


