CAPA: Collaborative Research: Lightweight Abstract Memory Features

Project: Research project

Project Details


The memory subsystem of modern computing systems has seen tremendous innovations, incorporating new features to aid programmers in creating fast, secure, correct, and power-efficient software. Unfortunately, harnessing these features is a challenge, as programming languages do not expose advanced abilities of the memory subsystem to programmers. This project focuses on the interface between programming languages and memory hardware. The intellectual merits include the creation of a rigorous semantics for memory features, so that programmers can reason about individual features and their composition; and the creation of compilation tools and run-time systems that allow programmers to use new memory features, in isolation or combination, for maximum gain. The project's broader significance and importance are its impact on the software and hardware industry, by facilitating rapid adoption of new memory features; the education and training of graduate students; and the creation of a tutorial to aid in dissemination and adoption of the developed tools and techniques.

Hardware implementations of memory features are typically fast but limited by physical capacity, and the precise semantics of features are often vendor-specific. The theoretical portion of the work will create rigorous semantics for memory features, which transcend individual implementation and allow programmers and static analysis tools to reason about a program's interaction with memory. The research will construct virtualized run-time systems to overcome hardware constraints, and to emulate features when they are not present. Its implementations will employ run-time adaptivity to fine-tune themselves to a given system's feature availability, support for composition of features, and hardware/workload characteristics. A custom compiler infrastructure, built atop the LLVM system, will provide a lightweight syntax through which programmers can easily add support for memory features to their existing codes.

Effective start/end date9/1/178/31/21


  • National Science Foundation: $250,000.00


Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.