Improving the Energy Efficiency of Microprocessor Cores Through Accurate Resource Utilisation Prediction