Variable-Length Memory Block Layout for Fewer Access Requests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for storing variable length data blocks in memory are inefficient, leading to increased memory access requests and difficulties in modifying data blocks, especially when the maximum size of the blocks exceeds the maximum accessible data size, resulting in suboptimal compression rates and increased computational resources.

Innovation Solution

The method involves grouping variable length data blocks into sets and allocating memory with a maximum accessible data unit section and a shared remainder section, where each block's first P non-overlapping portions are stored in the accessible section, and any remaining portions are stored in the shared remainder section, along with header information indicating each block's size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If variable length data blocks are stored using traditional methods, then data can be stored in memory, but the number of memory access requests increases and memory utilization decreases

Engineering Contradiction:
Improvememory access efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments variable length data blocks into fixed-size portions (e.g., 64-byte units) and stores them in an array structure. Each data block is divided into multiple portions that can be individually accessed, allowing efficient memory management without requiring variable-length allocation. This segmentation enables the system to handle variable-length logical data using fixed-length physical storage units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to memory organization by creating a multi-dimensional memory structure with dimensions for data blocks, portions within blocks, and offset positions. This dimensional approach allows the system to efficiently map variable-length data blocks onto fixed-size memory regions, reducing the number of memory access requests needed to retrieve or modify data.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If variable length data blocks are stored with individual allocation, then each block can be accessed independently, but memory utilization decreases due to fragmentation

Engineering Contradiction:
Improvedata block access flexibilityVSAvoidmemory utilization
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple variable-length data blocks into a unified fixed-size memory region. By combining several blocks into a single continuous memory allocation, the system eliminates fragmentation and improves memory utilization. The unified structure allows efficient packing of data blocks while maintaining the ability to access individual blocks independently through calculated offsets.

Inventive Principle:
Principle #5Merging (Combining)

3Length of moving object

If the maximum block size exceeds maximum accessible data size, then large data blocks can be stored, but multiple memory access requests are required increasing processing overhead

Engineering Contradiction:
Improvedata block sizeVSAvoidmemory access time
Core Design Contradiction:
Length of moving objectVSLoss of time

Solution Approach 1:

The patent segments large data blocks into smaller fixed-size portions that fit within the maximum accessible data size constraints. Each portion is stored contiguously in memory with known offsets, allowing the system to retrieve or modify portions using single memory access requests rather than multiple requests spanning the entire large block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary organization of data blocks into fixed-size portions during the storage phase. By pre-calculating and storing the structure with known offsets and dimensions, the system eliminates the need for runtime calculations or multiple access requests when retrieving or modifying data, significantly reducing processing overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12153814B2Methods and systems for storing variable length data blocks in memory
Publication Date: 2024.11.26 IMAGINATION TECH LTD
  • US12153814B2 patent drawing
  • US12153814B2 patent drawing
  • US12153814B2 patent drawing

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.