Reducing set-associative cache energy via way-prediction and selective direct-mapping