A power-aware, self-adaptive macro data flow framework