Thread Fetch Suspension via Branch Misprediction Hints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Fine-grained multithreading systems face challenges in utilizing execution hint instructions to improve throughput, as they lack mechanisms for reliable context switching between threads, unlike coarse-grained systems, where periodic interrupts facilitate thread switching.

Innovation Solution

The apparatus treats execution hint instructions as predicted branch instructions, triggering a misprediction condition to suspend and resume fetching of instructions, leveraging existing branch prediction mechanisms to allocate resources to other threads effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If execution hint instructions are used in fine-grained multithreading systems, then thread throughput can be improved by suspending execution, but there is no reliable mechanism to resume thread execution unlike coarse-grained systems with periodic interrupts

Engineering Contradiction:
Improvethread throughputVSAvoidthread resumption reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a misprediction detection mechanism as an intermediary to mediate between the execution hint instruction and thread resumption. The branch prediction unit treats execution hint instructions as predicted not-taken branches, and when the thread actually needs to resume, a misprediction is deliberately triggered to signal the fetch unit to restart fetching for that thread, thereby providing reliable resumption without periodic interrupts

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter of branch prediction outcome for execution hint instructions. By setting the predicted behavior to 'not taken' when an execution hint instruction is detected, the system creates a controlled misprediction condition that can be used as a reliable signal for thread resumption, transforming the prediction parameter into a resumption trigger mechanism

Inventive Principle:
Principle #35Parameter changes

2Productivity

If instructions from multiple threads are resident within the pipeline simultaneously in fine-grained multithreading, then resource utilization improves, but execution hint instructions cannot effectively trigger context switching

Engineering Contradiction:
Improveresource utilizationVSAvoidexecution hint effectiveness
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent replaces the traditional mechanical context switching mechanism (which relies on periodic interrupts or explicit switch commands) with a branch prediction-based control mechanism. Execution hint instructions are processed through the branch prediction unit, which automatically controls fetching based on prediction outcomes, thereby integrating thread scheduling into the existing pipeline flow without requiring separate context switching hardware or interrupt mechanisms

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If the fetch circuitry suspends fetching of instructions for a thread in response to an execution hint instruction, then other threads can be prioritized, but the suspended thread may never be reliably resumed

Engineering Contradiction:
Improveoverall throughputVSAvoidthread resumption guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the branch prediction unit continuously monitors the execution status of threads and provides feedback to the fetch unit. When a suspended thread is ready to resume, the misprediction detection creates a feedback signal that triggers the fetch unit to restart fetching for that thread, ensuring reliable resumption while maintaining the ability to prioritize other threads during suspension periods

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9977679B2Apparatus and method for suspending execution of a thread in response to a hint instruction
Publication Date: 2018.05.22 ARM LTD
  • US9977679B2 patent drawing
  • US9977679B2 patent drawing
  • US9977679B2 patent drawing

AI summary

An apparatus and method are provided for processing instructions from a plurality of threads. The apparatus comprises a processing pipeline to process instructions, including fetch circuitry to fetch instructions from a plurality of threads for processing by the processing pipeline, and execution circuitry to execute the fetched instructions. Execution hint instruction handling circuitry is then responsive to the fetch circuitry fetching an execution hint instruction for a first thread, to treat the execution hint instruction, at least in a presence of a suspension condition, as a predicted branch instruction with a predicted behavior, and to cause the fetch circuitry to suspend fetching of instructions for the first thread. The execution circuitry is then arranged to execute the predicted branch instruction with a behavior different to the predicted behavior, in order to trigger a misprediction condition. The fetch circuitry is then responsive to the misprediction condition to resume fetching of instructions for the first thread. This provides a reliable mechanism for temporarily suspending fetching of instructions for a thread in response to a hint instruction, whilst still reliably resuming fetching in due course.