Techniques for designing energy-aware MPSoCs