Reconfigurable Computing: Experiences and Methodologies
Abstract:
Reconfigurable computing refers to computations done with flexible fabrics where the data path and control flow can be customized to the application. Unlike traditional computing using the fetch, execute, and store model that is highly sequential, reconfigurable computing allows developers to program their applications both spatially and temporally. This allows for potentially great speed-ups with applications that might be well-suited for such approaches. However, programming in this style requires specialized hardware and a somewhat complex design flow. This report discusses background on the topic and highlights our experiences using this technology on two target applications. It also discusses the state-of-the-art high-level language approaches that have been offered to streamline the development cycle using these technologies.