Energy-aware system design : algorithms and architectures