Pointer Validation via Metadata Table for Memory Corruption Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems fail to effectively detect memory corruption caused by out-of-bound accesses and dangling pointers, leading to potential system crashes and data loss.

Innovation Solution

A processing system is configured to validate pointers by maintaining a metadata table that stores identifiers for memory blocks, comparing metadata values from the table to those extracted from pointers during memory access instructions, and generating a page fault if mismatched, thereby preventing memory corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory corruption detection is implemented using metadata tables and pointer validation, then system reliability is improved, but device complexity increases

Engineering Contradiction:
Improvememory safetyVSAvoidsystem structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory management system by introducing separate metadata tables (e.g., rbh_table, rbt_table) that are distinct from the main memory structure. Each table stores specific information about memory blocks (generation counts, parent/child relationships), allowing the system to detect memory corruption without redesigning the entire memory architecture. This segmentation enables reliability improvement while controlling complexity through modular organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses metadata tables as intermediary structures between the memory allocator and the memory access validation logic. These tables serve as mediators that store reference counts and relationship information, enabling the system to validate pointer integrity without direct complex interactions between all memory components. The intermediary structure simplifies the validation process while maintaining high reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If pointer validation and metadata comparison are performed for every memory access, then memory corruption detection is improved, but processing speed decreases

Engineering Contradiction:
Improvecorruption detectionVSAvoidmemory access speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies partial validation by checking only specific metadata fields (generation counts, parent/child pointers) rather than validating every possible memory attribute. The validation logic selectively compares metadata entries based on the type of memory access (read/write, sequential/random), performing only the necessary checks to detect corruption while minimizing performance impact. This partial action approach maintains reliability without excessive slowing down.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The metadata tables are designed to be self-validating through automatic updates of generation counts and reference information during memory allocation and deallocation. The system leverages existing metadata updates to perform validation checks without requiring separate validation operations, thereby reducing the overhead of pointer validation while maintaining comprehensive corruption detection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9858140B2Memory corruption detection
Publication Date: 2018.01.02 INTEL CORP
  • US9858140B2 patent drawing
  • US9858140B2 patent drawing
  • US9858140B2 patent drawing

AI summary

Systems and methods for memory corruption detection. An example processing system comprises a processing core including a register to store a base address of a memory corruption detection (MCD) table. The processing core is configured to validate a pointer referenced by a memory access instruction, by comparing a first value derived from a first portion of the pointer to a second value stored in the MCD table at an offset referenced by a second portion of the pointer.