Runtime Temporal Partitioning Assembly to Reduce FPGA Reconfiguration Time

Large applications that exceed available FPGA resources must time-multiplex these resources using smaller hardware modules. In order to orchestrate this time-multiplexing, temporal partitioning partitions these hardware modules into multiple subsets, each of which fit within the available resources. During a temporal partition transition, the FPGA is reconfigured to the subsequent temporal partition. However, FPGA reconfiguration time can impose significant performance overhead as the entire FPGA fabric must be reconfigured even if only a small portion has changed. Partially reconfigurable (PR) FPGAs can decrease reconfiguration time by only reconfiguring the portions of the FPGA fabric that differ. In this paper, we present a design methodology using a simulated annealing-based module placement optimization engine to minimize FPGA reconfiguration overhead by exploiting module overlap across successive temporal partitions. Experimental results show that our methodology reduces FPGA reconfiguration time by 44% on average.

[1]  B. Earl Wells,et al.  Task Scheduling in a Finite-Resource, Reconfigurable Hardware/Software Codesign Environment , 2006, INFORMS J. Comput..

[2]  Ranga Vemuri,et al.  An iterative algorithm for battery-aware task scheduling on portable computing platforms , 2005, Design, Automation and Test in Europe.

[3]  Dinesh Bhatia,et al.  Temporal Partitioning and Scheduling Data Flow Graphs for Reconfigurable Computers , 1999, IEEE Trans. Computers.

[4]  Ann Gordon-Ross,et al.  SCORES: A scalable and parametric streams-based communication architecture for modular reconfigurable systems , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[5]  Elaheh Bozorgzadeh,et al.  Multi-layer Floorplanning on a Sequence of Reconfigurable Designs , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[6]  Martin C. Herbordt,et al.  Families of FPGA-based accelerators for approximate string matching , 2007, Microprocess. Microsystems.

[7]  Christophe Bobda,et al.  Introduction to reconfigurable computing - architectures, algorithms, and applications , 2010 .

[8]  Marco Platzner,et al.  A Heuristic Approach to Schedule Periodic Real-Time Tasks on Reconfigurable Hardware , 2005, FPL.

[9]  Volodymyr V. Kindratenko,et al.  A case study in porting a production scientific supercomputing application to a reconfigurable computer , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[10]  Alan D. George,et al.  Exploiting Partially Reconfigurable FPGAs for Situation-Based Reconfiguration in Wireless Sensor Networks , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[11]  Ranga Vemuri,et al.  Optimal temporal partitioning and synthesis for reconfigurable architectures , 1998, Proceedings Design, Automation and Test in Europe.

[12]  Christophe Bobda,et al.  Introduction to Reconfigurable Computing , 2007 .

[13]  Jijun Tang,et al.  FPGA Acceleration of Phylogeny Reconstruction for Whole Genome Data , 2007, 2007 IEEE 7th International Symposium on BioInformatics and BioEngineering.

[14]  Miaoqing Huang,et al.  Hardware task scheduling optimizations for reconfigurable computing , 2008, 2008 Second International Workshop on High-Performance Reconfigurable Computing Technology and Applications.

[15]  Proshanta Saha Automatic Software Hardware Co-Design for Reconfigurable Computing Systems , 2007, 2007 International Conference on Field Programmable Logic and Applications.