Variable Pre-fetch Threshold for Processor Pipeline Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors face performance and energy efficiency issues due to pipeline stalls caused by conditional constructs, as they often pre-fetch too many instructions, leading to wasted energy from retrieving non-executed instructions when the destination of a jump or branch is too distant from the instruction.

Innovation Solution

A dynamically variable pre-fetch threshold is introduced, allowing the number of instructions pre-fetched to be adjusted based on the distance between jump or branch instructions and their destinations, with software development systems inserting pre-fetch threshold instructions to optimize performance and reduce energy consumption by controlling the number of instructions pre-fetched.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed number of instructions are pre-fetched to reduce pipeline stalls, then processor performance is improved, but energy consumption increases due to fetching unnecessary instructions when jump/branch destinations are distant

Engineering Contradiction:
Improveprocessor performanceVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements a dynamic pre-fetch threshold that can be adjusted based on runtime conditions. The threshold is modified based on the distance to jump/branch destinations and the current fill status of the pre-fetch buffer, allowing the system to adapt between aggressive pre-fetching (when beneficial) and conservative pre-fetching (when energy efficiency is prioritized), thus resolving the contradiction between performance and energy consumption

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of pre-fetch threshold dynamically. By monitoring the distance to control flow targets and the buffer fill status, the system adjusts the pre-fetch threshold parameter to optimize the balance between reducing pipeline stalls (performance) and avoiding unnecessary memory accesses (energy consumption)

Inventive Principle:
Principle #35Parameter changes

2Loss of time

If more instructions are pre-fetched, then pipeline stalls are reduced, but the number of unnecessary memory accesses increases

Engineering Contradiction:
Improvepipeline stall cyclesVSAvoidunnecessary memory accesses
Core Design Contradiction:
Loss of timeVSObject-generated harmful factors

Solution Approach 1:

The patent employs feedback mechanisms where the pre-fetch control logic continuously monitors the fill status of the pre-fetch buffer and the distance to jump/branch destinations. Based on this feedback, the system dynamically adjusts the pre-fetch threshold to ensure instructions are pre-fetched only when likely to be executed, thereby reducing pipeline stalls while minimizing unnecessary memory accesses

Inventive Principle:
Principle #23Feedback

3Loss of energy

If a small pre-fetch buffer is used to save energy, then energy consumption is reduced, but pipeline stalls increase when jump/branch destinations are distant

Engineering Contradiction:
Improveenergy consumptionVSAvoidpipeline stall cycles
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

Rather than using a fixed small buffer, the patent implements a dynamic threshold mechanism that works with the existing buffer to maximize its utility. When the buffer is nearly full and the jump/branch destination is close, the threshold is reduced to save energy. When the buffer has space and the destination is far, the threshold is increased to prevent pipeline stalls, thus dynamically balancing energy consumption and performance

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11861367B2Processor with variable pre-fetch threshold
Publication Date: 2024.01.02 TEXAS INSTRUMENTS INC
  • US11861367B2 patent drawing
  • US11861367B2 patent drawing
  • US11861367B2 patent drawing

AI summary

A method and apparatus for controlling pre-fetching in a processor. A processor includes an execution pipeline and an instruction pre-fetch unit. The execution pipeline is configured to execute instructions. The instruction pre-fetch unit is coupled to the execution pipeline. The instruction pre-fetch unit includes instruction storage to store pre-fetched instructions, and pre-fetch control logic. The pre-fetch control logic is configured to fetch instructions from memory and store the fetched instructions in the instruction storage. The pre-fetch control logic is also configured to provide instructions stored in the instruction storage to the execution pipeline for execution. The pre-fetch control logic is further configured set a maximum number of instruction words to be pre-fetched for execution subsequent to execution of an instruction currently being executed in the execution pipeline. The maximum number is based on a value contained in a pre-fetch threshold field of an instruction executed in the execution pipeline.