Embedded Systems

Our work on Embedded Systems and Reconfigurable Computing covers both the system software and hardware platform issues.


System software is long lived and hard to develop.

  • How can we make computers and consumer electronic devices less helpless and needy of detailed instruction?
  • How can we build predictable systems out of a mix of real-time and non-real-time entities?
  • How can we trust the computers and how can they trust us? But keep our privacy, lifestyle, safety, and convenience?
  • What are the programming paradigms that simplify the programmer's tasks without undue overheads?
  • How can we verify that software behaves as expected and adapts to a changing environment?
  • How do we structure software for resource-constrained environments, while maximizing portability, reuse, and sharing?

Embedded hardware is diverse and forever changing.

  • How can we realize more stable platforms without raising costs and complexity?
  • What can we do to increase ease-of-use, especially for verification, debugging and performance tuning?
  • How can we shorten the development and testing time for new systems?
  • How can we best use reconfigurable hardware to execute software more efficiently?
  • What are the best ways to exploit the functionality and the efficiency of reconfigurable computing?

Our approach in investigating these complex problems is to understand, simplify, build and test. We keep things as simple and minimalist as possible, without sacrificing generality. We build actual systems, both physical and simulated, to verify and measure the results. We test our systems ourselves and make them freely available to the research community, both for verification and for teaching purposes.

This 96MB Word document is a snapshot of the group's current work. It reports on the demonstrations that we brought to the 2009 Microsoft Faculty Summit in Redmond, WA, USA. A shorter 2.6MB PDF document is also available, without the posters.