Runtime Prefetcher Selection Logic for Instruction Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in achieving high throughput for all instructions, particularly complex ones like floating-point operations and load/store operations, which require more execution time and resources, impacting overall performance.

Innovation Solution

The implementation of an instruction set architecture that includes packed instruction sets and execution units capable of performing operations on packed data formats, such as SIMD technology, allows for efficient execution of multimedia and scientific applications by utilizing execution units with logic to handle packed data instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple prefetchers are implemented to improve instruction fetch capability, then instruction throughput is improved, but device complexity increases

Engineering Contradiction:
Improveinstruction throughputVSAvoidprefetcher complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The instruction fetch system is divided into multiple specialized prefetchers (sequential prefetcher, trace prefetcher, random prefetcher) that each handle specific types of instruction patterns. This segmentation allows each prefetcher to be optimized for its specific function while collectively improving overall instruction throughput without requiring a single complex prefetcher.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically selects and activates appropriate prefetchers based on the current execution context and instruction patterns. The dynamic allocation and selection of prefetchers allows the system to adapt to different workload characteristics, improving throughput while managing complexity through selective activation rather than always using all prefetchers.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If complex instructions like floating-point operations are executed, then computational capability is improved, but execution time increases

Engineering Contradiction:
Improvecomputational capabilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

Solution Approach 1:

The system performs preliminary actions by prefetching instructions and data before they are actually needed for execution. This allows complex instructions to be prepared in advance, reducing their effective execution time by overlapping fetch and execute operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous useful action by overlapping instruction fetch, decode, and execute phases. Multiple prefetchers operate concurrently to ensure that instruction fetch never becomes a bottleneck, allowing computational units to continuously process complex instructions without idle waiting time.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10102134B2Instruction and logic for run-time evaluation of multiple prefetchers
Publication Date: 2018.10.16 INTEL CORP
  • US10102134B2 patent drawing
  • US10102134B2 patent drawing
  • US10102134B2 patent drawing

AI summary

A processor includes a cache, a prefetcher module to select information according to a prefetcher algorithm, and a prefetcher algorithm selection module. The prefetcher algorithm selection module includes logic to select a candidate prefetcher algorithm determine and store memory addresses of predicted memory accesses of the candidate prefetcher algorithm when performed by the prefetcher module, determine cache lines accessed during memory operations, and evaluate whether the determined cache lines match the stored memory addresses. The prefetcher algorithm selection module further includes logic to adjust an accuracy ratio of the candidate prefetcher algorithm, compare the accuracy ratio with a threshold accuracy ratio, and determine whether to apply the first candidate prefetcher algorithm to the prefetcher module.