Apparatus and method for reducing power consumption on simultaneous multi-threading systems
First Claim
Patent Images
1. A method, comprising:
- determining if there is an activity currently being executed by one of a plurality of execution units of a multi-threading system, the multi-threading system to execute a plurality of activities;
dispatching a first activity to be executed by one of the plurality of execution units of the multi-threading system, along with the activity currently being executed, if it is determined that the activity is currently being executed;
scheduling the first activity to be executed by one of the plurality of execution units of the multi-threading system by storing the first activity in an activity dispatch buffer and delaying its dispatch for execution by an execution unit, if it is determined that the activity is not currently being executed, wherein the first activity is ready to be executed and the first activity is delayed from execution, to wait for a second activity to be dispatched for execution, when one or more execution units from the plurality of execution units are available to execute the first activity; and
executing the first activity in an execution unit of the multi-threading system after its dispatch.
1 Assignment
0 Petitions
Accused Products
Abstract
Activities may be delayed from being dispatched until another activity is ready to be dispatched. Dispatching more than activities increase overlapping in execution time of activities. By delaying the dispatch of the activities, power consumption and thermal dissipation on a multi-threading processor may be reduced.
42 Citations
17 Claims
-
1. A method, comprising:
-
determining if there is an activity currently being executed by one of a plurality of execution units of a multi-threading system, the multi-threading system to execute a plurality of activities; dispatching a first activity to be executed by one of the plurality of execution units of the multi-threading system, along with the activity currently being executed, if it is determined that the activity is currently being executed; scheduling the first activity to be executed by one of the plurality of execution units of the multi-threading system by storing the first activity in an activity dispatch buffer and delaying its dispatch for execution by an execution unit, if it is determined that the activity is not currently being executed, wherein the first activity is ready to be executed and the first activity is delayed from execution, to wait for a second activity to be dispatched for execution, when one or more execution units from the plurality of execution units are available to execute the first activity; and executing the first activity in an execution unit of the multi-threading system after its dispatch. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
-
determining if one or more activities from a plurality of activities are being executed in a multi-threaded processor; and scheduling the plurality of activities for execution in a plurality of execution units of the multi-threaded processor, the execution of one or more activities from the plurality of activities by, if a second activity from the plurality of activities is running then dispatching to an execution unit of the multi-threaded processor a first activity from the plurality activities for execution where the first activity and second are running at the same time, else if a third activity from the plurality of activities is ready to be executed then dispatching both the first activity and the third activity for execution in execution units of the plurality of execution units, otherwise delaying the first activity from execution by the execution unit, the first activity is ready to be executed by the execution unit of the multithreaded processor and the execution unit is available to execute the first activity. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus, comprising:
-
a volatile memory device to queue ready-to-be dispatched for execution activities in a multi-threading system; and a scheduler to determine if there is an activity currently being executed by one of a plurality of execution units of the multithreading system; dispatch a first activity to be executed by a first execution unit from the plurality of execution units of the multi-threading system, along with the activity currently being executed, if it is determined that an activity is currently being executed; schedule an execution of the first activity by storing the first activity in the volatile memory device and delaying dispatch of the first activity to the first execution unit from the plurality of execution units, if it is determined that an activity is not currently being executed by one of the plurality of execution units, wherein the first activity is ready to be executed and the first activity is delayed from execution to wait for a second activity to be dispatched to a second execution unit from the plurality of execution units for execution when the first execution unit is available to execute the first activity, and wherein the first activity and the second activity are dispatched together. - View Dependent Claims (13, 14)
-
-
15. A computer readable medium containing executable instructions which, when executed in a processing system, to cause the processing system to perform a method comprising:
-
determining if there is an activity currently being executed by the multi-threading system, the multi-threading system to execute a plurality of activities at a plurality of execution units of the multi-threading system; and scheduling the multi-threaded system by dispatching, to a first execution unit from the plurality of execution units, a first activity from the plurality of activities if it is determined that a second activity is running in a second execution unit from the plurality of execution units, else dispatching the first activity to the first execution unit and the second activity to the second execution unit from the plurality of activities if the second activity is ready to be dispatched, otherwise delay execution of the first activity by storing the first activity in an activity dispatch buffer, wherein the first activity is ready to be executed and the first activity is delayed until the second activity is ready to be executed when the first execution unit is available to execute the first activity. - View Dependent Claims (16, 17)
-
Specification