Shared Prefetch Instruction for Multi-Threaded Cache Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor caching policies are suboptimal for multi-threaded applications, leading to higher latency and increased pressure on caching agents due to the need for snooping when data is shared among multiple cores, especially for modest numbers of cores.

Innovation Solution

A shared prefetch instruction is introduced, which hints to the hardware that data will be shared among threads, allowing it to be placed in shared caches more efficiently, reducing coherence traffic and improving cache hit rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is installed into requesting core's L2 cache in exclusive state, then cache hit rate for single-threaded applications is improved, but latency and pressure on caching agents increase for multi-threaded applications

Engineering Contradiction:
Improvecache hit rateVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces dynamic cache placement policies that can switch between exclusive and shared states based on runtime detection of data sharing patterns. The system monitors memory access patterns across threads and dynamically adjusts whether data resides in exclusive L2 or shared LLC, resolving the contradiction between single-thread performance and multi-thread latency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the state parameter of cache data from fixed exclusive state to variable states (exclusive or shared) based on access patterns. By detecting when data is accessed by multiple threads and changing the cache placement parameter accordingly, the system reduces latency for multi-threaded applications while maintaining high hit rates.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If snooping is used to maintain cache coherence for shared data, then cache coherence is ensured, but pressure on caching agents and coherence traffic increase

Engineering Contradiction:
Improvecache coherenceVSAvoidcoherence traffic
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent performs preliminary action by detecting data sharing patterns before coherence issues arise. By monitoring access patterns and pre-establishing shared cache placements, the system avoids the need for reactive snooping operations, thereby reducing coherence traffic while maintaining coherence.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a monitoring mechanism that acts as an intermediary between threads and the cache coherence system. This mediator detects sharing patterns and manages cache placements, reducing the need for direct snooping operations between cores and lowering overall coherence traffic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If data is placed in private cache, then access speed for single thread is improved, but redundant memory accesses occur in multi-threaded applications

Engineering Contradiction:
Improveaccess speedVSAvoidredundant memory accesses
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent implements dynamic cache placement that transitions data between private L2 and shared LLC based on detected access patterns. When single-thread access is detected, data remains in private cache for high speed. When multi-thread access is detected, data is moved to shared cache, eliminating redundant memory accesses and energy waste.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the cache placement parameter from fixed private to variable (private or shared) based on runtime behavior. This parameter change allows the system to optimize for speed when data is private and reduce energy consumption when data is shared, eliminating redundant memory accesses.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230101512A1Shared prefetch instruction and support
Publication Date: 2023.03.30 INTEL CORP
  • US20230101512A1 patent drawing
  • US20230101512A1 patent drawing
  • US20230101512A1 patent drawing

AI summary

Techniques for shared data prefetch are described. An exemplary instruction for shared data prefetch includes at least one field for an opcode, at least one field for a source operand to provide a memory address at least a byte of data, wherein the opcode is to indicate that circuitry is to fetch of a line of data from memory at the provided address that contains the byte specified with the source operand and store that byte in at least a cache local to a requester, wherein the byte of data is to be stored in a shared state.