Mid-Point Metadata Relocation for Memory Safety

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory safety mechanisms, such as memory tagging technology, incur high overheads due to increased pointer sizes, poor locality, and redundant metadata storage, leading to significant memory waste and performance impacts, particularly in managing memory allocations for large datasets.

Innovation Solution

The proposed solution involves storing tag metadata at the mid-point of a memory allocation, using a power of two encoding to determine the mid-point, and encoding this metadata once per allocation, which reduces memory overhead and improves cache locality by allowing direct access to metadata without redundant storage or updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory tagging technology uses a repeating memory tag for every data block, then memory safety can be ensured, but memory overhead increases significantly

Engineering Contradiction:
Improvememory safetyVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the metadata storage with the data storage by placing the memory tag at the mid-point of the memory allocation rather than storing separate tags for each data block. This consolidation reduces the total memory overhead while maintaining safety functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the memory allocation into three parts: data before the mid-point, metadata at the mid-point, and data after the mid-point. This segmentation allows the memory tag to be centrally located and accessed efficiently without requiring redundant storage throughout the entire data structure.

Inventive Principle:
Principle #1Segmentation

2Reliability

If metadata is stored separately for each memory block, then memory safety can be maintained, but cache locality deteriorates

Engineering Contradiction:
Improvememory safetyVSAvoidcache locality
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

By merging the metadata storage location with the data storage location (placing the tag at the mid-point of the allocation), the patent improves cache locality. The metadata is now co-located with the data it describes, eliminating the need to access separate metadata structures and reducing cache line misses.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If redundant metadata storage is used, then memory safety can be ensured, but performance deteriorates due to multiple redundant memory accesses

Engineering Contradiction:
Improvememory safetyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the essential safety information (the memory tag) from the redundant metadata storage and consolidates it into a single location at the mid-point of the allocation. This extraction eliminates the need for multiple redundant memory accesses while preserving the safety checking functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP4064058B1Data relocation for inline metadata
Publication Date: 2025.01.01 INTEL CORP
  • EP4064058B1 patent drawingFigure 1
  • EP4064058B1 patent drawingFigure 2
  • EP4064058B1 patent drawingFigure 3

AI summary

Technologies disclosed herein provide one example of a system that includes processor circuitry to be communicatively coupled to a memory circuitry. The processor circuitry is to receive a memory access request corresponding to an application for access to an address range in a memory allocation of the memory circuitry and to locate a metadata region within the memory allocation. The processor circuitry is also to, in response to a determination that the address range includes at least a portion of the metadata region, obtain first metadata stored in the metadata region, use the first metadata to determine an alternate memory address in a relocation region, and read, at the alternate memory address, displaced data from the portion of the metadata region included in the address range of the memory allocation. The address range includes one or more bytes of an expected allocation region of the memory allocation.