Prefetch Strategy Control for Parallel Thread Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems with prefetching mechanisms struggle to adapt prefetch strategies effectively across different types of program execution, leading to inefficiencies in reducing latency for data access, particularly in multithreaded processors where a single strategy may not suit all execution types.

Innovation Solution

The implementation of prefetch strategy selecting circuitry that detects characteristics indicative of repeated data access instructions, allowing for the dynamic selection between short-running and long-running prefetch strategies based on the probability of data access instruction execution, optimizing prefetching in SIMT and fine-grained multithreaded processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single prefetch strategy is used for all execution types, then the system is simple to implement, but it cannot effectively reduce latency for all types of program execution

Engineering Contradiction:
Improveadaptability of prefetch strategyVSAvoidcomplexity of prefetch mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The prefetch mechanism dynamically selects between different prefetch strategies (first strategy for short-running threads, second strategy for long-running threads) based on runtime characteristics of the thread execution, allowing the system to adapt to different execution types without being statically configured

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the prefetch strategy parameter based on the detected thread execution characteristics (short-running vs long-running), switching between different prefetching approaches to optimize performance for the current execution context

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the system detects whether data access instructions are repeatedly executed, then it can select appropriate prefetch strategies, but it increases the complexity of instruction analysis

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidcomplexity of instruction execution circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The instruction execution circuitry itself performs the detection of repeated data access instructions and provides this information to the prefetch mechanism, eliminating the need for separate detection circuitry and reducing overall system complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11494188B2Prefetch strategy control for parallel execution of threads based on one or more characteristics of a stream of program instructions indicative that a data access instruction within a program is scheduled to be executed a plurality of times
Publication Date: 2022.11.08 ARM LTD
  • US11494188B2 patent drawing
  • US11494188B2 patent drawing
  • US11494188B2 patent drawing

AI summary

A single instruction multiple thread (SIMT) processor includes execution circuitry, prefetch circuitry and prefetch strategy selection circuitry. The prefetch strategy selection circuitry serves to detect one or more characteristics of a stream of program instructions that are being executed to identify whether or not a given data access instruction within a program will be executed a plurality of times. The prefetch strategy to use is selected from a plurality of selectable prefetch strategies in dependence upon the detection of such detected characteristics.