SMT Microprocessor Thread Ranking and Instruction Bypass

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Simultaneous Multithreading (SMT) processors face resource monopolization issues due to slower threads occupying shared resources, leading to hardware underutilization, reduced throughput, and increased energy consumption, with existing solutions being costly and reactive, addressing only one thread at a time without relaxing design requirements on instruction queues.

Innovation Solution

Implementing a mechanism to dynamically rank threads based on utilization efficiency and redirect instructions from slower threads to lower-cost secondary resources, such as a FIFO buffer, rather than the primary reservation queue, to prevent resource monopolization and improve resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dynamic sharing of shared resources is used to maximize resource utilization, then resource utilization and system throughput are improved, but resource monopoly occurs when one thread occupies more than its fair share

Engineering Contradiction:
Improvesystem throughputVSAvoidresource monopoly
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent implements dynamic thread ranking that changes based on real-time resource utilization metrics. Threads are continuously evaluated and re-ranked according to their efficiency in utilizing shared resources, allowing the system to adaptively prevent resource monopoly while maximizing throughput. This dynamic adjustment ensures that no single thread can permanently monopolize resources.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring thread utilization efficiency and using this information to adjust thread rankings. The ranking circuit continuously receives feedback about resource usage patterns and modifies the scheduling decisions accordingly, preventing resource monopoly while maintaining high system throughput.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If instruction queues are used to hold pending instructions for execution, then instruction scheduling flexibility is improved, but physical size and power consumption increase

Engineering Contradiction:
Improveinstruction scheduling flexibilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by stationary object

Solution Approach 1:

The patent creates different classes of buffering resources with different characteristics. Instead of using a single large instruction queue for all threads, it provides specialized buffering (ranked thread buffers) for high-priority threads and standard queues for others. This local differentiation allows the system to maintain scheduling flexibility for critical threads while reducing overall power consumption by not over-provisioning all buffers equally.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the instruction buffering resources into multiple categories based on thread priority and utilization efficiency. By dividing the buffering capacity into ranked portions, the system achieves flexible scheduling for important instructions while reducing the total power consumption of buffering infrastructure.

Inventive Principle:
Principle #1Segmentation

3Productivity

If larger instruction queues are provided to accommodate more threads, then hardware underutilization is reduced, but device complexity and cost increase

Engineering Contradiction:
Improvehardware utilizationVSAvoidinstruction queue complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic allocation of buffering resources based on thread performance characteristics. Rather than providing static large buffers for all threads, the system dynamically adjusts buffer allocation and access priority based on real-time utilization metrics, achieving high hardware utilization with reduced overall complexity.

Inventive Principle:
Principle #15Dynamics

4Object-generated harmful factors

If existing approaches to address resource monopolization are used, then resource monopoly is partially relieved, but circuit cost increases and delays occur

Engineering Contradiction:
Improveresource monopolizationVSAvoidcircuit cost
Core Design Contradiction:
Object-generated harmful factorsVSDevice complexity

Solution Approach 1:

The patent prevents resource monopoly before it occurs by proactively ranking threads and making scheduling decisions based on predicted utilization efficiency. Rather than reacting to monopolization after it happens, the system establishes priority rankings in advance and continuously maintains them, avoiding the need for costly corrective circuitry and delays.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses continuous feedback about thread performance to maintain optimal resource allocation. This proactive feedback mechanism prevents resource monopoly from developing, eliminating the need for expensive reactive solutions that would be required if monopolization were allowed to occur first.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20230385065A1Apparatus and Method for Simultaneous Multithreaded Instruction Scheduling in a Microprocessor
Publication Date: 2023.11.30 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US20230385065A1 patent drawing
  • US20230385065A1 patent drawing
  • US20230385065A1 patent drawing

AI summary

Techniques disclosed herein provide, among other things, advantageous mechanisms for detecting and resolving resource monopolization by one or more “slower” instruction threads in an instruction pipeline of a microprocessor that supports Simultaneous Multi-Threading (SMT). One or more embodiments involve updating thread rankings, e.g., from slowest to fastest, on an instruction cycle basis, and redirecting instructions from at least a slowest one of the threads, to bypass one or more shared resources that would otherwise be monopolized by instructions in the slower/slowest threads. In at least one embodiment, bypassing includes redirecting selected instructions away from more critical shared resources to lower-cost or lower-power secondary resources, for example bypassing an instruction queue in favor of a less complex buffer circuit.