Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment
First Claim
1. A method for detecting and handling the starvation of a thread in a multithreading processor comprising the steps of:
- setting a counter associated with a first thread with a pre-selected value;
receiving a first notification, wherein said first notification indicates which, if any, group of instructions has been completed for said first and a second thread;
updating said counter in response to receiving said first notification, wherein said counter is updated in response to receiving said first notification by changing a current value stored in said counter if said group of instructions is completed for said second thread and not for said first thread; and
detecting a starvation of said first thread in response to a value in said counter.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and multithread processor for detecting and handling the starvation of a thread. A counter associated with a first thread may be set with a pre-selected value. The counter may be updated in response to receiving a notification. The notification may indicate which, if any, group of instructions has been completed for the first and second threads. The counter may be updated in response to receiving the notification by decrementing a current value stored in the counter if the group of instructions is completed for the second thread and not for the first thread. If the value of the counter reaches a predetermined value, then a thread starvation condition may be detected for the first thread. That is, if the value of the counter reaches the predetermined value, then the first thread may be starved.
50 Citations
22 Claims
-
1. A method for detecting and handling the starvation of a thread in a multithreading processor comprising the steps of:
-
setting a counter associated with a first thread with a pre-selected value;
receiving a first notification, wherein said first notification indicates which, if any, group of instructions has been completed for said first and a second thread;
updating said counter in response to receiving said first notification, wherein said counter is updated in response to receiving said first notification by changing a current value stored in said counter if said group of instructions is completed for said second thread and not for said first thread; and
detecting a starvation of said first thread in response to a value in said counter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A multithreading processor, comprising:
-
a dispatch unit;
a queue coupled to said dispatch unit, wherein said dispatch unit is configured to dispatch decoded instructions for a first thread and a second thread to said queue; and
a completion unit coupled to said queue, wherein said completion unit is configured to receive status information on said dispatched decoded instructions to said queue, wherein said completion unit comprises;
a group completion table configured to track when a group of instructions for said first thread and said second thread is completed, wherein said dispatch unit comprises;
a register coupled to said completion unit configured to store a pre-selected value;
a counter associated with said first thread coupled to said register;
logic for setting said counter with said pre-selected value;
logic for receiving a first notification from said group completion table, wherein said first notification indicates which, if any, group of instructions has been completed for said first and said second thread;
logic for updating said counter in response to receiving said first notification by changing a current value stored in said counter if said group of instructions is completed for said second thread and not for said first thread; and
logic for detecting a starvation of said first thread in response to a value in said counter. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification