CS294-7: Reconfigurable Computing

In the Spring of 1997 we (Dr. André DeHon and Prof. John Wawrzynek) taught a reconfigurable computing course at UC Berkeley. These pages archive materials from that offering.


Description

The emergence of high capacity reconfigurable devices is igniting a revolution in general-purpose processing. It is now becoming possible to tailor and dedicate functional units and interconnect to take advantage of application dependent dataflow. Furthermore, machines have been proposed that dynamically change their configuration with changing data sets and algorithm needs. Early research in this area of reconfigurable computing has shown encouraging results in a number of spot areas including cryptography, signal processing, and searching -- achieving 10-100x computational density over more conventional processor solutions.

In this class we attempt to pull together the basic foundations of reconfigurable computing, sort out where it is interesting, and understand both how to architect reconfigurable systems and how to apply them to solving challenging computational problems. We will revisit basic questions about what building blocks we need in order to compute and rethink how we build computing systems based on today's technology costs.

For more motivation and background, see André's presentation on ``The Role of Configurable Computing'' and viewpoint article on ``Directions in General-Purpose Computing Architectures''.


Student Requirements

Students were required to attend class, read research papers, scribe notes from a couple of lectures, and complete two individual mini-projects -- one aimed to familiarize the student with mapping an application to a reconfigurable device and one oriented to address an interesting research question.


Course Coverage

  1. Intro:
  2. Spatial Computational Styles:
  3. Architecture:
  4. Everything Else:

Course Calendar (with links to handouts and lecture-by-lecture reading provided in calendar)


Projects


Original Course Homepage