Processor Prefetch Unit Inhibiting Linked List Accesses

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microprocessors face inefficiencies in hardware prefetching, particularly when accessing patterns in linked lists, where prefetching can lead to cache waste and eviction of useful data due to the likelihood of sequential data not being accessed soon.

Innovation Solution

A processor with a prefetch unit and detection logic that uses instruction hints to inhibit certain memory accesses, preventing the prefetching of unused addresses and optimizing cache usage by monitoring memory accesses and calculating next blocks to prefetch based on previous patterns, while discarding addresses associated with specific hints to prevent unnecessary prefetching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hardware prefetching is used to detect patterns in memory accesses, then memory access latency is reduced, but cache space is wasted and useful data is evicted when accessing linked list patterns

Engineering Contradiction:
Improvememory access latencyVSAvoidcache space utilization
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies local quality by differentiating the treatment of different memory access patterns. Instead of uniformly prefetching all sequential accesses, the system identifies specific patterns (such as linked list traversals) and applies selective prefetching only to appropriate patterns while excluding others. This localized differentiation optimizes cache utilization by preventing unnecessary prefetches in specific contexts where sequential access is unlikely to occur soon.

Inventive Principle:
Principle #3Local quality

2Measurement precision

If prefetch unit monitors all memory accesses to calculate next blocks, then prefetch accuracy improves, but unnecessary prefetches are generated for patterns like linked lists

Engineering Contradiction:
Improveprefetch accuracyVSAvoiduseful prefetch operations
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts harmful elements from the prefetch calculation process by introducing detection logic that identifies specific memory access patterns (such as linked list traversals) and removes them from the prefetch candidate set. The detection logic analyzes access patterns and selectively excludes accesses that would lead to unnecessary prefetches, thereby maintaining prefetch accuracy for useful patterns while eliminating wasteful prefetch operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system implements feedback mechanisms where detection logic continuously monitors memory access patterns and provides feedback to the prefetch unit. When a pattern indicating unlikely sequential access (such as linked list traversal) is detected, the feedback signal instructs the prefetch unit to exclude this access from future prefetch calculations, dynamically adapting prefetch behavior to current access patterns.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If instruction hints are added to control prefetch behavior, then cache pollution is reduced, but processor complexity increases

Engineering Contradiction:
Improvecache space efficiencyVSAvoidprocessor architecture complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies universality by integrating multiple functions into the existing prefetch unit and detection logic. The detection logic serves both to identify memory access patterns and to control prefetch behavior, while the prefetch unit simultaneously performs pattern analysis, prefetch generation, and hint-based filtering. This multi-functionality reduces the need for separate dedicated components, thereby limiting the increase in processor complexity while achieving improved cache efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2204741B1Processor and method for using an instruction hint to prevent hardware prefetch from using certain memory accesses in prefetch calculations
Publication Date: 2014.09.03 ADVANCED MICRO DEVICES INC
  • EP2204741B1 patent drawingFigure 1
  • EP2204741B1 patent drawingFigure 2
  • EP2204741B1 patent drawingFigure 3

AI summary

A microprocessor includes a cache memory, a prefetch unit, and detection logic. The prefetch unit may be configured to monitor memory accesses that miss in the cache and to determine whether to prefetch one or more blocks of memory from a system memory based upon previous memory accesses. The prefetch unit may be further configured to use addresses of the memory accesses that miss to calculate each next memory block to prefetch. The detection logic may be configured to provide a notification to the prefetch unit in response to detecting a memory access instruction including a particular hint. In response to receiving the notification, the prefetch unit may be configured to inhibit using an address associated with the memory access instruction including the particular hint, when calculating subsequent memory blocks to prefetch.