Broadly, my research interests are in computer architecture. More specifically, I conduct research on core micro-architecture, architectural support for security, simulation methodologies, and micro-architectural applications for emerging technologies.
Core Mico-Architecture and Software/Hardware Co-Design
Processors must execute the instructions of programs according to the ISA's semantics. However, as long as correctness is ensured, there is significant room for innovation in the implementation of how the processor execute the instructions. Core micro-architecture research examines how to design the processor core to be better: whether faster, more energy-efficient, or any other metric that one might desire. Sometimes, we can improve on this design even more by designing software and hardware together. Such software often includes the compiler and/or operating system.
Publications in this research area include:
- DynaSprint: Microarchitectural Sprints with Dynamic Utility and Thermal Management
- Decoupling Loads for Nano-Instruction Set Computers
- Flexible Register Management using Reference Counting
- BOLT: Energy-Efficient Out-of-Order Latency-Tolerant Execution
- Decoupled Store Completion/Silent Deterministic Replay: Enabling Scalable Data Memory for CPR/CFP Processors
- iCFP: Tolerating All-Level Cache Misses in In-Order Processors
Simulation Methodologies
Computer architects often experimentally evaluate their ideas using simulations. These results are used to determine how good or bad a research idea is, and to convince others of its merit. However, the proper simulation methodology is required to ensure meaningful results.
Publications in this research area include:
Architectural Support For Security
Security is an important consideration in all systems, and is becoming more and more important. Hardware can provide support for security in ways that software either cannot do, or can do much less efficiently.
Publications in this research area include:
- Poison Ivy: Safe Speculation for Secure Memory
- MAPS: Understanding Metadata Access Patterns in Secure Memory (Best paper, ISPASS 2018)
Education
While my primary research area is technical, I do work on improving programming education. While most of my programming education work is focused on delivering content that is useable to students (All of Programming, and my Coursera Specializations), here are the items that have appeared in CS Education venues.
- ITiCSE Poster on The Seven Steps
- Natalia Androsz's Senior Thesis on Code Similarity Detection.
I'm not an author, but gave the talk for
Document