Prefetch Mechanism Using Page Table Attributes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing prefetching mechanisms in processor systems often fail to detect sequential access patterns efficiently, leading to missed opportunities for data prefetching, especially when strides greater than one cache line are involved, resulting in suboptimal performance.

Innovation Solution

The implementation of prefetch attributes in page table entries allows for dynamic determination and optimization of prefetching, enabling quick and efficient data prefetching by indicating whether and how many cache lines to prefetch based on previous access patterns, without requiring extensive analysis of processor access patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a hardware prefetch mechanism examines access patterns to determine prefetching suitability, then prefetch accuracy is improved, but the time delay increases because several initial accesses must be examined before patterns are detected

Engineering Contradiction:
Improveprefetch accuracyVSAvoidtime delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-configuring prefetch attributes in page table entries before actual data access occurs. These attributes are set up in advance based on program analysis or heuristics, allowing the prefetch mechanism to immediately begin prefetching without needing to first detect access patterns through multiple initial accesses. This eliminates the time delay associated with pattern detection while maintaining prefetch accuracy.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a prefetch mechanism waits to detect stride patterns before prefetching, then prefetch reliability is improved, but productivity decreases due to missed prefetching opportunities

Engineering Contradiction:
Improveprefetch reliabilityVSAvoidprefetching efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies preliminary action by pre-establishing prefetch attributes in page table entries before actual data access patterns emerge. These attributes can be set through program analysis during compilation or through heuristic rules that anticipate access patterns. This allows the system to immediately initiate prefetching with high reliability, avoiding the productivity loss that occurs when waiting to detect stride patterns through multiple initial accesses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback mechanisms where the prefetch attributes in page table entries are dynamically adjusted based on observed access patterns. When access patterns are detected, the attributes are updated to reflect the actual stride and access characteristics, allowing the prefetch mechanism to maintain high reliability while immediately capturing prefetching opportunities, thus improving productivity.

Inventive Principle:
Principle #23Feedback

3Speed

If compilers use cache touch instructions for prefetching, then data availability is improved, but ease of operation decreases because compilers are seldom effective at using these instructions

Engineering Contradiction:
Improvedata availabilityVSAvoidcompiler effectiveness
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The system applies self-service by making the prefetch mechanism autonomous through page table entry attributes that automatically control prefetching behavior. Instead of relying on compilers to insert cache touch instructions, the system self-determines when and how much data to prefetch based on the prefetch attributes stored in page table entries. This eliminates the dependency on compiler effectiveness while maintaining fast data availability through automatic prefetching.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7383391B2Prefetch mechanism based on page table attributes
Publication Date: 2008.06.03 GOOGLE LLC
  • US7383391B2 patent drawing
  • US7383391B2 patent drawing
  • US7383391B2 patent drawing

AI summary

A prefetch mechanism using prefetch attributes is disclosed. In one aspect, an explicit request for data stored in a memory is provided, and a prefetch attribute in a page table entry associated with the explicit request is examined to determine whether to provide one or more prefetch requests based on the prefetch attribute. Another aspect includes determining dynamic prefetch attributes for use in prefetching data, in which prefetch attributes are adjusted based on memory access requests that target next sequential blocks of memory relative to the most recent previous access in a page of memory.