ABSTRACT

For several years, reconfigurable hardware has been used successfully to provide application acceleration [5]. The state-of-the-art reconfigurable hardware is field-programmable gate arrays (FPGAs). These devices can be programmed and reprogrammed with application-specific hardware designs. Until recently, FPGAs did not contain enough logic resources to implement floating-point arithmetic and were, therefore, not applicable to many scientific computing applications. Instead, they were employed with great benefit in fields such as signal processing, cryptography, and embedded computing. Now, large FPGAs that also possess hardware features such as dedicated multipliers and on-chip memories have become attractive platforms for accelerating tasks in scientific applications. There has been a resulting development of reconfigurable computers-computers that have both general purpose processors (GPPs) and reconfigurable hardware, as well as memory and high-performance interconnection networks.