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
- Intro:
- What's RC and why interseting? [slides,reading]
- Computing Requirements, area, and VLSI scaling [Comp. Req. slides,VLSI slides,notes,reading]
- Instructions [slides,notes,reading]
- FPGA Intro [slides,notes,reading]
- Custom Computing Machine Overview [slides,notes,reading]
- SPLASH [slides,notes,reading]
- Comparing Computing Machines [slides,notes,reading]
- Spatial Computational Styles:
- Architecture:
- Interconnect
- Requirements [slides,notes,reading]
- Traditional [slides,notes,reading]
- Delays in VLSI Structures [slides,notes,reading]
- Partitioning and Placement [slides,notes,reading]
- Routing [slides,notes,reading]
- Compute Elements
- Retiming
- Multicontext [slides,reading]
- Everything Else:
Course Calendar
(with links to handouts and lecture-by-lecture reading provided in calendar)
Projects