Non-Volatile Memories (NVMs) provide new opportunities for scalable main memory due to their great scalability and other favorable attributes. However, considering their inherent write defects (long latency, high energy consumption), combined with their limited write endurance, their inclusion into the memory hierarchy requires careful handling. This not only shortens the lifespan of NVMs but also renders them as an expensive option. In this work, we propose a technique called EnVector that exploits the intrinsic uniformity in memory data to encode the cacheline data before the memory write takes place. By using well-designed fixed vectors, it minimizes the variation between the incoming and the stored data. This saves a lot of possible bit flips, reducing the likelihood of any memory failure from an excessive number of writes. Consequently, improving performance and lowering latency and energy requirements. We empirically demonstrated that EnVector upgrades the NVM lifetime by 37% and accelerates its performance by 15% over the baseline.
Upadhyay et al. (Sat,) studied this question.