Processor Fairness Monitor for Thread Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-threaded processors face issues with fairness in resource allocation, leading to performance imbalances where threads that frequently stall are starved of processor cycles, and forced switches can occur at inopportune times, while priority overrides are often abused, resulting in suboptimal performance and fairness.
Innovation Solution
A dynamic resource allocator with a fairness monitor and programmable allocation policy that implements time-division multiplexing and biasing to ensure equal or nearly equal allocation of processor resources, applying hysteresis to stabilize fairness and prevent rapid oscillations, and managing priority requests to maintain balanced processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the processor uses switch on event multithreading to fully utilize processing cycles, then processor cycle utilization is improved, but thread fairness deteriorates as threads that rarely stall receive disproportionate access to processor cycles
Solution Approach 1:
The patent implements a fairness monitor that continuously tracks the number of processor cycles allocated to each thread and provides feedback to the thread selector. When a threshold is exceeded indicating unfair allocation, the system adjusts thread switching behavior to restore fairness, thus resolving the contradiction between maximizing processor utilization and ensuring fair thread access
Solution Approach 2:
The system dynamically adjusts thread switching behavior based on real-time fairness conditions. The thread selector can switch between aggressive switching (for high utilization) and fairness-enforcing switching (when imbalance is detected), making the switching strategy adaptive rather than static, thereby balancing productivity and fairness
2Reliability
If the processor forces switches between threads after a period of inactivity to ensure fairness, then thread fairness is improved, but system performance deteriorates due to inopportune switches during time-critical code execution
Solution Approach 1:
The fairness monitor proactively tracks cycle allocation before unfairness becomes severe, allowing the system to take preliminary corrective action by adjusting thread switches before performance-critical operations are disrupted. This prevents inopportune switches by anticipating fairness issues early
Solution Approach 2:
The fairness monitor acts as an intermediary between the thread selector and thread execution, mediating switch decisions to balance fairness and performance. It filters out inopportune switches while maintaining fair allocation, resolving the contradiction between these two objectives
3Productivity
If threads can request priority to override forced switches to protect time-critical code, then system performance is improved, but fairness deteriorates as priority requests are readily abused to maximize one program's performance at the expense of others
Solution Approach 1:
The fairness monitor tracks priority request usage and provides feedback when abuse is detected. When a thread excessively uses priority requests to the detriment of other threads, the system responds by adjusting switching behavior to restore fairness, thus preventing abuse while maintaining legitimate performance optimizations
Solution Approach 2:
The system changes the parameters of priority request handling dynamically. When fairness thresholds are violated due to priority abuse, the system adjusts the effectiveness or availability of priority requests, transforming the parameter of priority enforcement to maintain both performance and fairness
Data Source
AI summary
A computer processor includes a fairness monitor for monitoring allocations of a processor resource to requestors. If unfairness is determined, a resource allocator is biased to offset said unfairness.


