System-level power optimization: techniques and tools