Experiment

Implementing a Frequency Scaling Algorithm for iPAQ H3975

Back Home

Introduction 

Initially, we have the intention to run the simulated environment for DVS-EDF algorithm that we have for a long period of time to get the battery power status obtained through the power management API GetSystemPowerStatusEx().

However, we have difficulty running the experiment for more than 3.5 minutes as the system becomes unstable. Further research shows that the Frequency Change Sequence is more complex as detailed in the "Problems" section below.

Problems 

Besides the timing granularity problem for the scheduler and OEM redefined function problems, we still face more problems after settling to have the algorithm run in a time simulated environment.

The Intel manual reveals that during the Frequency Change Sequence, for Hardware and Watchdog Resets,  the resets takes precedence over the FCS. This may fouled up our experiments for runs greater than 3.5 minutes.

Moreover, if the GPIO Reset is asserted, the contents of the SDRAM will be lost. This is critical since we are gathering data and there is a potential lost when this happens.

As the result, we are unable to run the experiment for long periods of time. However, we are able to run for a large number of simulated time ticks and gather the data in a file (command prompt is not available in Windows CE 3.0 and data collection is done through files). This provide sufficient data for comparison between the EDF and the DVS-EDF algorithm.

Experiment Setup 

To show that DVS-EDF utilizes the processor better and provides energy savings, we run 2 scenarios in both EDF and DVS-EDF. Both will run with random execution time up to WCET. Since the scheduling point is at a single unit time, we take the ceiling of the execution time.

The project workspace for EDF can be found here (EDF.zip) and the project workspace for DVS-EDF can be found here (DVSEDF.zip)

Scenario 1 

This scenario have the following task set:

Task Period Deadline Phase WCET
A 8 8 0 2
B 5 5 0 2
C 20 20 0 2

The utilization is 0.75. With random execution time up to WCET, we obtained the following results after running for 5 hyperperiods:

a) EDF

b) DVS-EDF

 

Even with the coarse scheduling point, we still see some significant improvements. If a finer scheduler is used, the potential savings is much higher.

Scenario 2

This scenario have the following task set:

Task Period Deadline Phase WCET
A 8 8 0 1
B 10 10 0 1
C 12 12 0 1
D 15 15 0 1
E 20 20 0 1
F 24 24 0 1
G 30 30 0 2
H 40 40 0 3
I 60 60 0 4
J 120 120 0 5

The utilization is 0.718. With random execution time up to WCET, we obtained the following results after running for 1 hyperperiod:

a) EDF

b) DVS-EDF

 

Noticed that for this example, the savings is much lesser compared to the 3-task set example. Most of the shorter period task in this task set have WCET = 1. Most of the time, the task will run at WCET  after taking the ceiling due to scheduling granularity. We'll see much better numbers with a better scheduler.

 


For problems or questions regarding this web contact mwah@unity.ncsu.edu.
Last updated: December 01, 2002.