Resilient Design Techniques For Improving Cache Energy Efficiency