Hardware Memory Tagging for Precision Address Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software-based memory management solutions for processors have high performance overheads, limiting their use to debug and pre-production assessments, and struggle with thorough coverage in complex scenarios due to the complexity of software systems.

Innovation Solution

A hardware-based memory tagging architecture that attaches metadata to linear addresses and pointers, using a metadata table to enable fast and precise store mismatch exceptions, with control over overheads and behavior through control registers and new instructions for managing metadata.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based memory management solutions are used, then memory tagging and validation functionality is provided, but performance overhead is extremely high (20x-100x slowdown)

Engineering Contradiction:
Improvememory tagging precisionVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces software-based memory tagging mechanisms with hardware-based circuitry integrated into the processor. The address translation circuitry now includes dedicated hardware components for generating, storing, and validating memory tags during address translation, eliminating the need for software intervention and achieving native performance

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces a hardware-based metadata table as an intermediary structure between the address translation logic and memory access operations. This table stores tag values associated with linear addresses and enables automatic tag validation during address translation without software overhead

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If software-based memory management solutions are used, then memory tagging functionality is provided, but device complexity and difficulty of achieving thorough coverage in complex scenarios increases

Engineering Contradiction:
Improvememory tagging precisionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges memory tagging functionality with the existing address translation circuitry. The tag generation, storage, and validation operations are integrated into the same hardware modules that perform virtual-to-physical address translation, eliminating separate software components and reducing overall system complexity

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The address translation circuitry is enhanced to perform multiple functions: traditional address translation, tag generation, tag storage, and tag validation. This multi-functional approach eliminates the need for separate dedicated hardware components for each memory tagging operation

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

Data Source

PatentUS11693785B2Memory tagging apparatus and method
Publication Date: 2023.07.04 INTEL CORP
  • US11693785B2 patent drawing
  • US11693785B2 patent drawing
  • US11693785B2 patent drawing

AI summary

An apparatus and method for tagged memory management. For example, one embodiment of a processor comprises: execution circuitry to execute instructions and process data, at least one instruction to generate a system memory access request having a first address pointer; and address translation circuitry to determine whether to translate the first address pointer with or without metadata processing, wherein if the first address pointer is to be translated with metadata processing, the address translation circuitry to: perform a lookup in a memory metadata table to identify a memory metadata value, determine a pointer metadata value associated with the first address pointer, and compare the memory metadata value with the pointer metadata value, the comparison to generate a validation of the memory access request or a fault condition, wherein if the comparison results in a validation of the memory access request, then accessing a set of one or more address translation tables to translate the first address pointer to a first physical address and to return the first physical address responsive to the memory access request.