WO2007077516A1 - Power aware dynamic scheduling in multiprocessor system employing voltage islands - Google Patents
Power aware dynamic scheduling in multiprocessor system employing voltage islands Download PDFInfo
- Publication number
- WO2007077516A1 WO2007077516A1 PCT/IB2006/055050 IB2006055050W WO2007077516A1 WO 2007077516 A1 WO2007077516 A1 WO 2007077516A1 IB 2006055050 W IB2006055050 W IB 2006055050W WO 2007077516 A1 WO2007077516 A1 WO 2007077516A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- voltage
- slack
- tasks
- time
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to symmetric multiprocessor systems implemented with voltage islands, and more particularly to methods and circuits to conserve system-on-chip (SoC) power consumption by measuring performance and estimation for run-time execution phases to automatically adapt to varying application workloads .
- SoC system-on-chip
- Symmetric multiprocessing connects identical processors a single shared main memory.
- SMP Symmetric multiprocessing
- Most common multiprocessor systems today use an SMP architecture. Any task can be assigned for execution by any processor, because the data for that task is located in shared memory.
- Conventional SMP operating systems can move tasks between processors to balance the work load efficiently.
- the many individual processors in an SMP implementation can starve for data, because memory is typically much slower than each of processors accessing it.
- SMP has many applications in science, industry, and business where the software is custom programmed for multithreaded processing. But, word processors, computer games, and other most consumer products are not written in a way that they can benefit from SMP. Programs running on SMP systems can perform better even when they have been written for uniprocessor systems.
- Hardware interrupts usually suspend program execution, while in an SMP system the kernel hands them off to be run on an idle processor instead.
- OS operating system
- a given processor can generally increase its performance if clocked at a higher rate.
- the highest clocking rates are limited by the semiconductor technology and the operating voltage. For a given operating voltage and semiconductor technology, there will be a maximum clock rate. If the operating voltage is increased, the clocks can be proportionately increased to step up performance, within practical limits. But, the power consumption
- the prior art has used dynamic voltage scheduling based on the task execution phases computed off-line. What would be better would be to use a performance measurement and estimation unit to analyze the execution phases during run-time. That way the system could automatically adapt to varying application workloads. Static mapping of the tasks to a single processor is also not desirable. It would be best to schedule tasks dynamically onto a set of symmetric multiprocessors based on their estimated execution times .
- the prior art has also dealt with scheduling tasks onto a processor that supports different voltages, keeping the power consumption as the cost function. But such do not use DVS on a per task basis. Such conventional devices sort tasks by deadlines in ascending order. They are put in a reservation list of the target processing element.
- the slack time of the first task is computed with both the highest and lowest voltage levels supported by the target processing element.
- the computation time of the task at the highest and lowest voltages is calculated.
- the voltage level of the target processing element is found at which the task can meet the deadline. Then DVS is used to change its voltage level and the task is scheduled onto it.
- Voltage islands enable core-level power optimization for SoC design by utilizing a unique supply voltage for each core.
- all tasks can be kept on one list.
- Each task is analyzed for its performance requirements.
- a particular processor whose supply voltage can already guarantee the performance requirement of the task is chosen to run the task.
- it is analyzed again, and the same task can be mapped onto a different processor having a different supply voltage that can guarantee its performance requirements .
- symmetric multiprocessor systems with voltage islands include dynamic scheduling of the application tasks onto the available processors.
- the voltage islands enable each processor to be supplied with different independent operating voltages and corresponding maximum clock frequencies.
- the difference between the available and actual processor task execution times are measured so the slack times of recurrences of these tasks can be estimated.
- the processing capabilities of the individual processors are cataloged according to particular operating voltages and frequencies.
- a dynamic scheduler chooses an appropriate processor and voltage island setting for the tasks based on the apparent processor required. This yields optimal power consumption.
- An advantage of the present invention is that a SoC implementation of a symmetric multiprocessor system is provided which will conserve power.
- a further advantage of the present invention is a SoC implementation of a symmetric multiprocessor system is provided that uses voltage islands to avoid real time overheads associated with DVS power controls.
- a still further advantage of the present invention is that a SoC implementation of a symmetric multiprocessor system is provided that schedules tasks according to a slack-time calculator .
- Fig. 1 is a functional block diagram of a SoC implementation of a symmetric multiprocessor system embodiment of the present invention which uses fixed voltage islands to provide power choices for processor cores;
- Fig. 2 is a functional block diagram of another SoC implementation of a symmetric multiprocessor system embodiment of the present invention that provides DVS controls for the voltage islands .
- Fig. 1 represents a symmetric multiprocessor system embodiment of the present invention, and is referred to herein by the general reference numeral 100.
- the symmetric multiprocessor system 100 comprises a plurality of voltage islands 102-104 disposed in a common semiconductor chip 106. These voltage islands are provided three different operating voltages, hi, mid, and lo-voltage.
- a plurality of identical processor cores 108-110 are respective disposed in the voltage islands 102-104, but the differing operating voltages results in processor core 108 having relatively high performance (hi-MIPS) , processor core 109 having medium performance (mid-MIPS) , and processor core 110 having relatively low performance (lo-MIPS) . All three processor cores 108-110 each have access to a shared memory 112.
- K is gained, e.g., in processor core 108, at a cost of much increased power consumption. In modern battery-operated portable devices, all power consumption waste must be strictly eliminated.
- An operating system (OS) 114 provides for the selection of particular software tasks 116-120 to be executed by various ones of the processor cores 108-110.
- a slack time calculator 122 is connected to compare how much time an assigned task 116-120 took to be executed on a corresponding processor core 108-110.
- a processing capabilities and task loading table 124 is constructed from data obtained by the slack time calculator 122. It catalogs the processing capabilities of each of the processor cores 108- 110.
- a relative measure for the processing loads imposed by tasks previously executed is entered. During operation, the performance required by a "task-a:e" can be tabulated, like in Table 124, in terms of millions- instruction-per-second (MIPS) .
- MIPS millions- instruction-per-second
- heuristic evidence can be gathered to show "task-d” requires a medium MIPS performance.
- the second chart can be indexed to show "CPU-2" would be the appropriate choice for scheduling task-d.
- a message is sent from table 124 to scheduler 126 so that when OS 114 wants task-d 119 executed, it will be scheduled for dispatch to processor core 109.
- the slack-time calculator 122 can re-verify this was a good choice after the task executes. Since the higher power-consuming processor core 108 was avoided, power was saved by using a lower powered alternative processor core.
- Different processor cores of the SoC are provided with different supply voltages.
- the voltage islands enable core-level power optimization for SoC design by providing a unique fixed supply voltage for each processor core.
- SoC ' s with voltage islands and homogeneous processor cores allow all the tasks to be kept in a single list that can be applied to all the cores in the SoC.
- Prior art devices prepare separate task lists for each processor core. Each task is gauged according to its performance requirements .
- the tasks are matched up to a particular processor that can guarantee execution completion within the allotted time frame because its supply voltage is high enough. Every time the task presents itself, it is again analyzed and dynamically scheduled for the most appropriate processor core. In this way the dynamic scheduling is performed. DVS techniques have inherent overheads that may be too costly to employ on a task-by-task basis.
- the symmetric multiprocessor system 100 instead selects processor cores whose supply voltage can produce the necessary levels of performance in given window of time.
- the slack time calculator and processing capabilities and task loading table 124 provide for performance measurement and estimation to capture the execution times of tasks in an application software.
- the performance measurements can be trace- based or accumulated from the execution times and the deadline requirement of individual tasks.
- the average/median values for slack times is computed, and multiple values of slack times in a certain time window are used to characterizes each slack time per task. Such characteristic information is thereafter used to predict a future execution and slack time of the task, thus dynamically scheduling tasks to the appropriate processors.
- the slack time calculator and processing capabilities and task loading table further provides for resetting of measurement information for a tasks when they have been newly scheduled on a different processor core.
- Fig. 2 represents a symmetric multiprocessor system embodiment of the present invention that makes each voltage island adjustable with DVS, and is referred to herein by the general reference numeral 200.
- the symmetric multiprocessor system 200 comprises a plurality of voltage islands 202-204 disposed in a common semiconductor chip 206. These provide for independent and controllable dynamic voltage scaling (DVS) for each voltage island.
- Dynamic voltage scaling (DVS) has become a universal way to adjust the operating voltage and clocks to balance a circuit's performance with its concomitant power consumption. Voltage islands have been used in conventional designs to allow portions of a chip's circuitry to be subjected to independent DVS controls. But after the DVS has changed to a new value, settling times can be as long as 200-milliseconds . So it would be best not to change the DVS settings very often, or not at all after being initialized.
- a plurality of processor cores 208-210 each have access to a shared memory 212. Each is disposed in a respective one of the voltage islands such that changes in the DVS will proportionately affect each processor core's performance and power consumption.
- An operating system (OS) 214 provides for the selection of particular software tasks 216-220 to be executed by various ones of the processor cores 208-210.
- a slack time calculator 222 is connected to compare how much time an assigned task 216-120 took to be executed on a corresponding processor core 208-110 at a particular DVS setting.
- a processing capabilities and task loading table 224 is constructed from data obtained by the slack time calculator 222. It catalogs the processing capabilities of each of the processor cores 208-210 at a variety of DVS settings. A relative measure for the processing loads imposed by tasks previously executed is entered. A scheduler 226 is controlled by the OS 214. It looks for an entry in the processing capabilities and task loading table 224 for each new next task to be scheduled. If previously characterized, then it sends the task to an appropriate, available processor core 208-110. A DVS control is issued for the corresponding voltage island to a value that will minimize power consumption and still allow for complete execution in the time available.
- the dynamic scheduling assigns application tasks onto the available voltage island isolated processors of the symmetric multiprocessor system.
- Each of the processors is supplied with different independent operating voltages/frequencies.
- the slack times are measured by taking the time difference between the deadline and actual execution time of the task. These are placed in an application task graph. These measurement traces allow future slack times of tasks to be estimated.
- the individual processor processing capabilities are statically maintained. Such dynamic scheduling basically chooses the appropriate processor for the tasks based on their slack times to yield optimal power consumption.
- the processing capabilities table indicates the performance in MIPS provided by the individual processors.
- the MIPS offered by individual processors depends on the operating voltage and frequency of the processors.
- the table can be statically configured by looking at the voltage sources of the processors to then estimate the expected performance. It can also compute the average slack times of tasks by making several, on-going observations .
- the dynamic scheduler maps tasks onto the available processors using static estimates and profiling results. It gets slack information for all the application tasks from the performance measurement and estimation unit. Considering the first tasks mapped on the first processor, if the measured slack time of a first task on a first processor deviates from its average slack time, then such first task can be dynamically scheduled onto a second processor that matches the performance requirement.
- the mapping of tasks onto other processors is based on a processing capabilities table lookup.
- embodiments of the present invention are such that task assignment to an available processor assumes they are symmetrical but employ different supply voltages which make them capable of providing different throughputs.
- the task scheduling is based on the slack times of the task. Using voltage islands and dynamically scheduling the tasks based on their estimated performance requirements, or slack periods, provides substantial power savings.
Abstract
Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system-on-chip (SoC) depends on using voltage islands operated at different voltages such that similar circuits will perform at significantly different levels because of the voltage differences. Otherwise identical processor cores of a symmetric multiprocessor system are placed in various ones of the voltage islands such that they consume differing operating powers because of the voltage differences. The slack-time experienced by each of a variety of tasks during execution by the processor cores is calculated and tabulated. Thereafter, each task is scheduled for a particular processor core according to its performance level as determined by its operating voltage, and depending on the corresponding slack-time calculation for the task. Such scheduling will minimize power consumption by selecting a minimum power processor core, and still allow for complete execution in the time available.
Description
POWER AWARE DYNAMIC SCHEDULING IN MULTIPROCESSOR SYSTEM EMPLOYING VOLTAGE ISLANDS
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to symmetric multiprocessor systems implemented with voltage islands, and more particularly to methods and circuits to conserve system-on-chip (SoC) power consumption by measuring performance and estimation for run-time execution phases to automatically adapt to varying application workloads .
Description of Related Art
Symmetric multiprocessing (SMP) connects identical processors a single shared main memory. Most common multiprocessor systems today use an SMP architecture. Any task can be assigned for execution by any processor, because the data for that task is located in shared memory. Conventional SMP operating systems can move tasks between processors to balance the work load efficiently. The many individual processors in an SMP implementation can starve for data, because memory is typically much slower than each of processors accessing it. SMP has many applications in science, industry, and business where the software is custom programmed for multithreaded processing. But, word processors, computer games, and other most consumer products are not written in a way that they can benefit from SMP. Programs running on SMP systems can perform better even when they have been written for uniprocessor systems.
Hardware interrupts usually suspend program execution, while in an SMP system the kernel hands them off to be run on an idle processor instead. Given proper operating system (OS) support, some applications like software compilers and distributed computing projects, will see speed-ups nearly multiply by the number of additional processors.
When many jobs are being processed in an SMP environment, a loss of hardware efficiency can result. Software programs have been developed to schedule jobs in various ways so that processor utilization is optimized.
A given processor can generally increase its performance if clocked at a higher rate. The highest clocking rates are limited by the semiconductor technology and the operating voltage. For a given operating voltage and semiconductor technology, there will be a maximum clock rate. If the operating voltage is increased, the clocks can be proportionately increased to step up performance, within practical limits. But, the power consumption
will go up as the square of the voltage increase, Δ A/D-1-- —^— . so
K increased performance is gained at a cost of much increased power consumption.
The prior art has used dynamic voltage scheduling based on the task execution phases computed off-line. What would be better would be to use a performance measurement and estimation unit to analyze the execution phases during run-time. That way the system could automatically adapt to varying application workloads. Static mapping of the tasks to a single processor is also not desirable. It would be best to schedule tasks dynamically onto a set of symmetric multiprocessors based on their estimated execution times . The prior art has also dealt with scheduling tasks onto a processor that supports different voltages, keeping the power consumption as the cost function. But such do not use DVS on a per task basis. Such conventional devices sort tasks by deadlines in ascending order. They are put in a reservation list of the target processing element. The slack time of the first
task is computed with both the highest and lowest voltage levels supported by the target processing element. The computation time of the task at the highest and lowest voltages is calculated. The voltage level of the target processing element is found at which the task can meet the deadline. Then DVS is used to change its voltage level and the task is scheduled onto it.
What is needed is a system in which different cores of an SoC are provided with different supply voltages. Voltage islands enable core-level power optimization for SoC design by utilizing a unique supply voltage for each core. In an SoC with homogeneous cores and voltage islands, then all tasks can be kept on one list. Each task is analyzed for its performance requirements. Then a particular processor whose supply voltage can already guarantee the performance requirement of the task is chosen to run the task. Next time, it is analyzed again, and the same task can be mapped onto a different processor having a different supply voltage that can guarantee its performance requirements .
SUMMARY OF THE INVENTION
Briefly, symmetric multiprocessor systems with voltage islands include dynamic scheduling of the application tasks onto the available processors. The voltage islands enable each processor to be supplied with different independent operating voltages and corresponding maximum clock frequencies. The difference between the available and actual processor task execution times are measured so the slack times of recurrences of these tasks can be estimated. The processing capabilities of the individual processors are cataloged according to particular operating voltages and frequencies. A dynamic scheduler chooses an appropriate processor and voltage island setting for the tasks
based on the apparent processor required. This yields optimal power consumption.
An advantage of the present invention is that a SoC implementation of a symmetric multiprocessor system is provided which will conserve power.
A further advantage of the present invention is a SoC implementation of a symmetric multiprocessor system is provided that uses voltage islands to avoid real time overheads associated with DVS power controls. A still further advantage of the present invention is that a SoC implementation of a symmetric multiprocessor system is provided that schedules tasks according to a slack-time calculator .
The above and still further objects, features, and advantages of the present invention will become apparent upon consideration of the following detailed description of specific embodiments thereof, especially when taken in conjunction with the accompanying drawings .
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a functional block diagram of a SoC implementation of a symmetric multiprocessor system embodiment of the present invention which uses fixed voltage islands to provide power choices for processor cores; and
Fig. 2 is a functional block diagram of another SoC implementation of a symmetric multiprocessor system embodiment of the present invention that provides DVS controls for the voltage islands .
DETAILED DESCRIPTION OF THE INVENTION
Fig. 1 represents a symmetric multiprocessor system embodiment of the present invention, and is referred to herein by the general reference numeral 100. The symmetric multiprocessor system 100 comprises a plurality of voltage islands 102-104 disposed in a common semiconductor chip 106. These voltage islands are provided three different operating voltages, hi, mid, and lo-voltage. A plurality of identical processor cores 108-110 are respective disposed in the voltage islands 102-104, but the differing operating voltages results in processor core 108 having relatively high performance (hi-MIPS) , processor core 109 having medium performance (mid-MIPS) , and processor core 110 having relatively low performance (lo-MIPS) . All three processor cores 108-110 each have access to a shared memory 112.
Since all three processor cores 108-110 are operated at different voltage levels, their respective power consumptions also differ. The power consumption will go up as the square of
_AE2 the voltage increase. E.g., AP- —— . So increased performance
K is gained, e.g., in processor core 108, at a cost of much increased power consumption. In modern battery-operated portable devices, all power consumption waste must be strictly eliminated.
An operating system (OS) 114 provides for the selection of particular software tasks 116-120 to be executed by various ones of the processor cores 108-110. A slack time calculator 122 is connected to compare how much time an assigned task 116-120 took to be executed on a corresponding processor core 108-110. A processing capabilities and task loading table 124 is constructed from data obtained by the slack time calculator 122. It catalogs the processing capabilities of each of the processor cores 108- 110. A relative measure for the processing loads imposed by tasks previously executed is entered.
During operation, the performance required by a "task-a:e" can be tabulated, like in Table 124, in terms of millions- instruction-per-second (MIPS) . For example, heuristic evidence can be gathered to show "task-d" requires a medium MIPS performance. The second chart can be indexed to show "CPU-2" would be the appropriate choice for scheduling task-d. A message is sent from table 124 to scheduler 126 so that when OS 114 wants task-d 119 executed, it will be scheduled for dispatch to processor core 109. The slack-time calculator 122 can re-verify this was a good choice after the task executes. Since the higher power-consuming processor core 108 was avoided, power was saved by using a lower powered alternative processor core.
Different processor cores of the SoC are provided with different supply voltages. The voltage islands enable core-level power optimization for SoC design by providing a unique fixed supply voltage for each processor core. SoC ' s with voltage islands and homogeneous processor cores allow all the tasks to be kept in a single list that can be applied to all the cores in the SoC. Prior art devices prepare separate task lists for each processor core. Each task is gauged according to its performance requirements .
One-by-one, the tasks are matched up to a particular processor that can guarantee execution completion within the allotted time frame because its supply voltage is high enough. Every time the task presents itself, it is again analyzed and dynamically scheduled for the most appropriate processor core. In this way the dynamic scheduling is performed. DVS techniques have inherent overheads that may be too costly to employ on a task-by-task basis. The symmetric multiprocessor system 100 instead selects processor cores whose supply voltage can produce the necessary levels of performance in given window of time.
The slack time calculator and processing capabilities and task loading table 124 provide for performance measurement and estimation to capture the execution times of tasks in an application software. The performance measurements can be trace-
based or accumulated from the execution times and the deadline requirement of individual tasks. The average/median values for slack times is computed, and multiple values of slack times in a certain time window are used to characterizes each slack time per task. Such characteristic information is thereafter used to predict a future execution and slack time of the task, thus dynamically scheduling tasks to the appropriate processors. The slack time calculator and processing capabilities and task loading table further provides for resetting of measurement information for a tasks when they have been newly scheduled on a different processor core.
Fig. 2 represents a symmetric multiprocessor system embodiment of the present invention that makes each voltage island adjustable with DVS, and is referred to herein by the general reference numeral 200. The symmetric multiprocessor system 200 comprises a plurality of voltage islands 202-204 disposed in a common semiconductor chip 206. These provide for independent and controllable dynamic voltage scaling (DVS) for each voltage island. Dynamic voltage scaling (DVS) has become a universal way to adjust the operating voltage and clocks to balance a circuit's performance with its concomitant power consumption. Voltage islands have been used in conventional designs to allow portions of a chip's circuitry to be subjected to independent DVS controls. But after the DVS has changed to a new value, settling times can be as long as 200-milliseconds . So it would be best not to change the DVS settings very often, or not at all after being initialized.
A plurality of processor cores 208-210 each have access to a shared memory 212. Each is disposed in a respective one of the voltage islands such that changes in the DVS will proportionately affect each processor core's performance and power consumption. An operating system (OS) 214 provides for the selection of particular software tasks 216-220 to be executed by various ones of the processor cores 208-210. A slack time calculator 222 is
connected to compare how much time an assigned task 216-120 took to be executed on a corresponding processor core 208-110 at a particular DVS setting.
A processing capabilities and task loading table 224 is constructed from data obtained by the slack time calculator 222. It catalogs the processing capabilities of each of the processor cores 208-210 at a variety of DVS settings. A relative measure for the processing loads imposed by tasks previously executed is entered. A scheduler 226 is controlled by the OS 214. It looks for an entry in the processing capabilities and task loading table 224 for each new next task to be scheduled. If previously characterized, then it sends the task to an appropriate, available processor core 208-110. A DVS control is issued for the corresponding voltage island to a value that will minimize power consumption and still allow for complete execution in the time available.
The dynamic scheduling assigns application tasks onto the available voltage island isolated processors of the symmetric multiprocessor system. Each of the processors is supplied with different independent operating voltages/frequencies. The slack times are measured by taking the time difference between the deadline and actual execution time of the task. These are placed in an application task graph. These measurement traces allow future slack times of tasks to be estimated. The individual processor processing capabilities are statically maintained. Such dynamic scheduling basically chooses the appropriate processor for the tasks based on their slack times to yield optimal power consumption. The processing capabilities table indicates the performance in MIPS provided by the individual processors. The MIPS offered by individual processors depends on the operating voltage and frequency of the processors. The table can be statically configured by looking at the voltage sources of the processors to
then estimate the expected performance. It can also compute the average slack times of tasks by making several, on-going observations .
The dynamic scheduler maps tasks onto the available processors using static estimates and profiling results. It gets slack information for all the application tasks from the performance measurement and estimation unit. Considering the first tasks mapped on the first processor, if the measured slack time of a first task on a first processor deviates from its average slack time, then such first task can be dynamically scheduled onto a second processor that matches the performance requirement. The mapping of tasks onto other processors is based on a processing capabilities table lookup.
In general, embodiments of the present invention are such that task assignment to an available processor assumes they are symmetrical but employ different supply voltages which make them capable of providing different throughputs. The task scheduling is based on the slack times of the task. Using voltage islands and dynamically scheduling the tasks based on their estimated performance requirements, or slack periods, provides substantial power savings.
Although particular embodiments of the present invention have been described and illustrated, such is not intended to limit the invention. Modifications and changes will no doubt become apparent to those skilled in the art, and it is intended that the invention only be limited by the scope of the appended claims .
Claims
1. A multiprocessor system, comprising: a plurality of voltage islands disposed in a common semiconductor chip and providing for different independent operating voltages within each voltage island; a plurality of processor cores with access to a shared memory, and each disposed in a respective one of the voltage islands such that said operating voltage differences proportionately affect each processor core's performance and power consumption; a slack time calculator connected to compare how much time an assigned task took to be executed on a corresponding processor core; a processing capabilities and task loading table for construction from data obtained by the slack time calculator to catalog the processing capabilities of each of the processor cores, and for tabulating a relative measure for the processing loads imposed by tasks previously executed; and a scheduler connected to inspect a next task to be scheduled for an entry in the processing capabilities and task loading table, and if previously characterized, then scheduling such task to a processor core that will minimize power consumption and still allow for complete execution in the time available.
2. The system of claim 1, further comprising: an operating system (OS) providing for the selection of particular software tasks to be executed by various ones of the
processor cores, and connected to the scheduler to allow for scheduling of tasks onto selected processor cores.
3. The system of claim 1, wherein: the slack time calculator and processing capabilities and task loading table provide for performance measurement and estimation to capture the execution times of tasks in an application software
4. The system of claim 3, wherein: the slack time calculator and processing capabilities and task loading table provide for performance measurements that are either trace-based or accumulated from the execution times and the deadline requirement of individual tasks, and wherein the average/median values for slack times is computed, and multiple values of slack times in a certain time window are used to characterizes each slack time per task, and such characteristic information is thereafter used to predict a future execution and slack time of the task, thus dynamically scheduling tasks to the appropriate processors.
5. The system of claim 4, wherein: the slack time calculator and processing capabilities and task loading table provide for resetting of said measurement information for a tasks when it has been newly scheduled on a different processor core.
6. A symmetrical multiprocessor system, comprising: a plurality of voltage islands disposed in a common semiconductor chip and providing for independent and controllable dynamic voltage scaling (DVS) for each voltage island; a plurality of processor cores with access to a shared memory, and each disposed in a respective one of the voltage islands such that changes in said DVS proportionately affect each processor core's performance and power consumption;
an operating system (OS) providing for the selection of particular software tasks to be executed by various ones of the processor cores; a slack time calculator connected to compare how much time an assigned task took to be executed on a corresponding processor core at a particular DVS setting; a processing capabilities and task loading table for construction from data obtained by the slack time calculator to catalog the processing capabilities of each of the processor cores at a variety of DVS settings, and a relative measure for the processing loads imposed by tasks previously executed; and a scheduler connected to the OS that inspects a next task to be scheduled for an entry in the processing capabilities and task loading table, and if previously characterized, then scheduling such task to a processor core and setting the DVS for its voltage island to a value that will minimize power consumption and still allow for complete execution in the time available .
7. A method of overall power conservation in a multiprocessor system disposed in a system-on-chip (SoC) , comprising: operating a plurality of voltage islands disposed in a SoC at different voltages such that similar circuits will perform at significantly different levels because of the voltage differences; disposing identical processor cores of a multiprocessor system in various ones of the plurality of voltage islands such that they consume differing operating powers because of their operating voltage differences; calculating and tabulating a slack-time experienced by each of a variety of tasks for execution by said processor cores; and
scheduling each said task to a particular said processor core according to its performance level as determined by its operating voltage, and depending on a corresponding slack- time calculation for said task, wherein said scheduling is such that power consumption will be minimized and still allow for complete execution in a time available.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75716606P | 2006-01-06 | 2006-01-06 | |
US60/757,166 | 2006-01-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007077516A1 true WO2007077516A1 (en) | 2007-07-12 |
Family
ID=38055463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2006/055050 WO2007077516A1 (en) | 2006-01-06 | 2006-12-28 | Power aware dynamic scheduling in multiprocessor system employing voltage islands |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW200809628A (en) |
WO (1) | WO2007077516A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941682B2 (en) | 2007-05-09 | 2011-05-10 | Gainspan, Inc. | Optimum power management of system on chip based on tiered states of operation |
CN103026340A (en) * | 2010-07-30 | 2013-04-03 | 富士通株式会社 | Multi-core processor system, allocation program, control program, allocation method and control method |
US8799697B2 (en) | 2011-09-26 | 2014-08-05 | Qualcomm Incorporated | Operating system synchronization in loosely coupled multiprocessor system and chips |
CN104126160A (en) * | 2011-12-29 | 2014-10-29 | 英特尔公司 | Individual core voltage margining |
CN105930289A (en) * | 2010-07-30 | 2016-09-07 | 富士通株式会社 | Multi-core processor system, allocation program, control program, allocation method, and control method |
US9618999B1 (en) | 2015-11-17 | 2017-04-11 | International Business Machines Corporation | Idle-aware margin adaption |
US9703613B2 (en) | 2013-12-20 | 2017-07-11 | Qualcomm Incorporated | Multi-core dynamic workload management using native and dynamic parameters |
CN109960576A (en) * | 2019-03-29 | 2019-07-02 | 北京工业大学 | A kind of low energy consumption task scheduling strategy towards CPU-GPU isomery |
US10521267B2 (en) | 2015-12-21 | 2019-12-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Priority trainer for many core processing system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1207470A2 (en) * | 2000-11-15 | 2002-05-22 | International Business Machines Corporation | Concurrent logical and physical construction of voltage islands for mixed supply voltage designs |
WO2002054198A2 (en) * | 2001-01-05 | 2002-07-11 | International Business Machines Corporation | Computer system having low energy consumption |
WO2004006089A1 (en) * | 2002-05-28 | 2004-01-15 | Sendo International Limited | A processor system and method for controlling signal timing therein |
EP1496424A2 (en) * | 2003-07-08 | 2005-01-12 | Toshiba Corporation | Controller for information processing apparatus |
EP1544716A2 (en) * | 2003-12-17 | 2005-06-22 | Hitachi, Ltd. | Information processing system and operating system |
-
2006
- 2006-12-28 WO PCT/IB2006/055050 patent/WO2007077516A1/en active Application Filing
-
2007
- 2007-01-03 TW TW096100181A patent/TW200809628A/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1207470A2 (en) * | 2000-11-15 | 2002-05-22 | International Business Machines Corporation | Concurrent logical and physical construction of voltage islands for mixed supply voltage designs |
WO2002054198A2 (en) * | 2001-01-05 | 2002-07-11 | International Business Machines Corporation | Computer system having low energy consumption |
WO2004006089A1 (en) * | 2002-05-28 | 2004-01-15 | Sendo International Limited | A processor system and method for controlling signal timing therein |
EP1496424A2 (en) * | 2003-07-08 | 2005-01-12 | Toshiba Corporation | Controller for information processing apparatus |
EP1544716A2 (en) * | 2003-12-17 | 2005-06-22 | Hitachi, Ltd. | Information processing system and operating system |
Non-Patent Citations (2)
Title |
---|
GRUIAN F ED - ASSOCIATION FOR COMPUTING MACHINERY: "HARD REAL-TIME SCHEDULING FOR LOW-ENERGY USING STOCHASTIC DATA AND DVS PROCESSORS", PROCEEDINGS OF THE 2001 INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN.ISLPED. HUNTINGTON BEACH, CA, AUG. 6 - 7, 2001, INTERNATIONAL SYMPOSIUM ON LOW POWER ELCTRONICS AND DESIGN, NEW YORK, NY : ACM, US, 6 August 2001 (2001-08-06), pages 46 - 51, XP001134581, ISBN: 1-58113-371-5 * |
MEJIA-ALVAREZ P ET AL: "Power-optimized scheduling server for real-time tasks", REAL-TIME AND EMBEDDED TECHNOLOGY AND APPLICATIONS SYMPOSIUM, 2002. PROCEEDINGS. EIGHTH IEEE 24-27 SEPT. 2002, PISCATAWAY, NJ, USA,IEEE, 24 September 2002 (2002-09-24), pages 239 - 250, XP010621752, ISBN: 0-7695-1739-0 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941682B2 (en) | 2007-05-09 | 2011-05-10 | Gainspan, Inc. | Optimum power management of system on chip based on tiered states of operation |
CN103026340B (en) * | 2010-07-30 | 2016-05-04 | 富士通株式会社 | Multi-core processor system, allocator, control program, distribution method and control method |
CN103026340A (en) * | 2010-07-30 | 2013-04-03 | 富士通株式会社 | Multi-core processor system, allocation program, control program, allocation method and control method |
EP2600245A1 (en) * | 2010-07-30 | 2013-06-05 | Fujitsu Limited | Multi-core processor system, allocation program, control program, allocation method and control method |
EP2600245A4 (en) * | 2010-07-30 | 2013-11-06 | Fujitsu Ltd | Multi-core processor system, allocation program, control program, allocation method and control method |
US9772964B2 (en) | 2010-07-30 | 2017-09-26 | Fujitsu Limited | Multicore processor system, computer product, assigning method, and control method |
CN105930289A (en) * | 2010-07-30 | 2016-09-07 | 富士通株式会社 | Multi-core processor system, allocation program, control program, allocation method, and control method |
US9170965B2 (en) | 2010-07-30 | 2015-10-27 | Fujitsu Limited | Interrupt assigning method, interrupt control method, and system therefor |
US8799697B2 (en) | 2011-09-26 | 2014-08-05 | Qualcomm Incorporated | Operating system synchronization in loosely coupled multiprocessor system and chips |
US9417676B2 (en) | 2011-12-29 | 2016-08-16 | Intel Corporation | Individual core voltage margining |
EP2798435A4 (en) * | 2011-12-29 | 2015-09-09 | Intel Corp | Individual core voltage margining |
CN104126160A (en) * | 2011-12-29 | 2014-10-29 | 英特尔公司 | Individual core voltage margining |
US9703613B2 (en) | 2013-12-20 | 2017-07-11 | Qualcomm Incorporated | Multi-core dynamic workload management using native and dynamic parameters |
US9618999B1 (en) | 2015-11-17 | 2017-04-11 | International Business Machines Corporation | Idle-aware margin adaption |
US10521267B2 (en) | 2015-12-21 | 2019-12-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Priority trainer for many core processing system |
CN109960576A (en) * | 2019-03-29 | 2019-07-02 | 北京工业大学 | A kind of low energy consumption task scheduling strategy towards CPU-GPU isomery |
CN109960576B (en) * | 2019-03-29 | 2021-04-16 | 北京工业大学 | Low-energy-consumption task scheduling strategy oriented to CPU-GPU (Central processing Unit-graphics processing Unit) heterogeneous |
Also Published As
Publication number | Publication date |
---|---|
TW200809628A (en) | 2008-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2007077516A1 (en) | Power aware dynamic scheduling in multiprocessor system employing voltage islands | |
JP6227737B2 (en) | Providing core unit voltage and frequency control | |
Von Laszewski et al. | Power-aware scheduling of virtual machines in dvfs-enabled clusters | |
Ahmad et al. | Using game theory for scheduling tasks on multi-core processors for simultaneous optimization of performance and energy | |
Bailey et al. | Adaptive configuration selection for power-constrained heterogeneous systems | |
US8806228B2 (en) | Systems and methods for asymmetrical performance multi-processors | |
Miller et al. | Booster: Reactive core acceleration for mitigating the effects of process variation and application imbalance in low-voltage chips | |
TWI454901B (en) | Microprocessor, method of operating microprocessor and computer program product | |
US20110022833A1 (en) | Altering performance of computational units heterogeneously according to performance sensitivity | |
KR20100138954A (en) | Power-aware thread scheduling and dynamic use of processors | |
Lin et al. | Energy-efficient task scheduling for multi-core platforms with per-core DVFS | |
EP3649536B1 (en) | Core frequency management using effective utilization for power-efficient performance | |
Etinski et al. | Utilization driven power-aware parallel job scheduling | |
Yun et al. | Hars: A heterogeneity-aware runtime system for self-adaptive multithreaded applications | |
Terzopoulos et al. | Power-aware bag-of-tasks scheduling on heterogeneous platforms | |
Zeng et al. | Practical energy-aware scheduling for real-time multiprocessor systems | |
Liu et al. | Energy-efficient scheduling of real-time tasks on heterogeneous multicores using task splitting | |
Sheikh et al. | Energy-efficient cache-aware scheduling on heterogeneous multicore systems | |
Chandio et al. | Energy efficient VM scheduling strategies for HPC workloads in cloud data centers | |
March et al. | A new energy-aware dynamic task set partitioning algorithm for soft and hard embedded real-time systems | |
Sobhani et al. | REALISM: Reliability-aware energy management in multi-level mixed-criticality systems with service level degradation | |
US9417676B2 (en) | Individual core voltage margining | |
Nakada et al. | Design aid of multi-core embedded systems with energy model | |
Ansari et al. | Power-aware scheduling of fixed priority tasks in soft real-time multicore systems | |
Saha et al. | Adaptive energy-efficient task partitioning for heterogeneous multi-core multiprocessor real-time systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06842696 Country of ref document: EP Kind code of ref document: A1 |