Advancing STTRAM Caches for Runtime Adaptable Energy-Efficient Microarchitectures