Link to CALCM Home  

HASTE: Hybrid Architectures with a Single Transformable Executable

Tuesday January 28, 2003
Hamerschlag Hall 1112
4:30 p.m.

Benjamin A. Levine
Carnegie Mellon University

Reconfigurable computing architectures can implement custom datapaths and other logic with performance close to that of a comparable ASIC, combined with the ability to be quickly reprogrammed for new tasks like a conventional CPU. In particular, reconfigurable fabrics, which are composed of a large number of identical tiled units, have many advantages in terms of design reuse and efficiency, manufacturability, testing, and other areas that present particular challenges in current and future process technologies. However, reconfigurable fabrics are inefficient for applications with lots of branching or with irregular data access patterns. This has typically been solved by coupling a general purpose processor with a reconfigurable fabric. This sort of hybrid architecture has had some success, but has also raised new problems. The interface between the processor and the fabric is crucial to performance and difficult to implement well. Partitioning the application between the processor and fabric is a difficult task, typically complicated by entirely different programming models, heterogeneous interfaces to external resources, and incompatible representations of applications. It is arguable that these interface and partitioning problems, along with the requirement to produce and maintain two separate executables, have delayed the widespread acceptance of reconfigurable computing hardware.

A novel hybrid architecture and an associated representation of applications, called HASTE (Hybrid Architecture with a Single Transformable Executable) solves many of these difficulties. Using a technique we call "hardware compilation in hardware", a single executable can represent all parts of an application, both those that are control bound and better suited for a traditional processor, and those that have lots of parallelism and can be run efficiently on a reconfigurable fabric. This executable can execute in its entirety on the processor, but for best performance a hardware compilation unit maps suitable portions of the application onto a reconfigurable fabric at run-time. All portions of the executable have a valid sequential semantic, and thus a single programming model can be used for the entire application. The application representation is a key to this concept. It must be able to represent a sufficiently wide range of configurations so as to fully utilize the computing power of the fabric, while still having a valid sequential semantic. The overhead of representing the spatial information needed for the fabric cannot be so large as to make the sequential code slow and inefficient. Several different application representations have been examined, using both a conventional register instruction set architecture (ISA) and a queue ISA. The queue ISA targets a queue processor, which resembles a stack processor with the stack replaced by a queue. The queue ISA enables very simple hardware compilation, but can be quite inefficient in representing applications. Register ISAs have an efficient application representation, but require more complex compilation hardware. An ISA using a modified form of register addressing has hardware compilation nearly as simple as the queue ISA, while allowing for efficient application representation and a wide range of compatible fabric architectures.

Benjamin Levine received his BS in 1997 and his MS in 1999, both in Electrical Engineering, from the University of Tennessee, Knoxville. He is now completing his Ph.D. in Electrical and Computer Engineering at Carnegie Mellon University, where he is an IBM/SRC Graduate Fellow and is advised by Dr. Herman Schmit. His Ph.D. thesis explores HASTE, a novel reconfigurable processor architecture for high-performance embedded systems. He previously worked on the PipeRench reconfigurable architecture project at CMU and helped design, implement, and test the 3.7 million transistor PipeRench prototype.



Department of Electrical and Computer EngineeringCarnegie Mellon UniversitySchool of Computer Science