In every generation of computer hardware, researchers and practitioners have found uses for hardware features that their designers did not anticipate. The project aims to find new ways to adapt special-purpose hardware for general and multiple ends, using Intel's Memory Protection Extensions (MPX) as a proof of concept. Intel's designers intended MPX to be used to improve software security by ensuring an important property called spatial memory safety. The project investigates many other surprising uses for MPX.
The project explores the idea of viewing special-purpose "hardware" as general-purpose hardware-accelerated "software". In particular, the project aims to repurpose MPX for three broader uses, beyond its original specialized hardware support for spatial memory safety. First, a technique to transparently augment temporal memory safety on top of MPX will be studied to ensure full memory safety. Second, a novel dynamic program analysis framework, which repurposes the MPX as a general-purpose metadata store, will be designed and developed. Last, the project will investigate the potential of MPX as a general-purpose hardware-accelerated data structure.
The project will impact both current and future researchers, practitioners, and students. The project will unlock the full potential of Intel's special-purpose hardware, explore the limitations of its instruction set architecture, and thus help design next-generation processors powered by more general-purpose features. These next-generation processors will enable more secure, reliable, and performant software. New undergraduate course modules will be developed to integrate research discovery with teaching. A K-12 summer class will be offered as an outreach and diversity program. The project also includes a plan to offer a program analysis workshop for non-computer scientists to support the broader research community.
The project's main results will be software prototypes and hardware simulations, along with benchmarks, documentation, and research papers. The source code, benchmark applications, and documentation will be made publicly available on GitHub. The papers will be available on the dedicated project website as well. The project repository will be maintained for at least five years beyond the end of the project. All of these resources will be available from the project web page: http://research.cs.vt.edu/gpx.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.