Improving CGRA utilization by enabling multi-threading for power-efficient embedded systems