It is clear at this point that we should first focus on the voltage setup
problem on MPSoC. After that, I feel it is a nature extension to study
the heterogeneous core design for VSVP problem. The work-load variation
DVS should be considered finally after we have clear understand of the
previous problem.

Below is the outline of the voltage setup problem:

First is the problem formulation: given (1) a workload including N periodic task 
streams, each of which is represented by a tuple (T_i, D_i, E_i, P_i), where T_i 
is the period, D_i is the deadline, E_i is the task execution time, and P_i is 
the percetage of such stream in the workload; and (2) a MPSoC system with M 
identical PEs (homogeneous PEs), each of which has L levels of possible
supply voltage; to determine (i) which task stream is assigned to which PEs; and (ii)
the value of all L Vdd on each PE; such that on each PE, the task streams are
schedulable and the total energy is minimized. In this problem Vdd on one PE 
are indenpendent of those on other PEs.

Second, solving this problem includes two steps: (i) distribute tasks to different
PEs, (ii) decide the voltage setting for each PE depending on the task assignment.
The following heuristic algorithm is proposed for task assignment:

1. calculate the optimal V for each task as V_opt = MAX(V_critical, V_min);
2. randomly assign task. For example, all PE are assigned N/M number of tasks;
3. use low power EDF (LP-EDF) method [1] to schedule every PE, and obtain
the voltage Vi for task i (i = 1, ..., N);
4. calculate voltage_sum as the sum of (V_i - V_opt_i)^2 for i = 1, ..., N;
5. if the voltage_sum does not decrease, quit
6. otherwise, take the task in the time interval with largest intensity [1] and assign
it to other PE, go back to step 3;

The basic goal is to distribute task such that the voltage assigned to each task
based on LP-EDF method comes as close to its optimal V as possible.

After the task assignment, we use gradient method to find out L levels of Vdd
for each individual PE, and therefore solve the voltage setup problem on MPSoC.

The results can be compared to fixed Vdd selection (for example, even voltage
selction between V_max and V_critical: choosing L Vdd points (V_1, ..., V_L)
such that (a) V_1 = V_critical, (b) V_L = V_max, and (c) V_i -V_i-1 = constant, 
where i = 2, ..., L) with two different task assignments: even partition of
task and task assignment by SA.

Compared to the existing voltage setup paper [2], our contributions include
(1) consider leakage and critical voltage V_critical, (2) target MPSoC, 
and (3) consider the scheduling impact on the voltage setup problem. In
[2] the voltage setup problem is solved based on the minimum possible Vdd
to execute each task. If only one task is executed, such Vdd is the power-optimal
Vdd. However, such Vdd may not be the realistic optimal when multiple tasks
are scheduled together.

When the problem becomes clear, it can be implement quickly.

[1] F. Yao and et al, "A scheduling model for reduced CPU energy", IEEE FOCS, 1995

[2] S. Hua and G. Qu, "Approaching the Maximum Engergy Saving on Embedded Systems with Multiple Voltages", ICCAD 2003