Research Projects

I have a few research projects, and I welcome motivated students who would like to work on them for individual projects, master's theses, or PhD's. If you are an undergraduate, you must have a 3.5 GPA or higher to do independent study with me.

New Memory Technologies

Ater years of research in caching in single-core and multi-core systems, major changes are afoot due to two new technologies likely to transform lower levels of memory.

3D stacked DRAM is a way of placing DRAM technology on top of the chip. The major advantage is lower latency and higher bandwidth than experienced with traditional DRAM. This allows for very dense, high capacity memory close to the chip. We are exploring ways to reduce the on-chip storage of tags, the time to discover a miss, and the hit rate in the stacked DRAM.

Memristors is one of a family of new memories called resistive memories. Resistive memories use resistance to store the value, allowing for higher precision than 0 or 1, at the cost of time and energy. Memristors are especially appealing because of their fast read time and high density, but they are challenged with a limited lifetime and high write time. We are looking at how to utilize the advantages in memristors while minimizing the disadvantages.

Merged Memory and Computation

Systems have been trending towards more and more parallelism. While this increases performance, there is redundancy in storage and computation that can hurt performance and energy consumption. We have investigated how to dynamically detect these redundancies in the processor, caches, and DRAM. We are continuing our work at the lowest levels of caches and in DRAM.

Computer Science Education and Diversity

The government and industry both have a goal for a more diverse workforce in computer science. Abundant research suggests that more diverse teams produce better products, and their products appeal to a greater number of people.

Outreach activities have been used to experiment with curriculum at various age groups. Now, with a growing interest in placing computer science into schools, we are ready to act. Our KELP CS curriculum is studying how to adjust outreach activities to a school environment (short lab times, elementary school teachers, large class sizes, a curriculum that builds on itself, etc.), and the learning progressions students go through on their path to understanding. We have open problems in analyzing student projects, designing feedback for students and teachers, and making automated tutors to help studends and teachers.

For our research, and to make a difference in the world, we also run professional development workshops so that teachers can present the material in their class / lab. Over 250 4th grade students have been through our curriculum in 2013-2014 alone, as well as another 120 5th and 6th graders. If you would like to offer it in your class, please contact to find out about the next professional development opportunity.