Virtual Address Masking for Memory Pool Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory management in applications is inefficient due to the overhead of identifying memory blocks to be freed, which leads to performance degradation from cache misses and page faults, especially when blocks are no longer needed.

Innovation Solution

Divide memory into pools of identically sized blocks, using metadata stored in pointers to identify the original pool, allowing for efficient allocation and freeing of blocks without the need for memory dereferencing, leveraging virtual address masking capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory blocks are freed using traditional methods requiring memory dereferencing to identify the containing pool, then the system can accurately track and free memory blocks, but the performance degrades due to cache misses and page faults

Engineering Contradiction:
Improveaccuracy of memory block identificationVSAvoidperformance of memory freeing operation
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent stores metadata about the memory pool containing each block directly in the pointer at the time of allocation. This preliminary action ensures that when the block needs to be freed, the pool identification information is already available in the pointer itself, eliminating the need for memory dereferencing and avoiding cache misses and page faults during the freeing operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides memory into multiple pools and uses virtual address masking to separate the pool identification metadata from the actual block address in the pointer. This segmentation allows the pointer to carry both the pool identifier (in masked-out address bits) and the block address simultaneously, enabling fast pool identification without additional memory accesses.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the full 64-bit address space is used for pointers, then the system can address the entire memory space, but application programs cannot store useful information in pointers since the full address space is rarely needed

Engineering Contradiction:
Improveaddressing capabilityVSAvoidusability of pointer for storing metadata
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent changes the interpretation of pointer parameters by using virtual address masking to identify which bits of the pointer represent the actual block address versus which bits represent pool identification metadata. This allows the same pointer structure to serve dual purposes: maintaining full 64-bit addressing capability while simultaneously encoding additional metadata about the memory pool, making the pointer more versatile without sacrificing addressing range.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10127158B2Memory management using virtual address masking
Publication Date: 2018.11.13 ORACLE INT CORP
  • US10127158B2 patent drawing
  • US10127158B2 patent drawing
  • US10127158B2 patent drawing

AI summary

A method for memory management may include dividing a memory into pools. Each pool includes blocks. The method may further include receiving a request to allocate a first block of a first size, selecting a pool based on the first size, allocating the first block from the selected pool, and creating metadata for a pointer to the first block. The pointer includes a pre-normalized address of the first block. The method may further include storing the metadata in the pointer, receiving a request to free the first block, and freeing the first block using the metadata to identify the selected pool.