Processor Memory Tag Checking via Cache Preloading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory tagging implementations consume extra storage and cause performance degradation due to tag checking delays, especially in store operations, compromising security and debugging benefits.

Innovation Solution

Pre-loading data into cache lines with metadata including memory tags before store operations and comparing these tags with operation tags to ensure matching, thereby preventing incomplete operations in case of mismatches, thus minimizing performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory tagging is implemented to detect pointer errors and prevent malicious code execution, then security and debugging reliability are improved, but storage capacity is reduced due to extra tag bits consuming physical storage resources

Engineering Contradiction:
ImprovesecurityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent embeds tag bits within existing memory structures by utilizing unused portions of cache lines. Specifically, tag information is stored in the lower-order bits of cache line entries that would otherwise be wasted space, nesting the tagging functionality within the existing memory hierarchy without requiring additional dedicated storage resources.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent makes existing cache line structures serve dual purposes: storing both data and tag information simultaneously. The cache line entries are designed to function as both data storage units and tag verification units, eliminating the need for separate tag storage structures and thereby preserving storage capacity while enabling security features.

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

2Reliability

If memory tag checking is performed during store operations to ensure memory safety, then reliability is improved, but processing speed deteriorates due to delays in committing stores until tag verification is complete

Engineering Contradiction:
Improvememory safetyVSAvoidstore operation speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs tag verification in advance during the data prefetching stage, before the actual store operation is committed. By checking tags while data is being prefetched into the cache, the system ensures memory safety without delaying the critical store commit path, thereby maintaining high store operation speed while ensuring reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous store operation throughput by decoupling tag verification from the store commit path. Tag checking continues uninterrupted during prefetching operations, while store commits proceed without waiting for verification results, ensuring both memory safety and sustained processing speed.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If memory tag checking is performed during load operations to prevent data corruption, then reliability is improved, but processing speed deteriorates due to additional verification time

Engineering Contradiction:
Improvedata integrityVSAvoidload operation speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs tag verification during the prefetching phase, before data is actually needed by the processor. By completing tag checks in advance while data is being transferred from lower-level memory, the system ensures data integrity without adding verification delay to the critical load path, thereby maintaining high load operation speed.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If memory tag checking is implemented to identify software bugs, then debugging reliability is improved, but productivity deteriorates due to performance degradation in production run-time environments

Engineering Contradiction:
Improvedebugging capabilityVSAvoidproduction runtime performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs all tag verification operations during the prefetching stage, which occurs before data is needed by the processor. This preliminary verification ensures that by the time data reaches the processor for production use, tag checking is already complete, thereby maintaining full debugging capability without degrading production runtime performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous production performance by separating the debugging function (tag verification) from the critical production path. Tag checking continues uninterrupted in the background during prefetching, while production operations proceed without waiting for verification, ensuring both debugging reliability and production productivity.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentEP4193262B1Method, apparatus, and system for run-time checking of memory tags in a processor-based system
Publication Date: 2025.10.01 AMPERE COMPUTING LLC
  • EP4193262B1 patent drawingFigure 1
  • EP4193262B1 patent drawingFigure 2
  • EP4193262B1 patent drawingFigure 3

AI summary

A data processing system includes a store datapath configured to perform tag checking in a store operation to a store address associated with a cache line in a memory. The store datapath includes a cache lookup circuit configured to pre-load a store cache line that is to be updated in the store operation, wherein the store cache line comprises the cache line in the memory to be updated in the store operation. The store datapath also includes a tag check circuit configured to compare a store address tag associated with the store address to a store operation tag associated with the store operation. The data processing system may include a load datapath configured to perform tag checking in a load operation from a load cache line in the memory by comparing a load address tag associated with the load address to a load operation tag associated with the load operation.