Processor Core Thread Starvation Mitigation via Dynamic Instruction Rate Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-threaded processing cores, unanticipated combinations of thread activities can lead to thread starvation, causing some threads to become obstructed, which may result in all threads ceasing to execute instructions until the affected core is reset, leading to performance impacts and potential hangs.
Innovation Solution
The system employs an instruction queue and control circuit to track the time between instructions for each thread, limiting the issuance of subsequent instructions to a lower rate if a threshold time is exceeded, and returning to the original rate once multiple instructions from a thread have been issued within the threshold time, thereby preventing thread starvation and core hangs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the instruction queue issues instructions at a high rate to improve processor productivity, then instruction throughput increases, but thread starvation may occur causing threads to become obstructed and potentially hang the core
Solution Approach 1:
The control circuit continuously monitors the issue rate of instructions from each thread and compares it against a threshold rate. When the issue rate exceeds the threshold, the control circuit detects this condition and automatically adjusts the issuance rate to prevent thread starvation, creating a closed-loop feedback system that maintains both high throughput and thread execution continuity
Solution Approach 2:
The instruction issuance rate is made dynamic rather than static. The control circuit adjusts the issuance rate in real-time based on the current state of thread execution, increasing the rate when threads are progressing normally and decreasing it when thread starvation is detected, allowing the system to adapt to changing conditions while maintaining stability
2Reliability
If the system limits the issue rate to prevent thread starvation, then thread execution continuity is maintained, but overall instruction throughput decreases
Solution Approach 1:
The system changes the issuance rate parameter dynamically based on the detected state. When thread starvation is detected, the issuance rate parameter is reduced to a lower value to allow starving threads to catch up. When no starvation is detected, the parameter is increased to maximize throughput. This parameter adjustment resolves the contradiction by adapting the throughput level to current system conditions
3Reliability
If the control circuit monitors time periods for each thread to detect starvation, then thread starvation can be prevented, but device complexity increases
Solution Approach 1:
The control circuit is pre-configured with a threshold issuance rate value that defines the boundary between normal and problematic issuance rates. This preliminary setup allows the control circuit to immediately compare actual issuance rates against the threshold without requiring complex analysis, simplifying the detection logic while maintaining effective thread starvation prevention
Data Source
AI summary
An apparatus includes an execution unit, an instruction queue, and a control circuit. The control circuit may be configured to activate a plurality of processor threads. Each of the plurality of processor threads may include a respective plurality of instructions. The instruction queue may be configured to issue at least one instruction included in the plurality of processor threads to the execution unit at a first rate. The control circuit may also be configured to track, for a particular processor thread, a period of time from activating the particular processor thread. The instruction queue may be further configured to limit issue of a next instruction for at least one other processor thread to a second rate, based on a comparison of the period of time to a threshold amount of time. The second rate may be lower than the first rate.


