Lock Address Prefetching for Multi-Threaded Cache Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, prefetching incorrect or inappropriate data can reduce the effectiveness of prefetching mechanisms, leading to increased latency due to cache misses, especially in scenarios involving lock-prefixed instructions that access shared memory locations across multiple threads.

Innovation Solution

A prefetching mechanism that predicts and accurately prefetches data for lock-prefixed instructions by correlating the target address with the control flow path history, using a lock correlation table and lock target table to identify and prefetch shared target data, while also employing a throttling mechanism to avoid lock aborts during thread contention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If data is prefetched to the cache before actually needed, then cache hit rate is improved, but prefetching incorrect data or data at inappropriate time increases cache miss latency

Engineering Contradiction:
Improvecache miss latencyVSAvoidprefetch accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent performs preliminary actions by detecting lock-prefixed instructions and prefetching target data before the actual lock operation is executed. The system identifies lock variables through static analysis of lock-prefixed instructions and proactively fetches the target data into the cache, ensuring data is ready before the lock operation occurs, thus eliminating cache miss latency during critical sections.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms by tracking lock variable addresses and control flow paths. The system monitors which lock variables are accessed by which threads and uses this information to guide subsequent prefetching decisions. The feedback loop ensures that prefetching is directed at the correct target data based on actual program execution patterns and control flow history.

Inventive Principle:
Principle #23Feedback

2Reliability

If lock-prefixed instructions access shared memory locations in multi-threaded environments, then thread synchronization is achieved, but cache invalidation occurs increasing access latency

Engineering Contradiction:
Improvethread synchronizationVSAvoidlock acquisition latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary prefetching of shared memory data before the lock operation is executed. By detecting lock-prefixed instructions and fetching target data in advance, the system ensures that when the lock is acquired and the critical section is executed, the data is already in the cache, eliminating the need for cache invalidation and re-fetching during the locked section.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies preliminary anti-action by preemptively fetching data into the cache before other threads can cause cache invalidation. The system anticipates potential cache misses caused by lock operations and counteracts them by ensuring the data is already present in the cache, thus preventing the harmful effect of cache invalidation from occurring.

Inventive Principle:
Principle #9Preliminary anti-action

3Loss of time

If prefetching is performed for all lock-prefixed instructions, then cache hit rate improves, but unnecessary prefetching increases memory bandwidth consumption

Engineering Contradiction:
Improvecache access timeVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The patent applies local quality by selectively prefetching data only for specific lock-prefixed instructions that are likely to cause cache misses. The system analyzes control flow paths and identifies critical sections where prefetching would be beneficial, rather than uniformly prefetching for all lock operations. This targeted approach optimizes the balance between cache hit rate improvement and memory bandwidth consumption.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes parameters by dynamically adjusting prefetching behavior based on control flow history and lock variable patterns. The system modifies prefetching parameters such as prefetch distance, prefetch size, and prefetch timing based on observed execution patterns, ensuring that prefetching is performed at optimal moments with appropriate data quantities, thus reducing unnecessary memory bandwidth consumption.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11243884B2Control flow guided lock address prefetch and filtering
Publication Date: 2022.02.08 ADVANCED MICRO DEVICES INC
  • US11243884B2 patent drawing
  • US11243884B2 patent drawing
  • US11243884B2 patent drawing

AI summary

A method of prefetching target data includes, in response to detecting a lock-prefixed instruction for execution in a processor, determining a predicted target memory location for the lock-prefixed instruction based on control flow information associating the lock-prefixed instruction with the predicted target memory location. Target data is prefetched from the predicted target memory location to a cache coupled with the processor, and after completion of the prefetching, the lock-prefixed instruction is executed in the processor using the prefetched target data.