Hardware Revocation Pipeline for Temporal Memory Safety

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for enhancing temporal memory safety in memory constrained systems face challenges in efficiently invalidating pointers to deallocated memory without introducing significant performance loss or memory usage, particularly in applications requiring low latency responses.

Innovation Solution

A hardware revocation engine with a revocation pipeline coupled to the main processor pipeline, comprising at least two stages, that scans memory for pointers to deallocated objects using shadow memory bits, allowing for low-latency and efficient invalidation of pointers by sharing memory access with the main processor pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a hardware revocation engine is implemented to invalidate pointers to deallocated memory, then temporal memory safety is improved, but device complexity increases

Engineering Contradiction:
Improvetemporal memory safetyVSAvoidhardware structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory system is segmented into two distinct pipelines: the main processor pipeline for normal execution and the revocation pipeline for pointer validation. This segmentation allows independent operation of each pipeline, enabling pointer revocation functionality to be added without fundamentally redesigning the existing processor architecture. The revocation pipeline processes memory addresses separately, checking them against shadow memory bits while the main pipeline continues normal operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The revocation pipeline is designed with multi-functionality to handle various pointer validation tasks. It can process different types of memory access patterns (sequential, random, cached) through a unified pipeline structure. The same pipeline infrastructure serves both pointer revocation and can be extended to handle other memory safety checks, reducing overall system complexity by using a versatile component rather than dedicated hardware for each function.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If a revocation pipeline is added to scan memory for pointers, then pointer invalidation efficiency is improved, but memory access time increases

Engineering Contradiction:
Improvepointer invalidation efficiencyVSAvoidmemory access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by maintaining shadow memory bits that are updated in advance when memory is deallocated. Before actual pointer usage occurs, the shadow memory is pre-populated with revocation information. This allows the revocation pipeline to quickly check pointer validity without performing complex analysis at the moment of access, significantly reducing validation time while maintaining high efficiency in pointer invalidation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The revocation pipeline operates continuously in parallel with the main processor pipeline, ensuring that pointer validation is performed without interrupting normal program execution. The pipeline maintains a continuous flow of address validation, processing multiple addresses simultaneously through its staged architecture. This continuous operation ensures that pointer invalidation efficiency is maintained without causing stalls or delays in the main processor, as both pipelines progress independently and concurrently.

Inventive Principle:
Principle #20Continuity of useful action

3Quantity of substance

If the revocation pipeline shares memory access with the main pipeline, then memory usage is optimized, but access speed decreases

Engineering Contradiction:
Improvememory usageVSAvoidmemory access speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

Memory access is segmented into two separate pathways: the main processor pipeline accesses memory for normal execution operations, while the revocation pipeline accesses memory specifically for pointer validation against shadow memory bits. This segmentation allows both pipelines to operate independently without contending for the same memory resources at the same time, preventing access speed degradation despite shared memory usage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shadow memory acts as an intermediary structure that mediates between the main memory and the revocation pipeline. Instead of the revocation pipeline directly competing with the main pipeline for access to the full memory space, it queries a dedicated shadow memory structure that contains only the necessary revocation information. This intermediary approach reduces the access burden on the main memory system while maintaining comprehensive pointer validation capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12422988B2Hardware revocation engine for temporal memory safety
Publication Date: 2025.09.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12422988B2 patent drawing
  • US12422988B2 patent drawing
  • US12422988B2 patent drawing

AI summary

A hardware revocation engine for invalidating a pointer, that refers to a deallocated object, from memory in a memory constrained system. The hardware revocation engine has a revocation pipeline coupled to a pipeline of a main processor of the memory constrained system. The revocation pipeline shares access to memory with the main pipeline, the revocation pipeline comprising at least a first stage and a subsequent second stage. In a first cycle of the revocation pipeline, the first stage of the revocation pipeline loads a first pointer-sized value from the memory. In a second cycle: the second stage checks whether the first loaded pointer-sized value is a pointer referring to deallocated memory. In a third cycle: in response to the outcome of the check indicating that the first loaded pointer-sized value is a pointer referring to deallocated memory, the first stage invalidates the first pointer-sized value.