Bandwidth-Aware Multithreading With Banked Front-End Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures face an imbalance in bandwidth utilization between the front-end and back-end due to limitations in simultaneous multi-threading, leading to inefficiencies as only one thread owns a pipeline stage per cycle, which restricts the utilization of available bandwidth.

Innovation Solution

Implement bandwidth aware simultaneous multi-threading (BAS) by banking front-end structures like branch prediction units and caches, allowing multiple threads to access these resources independently, and dynamically switching between modes based on workload demands to optimize bandwidth utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If traditional SMT is implemented with single-thread ownership of pipeline stages, then thread management is simplified, but front-end bandwidth utilization is reduced

Engineering Contradiction:
Improvethread management complexityVSAvoidfront-end bandwidth utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The front-end pipeline stages are segmented into multiple independent paths, allowing different threads to be processed simultaneously in different segments. This segmentation enables multi-threaded access to front-end resources without requiring complex thread ownership management, as each thread can progress through dedicated pipeline segments in parallel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimension thread execution model (one thread per pipeline stage per cycle) to a multi-dimensional model where multiple threads can occupy different pipeline stages simultaneously. This dimensional expansion allows front-end structures to service multiple threads in the same clock cycle, effectively increasing bandwidth utilization without proportionally increasing complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple threads access front-end structures simultaneously, then bandwidth utilization increases, but resource contention and access conflicts increase

Engineering Contradiction:
Improvebandwidth utilizationVSAvoidresource contention
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

Front-end structures such as branch prediction units and instruction caches are divided into multiple independent segments or banks. Each thread can access different segments simultaneously without interfering with other threads, eliminating resource contention while maintaining high bandwidth utilization. For example, the branch prediction table is segmented into multiple banks that can be accessed in parallel by different threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary structures such as separate instruction queues and decode buffers for each thread, which act as buffers between the front-end structures and the execution units. These intermediaries prevent direct conflicts between threads accessing shared resources, allowing simultaneous access without contention by mediating resource allocation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If front-end structures are banked for multi-threaded access, then branch prediction and cache access bandwidth double, but structure complexity increases

Engineering Contradiction:
Improvebranch prediction bandwidthVSAvoidfront-end structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The front-end structures are divided into banks that are replicated for each thread. While this increases the total number of structures, each bank is a simplified replica of the original structure, allowing parallel access without requiring complex arbitration logic. The segmentation into banks enables straightforward address decoding where the thread ID directly selects the appropriate bank.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements banking of front-end structures even when full utilization may not always be achieved, as the overhead of the banking structure is justified by the potential for doubled bandwidth utilization. The excessive action of providing redundant structures for each thread ensures that when both threads are active, full bandwidth is available, and the structure complexity is a worthwhile trade-off for the performance gain.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP4621564A1Bandwidth aware simultaneous multi-threading
Publication Date: 2025.09.24 INTEL CORP
  • EP4621564A1 patent drawingFigure 1
  • EP4621564A1 patent drawingFigure 2A
  • EP4621564A1 patent drawingFigure 2B

AI summary

Techniques for bandwidth aware simultaneous multithreading are described. In an embodiment, an apparatus includes front-end circuitry and back-end circuitry. The front-end circuitry is to process at least two instruction threads in a plurality of front-end pipeline stages. The front-end circuitry is to operate in a first mode and a second mode. In the first mode at least one of the plurality of front-end pipeline stages is configured to process only one of the at least two instruction threads per clock cycle. in the second mode the at least one of the plurality of front-end pipeline stages is configured to process at least two of the at least two instruction threads per clock cycle. The back-end circuitry is to execute operations based on the at least two instruction threads.