Multithreaded Processor Pick Unit Thread Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreaded processors, inefficient thread scheduling can lead to processing inefficiencies due to stalled threads and thread starvation, as existing technologies fail to effectively select and schedule threads considering instruction dependencies and resource availability.

Innovation Solution

A multithreaded processor architecture that includes a pick unit capable of selecting valid instructions from multiple buffers based on a thread selection algorithm, concurrently determining wait conditions such as scheduling hazards and dependencies, and canceling instruction picks as needed to optimize thread execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a thread stalls in the pipeline due to instruction dependencies, then processing of that thread is paused, but other ready threads may not be scheduled promptly causing processing inefficiency

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidthread stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processor dynamically switches between threads based on readiness status. When one thread stalls due to dependencies, the system transitions to executing another ready thread, making the thread execution dynamic rather than static. This is achieved through the thread selection algorithm in the pick unit that continuously evaluates which thread should execute next based on current pipeline state and dependency resolution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary thread selection and scheduling decisions before execution stalls occur. The pick unit proactively identifies ready threads and prepares them for execution ahead of time, so when a stall occurs, the transition to an alternative thread can happen immediately without waiting for the stall to be detected and handled.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the scheduling process favors certain threads, then those threads execute more frequently, but other threads may starve and not execute

Engineering Contradiction:
Improvethread execution throughputVSAvoidthread starvation prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The thread selection algorithm incorporates feedback about thread readiness and execution history to make fair scheduling decisions. The system monitors which threads are ready to execute and adjusts selection probabilities to ensure all ready threads get opportunities to run. This feedback mechanism prevents any single thread from monopolizing execution resources while maintaining high overall throughput.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The pick unit serves multiple functions: it selects threads for execution, detects readiness status, manages thread priorities, and prevents starvation. This multi-functional approach allows the same scheduling mechanism to simultaneously optimize throughput and ensure fairness across all threads without requiring separate specialized systems.

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

3Speed

If the pick unit selects an instruction without checking dependencies, then execution can proceed immediately, but invalid instructions may be executed causing errors

Engineering Contradiction:
Improveinstruction selection speedVSAvoidinstruction validity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The pick unit performs preliminary validation of instruction dependencies and readiness status before selecting instructions for execution. This preliminary checking ensures that only valid, ready instructions are chosen, preventing execution errors while maintaining speed by resolving dependencies in advance rather than during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The thread selection algorithm acts as an intermediary between the instruction buffers and the execution pipeline. It mediates the selection process by filtering out invalid instructions based on dependency checks and readiness status, allowing only properly validated instructions to proceed to execution. This intermediary layer ensures both speed and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7890734B2Mechanism for selecting instructions for execution in a multithreaded processor
Publication Date: 2011.02.15 SUN MICROSYSTEMS INC
  • US7890734B2 patent drawing
  • US7890734B2 patent drawing
  • US7890734B2 patent drawing

AI summary

In one embodiment, a multithreaded processor includes a plurality of buffers, each configured to store instructions corresponding to a respective thread. The multithreaded processor also includes a pick unit coupled to the plurality of buffers. The pick unit may pick from at least one of the buffers in a given cycle, a valid instruction based upon a thread selection algorithm. The pick unit may further cancel, in the given cycle, the picking of the valid instruction in response to receiving a cancel indication.