Combined dynamic voltage scaling and adaptive body biasing for lower power microprocessors under dynamic workloads