Floating Point Unit Scheduler Thread Fairness
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
Data Source
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.


