I am a final-year graduate student in Electrical Engineering and
Computer Science at the Massachusetts Institute of Technology. I am
currently studying as a Graduate Exchange Scholar at the University of
California, Berkeley where I am finishing my thesis research
on vector-thread architectures with Professor Krste
Asanović. I am also an active member of the new Parallel
Computing Laboratory (ParLab) at UC Berkeley which is tackling
parallel architecture and software for mobile platforms. I will be
joining the Electrical and Computer Engineering Department at Cornell
University in January 2010.
My primary research interest is in energy-efficient parallel computer
architecture for both high-performance and embedded applications. I am
also interested in parallel programming models, interconnection
networks, vector processing, VLSI chip design methodologies, and the
intersection between computer architecture and future technologies
such as silicon photonics and synthetic biology. Building prototype
systems is an integral part of my research, since this is one of the
best ways to validate assumptions, gain intuition about physical
design issues, and provide platforms for future software research.
Vector-Thread Architectures
|
Vector-threading (VT) is a new performance-efficient approach which
combines the area and energy efficiency of vector architectures with
the flexibility of multithreaded execution [ISCA'04, MICRO'04].
To help validate our initial ideas we designed and fabricated the
Scale VT Processor, a prototype for embedded applications
implemented in a TSMC 0.18um process [TODAES'08, CSAIL'07]. Scale
includes a RISC control processor and a four-lane vector-thread unit
that can execute 16 operations per cycle and supports up to 128
active threads. The 16 sq mm chip runs at 260 MHz while consuming
0.4-1.1 W across a range of kernels. My thesis is investigating
single-lane VT units which significantly simplify manycore VT
implementations; the Maven processor tiles these single-lane VT
units to create a malleable array of vector-thread engines where
lanes can be ganged together to form larger VT units [WSS'08]. Our initial
research on VT was selected as an IEEE Micro Top Pick
[IEEE-MICRO'04],
and the Scale VT Processor was a DAC/ISSCC Student Design Contest
Winner in 2007.
|
(about this photo)
|
Silicon Photonic Chip-Level Networks
|
Although we can expect tens to hundreds of cores on a die in the
next decade, corresponding increases in main memory bandwidth are
also required to improve overall application performance. Projected
electrical technologies are not predicted to supply sufficient
bandwidth with reasonable power consumption and packaging cost. Our
colleagues at MIT have been developing a novel monolithic silicon
photonic technology which can potentially provide immense bandwidth
density at low-energy and low-cost. We have recently investigated
how to leverage this technology to implement manycore
processor-to-DRAM networks [HOTI'08],
and we have also explored techniques for implementing low-diameter
non-blocking networks for global on-chip communication
[NOCS'09]. Our
original work was selected for publication in an IEEE Micro Special
Issue [IEEE-MICRO'09].
|
(about this photo)
|
Synthetic Biology
|
Synthetic biology is a new field which studies how to build
artificial biological systems for engineering applications using
classic engineering techniques such as abstraction, modeling,
simulation, incremental testing, and modular design. Our early
research examined using zinc-finger and leucine-zipper protein
domains to create scalable cellular logic technologies
[NSC'04].
Currently, I am collaborating with researchers at UC Berkeley to
extend some of my previous work on optimal algorithms for the
assembly of standard biological parts [Personal-Memo'04]. I was a
member of the MIT team in the very first summer iGEM competition
where we attempted to build synchronized chemotactic oscillators
[iGEM-Proposal'04, iGEM-Presentation'04],
and during the summer I did some preliminary work on modeling a
Lux/AiiA relaxation oscillator [Personal-Memo'04].
|
(about this photo)
|
Other Projects
In addition to my primary research, I have also had an opportunity
to work on several other projects. While at the University of
Cambridge, my research focused on automatic image processing for
scanning electron microscopy. I presented my work at the SCANNING
microscopy conference where I won the best student presentation
award [SCANNING'01].
At MIT several of my graduate courses involved semester-long
research projects:
-
MIT 6.371 - Procedural Generation of Standard-Cell Datapaths
[report]
-
MIT 6.374 - Gate-Level Voltage Scaling Using Dual-Voltage Domino Logic
[paper]
-
MIT 6.829 - pStore: A Secure Peer-to-Peer Backup System
[paper]
-
MIT 6.836 - Kickbot: A Spherical Autonomous Robot
[paper]
Currently I am involved with
the Par Lab at UC
Berkeley. I am an active member of the architecture group developing
new manycore architectures which efficiently integrate hundreds of
cores onto a single chip. I am also a reviewer for the patterns
group which is writing new design patterns for parallel programming.
|
(about this photo)
|
Teaching
I have had several opportunities to be involved in teaching during my
graduate career. Some of the most rewarding experiences have been
mentoring younger students both at MIT and at UC Berkeley. I have
co-supervised four undergraduate students and three masters students
who were conducting research on datapath cell tiling, simulation trace
visualization, the Scale memory system, and on-chip networks. I have
also been a teaching assistant for two semesters, and I helped create
a student-run month-long robotics course.
6.375 Complex Digital Systems
Teaching Assistant, 2005 & 2006
The first time this course was offered was in
the Spring of 2005 by
Professors Krste Asanović and Arvind. This brand new course
taught methodologies for designing large digital ASICs using the
Bluespec Hardware Description Language. I was responsible for
assembling the CAD toolflow, designing the laboratory assignments,
giving several tutorials, and mentoring students through an
intensive semester-long design project. The second time this course
was offered was in the Spring of
2006 by Professor Arvind. In addition to improving the
infrastructure from the previous year, I had more input into the
overall direction of the course and gave several lectures on ASIC
physical design issues. Much of the teaching material and
infrastructure I developed is still used by the course today. Some
of the lectures I taught are listed below:
-
Verilog 1 - Fundamentals
[slides]
-
Verilog 2 - Design Examples
[slides]
-
CMOS Transistors, Gates, and Wires
[slides]
-
Managing Physical Design Issues in ASIC Toolflows
[slides]
|
(about this photo)
|
6.186 Mobile Autonomous Systems Laboratory
Co-Director/Instructor, 2001-2005
In 2001, I was part of a small team of graduate students who created
a for-credit robotics course
called 6.186 Maslab taught
during MIT's month-long independent activities period. The course
challenges small teams of students to build autonomous, vision-based
robots which then navigate an unknown playing field. We continued to
improve and teach the course every year, and it grew to include over
fifty students. I acted as a co-director and an instructor from 2001
until 2005. The course is completely run by students who are
responsible for fundraising, teaching, mentoring, and technical
development including custom software and hardware design. We
structured the course to include a week-long selection of
"mini-lectures" on the basics of software engineering, mechanical
engineering, and robotics so that students from a wide variety of
backgrounds could participate. The course is still offered today and
it remains very popular with both undergraduate and graduate
students. Some of the "mini-lectures" I taught are listed below:
- Robotic Sensor Basics
- C++ Development for Beginners
-
Mobile Robotic Control Systems
[slides]
|
(about this photo)
|
Education
-
Massachusetts Institute of Technology, Cambridge, MA
Pursuing Ph.D. in Electrical Engineering and Computer Science, December 2009
-
University of Cambridge, Cambridge, UK
M.Phil. in Engineering, August 2000
-
University of Virginia, Charlottesville, VA
B.S. in Electrical Engineering with Highest Distinction, May 1999
Software
This is a list of some of the software packages I have developed to
help with my research. Please feel free to email me with comments,
suggestions, bug reports, or fixes. Unless otherwise indicated all
software is distributed under a BSD
license.