Gaining insights into multicore cache partitioning: Bridging the gap between simulation and real systems