Reconfigurable computing -- platforms, compilation and applications

Walid Najjar (UC Riverside)
Fadi Kurdahi (UC Irvine)

Abstract: In recent years we have witnessed a fast growth of both size and speed of FPGAs. These had been initially designed and marketed as convenient devices for "glue logic." Later, they became used as fast prototyping platforms. As their size and speed grew, they have been used for the short time to market they can afford. Lately, their size and speed have made them attractive as code accelerator. While the clock speed achievable on a typical FPGA design is about an order of magnitude lower than that on a typical CPU, their advantage comes from two sources: (1) Large degree of instruction and loop level parallelism. Parallel loops can typically be unrolled by factors ranging in the 100s. (2) Increased efficiency of hardware execution. The streaming of the data through a dedicated circuit eliminates a large number of support operations such as data fetch, address calculations, index management, loop control, etc. The combined higher efficiency and parallelism of hardware execution on FPGAs has been shown to result in speedups ranging from the 10s to the 1,000s over traditional processor on frequently executed code segments. On the other side of the reconfigurable computing spectrum are coarse grain architectures. Platforms that combine CPUs with a reconfigurable fabric on the same chip have been investigated and recently introduced. Such devices are ideally suited for many power-aware application domains ranging from multimedia to communication, especially in mobile systems. A major challenge to their wider use is the lack of high level programming and design space exploration tools.

In this tutorial we will discuss (1) the intrinsic advantages of the spatial computing model and its drawbacks, (2) the architecture models of FPGA-based and coarse-grained reconfigurable systems, (3) compilation and high-level software tools for these platforms as well as (4) the mapping and analysis of performance and energy requirements of applications in multimedia, mobile communication and high performance computing.