Memory Allocation Queues for Fast Free-Space Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of allocating memory space in verification systems, such as those using Universal Verification Methodology (UVM), is inefficient, often taking an exponentially increasing time with the volume of data to be stored, due to random selection of memory addresses that may lead to sub-spaces that cannot accommodate the data.

Innovation Solution

A memory allocation policy that identifies free spaces using two queues, one for start addresses and one for end addresses of occupied spaces, ensuring efficient allocation by checking and selecting appropriate free spaces based on size and alignment requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If random selection of memory addresses is used for allocation, then simplicity of allocation process is maintained, but allocation time increases exponentially with data volume

Engineering Contradiction:
Improvesimplicity of allocation processVSAvoidallocation time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent maintains a linked list of free memory blocks that is updated in advance during memory allocation operations. This preliminary organization of memory information allows for O(1) or O(log n) allocation time instead of exponential random searching, while keeping the allocation process simple through structured data management

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a linked list data structure as an intermediary between the memory space and the allocation process. This intermediary structure tracks free blocks and enables efficient allocation decisions without requiring complex random searching through the entire memory space, thus reducing allocation time while maintaining operational simplicity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If random address selection is used, then allocation algorithm complexity is reduced, but memory space utilization efficiency deteriorates

Engineering Contradiction:
Improveallocation algorithm complexityVSAvoidmemory space utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system preliminarily organizes memory information by maintaining a linked list of free blocks with their sizes and locations. This pre-organization enables efficient allocation decisions and improves memory utilization efficiency without significantly increasing algorithm complexity, as the linked list structure provides direct access to suitable blocks

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The linked list serves as an intermediary structure that mediates between the raw memory space and the allocation algorithm. It provides structured information about available blocks, enabling the allocation process to make informed decisions that improve memory utilization efficiency while keeping the algorithm relatively simple through standard linked list operations

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12535959B2Managing memory space allocation
Publication Date: 2026.01.27 YANGTZE MEMORY TECH CO LTD
  • US12535959B2 patent drawing
  • US12535959B2 patent drawing
  • US12535959B2 patent drawing

AI summary

Methods, systems, and computer-readable storage media for allocating memory space are provided. In one aspect, a method includes receiving data to be stored in a memory space that includes one or more free spaces. The method further includes identifying a first free space of the one or more free spaces based on a first queue and a second queue. The first queue includes one or more addresses corresponding to end addresses of the one or more free space, and the second queue includes one or more addresses corresponding to start addresses of the one or more free spaces. The method further includes storing the data in the first free space, adding an address corresponding to a start address of the first free space to the first queue, and adding an address corresponding to an end address of the first free space to the second queue.