Macroscalar Vector Prefetch Streaming Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processor prefetchers face performance issues due to incorrect timing of memory prefetching, either initiating prefetch too soon and causing unnecessary memory accesses or too late and suffering from memory latency, as they wait to confirm streaming patterns before prefetching.

Innovation Solution

Implementing Macroscalar vector prefetch with streaming access detection, where a vector execution unit executes a vector memory access instruction to detect a streaming pattern and calculate prefetch addresses based on the pattern, allowing for timely prefetching of memory addresses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional prefetchers wait to confirm streaming patterns before prefetching, then false prefetching is reduced, but memory latency increases due to late prefetch initiation

Engineering Contradiction:
Improveprefetch accuracyVSAvoidmemory latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of the vector of effective addresses to detect streaming patterns before actual memory access occurs. By analyzing the address pattern in advance and calculating prefetch addresses proactively, the system initiates prefetch operations earlier without waiting for multiple confirmations, thus reducing memory latency while maintaining prefetch accuracy.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If prefetch is initiated early based on vector addresses, then memory latency is reduced, but unnecessary memory accesses increase if streaming pattern is not confirmed

Engineering Contradiction:
Improvememory latencyVSAvoidunnecessary memory accesses
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The patent implements feedback by monitoring the streaming pattern detection results from the vector of effective addresses. The system uses the detected stride and pattern information to validate whether prefetching should proceed, ensuring that prefetch operations are initiated only when genuine streaming patterns are identified, thereby avoiding unnecessary memory accesses and energy waste.

Inventive Principle:
Principle #23Feedback

3Reliability

If conventional prefetchers analyze multiple previous addresses to confirm streams, then prefetch accuracy improves, but device complexity and processing overhead increase

Engineering Contradiction:
Improvestream detection accuracyVSAvoidprefetcher structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential information needed for prefetching from the vector of effective addresses - specifically the stride calculation between adjacent addresses. Instead of analyzing multiple previous addresses extensively, the system extracts the critical streaming pattern information from the current vector alone, simplifying the prefetcher structure while maintaining detection accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8850162B2Macroscalar vector prefetch with streaming access detection
Publication Date: 2014.09.30 APPLE INC
  • US8850162B2 patent drawing
  • US8850162B2 patent drawing
  • US8850162B2 patent drawing

AI summary

A method and system for implementing vector prefetch with streaming access detection is contemplated in which an execution unit such as a vector execution unit, for example, executes a vector memory access instruction that references an associated vector of effective addresses. The vector of effective addresses includes a number of elements, each of which includes a memory pointer. The vector memory access instruction is executable to perform multiple independent memory access operations using at least some of the memory pointers of the vector of effective addresses. A prefetch unit, for example, may detect a memory access streaming pattern based upon the vector of effective addresses, and in response to detecting the memory access streaming pattern, the prefetch unit may calculate one or more prefetch memory addresses based upon the memory access streaming pattern. Lastly, the prefetch unit may prefetch the one or more prefetch memory addresses into a memory.