3.4 Microarchitectural Techniques for Reliability