Multithreaded Instruction Block Grouping for Context Switch Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face inefficiencies in managing multiple threads due to high overhead in context switching and duplicating architecture state elements, especially when dealing with fine-grain parallelism and non-threaded software codes, which limits effective parallel execution and increases complexity and power consumption.

Innovation Solution

The solution involves grouping instructions into blocks and using register templates to track dependencies, allowing for efficient management of out-of-order execution and reducing the complexity of context switching through the use of inheritance vectors and snapshotting, which enables quick recovery from mispredictions and efficient resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hardware duplicates all architecture state elements for each supported thread, then context switch overhead is eliminated, but area, power and complexity increase

Engineering Contradiction:
Improvecontext switch overheadVSAvoidhardware complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The architecture state is segmented into multiple slots (e.g., 8 slots) where each slot can hold a complete context state. This segmentation allows the processor to switch between contexts by simply changing the active slot pointer, eliminating the need for complex context switching operations while maintaining manageable hardware complexity through structured organization of state elements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements hardware-supported threading by duplicating architecture state elements (registers, program counters, etc.) for multiple threads simultaneously. Each thread has its own copy of the architectural state, allowing true parallel execution without context switches. The copying is limited to a manageable number of threads (e.g., 2-8 threads) to balance performance benefits against hardware complexity and power consumption.

Inventive Principle:
Principle #26Copying

2Loss of time

If hardware supports multiple context states, then context switching is eliminated, but area and power consumption increase

Engineering Contradiction:
Improvecontext switch timeVSAvoidpower consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Instead of supporting a large number of thread contexts simultaneously, the patent implements partial action by supporting a limited number of hardware threads (e.g., 2-8 threads). This partial implementation provides sufficient context switching elimination for most workloads while keeping the area and power overhead manageable. The system can be configured to support different numbers of threads based on specific performance and power requirements.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If instructions are executed in parallel, then productivity increases, but managing dependencies and state becomes more complex

Engineering Contradiction:
Improveparallel execution efficiencyVSAvoidstate management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary mechanism in the form of a unified register file that serves multiple threads simultaneously. The register file acts as a shared resource with per-thread validity bits and allocation logic, allowing parallel thread execution while simplifying dependency management. The intermediary structure handles the complexity of state management internally, presenting a simple interface to the executing threads.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The architecture implements multi-functionality by having a single set of execution units and register files serve multiple threads. The execution units can execute instructions from any active thread, and the register files are shared with per-thread state tracking. This universal resource sharing reduces overall hardware complexity compared to having dedicated resources for each thread while still enabling parallel execution.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2972845B1A method for executing multithreaded instructions grouped onto blocks
Publication Date: 2021.07.07 INTEL CORP
  • EP2972845B1 patent drawingFigure 1
  • EP2972845B1 patent drawingFigure 2
  • EP2972845B1 patent drawingFigure 3

AI summary

A method for executing multithreaded instructions grouped into blocks. The method includes receiving an incoming instruction sequence using a global front end; grouping the instructions to form instruction blocks, wherein the instructions of the instruction blocks are interleaved with multiple threads; scheduling the instructions of the instruction block to execute in accordance with the multiple threads; and tracking execution of the multiple threads to enforce fairness in an execution pipeline.