Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
First Claim
1. A method of controlling a processing priority assigned alternately to a first thread and a second thread in a multithreaded processor, the processing priority being used to prevent deadlock and livelock problems between the first thread and the second thread, the method comprising:
- assigning the processing priority to the first thread for a first duration;
determining whether the first duration has expired; and
if the first duration has expired, assigning the processing priority to the second thread for a second duration.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus for controlling a processing priority assigned alternately to a first thread and a second thread in a multithreaded processor to prevent deadlock and livelock problems between the first thread and the second thread. In one embodiment, the processing priority is initially assigned to the first thread for a first duration. It is then determined whether the first duration has expired in a given processing cycle. If the first duration has expired, the processing priority is assigned to the second thread for a second duration.
-
Citations
109 Claims
-
1. A method of controlling a processing priority assigned alternately to a first thread and a second thread in a multithreaded processor, the processing priority being used to prevent deadlock and livelock problems between the first thread and the second thread, the method comprising:
-
assigning the processing priority to the first thread for a first duration;
determining whether the first duration has expired; and
if the first duration has expired, assigning the processing priority to the second thread for a second duration. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. An apparatus for arbitrating a processing priority given alternately to a first thread and a second thread in a multithreaded processor in a current processing period, the apparatus comprising:
-
a first circuit to determine whether a current priority period has expired and generate a change signal if the current priority period has expired; and
a second circuit to invert the processing priority in response to the change signal. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
67. An apparatus for managing a processing priority between a first thread and a second thread in a multithreaded processor in a current processing period, the apparatus comprising:
-
a first counter to store a first value corresponding to a first duration during which the first thread is to be given the processing priority;
a second counter to store a second value corresponding to a second duration during which the second thread is to be given the processing priority;
a selector to select either the first value or the second value based upon a thread priority signal indicating whether the processing priority is to be given to the first thread or the second thread;
a priority counter coupled to the selector and to store a third value indicating how much time has elapsed since the start of a current priority period, the priority counter further stores a fourth value derived from the output of the selector in response to a priority change signal;
a comparator coupled to the priority counter and to generate the priority change signal if the third value stored in the priority counter exceeds a predetermined threshold number; and
invert logic coupled to the comparator and to invert the thread priority signal to alternate the processing priority in response to the priority change signal from the comparator.
-
-
68. An apparatus for controlling a processing priority in a multithreaded processor capable of processing a first thread and a second thread concurrently, the apparatus comprising:
-
a first circuit to determine whether a first duration during which the first thread has the processing priority has expired and to generate a priority change signal if the first duration has expired; and
a second circuit to invert the processing priority from the first thread to the second thread for a second duration if the first duration has expired. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87)
-
-
88. A method of controlling a processing priority alternately given to a first thread and a second thread in a multithreaded processor, the method comprising:
-
determining whether a previous priority period has expired in a current processing period;
generating a priority change signal if the previous priority period has expired in the current processing period; and
alternating the processing priority in response to the priority change signal. - View Dependent Claims (89, 90, 91, 92, 93, 94, 95, 96)
-
-
97. An apparatus for arbitrating a processing priority given alternately to a first thread and a second thread in a multithreaded processor, the apparatus comprising:
-
means for determining whether a current priority duration has expired in a current processing period; and
means for alternating the processing priority if the current priority duration has expired in the current processing period. - View Dependent Claims (98, 99, 100, 101, 102, 103, 104)
-
-
105. A method for controlling a processing priority between a first thread and a second thread in a multithreaded processor to prevent deadlock and livelock problems, the method comprising:
-
assigning alternately the processing priority to the first thread for a first priority duration and to the second thread for a second priority duration;
increasing the first priority duration by a first predetermined amount if the first thread has not made progress after a first period of time has passed since the last time the processing priority is assigned to the first thread; and
increasing the second priority duration by a second predetermined amount if the second thread has not made progress after a second period of time has passed since the last time the processing priority is assigned to the second thread. - View Dependent Claims (106, 107, 108, 109)
-
Specification