Cryptographic Address Prefetch Circuitry for Leak-Safe Speculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetch circuits in computing systems are vulnerable to data leaks due to attackers mistaking secret data for memory addresses, leading to unauthorized access and observation of sensitive information.

Innovation Solution

Implementing a cryptographic address prefetch circuit that encrypts memory addresses with a secret key, decrypting them before prefetching to hide the original data content from attackers, thereby preventing data leaks while maintaining high performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a prefetch circuit attempts to access memory locations by using data values as addresses, then prefetch performance is improved, but data leaks occur when attackers mistake secret data for memory address information

Engineering Contradiction:
Improveprefetch performanceVSAvoiddata leak
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent introduces an intermediary encryption layer between the prefetch circuit and memory addresses. The prefetch circuit operates on encrypted addresses, and a decryption mechanism translates these encrypted addresses to actual memory locations. This intermediary layer prevents direct exposure of sensitive address information while maintaining prefetch functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts the address information from the data stream by using encryption to separate the address component from the data component. By encrypting addresses independently from data, the system can process addresses through the prefetch circuit without exposing the underlying data, thus preventing data leaks while maintaining prefetch performance.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If the prefetch circuit uses aggressive prefetching strategies, then memory access performance is improved, but the risk of mistaking data for addresses increases

Engineering Contradiction:
Improvememory access performanceVSAvoidaddress identification accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies different quality characteristics to different parts of the memory access stream. Encrypted addresses are marked with specific properties that distinguish them from data, allowing the prefetch circuit to treat address identification and data access differently. This local differentiation enables aggressive prefetching on addresses while maintaining reliability through proper identification.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameter representation of addresses by encrypting them. This parameter transformation makes it impossible for the prefetch circuit to mistake encrypted addresses for data, as the encrypted form has fundamentally different properties. The system can safely perform aggressive prefetching on transformed address parameters while maintaining accurate identification through the encryption mechanism.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP4672000A1Cryptographic address prefetch circuitry and methods
Publication Date: 2025.12.31 INTEL CORP
  • EP4672000A1 patent drawingFigure 1
  • EP4672000A1 patent drawingFigure 2
  • EP4672000A1 patent drawingFigure 3

AI summary

Prefetch (e.g., prefetcher) circuits and methods that allow the safe prefetch of any speculative memory references using cryptographic addressing are described. In certain examples, a computing system includes a memory; a register to store a cryptographic address prefetch key; a core to generate a memory access request for the memory; a cache; and a prefetch circuit to: generate a speculative memory access request for an encrypted memory address based at least in part on the memory access request, decrypt the encrypted memory address to determine a memory line stored at the memory address decrypted by the cryptographic address prefetch key to generate a plaintext address, and store a memory line referenced by the plaintext address in the cache.