Cost-effective Designs for Supporting Correct Execution and Scalable Performance in Many-core Processors