Hardware Prefetcher Using Trace Tags for Phase-Adaptive Data Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetching techniques in shared-memory multiprocessor systems face challenges in minimizing latency due to cache misses, as they often require sophisticated compiler technology and significant processor bandwidth, and struggle with accurately guessing target addresses and timing for data prefetching.

Innovation Solution

The use of trace indication information, such as tags containing program counter values, processor IDs, and thread IDs, to improve prefetching accuracy by monitoring program instructions and determining when and what data to prefetch, allowing for more effective speculation on future data needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software prefetching is implemented using helper threads or compiler technology, then prefetching capability is improved, but processor bandwidth consumption increases significantly

Engineering Contradiction:
Improveprefetching capabilityVSAvoidprocessor bandwidth
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent introduces a hardware prefetcher as an intermediary component between the processor and memory system. This hardware prefetcher monitors memory access patterns and autonomously generates prefetch requests, acting as a mediator that eliminates the need for software-based prefetching mechanisms. The hardware prefetcher captures trace information from the interconnect, analyzes access patterns, and initiates prefetch operations without consuming processor bandwidth, thereby resolving the contradiction between prefetching capability and processor bandwidth consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If hardware prefetching is implemented in cell controllers or interconnect, then processor bandwidth is preserved, but accuracy in guessing target addresses and timing deteriorates

Engineering Contradiction:
Improveprocessor bandwidthVSAvoidtarget address prediction accuracy
Core Design Contradiction:
Use of energy by moving objectVSMeasurement precision

Solution Approach 1:

The patent implements a feedback mechanism where the hardware prefetcher continuously monitors actual memory access patterns and uses this information to refine its prefetching predictions. The prefetcher captures trace information from the interconnect, compares predicted accesses with actual accesses, and adjusts its prediction algorithms accordingly. This feedback loop enables the hardware prefetcher to improve target address prediction accuracy over time while maintaining low processor bandwidth consumption.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The hardware prefetcher performs preliminary actions by proactively monitoring memory access patterns and predicting future memory requests before they are actually made by the processor. By analyzing trace information from the interconnect and identifying access patterns in advance, the prefetcher can initiate prefetch operations ahead of time, improving prediction accuracy for subsequent memory accesses while preserving processor bandwidth.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If cache memory space is increased to reduce cache misses, then latency is reduced, but memory system complexity and cost increase

Engineering Contradiction:
Improvecache miss latencyVSAvoidcache memory system
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The hardware prefetcher performs preliminary actions by proactively loading data into the cache before the processor actually requests it. By monitoring memory access patterns and predicting future memory requests, the prefetcher can pre-fetch data and instructions into the cache memory in advance, ensuring that the data is already available when needed. This approach reduces cache miss latency without requiring an increase in cache memory size, thereby avoiding increased system complexity and cost.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8516226B1Executing a prefetching policy responsive to entry into an execution phase of an application
Publication Date: 2013.08.20 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8516226B1 patent drawing
  • US8516226B1 patent drawing
  • US8516226B1 patent drawing

AI summary

A method and system for flexible prefetching of data and/or instructions for applications are described. A prefetching mechanism monitors program instructions and tag information associated with the instructions. The tag information is used to determine when a prefetch operation is desirable. The prefetching mechanism then requests data and/or instructions. Furthermore, the prefetching mechanism determines when entry into a different execution phase of an application program occurs, and executes a different prefetching policy based on the application's program instructions and tag information for that execution phase as well as profile information from previous executions of the application in that execution phase.