Non-Volatile Memory Hierarchies



SRAM, DRAM and rotating magnetic disks have served as the bedrock technologies for designing processor caches, main memory, and storage for many years. However, continued use of these technologies pose several challenges with regard to performance, power, density, and scalability. One way to address these challenges is to use Non-Volatile Memory in lieu of these traditional memory and storage media. Examples of Non-Volatile Memory include Flash, Spin Transfer Torque RAM (STT-RAM), and Phase Change Memory (PCM). While these Non-Volatile Memory offer several benefits such as high density and very low leakage power, they also pose several challenges such as the need for high write currents, slow access times (compared to SRAM and DRAM), and limited endurance.

This project aims to develop a high performance and extremely low-power memory hierarchy for a server, from processor caches down to storage, using Non-Volatile Memory. Additionally, this project also explores how the non-volatility property of these memories can be exploited in interesting ways at the architecture and system levels to enhance performance, energy-efficiency, and dependability. A few contributions of this project to date include relaxed volatility STT-RAM cache designs, Flash endurance enhancement techniques, and the development of architecture design tools for STT-RAM and Flash.

Representative Publications