Floating Point Unit Scheduler Thread Fairness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processing systems, certain threads monopolize coprocessor and/or processor resources, leading to unfairness and forward progress issues for other threads, resulting in wasteful resource utilization.

Innovation Solution

The implementation uses source ready threads, counters, and eligibility blocking to ensure thread forward progress and fairness. This involves a scheduler with counters that increase when a thread is source ready but not hazard-free, and once a threshold is reached, other threads are blocked from using shared resources until the thread with the counter value above the threshold can execute.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If simultaneous multithreading is used to improve processor efficiency, then resource utilization improves, but resource monopolization by certain threads causes unfairness and forward progress issues

Engineering Contradiction:
Improveprocessor efficiencyVSAvoidthread fairness
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements a feedback mechanism where the scheduler monitors thread execution patterns and resource usage, then adjusts thread scheduling decisions based on this feedback. The scheduler tracks which threads are monopolizing resources and modifies scheduling to prevent unfairness, thereby maintaining both high productivity and thread fairness through continuous monitoring and adaptation.

Inventive Principle:
Principle #23Feedback

2Speed

If out-of-order processing is used to execute multiple instructions concurrently, then processing speed improves, but certain threads monopolize coprocessor resources causing other threads to be held

Engineering Contradiction:
Improveprocessing speedVSAvoidthread waiting time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies dynamic scheduling where the scheduler can change thread execution priorities and resource allocation in real-time based on current system state. When a thread begins monopolizing coprocessor resources, the scheduler dynamically adjusts to limit that thread's resource access and prioritize other threads, preventing excessive waiting time while maintaining high processing speed through flexible, adaptive resource management.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12204935B2Thread forward progress and/or quality of service
Publication Date: 2025.01.21 ADVANCED MICRO DEVICES INC
  • US12204935B2 patent drawing
  • US12204935B2 patent drawing
  • US12204935B2 patent drawing

AI summary

Methods, systems, and apparatuses provide support for allowing thread forward progress in a processing system and that improves quality of service. One system includes a processor; a bus coupled to the processor; a memory coupled to the processor via the bus; and a floating point unit coupled to the processor via the bus, wherein floating point unit comprises hardware control logic operative to: store for each thread, by a scheduler of the floating point unit, a counter; increase, by the scheduler, a value of the counter for each thread corresponding to a thread when at least one source ready operation exist for the thread; compare, by the scheduler, the value of the counter to a predetermined threshold; and make other threads ineligible to be picked by the scheduler when the counter is greater than or equal to the predetermined threshold.