Algorithmic Skeletons for the Programming of Reconfigurable Systems

Reconfigurable hardware such as FPGAs combines performance and flexibility, two inherent requirements of many modern electronic devices. Moreover, using reconfigurable devices, time to market can be reduced while simultaneously cutting the costs. However, the design of systems that beneficially explore the reconfiguration capabilities of modern FPGAs is cumbersome and little automated. In this work, a new approach is described that starts from a very high level of abstraction, so-called algorithmic skeletons, and exploits the additional information of this level of abstraction to beneficially execute on reconfigurable devices. Particularly, the approach focuses on dynamic run-time reconfiguration on partially reconfigurable FPGAs. As a first introduction to this approach, we consider stream parallelism paradigms including their composition.

[1]  Marco Platzner,et al.  Field Programmable Logic and Application , 2004, Lecture Notes in Computer Science.

[2]  André DeHon The Case for Reconfigurable Processors , 2007 .

[3]  Zhiyuan Li,et al.  Configuration prefetching techniques for partial reconfigurable coprocessor with relocation and defragmentation , 2002, FPGA '02.

[4]  Danny Crookes,et al.  From application descriptions to hardware in seconds: a logic-based approach to bridging the gap , 2004, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[5]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[6]  Sergei Gorlatch,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2002, Springer London.

[7]  Gordon J. Brebner,et al.  A Virtual Hardware Operating System for the Xilinx XC6200 , 1996, FPL.

[8]  Reiner W. Hartenstein,et al.  Field-Programmable Logic Smart Applications, New Paradigms and Compilers , 1996, Lecture Notes in Computer Science.

[9]  Ranga Vemuri,et al.  An integrated temporal partitioning and partial reconfiguration technique for design latency improvement , 2000, Proceedings Design, Automation and Test in Europe Conference and Exhibition 2000 (Cat. No. PR00537).

[10]  Marco Platzner,et al.  Operating systems for reconfigurable embedded platforms: online scheduling of real-time tasks , 2004, IEEE Transactions on Computers.

[11]  Scott Hauck,et al.  Reconfigurable computing: a survey of systems and software , 2002, CSUR.

[12]  John Wawrzynek,et al.  Stream Computations Organized for Reconfigurable Execution (SCORE) Extended Abstract , 2000 .

[13]  Marco Platzner,et al.  A Runtime Environment for Reconfigurable Hardware Operating Systems , 2004, FPL.

[14]  Christophe Bobda,et al.  Run-Time Exchange of Mechatronic Controllers Using Partial Hardware Reconfiguration , 2003, FPL.

[15]  Susanna Pelagatti Structured development of parallel programs , 1997 .

[16]  Klaus Danne Operating Systems for FPGA Based Computers and Their Memory , 2004, ARCS Workshops.

[17]  John Wawrzynek,et al.  Stream Computations Organized for Reconfigurable Execution (SCORE) , 2000, FPL.

[18]  J. Lockwood,et al.  Dynamic hardware plugins in an FPGA with partial run-time reconfiguration , 2002, Proceedings 2002 Design Automation Conference (IEEE Cat. No.02CH37324).

[19]  Hossam ElGindy,et al.  Dynamic scheduling of tasks on partially reconfigurable FPGAs , 2000 .

[20]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

[21]  Nachiket Kapre,et al.  Design patterns for reconfigurable computing , 2004, 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[22]  Kostas Masselos,et al.  System-level modeling of dynamically reconfigurable hardware with SystemC , 2003, Proceedings International Parallel and Distributed Processing Symposium.